Subject: Broadcom BCM5704C NIC speed problem on amd64
To: NetBSD current <current-users@netbsd.org>
From: Nicolas Joly <njoly@pasteur.fr>
List: current-users
Date: 09/08/2003 13:27:17
I recently installed a bi-opteron with NetBSD amd64 port, everything
works fine except for the network.

The Tyan Thunder K8S has two Broadcom BCM5704C Gigabit Ethernet. A few
issues were solved (new ASIC rev 3, NIC LEDs wrongly set), but now i'm
stuck with media speed problems.

When the machine is off, and the NIC LEDs are yellow (=100Mb). During
boot process, the cards are probed (bge(4) driver) and the LEDs do not
change. But with the PHY installation process, LEDs turn green
(=10Mb), and at that time, the media speed is stuck at 10Mb.

If i unplug the cable, wait for at least 5 sec, and plug it back;
most of the time, i can have the expected 100Mb link. Setting manually
the media to 100baseTX and then turning back to auto, produce the same
behaviour.

I had a look in brgphy(4) source code, and noticed the comment about
the 5705 PHY hardware bug (reset problem). I tried to remove all
`mii_phy_reset()' call for 5704 PHY, and the problem disappeared. It
seems that ASIC BCM5704 A3 chip has a bug triggered by the reset ...

Any thought ?

[...]
bge0 at pci2 dev 9 function 0: Broadcom BCM5704C Dual Gigabit Ethernet
bge0: interrupting at ioapic1 pin 0 (irq 15)
bge0: ASIC BCM5704 A3, Ethernet address 00:e0:81:51:dd:69
brgphy0 at bge0 phy 1: BCM5704 1000BASE-T media interface, rev. 0
brgphy0: using BCM5704 DSP patch
brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-F
DX, auto
bge1 at pci2 dev 9 function 1: Broadcom BCM5704C Dual Gigabit Ethernet
bge1: interrupting at ioapic1 pin 1 (irq 10)
bge1: ASIC BCM5704 A3, Ethernet address 00:e0:81:51:dd:6a
brgphy1 at bge1 phy 1: BCM5704 1000BASE-T media interface, rev. 0
brgphy1: using BCM5704 DSP patch
brgphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-F
DX, auto
[...]

-- 
Nicolas Joly

Biological Software and Databanks.
Pasteur Institute, Paris.