Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 May 2008 06:35:02 GMT
From:      David Yeske <dyeske@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/123696: if_bce firmware timeout on new bce chipsets
Message-ID:  <200805150635.m4F6Z29T051346@www.freebsd.org>
Resent-Message-ID: <200805150640.m4F6e16Z018221@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

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

>Description:
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

>How-To-Repeat:
reboot a machine a couple of times until the firmware fails to load
>Fix:
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


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200805150635.m4F6Z29T051346>