Bill Paul dc961de0b4 Commit patch to supress spurious link change events. Apparently, with
copper NICs, a link change event is posted whenever MII autopolling is
toggled off and on, which happens whenever someone calls
bge_miibus_readreg() or bge_miibus_writereg() to access the PHY
registers. This means anytime someone called the SIOCGIFMEDIA ioctl
on a bge interface, the link would reset. Even a simple "ifconfig bge0"
would do it, though other apps like dhclient or the PPPoE daemon could
trigger it as well. An obvious symptom of this problem is lots of
"bgeX: gigabit link up" messages appearing on the console for no
apparent reason.

Through experimentation, I determined that when a real link change
event occurs, the BGE_MIMODE_AUTOPOLL in the BGE_MI_MODE register
is always set, so now if we have a copper NIC and an link change
event occurs and the BGE_MIMODE_AUTOPOLL bit is clear, we ignore
the event.

Note that this does not apply to the original BCM5700 chip since we
use a different method for sensing link changes with that chip (the
status block method was broken), nor to fiber optic NICs since they
don't use the GMII PHY access registers.
2004-09-17 04:58:17 +00:00
..
2004-08-22 03:55:04 +00:00
2004-08-27 21:25:16 +00:00
2004-09-01 06:10:11 +00:00
2004-07-22 07:11:15 +00:00
2004-09-06 20:42:34 +00:00
2004-08-02 20:42:28 +00:00
2004-09-16 21:32:13 +00:00
2004-08-04 18:30:31 +00:00
2004-08-25 17:54:19 +00:00
2004-07-10 21:05:14 +00:00
2004-09-15 03:39:18 +00:00
2004-07-10 21:06:08 +00:00
2004-07-28 06:21:53 +00:00
2004-07-28 06:21:53 +00:00
2004-07-10 21:14:20 +00:00
2004-09-10 18:39:02 +00:00
2004-09-01 22:53:13 +00:00
2004-08-18 16:14:44 +00:00