From owner-freebsd-bugs@FreeBSD.ORG Tue May 23 16:40:51 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 409F216A9BD for ; Tue, 23 May 2006 16:40:51 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 43E0843D53 for ; Tue, 23 May 2006 16:40:25 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k4NGeOOf059194 for ; Tue, 23 May 2006 16:40:24 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k4NGeOOi059193; Tue, 23 May 2006 16:40:24 GMT (envelope-from gnats) Date: Tue, 23 May 2006 16:40:24 GMT Message-Id: <200605231640.k4NGeOOi059193@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Yoshiaki Uchikawa Cc: Subject: Re: kern/96806 : [bge] [patch] Correction of kernel panic with Broadcom chip BCM5714C and other updates X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Yoshiaki Uchikawa List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 May 2006 16:40:58 -0000 The following reply was made to PR kern/96806; it has been noted by GNATS. From: Yoshiaki Uchikawa 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: Wed, 24 May 2006 01:38:53 +0900 (JST) Hi, I used kern/96806 patch on IBM e326m. But, I have same problem as kern/94863 reported, occcurred. bge1: discard frame w/o leading ethernet header (len 4294967292 pkt len 4294967292) And: Fatal trap 12: page fault while in kernel mode : : It seems there a part of initialization lack with kern/96806 patch. I performed the one-line addition to if_bge.c . It seems to operate very well. --- if_bge.c.orig Sat Mar 4 18:34:48 2006 +++ if_bge.c Fri Jan 14 16:25:09 2005 @@ -152,16 +152,28 @@ "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,10 +182,22 @@ "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,30 +1072,35 @@ /* 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); + (0x180000); } 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); + 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) + if (sc->bge_asicrev == BGE_ASICREV_BCM5704 || BGE_ASICREV_BCM5703) dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD | - (0x7 << BGE_PCIDMARWCTL_RD_WAT_SHIFT) | - (0x3 << BGE_PCIDMARWCTL_WR_WAT_SHIFT); - else + (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 | - (0x3 << BGE_PCIDMARWCTL_RD_WAT_SHIFT) | - (0x3 << BGE_PCIDMARWCTL_WR_WAT_SHIFT) | - (0x0F); + (0x1B000F); /* * 5703 and 5704 need ONEDMA_AT_ONCE as a workaround @@ -2103,7 +2132,8 @@ * on this chip. */ if (sc->bge_asicrev == BGE_ASICREV_BCM5714 || - sc->bge_asicrev == BGE_ASICREV_BCM5752) + sc->bge_asicrev == BGE_ASICREV_BCM5752 || + sc->bge_asicrev == BGE_ASICREV_BCM5780) sc->bge_asicrev = BGE_ASICREV_BCM5750; /* -- yoshiaki@kt.rim.or.jp Yoshiaki UCHIKAWA