bge autoneg full-duplex modes missing on 6.2-RC2 (cause: IPMI patch)

Robert Wojciechowski robertw at ssginnovations.com
Tue Jan 9 20:50:13 UTC 2007


> I'm having problems on one of two identical servers which have dual
> Broadcom BCM5704s onboard. The problem is that one of the servers is
not
> linking at 100baseTX-FDX on the bge0 interface no matter what I do
> (forced, limited advertising on the switch, etc).
> 
> Upon further investigation I noticed this in dmesg:
> 
> bge0: <Broadcom BCM5704 B0, ASIC rev. 0x2100> mem
0xfe7f0000-0xfe7fffff
> irq 49 at device 3.0 on pci2
> miibus1: <MII bus> on bge0
> brgphy0: <BCM5704 10/100/1000baseTX PHY> on miibus1
> brgphy0:  10baseT, 100baseTX, 1000baseTX, 1000baseTX-FDX, auto
> bge0: Ethernet address: 00:30:48:56:93:32
> bge1: <Broadcom BCM5704 B0, ASIC rev. 0x2100> mem
0xfe7e0000-0xfe7effff
> irq 50 at device 3.1 on pci2
> miibus2: <MII bus> on bge1
> brgphy1: <BCM5704 10/100/1000baseTX PHY> on miibus2
> brgphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX,
> 1000baseTX-FDX, auto
> bge1: Ethernet address: 00:30:48:56:93:33
> 
> Notice 10baseTX-FDX and 100baseTX-FDX are missing from brgphy0! The
> other server doesn't have this problem at all and is running off the
> same kernel and identical hardware.
> 
> This is on amd64 and 6.2-RC2 as of Jan 8th. Thanks!
> 

I may have found out why this is happening. I backed out Dan Ambrisko's
bge IPMI patches but I forgot to reset my switch's negotiation
configuration. I reset everything back to autoneg with clean RELENG_6_2
sources and everything links up as expected.

After looking into a bit, it seems the problem is indeed related to the
MII PHY media detection being flaky on bge0 (but operating correctly for
bge1) when using the IPMI patch. 

If I reboot over and over 10baseTX disappears and appears
intermittently, as well as all the modes I'm looking for such as
100baseTX-FDX, albeit less often. Perhaps this is due to a race of some
sort with the IPMI patch touching the PHY and the PHY media detection?

I'm still running on the patch from
http://www.ambrisko.com/doug/bge_ipmi_3.patch, modified slightly to
patch cleanly on RELENG_6_2. I tried RELENG_6 but the system froze on
boot while initializing bge and I'm not sure why (something I'll trace
down after this). I see that it is also committed to HEAD but I haven't
tried that version.

Right now I temporarily patched mii_physubr.c to force it to advertise
100baseTX-FDX and it correctly links up.

Any ideas? Thanks!!

-- Robert


More information about the freebsd-stable mailing list