On 2011-05-08, at 11:36, Damjan Marion wrote: > > On May 8, 2011, at 9:58 AM, Adrian Chadd wrote: > >> On 8 May 2011 01:22, Damjan Marion <[email protected]> wrote: >> >>> I would like to implement support for embedded switch on WRT350Nv2 router >>> which is based on 88F5181L SoC (ARM). FreeBSD already have support for >>> embedded gigabit card (if_mge) but in case if this router MAC is connected >>> directly to 8-port ethernet chip (88E6131). If I use MII_PHY_ANY scan >>> founds following PHYs on miibus: >> >> There's been some discussions in the past about how to implement a >> switch PHY API for use by the variety of embedded switch devices out >> there. >> >> There's been a few attempts at it too. >> >> What I think may just be a good first step is to port over the Linux >> driver for it and instead of trying to make it appear as a multi-PHY >> device, just export a programming and status interface via sysctl. >> That at least gets the thing in the tree and functioning. Once we have >> a few devices in the tree and functioning, we'll be in a better >> position to have a discussion about how to represent it. >> >> There's a couple of dissenting views about how it should be >> implemented. I'd like to see some working code in the tree so some >> discussion can occur, rather than lots of dissent and no discussion. >> :) >> >> (The switch phy is the last remaining bit of the board support for a >> handful of boards too, so I'd really like to see it completed. :) > > Hi Adrian, > > I agree with your approach. At this point my concern is how to change > existing code to support switch PHY. In my case problem is that mii_attach as > it is today cannot be used detect this device as device is not using standard > registers. > > I can see 2 possible options: > 1. Modifying eth driver in the way that if switch phy is detected then it > avoids calling mii_attach. Drawback of this approach is that it will need > applying same code for each pair of MAC-switch PHY > > 2. Modifying mii_attach in the way that it is more flexible in detecting such > devices. This looks challenging to me to do this in flexible way. > > What do you think?
FWIW, there's a couple of items already available for the 88E6xxx switch support, which you can try to use as a base for further work: * Juli Mallet's driver, which is currently in HEAD (used by Cavium MIPS): - http://fxr.watson.org/fxr/source/mips/cavium/octe/mv88e61xxphy.c - http://fxr.watson.org/fxr/source/mips/cavium/octe/mv88e61xxphyreg.h * My team's early experimental work: - http://people.freebsd.org/~raj/misc/e6000sw.c - http://people.freebsd.org/~raj/misc/e6000swreg.h Rafal _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"

