Date: Thu, 30 Mar 2006 15:40:05 -0500 From: Vivek Khera <vivek@khera.org> To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org Subject: patch for kern/94863: hack to get bge(4) working on IBM e326m Message-ID: <638170A3-EC59-43C3-9A39-2D335E1C15BA@khera.org> In-Reply-To: <200603231520.k2NFKFEA004831@freefall.freebsd.org> References: <200603231520.k2NFKFEA004831@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Following up, I don't think that it is sufficient to treat this chip
as a 5714. I'm doing a buildworld from an NFS mounted /usr/src to a
local /usr/obj while the output is going to my ssh login terminal
window. Every 5 to 7 minutes, I get this in the system log:
Mar 30 15:27:47 neo kernel: nfs server yertle:/usr/src: not responding
Mar 30 15:27:55 neo kernel: bge0: watchdog timeout -- resetting
Mar 30 15:27:55 neo kernel: bge0: link state changed to DOWN
Mar 30 15:27:57 neo kernel: bge0: link state changed to UP
Mar 30 15:27:58 neo kernel: nfs server yertle:/usr/src: is alive again
and it picks up where it left off on the buildworld.
FWIW here is a patch to implement my earlier hack. It obviously
needs someone to go and see how the latest linux kernel supports this
chipset. I've decided to go buy a Sun instead :-)
[-- Attachment #2 --]
--- if_bge.c.dist Thu Mar 30 14:51:56 2006
+++ if_bge.c Thu Mar 30 14:55:23 2006
@@ -174,6 +174,8 @@
"Broadcom BCM5751M Gigabit Ethernet" },
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5752,
"Broadcom BCM5752 Gigabit Ethernet" },
+ { BCOM_VENDORID, BCOM_DEVICEID_BCM5780,
+ "Broadcom BCM5780 Gigabit Ethernet" },
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5782,
"Broadcom BCM5782 Gigabit Ethernet" },
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5788,
@@ -2099,10 +2101,11 @@
sc->bge_chiprev = BGE_CHIPREV(sc->bge_chipid);
/*
- * Treat the 5714 and the 5752 like the 5750 until we have more info
+ * Treat the 5714, 5752 and the 5780 like the 5750 until we have more info
* on this chip.
*/
if (sc->bge_asicrev == BGE_ASICREV_BCM5714 ||
+ sc->bge_asicrev == BGE_ASICREV_BCM5780 ||
sc->bge_asicrev == BGE_ASICREV_BCM5752)
sc->bge_asicrev = BGE_ASICREV_BCM5750;
--- if_bgereg.h.dist Thu Mar 30 14:51:50 2006
+++ if_bgereg.h Thu Mar 30 14:53:45 2006
@@ -257,6 +257,7 @@
#define BGE_ASICREV_BCM5750 0x04
#define BGE_ASICREV_BCM5714 0x05
#define BGE_ASICREV_BCM5752 0x06
+#define BGE_ASICREV_BCM5780 0x08
/* chip revisions */
#define BGE_CHIPREV(x) ((x) >> 24)
@@ -1956,6 +1957,7 @@
#define BCOM_DEVICEID_BCM5751 0x1677
#define BCOM_DEVICEID_BCM5751M 0x167D
#define BCOM_DEVICEID_BCM5752 0x1600
+#define BCOM_DEVICEID_BCM5780 0x166a
#define BCOM_DEVICEID_BCM5782 0x1696
#define BCOM_DEVICEID_BCM5788 0x169C
#define BCOM_DEVICEID_BCM5789 0x169D
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?638170A3-EC59-43C3-9A39-2D335E1C15BA>
