Call for testers, if_bge patch for BCM570x users
wpaul at FreeBSD.ORG
Wed Sep 15 14:57:05 PDT 2004
Ok, I have a patch that needs testing which addresses a particular problem
with the bge(4) driver. If you have a BCM5701 or newer copper NIC and are
running -current or 5.3-BETA, you may have noticed that doing a simple
"ifconfig bge0" causes the driver to emit a "bge0: gigabit link up"
message on the console. In fact, anything that invokes the SIOCGIFMEDIA
ioctl in the driver will do it, including dhcp and possibly even the
The bge driver programs the chip to autopoll the MII to check for link
changes. But when calling bge_miibus_readreg() or bge_miibus_writereg()
to access the PHY registers, you have to turn autopolling off (failing
to do so apparently triggers PCI bus errors on some hardware). It turns
out that toggling autopoll off and back on again causes the chip to
generate a spurious link change event. This makes the driver think that
the link has dropped and come back up, which is why it spits out the
"bge0: gigabit link up" message.
I have a small patch to filter these bogus events out. It is available at:
It works for my sample BCM5701 card, however I want to be sure it
works for the BCM5702, 5703, 5704 or 5705 chips before I check it in.
(Murphy's Law dictates that Broadcom somehow made the other chips
different enough that this trick won't work for them.) Unfortunately,
I don't have anything newer than the 5701 handy at the moment. So,
if you have a system with a bge(4) device with a BCM5702/3/4/5 chip
with a gigabit over twisted pair interface (*NOT* fiber optic!) and
are experiencing problems with spurious link up messages, please try
this patch. This applies to both x86 and amd64 systems.
NOTE: don't bother writing me to tell me that you will be able to
test the patch sometime in the near/far/whatever future. I don't need
to know that. Just go ahead and try it, then show me the results.
-Bill Paul (510) 749-2329 | Senior Engineer, Master of Unix-Fu
wpaul at windriver.com | Wind River Systems
<adamw> you're just BEGGING to face the moose
More information about the freebsd-current