Subject: kern/31028: bge driver doesn't recognize GBit-Ethernet chip used in IBM/Levono T43p
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <ks@ub.uni-mainz.de>
List: netbsd-bugs
Date: 08/21/2005 16:33:00
>Number: 31028
>Category: kern
>Synopsis: bge driver doesn't recognize GBit-Ethernet chip used in IBM/Levono T43p
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Sun Aug 21 16:33:00 +0000 2005
>Originator: Kurt Schreiner
>Release: -current ( 3.99.8) on i386
>Organization:
Johannes Gutenberg-Universitaet Mainz
>Environment:
NetBSD ipaddi-bsd 3.99.8 NetBSD 3.99.8 (PADDI_BSD_ACPI) #0: Fri Aug 19 22:40:23 MEST 2005 ks@ipaddi-bsd:/u/NetBSD/arch/i386/obj/sys/arch/i386/compile/PADDI_BSD_ACPI i386
>Description:
The bge driver doesn't recognize the Broadcom BCM5751M GBit Ethernet
chip and the corresponding phy used in (at least) my IBM T43p.
>How-To-Repeat:
Use some kernel w/o the patches provided below ;-)
>Fix:
Apply the following patches. I'm using the note book with these patches for some time now without problems connecting to some NoName 10/100Mbit switches and an old 10MBit hub. I've not tested Gbit-connectivity yet, but will try tomorrow at work connecting to one of the Cisco 35xx in our server room.
diff -rp -x pcidevs.h -x pcidevs_data.h /u/NetBSD/src/sys/dev/pci/if_bge.c ./if_bge.c
*** /u/NetBSD/src/sys/dev/pci/if_bge.c Mon Jun 20 19:26:19 2005
--- ./if_bge.c Fri Jul 1 22:12:48 2005
*************** static const struct bge_revision {
*** 1942,1947 ****
--- 1942,1951 ----
BGE_QUIRK_ONLY_PHY_1|BGE_QUIRK_5705_CORE,
"BCM5750 A1" },
+ { BGE_CHIPID_BCM5751_A1,
+ BGE_QUIRK_ONLY_PHY_1|BGE_QUIRK_5705_CORE,
+ "BCM5751 A1" },
+
{ 0, 0, NULL }
};
*************** static const struct bge_product {
*** 2106,2111 ****
--- 2110,2120 ----
"Broadcom BCM5751 Gigabit Ethernet",
},
+ { PCI_VENDOR_BROADCOM,
+ PCI_PRODUCT_BROADCOM_BCM5751M,
+ "Broadcom BCM5751M Gigabit Ethernet",
+ },
+
{ PCI_VENDOR_BROADCOM,
PCI_PRODUCT_BROADCOM_BCM5782,
"Broadcom BCM5782 Gigabit Ethernet",
diff -rp -x pcidevs.h -x pcidevs_data.h /u/NetBSD/src/sys/dev/pci/if_bgereg.h ./if_bgereg.h
*** /u/NetBSD/src/sys/dev/pci/if_bgereg.h Mon Feb 28 11:33:43 2005
--- ./if_bgereg.h Sat Jun 18 12:29:57 2005
***************
*** 249,254 ****
--- 249,255 ----
#define BGE_CHIPID_BCM5705_A3 0x30030000
#define BGE_CHIPID_BCM5750_A0 0x40000000
#define BGE_CHIPID_BCM5750_A1 0x40010000
+ #define BGE_CHIPID_BCM5751_A1 0x41010000
/* shorthand one */
#define BGE_ASICREV(x) ((x) >> 28)
diff -rp -x pcidevs.h -x pcidevs_data.h /u/NetBSD/src/sys/dev/pci/pcidevs ./pcidevs
*** /u/NetBSD/src/sys/dev/pci/pcidevs Sat Jul 30 21:35:06 2005
--- ./pcidevs Sun Aug 21 18:11:38 2005
*************** product BROADCOM BCM5721 0x1659 BCM5721
*** 1180,1185 ****
--- 1180,1186 ----
product BROADCOM BCM5750 0x1676 BCM5750 10/100/1000 Ethernet
product BROADCOM BCM5751 0x1677 BCM5751 10/100/1000 Ethernet
product BROADCOM BCM5750M 0x167c BCM5750M 10/100/1000 Ethernet
+ product BROADCOM BCM5751M 0x167d BCM5751M 10/100/1000 Ethernet
product BROADCOM BCM5782 0x1696 BCM5782 10/100/1000 Ethernet
product BROADCOM BCM5788 0x169c BCM5788 10/100/1000 Ethernet
product BROADCOM BCM4401_B0 0x170c BCM4401-B0 10/100 Ethernet