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>