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

Sam Banks w0lfienz at
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
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jul 08 03:10:12 GMT 2006
>Originator:     Sam Banks
>Release:        6.1-RELEASE
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

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 ( ) and if_skreg.h ( )

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 @@
 		"D-Link DGE-530T Gigabit Ethernet"
+	{
+		"D-Link DGE-530T Gigabit Ethernet"
+	},
 	{ 0, 0, NULL }
@@ -1804,6 +1809,10 @@
 	case DEVICEID_3COM_3C940:
+		/* Stay with VPD PN. */
+		pname = sc->sk_vpd_prodname;
+		break;
 		/* Stay with VPD PN. */
 		pname = sc->sk_vpd_prodname;

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





More information about the freebsd-bugs mailing list