kern/99903: Added support for the different revision of the D-Link DGE-530T NIC

Sam Banks w0lfienz at hotmail.com
Sat Jul 8 03:10:14 UTC 2006


>Number:         99903
>Category:       kern
>Synopsis:       Added support for the different revision of the D-Link DGE-530T NIC
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jul 08 03:10:12 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Sam Banks
>Release:        6.1-RELEASE
>Organization:
>Environment:
FreeBSD wolfie 6.1-RELEASE FreeBSD 6.1-RELEASE #2: Tue Jun 27 18:17:20 NZST 2006     root at wolfie:/usr/src/sys/i386/compile/WOLFIE  i386
>Description:
Heya,

I brought myself a D-Link DGE-530T 10/100/1000 NIC. It was meant to be supported using the sk driver. It seems that D-Link use different versions (or completly different) chipsets in these cards. To my frustration, I managed to buy one that wasn't supported in the current sk driver.

I have added support for my card (with dev id 0x4b01) and tested. Everything seems to be working as it should and I have had no problems. It also works at 100Mbit no problems as well.

I am wanting to submit the patch for this so other people with the same problem don't have to go through the same frustration! :)

This is my first peice of work on fbsd so, if you spot anything weird or something needing to be changed, just gimme a yell and I will give you any more info needed.

I used the latest (at the time) versions of if_sk.c ( http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/sk/if_sk.c?rev=1.126&content-type=text/x-cvsweb-markup ) and if_skreg.h ( http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/sk/if_skreg.h?rev=1.36&content-type=text/x-cvsweb-markup )

if_sk.c patch:
--- skORIG/if_sk.c	Sat Jul  8 13:58:57 2006
+++ skNEW/if_sk.c	Sat Jul  8 14:34:43 2006
@@ -196,6 +196,11 @@
 		DEVICEID_DLINK_DGE530T,
 		"D-Link DGE-530T Gigabit Ethernet"
 	},
+	{
+		VENDORID_DLINK,
+		DEVICEID_DLINK_DGE530T_REV2,
+		"D-Link DGE-530T Gigabit Ethernet"
+	},
 	{ 0, 0, NULL }
 };
 
@@ -1804,6 +1809,10 @@
 	case DEVICEID_3COM_3C940:
 	case DEVICEID_LINKSYS_EG1032:
 	case DEVICEID_DLINK_DGE530T:
+		/* Stay with VPD PN. */
+		pname = sc->sk_vpd_prodname;
+		break;
+	case DEVICEID_DLINK_DGE530T_REV2:
 		/* Stay with VPD PN. */
 		pname = sc->sk_vpd_prodname;
 		break;


if_skreg.h patch:

--- skORIG/if_skreg.h	Sat Jul  8 13:59:02 2006
+++ skNEW/if_skreg.h	Sat Jul  8 14:34:55 2006
@@ -136,6 +136,11 @@
 #define DEVICEID_DLINK_DGE530T	0x4c00
 
 /*
+ * D-Link gigabit ethernet rev 2 device ID
+ */
+#define DEVICEID_DLINK_DGE530T_REV2	0x4b01
+
+/*
  * GEnesis registers. The GEnesis chip has a 256-byte I/O window
  * but internally it has a 16K register space. This 16K space is
  * divided into 128-byte blocks. The first 128 bytes of the I/O




Cheers,

Sam.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list