kern/123696: if_bce firmware timeout on new bce chipsets

David Yeske dyeske at
Thu May 15 06:40:02 UTC 2008

>Number:         123696
>Category:       kern
>Synopsis:       if_bce firmware timeout on new bce chipsets
>Confidential:   no
>Severity:       critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu May 15 06:40:01 UTC 2008
>Originator:     David Yeske
>Release:        HEAD
FreeBSD shuttle 8.0-CURRENT FreeBSD 8.0-CURRENT #49: Wed May 14 00:20:51 EDT 2008     root at shuttle:/usr/obj/usr/src/sys/SHUTTLE  i386

Newer broadcom chipsets appear to timeout while loading the firmware.  This sometimes occurs after a machine is rebooted.  It appears to occur fairly often on Dell MLK 1950 and 2950 hardware.  Here is an example of an effected chipset.  I have not seen the firmware fail to load after changing number of times the firmware is polled from 100 to 1000.  This change was also tested on the bce driver in FreeBSD 6.2.

bce1: <Broadcom NetXtreme II BCM5708 1000Base-T (B2), v0.9.6> mem 0xf8000000-0xf9ffffff irq 16 at device 0.0 on pci3
bce1: ASIC ID 0x57081020; Revision (B2); PCI-X 64-bit 133MHz
miibus1: <MII bus> on bce1
bce1: Ethernet address: 00:1d:09:27:d3:e5
bce1: bootcode rev = 0x03050C05

reboot a machine a couple of times until the firmware fails to load
see attachment

Patch attached with submission follows:

Index: if_bcereg.h
RCS file: /home/ncvs/src/sys/dev/bce/if_bcereg.h,v
retrieving revision 1.18
diff -u -r1.18 if_bcereg.h
--- if_bcereg.h	11 Apr 2008 23:10:40 -0000	1.18
+++ if_bcereg.h	15 May 2008 04:48:03 -0000
@@ -466,7 +466,7 @@
  * running and there won't be any firmware-driver synchronization during a
  * driver reset. 
-#define FW_ACK_TIME_OUT_MS                  100
+#define FW_ACK_TIME_OUT_MS                  1000
 #define BCE_DRV_RESET_SIGNATURE				0x00000000


More information about the freebsd-bugs mailing list