From nonesuch@oceanspray.bad-apples.org  Wed Apr 26 21:42:20 2006
Return-Path: <nonesuch@oceanspray.bad-apples.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 0A22116A400
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 26 Apr 2006 21:42:20 +0000 (UTC)
	(envelope-from nonesuch@oceanspray.bad-apples.org)
Received: from oceanspray.bad-apples.org (su-nat.datapipe.net [64.106.131.10])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 9F03A43D48
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 26 Apr 2006 21:42:19 +0000 (GMT)
	(envelope-from nonesuch@oceanspray.bad-apples.org)
Received: from oceanspray.bad-apples.org (localhost [127.0.0.1])
	by oceanspray.bad-apples.org (8.13.6/8.13.6) with ESMTP id k3QLgIJf019700
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 26 Apr 2006 17:42:18 -0400 (EDT)
	(envelope-from nonesuch@oceanspray.bad-apples.org)
Received: (from nonesuch@localhost)
	by oceanspray.bad-apples.org (8.13.6/8.13.6/Submit) id k3QLgHc2019699;
	Wed, 26 Apr 2006 17:42:17 -0400 (EDT)
	(envelope-from nonesuch)
Message-Id: <200604262142.k3QLgHc2019699@oceanspray.bad-apples.org>
Date: Wed, 26 Apr 2006 17:42:17 -0400 (EDT)
From: Mark Saad <msaad@datapipe.com>
Reply-To: msaad@datapipe.com
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject:
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         96382
>Category:       i386
>Synopsis:       [bge] In 6.1-RC1 the bge driver does not reliably work with BCM5714c
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    bz
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 26 21:50:15 GMT 2006
>Closed-Date:    Tue Nov 17 20:52:45 UTC 2009
>Last-Modified:  Tue Nov 17 20:52:45 UTC 2009
>Originator:     Mark Saad <msaad@datapipe.com>
>Release:        FreeBSD 6.1-RC1 i386
>Organization:
DataPipe.com
>Environment:
System: 6.1-RC1 FreeBSD 6.1-RC1 #0: Mon Apr 10 17:03:22 UTC 2006 root@op us.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP i386


bge0: <Broadcom BCM5714C Gigabit Ethernet, ASIC rev. 0x9001> mem 0xfdef0000-0xfdefffff,0xfdee0000-0xfdeeffff irq 16 at device 4.0 on pci5
miibus0: <MII bus> on bge0
brgphy0: <BCM5714 10/100/1000baseTX PHY> on miibus0
brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX, 1000baseTX-FDX, auto
bge0: Ethernet address: 00:15:60:0f:e8:81
bge1: <Broadcom BCM5714C Gigabit Ethernet, ASIC rev. 0x9001> mem 0xfded0000-0xfdedffff,0xfdec0000-0xfdecffff irq 17 at device 4.1 on pci5
miibus1: <MII bus> on bge1
brgphy1: <BCM5714 10/100/1000baseTX PHY> on miibus1
brgphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX, 1000baseTX-FDX, auto
bge1: Ethernet address: 00:15:60:0f:e8:82

>Description:
The current generation of HP Proliant DL/ML Servers contain a Broadcom BCM5714c NIC.
In 6.1-RC1 The bge driver will not reliable work with the BCM5714c. It produces the following issues

1. When the NIC is activated the system hard locks; the keyboard and ACPI power buttons do not work.
2. When the NIC is deactivated ( In Single user mode ) running /sbin/ifconfig will show  spurious "link up" messages
displayed in the ifconfig output; as well as hard lock the server.	
>How-To-Repeat:
     Preform a base 6.1-RC1 from CD. Configure the servers NIC to use DHCP; This will cause the system to Hard lock.

>Fix:
  I believe the issues are addressed in if_bge.c,v 1.113 and newer. A pull up of the driver from HEAD will fix the issue.



>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-i386->bz 
Responsible-Changed-By: bz 
Responsible-Changed-When: Mon Oct 12 21:55:38 UTC 2009 
Responsible-Changed-Why:  
Take for the moment. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=96382 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: i386/96382: commit references a PR
Date: Tue, 13 Oct 2009 20:22:26 +0000 (UTC)

 Author: bz
 Date: Tue Oct 13 20:22:12 2009
 New Revision: 198049
 URL: http://svn.freebsd.org/changeset/base/198049
 
 Log:
   Immediately after clearing a pending callout that didn't make it due
   to the lock we hold, disable interrupts, and announce to the firmware
   that we are shutting down. Especially do this before disabling blocks.
   
   This makes some types of machines with asf enabled no longer hang upon
   boot, when we start configuring the interface.
   
   PR:			i386/96382, kern/100410, kern/122252, kern/116328
   Reported by:		erwin
   Hardware provided by:	TDC A/S
   Reviewed by:		stas
   Tested by:		stas
 
 Modified:
   head/sys/dev/bge/if_bge.c
 
 Modified: head/sys/dev/bge/if_bge.c
 ==============================================================================
 --- head/sys/dev/bge/if_bge.c	Tue Oct 13 20:21:17 2009	(r198048)
 +++ head/sys/dev/bge/if_bge.c	Tue Oct 13 20:22:12 2009	(r198049)
 @@ -4270,6 +4270,16 @@ bge_stop(struct bge_softc *sc)
  
  	callout_stop(&sc->bge_stat_ch);
  
 +	/* Disable host interrupts. */
 +	BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);
 +	bge_writembx(sc, BGE_MBX_IRQ0_LO, 1);
 +
 +	/*
 +	 * Tell firmware we're shutting down.
 +	 */
 +	bge_stop_fw(sc);
 +	bge_sig_pre_reset(sc, BGE_RESET_STOP);
 +
  	/*
  	 * Disable all of the receiver blocks.
  	 */
 @@ -4309,16 +4319,6 @@ bge_stop(struct bge_softc *sc)
  		BGE_CLRBIT(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE);
  	}
  
 -	/* Disable host interrupts. */
 -	BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);
 -	bge_writembx(sc, BGE_MBX_IRQ0_LO, 1);
 -
 -	/*
 -	 * Tell firmware we're shutting down.
 -	 */
 -
 -	bge_stop_fw(sc);
 -	bge_sig_pre_reset(sc, BGE_RESET_STOP);
  	bge_reset(sc);
  	bge_sig_legacy(sc, BGE_RESET_STOP);
  	bge_sig_post_reset(sc, BGE_RESET_STOP);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: i386/96382: commit references a PR
Date: Tue, 17 Nov 2009 14:30:24 +0000 (UTC)

 Author: bz
 Date: Tue Nov 17 14:30:09 2009
 New Revision: 199381
 URL: http://svn.freebsd.org/changeset/base/199381
 
 Log:
   MFC r198049:
   
     Immediately after clearing a pending callout that didn't make it due
     to the lock we hold, disable interrupts, and announce to the firmware
     that we are shutting down. Especially do this before disabling blocks.
   
     This makes some types of machines with asf enabled no longer hang upon
     boot, when we start configuring the interface.
   
   PR:	i386/96382, kern/100410, kern/122252, kern/116328
 
 Modified:
   stable/8/sys/dev/bge/if_bge.c
 Directory Properties:
   stable/8/sys/   (props changed)
   stable/8/sys/amd64/include/xen/   (props changed)
   stable/8/sys/cddl/contrib/opensolaris/   (props changed)
   stable/8/sys/contrib/dev/acpica/   (props changed)
   stable/8/sys/contrib/pf/   (props changed)
   stable/8/sys/dev/xen/xenpci/   (props changed)
 
 Modified: stable/8/sys/dev/bge/if_bge.c
 ==============================================================================
 --- stable/8/sys/dev/bge/if_bge.c	Tue Nov 17 14:23:09 2009	(r199380)
 +++ stable/8/sys/dev/bge/if_bge.c	Tue Nov 17 14:30:09 2009	(r199381)
 @@ -4218,6 +4218,16 @@ bge_stop(struct bge_softc *sc)
  
  	callout_stop(&sc->bge_stat_ch);
  
 +	/* Disable host interrupts. */
 +	BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);
 +	bge_writembx(sc, BGE_MBX_IRQ0_LO, 1);
 +
 +	/*
 +	 * Tell firmware we're shutting down.
 +	 */
 +	bge_stop_fw(sc);
 +	bge_sig_pre_reset(sc, BGE_RESET_STOP);
 +
  	/*
  	 * Disable all of the receiver blocks.
  	 */
 @@ -4257,16 +4267,6 @@ bge_stop(struct bge_softc *sc)
  		BGE_CLRBIT(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE);
  	}
  
 -	/* Disable host interrupts. */
 -	BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);
 -	bge_writembx(sc, BGE_MBX_IRQ0_LO, 1);
 -
 -	/*
 -	 * Tell firmware we're shutting down.
 -	 */
 -
 -	bge_stop_fw(sc);
 -	bge_sig_pre_reset(sc, BGE_RESET_STOP);
  	bge_reset(sc);
  	bge_sig_legacy(sc, BGE_RESET_STOP);
  	bge_sig_post_reset(sc, BGE_RESET_STOP);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: i386/96382: commit references a PR
Date: Tue, 17 Nov 2009 20:48:52 +0000 (UTC)

 Author: bz
 Date: Tue Nov 17 20:48:32 2009
 New Revision: 199433
 URL: http://svn.freebsd.org/changeset/base/199433
 
 Log:
   MFC r198049:
   
     Immediately after clearing a pending callout that didn't make it due
     to the lock we hold, disable interrupts, and announce to the firmware
     that we are shutting down. Especially do this before disabling blocks.
   
     This makes some types of machines with asf enabled no longer hang upon
     boot, when we start configuring the interface.
   
   PR:	i386/96382, kern/100410, kern/122252, kern/116328
 
 Modified:
   stable/7/sys/dev/bge/if_bge.c
 Directory Properties:
   stable/7/sys/   (props changed)
   stable/7/sys/contrib/pf/   (props changed)
 
 Modified: stable/7/sys/dev/bge/if_bge.c
 ==============================================================================
 --- stable/7/sys/dev/bge/if_bge.c	Tue Nov 17 20:45:49 2009	(r199432)
 +++ stable/7/sys/dev/bge/if_bge.c	Tue Nov 17 20:48:32 2009	(r199433)
 @@ -4213,6 +4213,16 @@ bge_stop(struct bge_softc *sc)
  
  	callout_stop(&sc->bge_stat_ch);
  
 +	/* Disable host interrupts. */
 +	BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);
 +	bge_writembx(sc, BGE_MBX_IRQ0_LO, 1);
 +
 +	/*
 +	 * Tell firmware we're shutting down.
 +	 */
 +	bge_stop_fw(sc);
 +	bge_sig_pre_reset(sc, BGE_RESET_STOP);
 +
  	/*
  	 * Disable all of the receiver blocks.
  	 */
 @@ -4252,16 +4262,6 @@ bge_stop(struct bge_softc *sc)
  		BGE_CLRBIT(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE);
  	}
  
 -	/* Disable host interrupts. */
 -	BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);
 -	bge_writembx(sc, BGE_MBX_IRQ0_LO, 1);
 -
 -	/*
 -	 * Tell firmware we're shutting down.
 -	 */
 -
 -	bge_stop_fw(sc);
 -	bge_sig_pre_reset(sc, BGE_RESET_STOP);
  	bge_reset(sc);
  	bge_sig_legacy(sc, BGE_RESET_STOP);
  	bge_sig_post_reset(sc, BGE_RESET_STOP);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: i386/96382: commit references a PR
Date: Tue, 17 Nov 2009 20:49:30 +0000 (UTC)

 Author: bz
 Date: Tue Nov 17 20:49:09 2009
 New Revision: 199434
 URL: http://svn.freebsd.org/changeset/base/199434
 
 Log:
   MFC r198049:
   
     Immediately after clearing a pending callout that didn't make it due
     to the lock we hold, disable interrupts, and announce to the firmware
     that we are shutting down. Especially do this before disabling blocks.
   
     This makes some types of machines with asf enabled no longer hang upon
     boot, when we start configuring the interface.
   
   PR:	i386/96382, kern/100410, kern/122252, kern/116328
 
 Modified:
   stable/6/sys/dev/bge/if_bge.c
 Directory Properties:
   stable/6/sys/   (props changed)
   stable/6/sys/conf/   (props changed)
   stable/6/sys/contrib/pf/   (props changed)
   stable/6/sys/dev/cxgb/   (props changed)
 
 Modified: stable/6/sys/dev/bge/if_bge.c
 ==============================================================================
 --- stable/6/sys/dev/bge/if_bge.c	Tue Nov 17 20:48:32 2009	(r199433)
 +++ stable/6/sys/dev/bge/if_bge.c	Tue Nov 17 20:49:09 2009	(r199434)
 @@ -4146,6 +4146,16 @@ bge_stop(struct bge_softc *sc)
  
  	callout_stop(&sc->bge_stat_ch);
  
 +	/* Disable host interrupts. */
 +	BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);
 +	bge_writembx(sc, BGE_MBX_IRQ0_LO, 1);
 +
 +	/*
 +	 * Tell firmware we're shutting down.
 +	 */
 +	bge_stop_fw(sc);
 +	bge_sig_pre_reset(sc, BGE_RESET_STOP);
 +
  	/*
  	 * Disable all of the receiver blocks.
  	 */
 @@ -4185,16 +4195,6 @@ bge_stop(struct bge_softc *sc)
  		BGE_CLRBIT(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE);
  	}
  
 -	/* Disable host interrupts. */
 -	BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR);
 -	bge_writembx(sc, BGE_MBX_IRQ0_LO, 1);
 -
 -	/*
 -	 * Tell firmware we're shutting down.
 -	 */
 -
 -	bge_stop_fw(sc);
 -	bge_sig_pre_reset(sc, BGE_RESET_STOP);
  	bge_reset(sc);
  	bge_sig_legacy(sc, BGE_RESET_STOP);
  	bge_sig_post_reset(sc, BGE_RESET_STOP);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: bz 
State-Changed-When: Tue Nov 17 20:51:21 UTC 2009 
State-Changed-Why:  
There have been a lot of driver updates since this report. 
The latest commit seems to eliminate boot hangup problems 
on HP servers. 
Thanks a lot for reporting; please feel free to re-open should 
the problems still exist after an update to a latest support branch. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=96382 
>Unformatted:
 Synopsis:       Support For BCM5714c Not working in 6.1-RC
