RE: bge(4) on BCM 5752 A02 panic due to media autoselect

From: David Christensen <davidch_at_broadcom.com>
Date: Tue, 5 Sep 2006 16:35:41 -0700
> > Today Simon L. Nielsen (simon_at_freebsd.org) reported 
> breakage of bcm5703:
> > 
> > bge0: <Broadcom BCM5703 A2, ASIC rev. 0x1002> mem 
> 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, 
> 1000baseTX, 1000baseTX
> > -FDX, auto
> > bge0: Ethernet address: 00:50:45:00:aa:a2
> > bge1: <Broadcom BCM5703 A2, ASIC rev. 0x1002> mem 
> 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, 
> 1000baseTX, 1000baseTX
> > -FDX, auto
> > bge1: Ethernet address: 00:50:45:00:aa:a3
> > 
> > bge0_at_pci2:3:0:  class=0x020000 card=0x000c14e4 
> chip=0x16a614e4 rev=0x02 hdr=0x00
> >     vendor   = 'Broadcom Corporation'
> >     device   = 'BCM5702X NetXtreme Gigabit Ethernet'
> >     class    = network
> >     subclass = ethernet
> > bge1_at_pci2:4:0:  class=0x020000 card=0x000c14e4 
> chip=0x16a614e4 rev=0x02 hdr=0x00
> >     vendor   = 'Broadcom Corporation'
> >     device   = 'BCM5702X NetXtreme Gigabit Ethernet'
> >     class    = network
> >     subclass = 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 
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.

> > 
> > Driver fails to start with diagnostic:
> > bge0: RX CPU self-diagnostics failed!
> 
> 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.
> 
> It now works with:
> 
>      $FreeBSD: src/sys/dev/bge/if_bge.c,v 1.140 2006/08/24 
> 14:41:16 oleg Exp $
>      $FreeBSD: src/sys/dev/bge/if_bgereg.h,v 1.52 2006/08/23 
> 11:32:54 glebius Exp $
> 
> 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 
without NVRAM which is generally only a few Sun systems).

Dave
Received on Tue Sep 05 2006 - 21:36:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:00 UTC