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]"

Reply via email to