Subject: kern/29196: support for Broadcom BCM4401-B0 ethernet
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <kre@munnari.OZ.AU>
List: netbsd-bugs
Date: 02/02/2005 08:52:00
>Number: 29196
>Category: kern
>Synopsis: support for Broadcom BCM4401-B0 ethernet
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Wed Feb 02 08:52:00 +0000 2005
>Originator: Robert Elz
>Release: NetBSD 2.99.15
>Organization:
Prince of Songkla University
>Environment:
(This is from the system running send-pr, and is irrelevant)
System: NetBSD delta.noi.kre.to 2.0.1 NetBSD 2.0.1 (DELTA-1.11-20050129) #1: Sat Jan 29 15:31:14 ICT 2005 kre@lilac.noi.kre.to:/usr/obj/2.0/kernels/DELTA i386
Architecture: i386
Machine: i386
>Description:
NetBSD has no support for the Broadcom BCM4401-B0 chip/card
found in Compaq (HP) nx5000 laptops (maybe other places too).
It seems to be functionally identical to the BCM4401 which is
supported by the bce driver.
>How-To-Repeat:
Try booting NetBSD on a nx5000 (or simply trust me...)
>Fix:
The patch below is all that is required to support this card/chip.
Note: there are no functional code changes, all this does is to
add the device ID to the pcidevs file, and knowledge of it to the
bce driver table of supported devices.
With this change, the chip was recognised, and worked fine
(though with only limited testing so far).
Caution:
I haven't included patches for the generated files, pcidevs.h
or pcidevs_data.h - those you'll need to update in the standard
way after patching pcidevs.
The name "BCM4401-B0" comes from the e-mail message mentioned
below - I have no independent verification that it is correct.
Request:
This looks to be the kind of patch that should be pulled up to
the netbsd-2 branch, so it would be appreciated if whoever does
the patch could send in a pullup request.
Credit:
The inspiration for this patch came from an e-mail message on
a FreeBSD list/newsgroup from Yoshinobu Inoue (Fujitsu, Japan).
Index: if_bce.c
===================================================================
RCS file: /cvsroot/NetBSD/src/sys/dev/pci/if_bce.c,v
retrieving revision 1.7
diff -u -r1.7 if_bce.c
--- if_bce.c 30 Jan 2005 17:38:49 -0000 1.7
+++ if_bce.c 1 Feb 2005 16:03:04 -0000
@@ -225,6 +225,11 @@
"Broadcom BCM4401 10/100 Ethernet"
},
{
+ PCI_VENDOR_BROADCOM,
+ PCI_PRODUCT_BROADCOM_BCM4401_B0,
+ "Broadcom BCM4401-B0 10/100 Ethernet"
+ },
+ {
0,
0,
NULL
Index: pcidevs
===================================================================
RCS file: /cvsroot/NetBSD/src/sys/dev/pci/pcidevs,v
retrieving revision 1.690
diff -u -r1.690 pcidevs
--- pcidevs 27 Jan 2005 21:48:15 -0000 1.690
+++ pcidevs 1 Feb 2005 16:04:51 -0000
@@ -1148,6 +1148,7 @@
product BROADCOM BCM5750M 0x167c BCM5750M 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
product BROADCOM BCM5901 0x170d BCM5901 10/100 Ethernet
product BROADCOM BCM5901A2 0x170e BCM5901A 10/100 Ethernet
product BROADCOM BCM4401 0x4401 BCM4401 10/100 Ethernet