Robert Wojciechowski
2007-Jan-09 12:50 UTC
bge autoneg full-duplex modes missing on 6.2-RC2 (cause: IPMI patch)
> I'm having problems on one of two identical servers which have dual > Broadcom BCM5704s onboard. The problem is that one of the servers isnot> 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> mem0xfe7f0000-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> mem0xfe7e0000-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