Date: Tue, 5 Sep 2006 16:35:41 -0700 From: "David Christensen" <davidch@broadcom.com> To: "Simon L. Nielsen" <simon@FreeBSD.org> Cc: LI Xin <delphij@delphij.net>, freebsd-current@freebsd.org, Oleg Bulyzhin <oleg@freebsd.org> Subject: RE: bge(4) on BCM 5752 A02 panic due to media autoselect Message-ID: <09BFF2FA5EAB4A45B6655E151BBDD90301F1257E@NT-IRVA-0750.brcm.ad.broadcom.com> In-Reply-To: <20060902185124.GB59963@zaphod.nitro.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
> > Today Simon L. Nielsen (simon@freebsd.org) reported=20 > breakage of bcm5703: > >=20 > > bge0: <Broadcom BCM5703 A2, ASIC rev. 0x1002> mem=20 > 0xfe000000-0xfe00ffff irq 27 a > > t device 3.0 on pci2 > > miibus0: <MII bus> on bge0 > > brgphy0: <BCM5703 10/100/1000baseTX PHY> on miibus0 > > brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX,=20 > 1000baseTX, 1000baseTX > > -FDX, auto > > bge0: Ethernet address: 00:50:45:00:aa:a2 > > bge1: <Broadcom BCM5703 A2, ASIC rev. 0x1002> mem=20 > 0xfe010000-0xfe01ffff irq 27 a > > t device 4.0 on pci2 > > miibus1: <MII bus> on bge1 > > brgphy1: <BCM5703 10/100/1000baseTX PHY> on miibus1 > > brgphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX,=20 > 1000baseTX, 1000baseTX > > -FDX, auto > > bge1: Ethernet address: 00:50:45:00:aa:a3 > >=20 > > bge0@pci2:3:0: class=3D0x020000 card=3D0x000c14e4=20 > chip=3D0x16a614e4 rev=3D0x02 hdr=3D0x00 > > vendor =3D 'Broadcom Corporation' > > device =3D 'BCM5702X NetXtreme Gigabit Ethernet' > > class =3D network > > subclass =3D ethernet > > bge1@pci2:4:0: class=3D0x020000 card=3D0x000c14e4=20 > chip=3D0x16a614e4 rev=3D0x02 hdr=3D0x00 > > vendor =3D 'Broadcom Corporation' > > device =3D 'BCM5702X NetXtreme Gigabit Ethernet' > > class =3D network > > subclass =3D ethernet The controller reported is not consistent, it is labeled as both a 5702 and 5703 controller in the messages above. It looks like there is an invalid assumption in the routine bge_lookup_rev(). This=20 routine assumes that each chip version will have a unique ASIC ID which is incorrect. Sadly, the 5702 and 5703 share the same ASIC IDs so an additional test for the PCI device ID needs to be added to discriminate between the two. The ASIC IDs for the 5702 are as follows: #define BGE_CHIPID_BCM5702_A0 0x10000000 #define BGE_CHIPID_BCM5702_A1 0x10010000 #define BGE_CHIPID_BCM5702_A2 0x10020000 { BGE_CHIPID_BCM5702_A0, "BCM5702 A0" }, { BGE_CHIPID_BCM5702_A1, "BCM5702 A1" }, { BGE_CHIPID_BCM5702_A2, "BCM5702 A2" } Your controller is actually a BCM5702 based on the PCI device ID. > >=20 > > Driver fails to start with diagnostic: > > bge0: RX CPU self-diagnostics failed! >=20 > As a followup, I tried backing out only the latest bge(4) changes and > now the system (sledge.freebsd.org) works again. Basically the system > responded to ICMP ping, but it seemed all other network trafic didn't > work, at least NFS mounts, NTP etc. failed at boot and ssh to the > system didn't work. >=20 > It now works with: >=20 > $FreeBSD: src/sys/dev/bge/if_bge.c,v 1.140 2006/08/24=20 > 14:41:16 oleg Exp $ > $FreeBSD: src/sys/dev/bge/if_bgereg.h,v 1.52 2006/08/23=20 > 11:32:54 glebius Exp $ >=20 > I can test patches if needed. I tested with a 5702 A1 card and the v1.141 version still worked for me. Are you using a NIC card or is this a LOM? If the latter, what system is the LOM built into? This error message indicates that the controller was unable to read and load firmware from the NVRAM which is usually a real error (unless the system was designed to operate=20 without NVRAM which is generally only a few Sun systems). Dave
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?09BFF2FA5EAB4A45B6655E151BBDD90301F1257E>