How to support an Ethernet PHY without ID registers?

Sepherosa Ziehau sepherosa at gmail.com
Wed Oct 15 01:47:58 UTC 2008


On Sat, Oct 11, 2008 at 4:46 PM, Bruce M. Simpson <bms at freebsd.org> wrote:
> Sepherosa Ziehau wrote:
>>
>> Are you sure you could read from BMSR?  Return invalid value from BMSR
>> is the usual cause of miibus attaching/probing failure.  For ID1/ID2
>> reading, you could just fake some values in npe(4)'s miibus_readreg
>> implementation.
>>
>
> Thanks for the tip (from you and Pyun). I had to spoof the BMSR read to get
> npe(4) to attach just to begin with. For whatever reason the chip doesn't
> seem to respond on any of the PHY IDs which the Linux folk are using (5 and
> 4 for npe0 (-B) and npe1 (-C) respectively).
>
> I noticed the ucLinux folk needed a similar patch to force driver attach
> under Linux w/the IXP:
> http://mailman.uclinux.org/pipermail/uclinux-dev/2005-March/031419.html
>
> The switch pretty much disappears after npe(4) attaches, I don't see any
> activity lights or link lights at that point. This seems to happen after any
> mii register access.
>
> If I frob things to allow rlswitch to attach, by using hints and hacking
> if_npe.c, I can get dumps of the PHY register space, but it's all ones,
> suggesting that it failed at xScale register level -- that would suggest the
> PHY IDs are *wrong*, or something else isn't right.
>
> Pyun also suggested trying to manually take the PHYs out of power-down mode.
> I tried that with a code snippet I sent him, but still no dice. I can't even
> be sure that the PHYs are being addressed right.

Realtek's 8211[BC] PHY has a "page selector" register (0x1f), BMSR and
other GMII standard registers are in page0.  Does the PHY you are
working with has something like the "page selector"?

Best Regards,
sephe

-- 
Live Free or Die


More information about the freebsd-net mailing list