kern/75253: [patch] xl(4): add support for 3C920B-EMB-WNM Integrated Fast Ethernet Controller

Oleg V. Nauman oleg at reis.zp.ua
Sun Dec 19 00:20:24 PST 2004


>Number:         75253
>Category:       kern
>Synopsis:       [patch] xl(4): add support for 3C920B-EMB-WNM Integrated Fast Ethernet Controller
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Dec 19 08:20:23 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Oleg V. Nauman
>Release:        FreeBSD 5.3-STABLE i386
>Organization:
ReIS LLC
>Environment:
System: FreeBSD daisy.reis.zp.ua 5.3-STABLE FreeBSD 5.3-STABLE #5: Fri Dec 17 17:29:02 EET 2004     root at daisy.reis.zp.ua:/usr/src/sys/i386/compile/DAISY  i386

>Description:
I have motherboard with integrated 3Com ethernet controller, listed
from pciconf output as:

xl0 at pci2:8:0:   class=0x020000 card=0xffffffff chip=0x920210b7 rev=0x40 hdr=0x00
vendor   = '3COM Corp, Networking Division'
device   = '3C920B-EMB-WNM Integrated Fast Ethernet Controller'
class    = network
subclass = ethernet

but current xl(4) driver does not have support for this controller.
Very trivial patch adds support for him, and this controller seems working OK
(tested with heavy NFS traffic):

xl0: <3Com 3c920B-EMB-WNM Integrated Fast Etherlink XL> port 0xec00-0xec7f mem 0xfe100000-0xfe10007f irq 3 at device 8.0 on pci2
miibus1: <MII bus> on xl0
xl0: Ethernet address: 00:11:2f:44:6f:87

xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=9<RXCSUM,VLAN_MTU>
	inet 10.20.30.211 netmask 0xffffff00 broadcast 10.20.30.255
	ether 00:11:2f:44:6f:87
	media: Ethernet autoselect (100baseTX)
	status: active
	
And supports at least autonegotiation without any problems.

>How-To-Repeat:

>Fix:

--- /usr/src/sys/pci/if_xl.c.orig	Fri Nov 12 10:53:08 2004
+++ /usr/src/sys/pci/if_xl.c	Fri Dec 17 16:31:46 2004
@@ -188,6 +188,8 @@
 		"3Com 3c905C-TX Fast Etherlink XL" },
 	{ TC_VENDORID, TC_DEVICEID_TORNADO_10_100BT_920B,
 		"3Com 3c920B-EMB Integrated Fast Etherlink XL" },
+	{ TC_VENDORID, TC_DEVICEID_TORNADO_10_100BT_920B_WNM,
+		"3Com 3c920B-EMB-WNM Integrated Fast Etherlink XL" },
 	{ TC_VENDORID, TC_DEVICEID_HURRICANE_10_100BT_SERV,
 		"3Com 3c980 Fast Etherlink XL" },
 	{ TC_VENDORID, TC_DEVICEID_TORNADO_10_100BT_SERV,
@@ -1172,6 +1174,7 @@
 	case TC_DEVICEID_HURRICANE_656B:	/* 3c656B */
 	case TC_DEVICEID_TORNADO_656C:		/* 3c656C */
 	case TC_DEVICEID_TORNADO_10_100BT_920B:	/* 3c920B-EMB */
+	case TC_DEVICEID_TORNADO_10_100BT_920B_WNM:	/* 3c920B-EMB-WNM */
 		sc->xl_media = XL_MEDIAOPT_MII;
 		sc->xl_xcvr = XL_XCVR_MII;
 		if (verbose)
@@ -1269,7 +1272,8 @@
 	    did == TC_DEVICEID_HURRICANE_656B)
 		sc->xl_flags |= XL_FLAG_INVERT_MII_PWR |
 		    XL_FLAG_INVERT_LED_PWR;
-	if (did == TC_DEVICEID_TORNADO_10_100BT_920B)
+	if (did == TC_DEVICEID_TORNADO_10_100BT_920B ||
+	    did == TC_DEVICEID_TORNADO_10_100BT_920B_WNM)
 		sc->xl_flags |= XL_FLAG_PHYOK;
 
 	switch (did) {

--- /usr/src/sys/pci/if_xlreg.h.orig	Sun Aug 22 14:42:15 2004
+++ /usr/src/sys/pci/if_xlreg.h	Fri Dec 17 16:26:33 2004
@@ -680,6 +680,7 @@
 #define TC_DEVICEID_CYCLONE_10_100FX		0x905A
 #define TC_DEVICEID_TORNADO_10_100BT		0x9200
 #define TC_DEVICEID_TORNADO_10_100BT_920B	0x9201
+#define TC_DEVICEID_TORNADO_10_100BT_920B_WNM	0x9202
 #define TC_DEVICEID_HURRICANE_10_100BT_SERV	0x9800
 #define TC_DEVICEID_TORNADO_10_100BT_SERV	0x9805
 #define TC_DEVICEID_HURRICANE_SOHO100TX		0x7646
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list