From owner-freebsd-bugs@FreeBSD.ORG Thu May 15 06:40:02 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 58289106566C for ; Thu, 15 May 2008 06:40:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 372648FC14 for ; Thu, 15 May 2008 06:40:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m4F6e1K3018222 for ; Thu, 15 May 2008 06:40:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m4F6e16Z018221; Thu, 15 May 2008 06:40:01 GMT (envelope-from gnats) Resent-Date: Thu, 15 May 2008 06:40:01 GMT Resent-Message-Id: <200805150640.m4F6e16Z018221@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, David Yeske Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B2AC1065680 for ; Thu, 15 May 2008 06:36:12 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id 7BA2A8FC1C for ; Thu, 15 May 2008 06:36:12 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m4F6Z2AA051347 for ; Thu, 15 May 2008 06:35:02 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.2/8.14.1/Submit) id m4F6Z29T051346; Thu, 15 May 2008 06:35:02 GMT (envelope-from nobody) Message-Id: <200805150635.m4F6Z29T051346@www.freebsd.org> Date: Thu, 15 May 2008 06:35:02 GMT From: David Yeske To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: kern/123696: if_bce firmware timeout on new bce chipsets X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2008 06:40:02 -0000 >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: mem 0xf8000000-0xf9ffffff irq 16 at device 0.0 on pci3 bce1: ASIC ID 0x57081020; Revision (B2); PCI-X 64-bit 133MHz miibus1: 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: