Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 May 2006 04:50:18 GMT
From:      Ted Mittelstaedt <tedm@ipinc-hp-test.ipinc.net>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/96806: [bge] [patch] Correction of kernel panic with Broadcom chip BCM5714C and other updates
Message-ID:  <200605050450.k454oIpM022029@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/96806; it has been noted by GNATS.

From: Ted Mittelstaedt <tedm@ipinc-hp-test.ipinc.net>
To: bug-followup@freebsd.org, tedm@ipinc.net
Cc:  
Subject: Re: kern/96806: [bge] [patch] Correction of kernel panic with Broadcom chip BCM5714C and other updates
Date: Thu, 4 May 2006 21:47:23 GMT

 Geeze!  Some days you just never have any luck at all!
 
 The patch to if_bge.c has a stupid typo in it, here it is again, correct this
 time!
 
 *** if_bge.c.dist	Sat Mar  4 09:34:48 2006
 --- if_bge.c	Thu May  4 21:43:46 2006
 ***************
 *** 152,167 ****
 --- 152,179 ----
   		"Broadcom BCM5704C Dual Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5704S,
   		"Broadcom BCM5704S Dual Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5704S_2,
 + 		"Broadcom BCM5704S v2 Dual Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5705,
   		"Broadcom BCM5705 Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5705K,
   		"Broadcom BCM5705K Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5705F,
 + 		"Broadcom BCM5705F Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5705M,
   		"Broadcom BCM5705M Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5705M_ALT,
   		"Broadcom BCM5705M Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5714C,
   		"Broadcom BCM5714C Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5714S,
 + 		"Broadcom BCM5714S Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5715,
 + 		"Broadcom BCM5715 Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5715S,
 + 		"Broadcom BCM5715S Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5720,
 + 		"Broadcom BCM5720 Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5721,
   		"Broadcom BCM5721 Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5750,
 ***************
 *** 170,179 ****
 --- 182,203 ----
   		"Broadcom BCM5750M Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5751,
   		"Broadcom BCM5751 Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5751F,
 + 		"Broadcom BCM5751F Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5751M,
   		"Broadcom BCM5751M Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5752,
   		"Broadcom BCM5752 Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5753F,
 + 		"Broadcom BCM5753F Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5753M,
 + 		"Broadcom BCM5753M Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5780,
 + 		"Broadcom BCM5780 Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5780S,
 + 		"Broadcom BCM5780S Gigabit Ethernet" },
 + 	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5781,
 + 		"Broadcom BCM5781 Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5782,
   		"Broadcom BCM5782 Gigabit Ethernet" },
   	{ BCOM_VENDORID, BCOM_DEVICEID_BCM5788,
 ***************
 *** 1048,1077 ****
   	/* Set up the PCI DMA control register. */
   	if (sc->bge_pcie) {
   		dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 		    (0xf << BGE_PCIDMARWCTL_RD_WAT_SHIFT) |
 ! 		    (0x2 << BGE_PCIDMARWCTL_WR_WAT_SHIFT);
   	} else if (pci_read_config(sc->bge_dev, BGE_PCI_PCISTATE, 4) &
   	    BGE_PCISTATE_PCI_BUSMODE) {
   		/* Conventional PCI bus */
 ! 		dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 		    (0x7 << BGE_PCIDMARWCTL_RD_WAT_SHIFT) |
 ! 		    (0x7 << BGE_PCIDMARWCTL_WR_WAT_SHIFT) |
 ! 		    (0x0F);
   	} else {
   		/* PCI-X bus */
   		/*
   		 * The 5704 uses a different encoding of read/write
   		 * watermarks.
   		 */
 ! 		if (sc->bge_asicrev == BGE_ASICREV_BCM5704)
   			dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 			    (0x7 << BGE_PCIDMARWCTL_RD_WAT_SHIFT) |
 ! 			    (0x3 << BGE_PCIDMARWCTL_WR_WAT_SHIFT);
 ! 		else
   			dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 			    (0x3 << BGE_PCIDMARWCTL_RD_WAT_SHIFT) |
 ! 			    (0x3 << BGE_PCIDMARWCTL_WR_WAT_SHIFT) |
 ! 			    (0x0F);
   
   		/*
   		 * 5703 and 5704 need ONEDMA_AT_ONCE as a workaround
 --- 1072,1106 ----
   	/* Set up the PCI DMA control register. */
   	if (sc->bge_pcie) {
   		dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 		    (0x180000);
   	} else if (pci_read_config(sc->bge_dev, BGE_PCI_PCISTATE, 4) &
   	    BGE_PCISTATE_PCI_BUSMODE) {
   		/* Conventional PCI bus */
 ! 			if (sc->bge_asicrev == BGE_ASICREV_BCM5705 ||
 ! 					BGE_ASICREV_BCM5750) {
 !                           dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 !                                 (0x3F0000); }
 !          else 
 ! 			  dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 				(0x3F000F);
   	} else {
   		/* PCI-X bus */
   		/*
   		 * The 5704 uses a different encoding of read/write
   		 * watermarks.
   		 */
 ! 		if (sc->bge_asicrev == BGE_ASICREV_BCM5704 || BGE_ASICREV_BCM5703)
 ! 			dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 			    (0x9F0000);
 ! 		else if (sc->bge_asicrev == BGE_ASICREV_BCM5780)
 ! 			dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 			    (0x144000);
 ! 		else if (sc->bge_asicrev == BGE_ASICREV_BCM5714)
   			dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 			    (0x148000);
 ! 		else 
   			dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
 ! 			    (0x1B000F);
   
   		/*
   		 * 5703 and 5704 need ONEDMA_AT_ONCE as a workaround
 



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