Skip site navigation (1)Skip section navigation (2)
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>