Hello, Freebsd-net subscribers!

This is on 7.2-Stable.
I've got a D-Link DGE-560SX GigE fiber adapter. It's Marvell 88E8061 so
I hoped it will work as msk(4).
D-Link has changed PCI Id for the chip:
no...@pci0:1:0:0:       class=0x020000 card=0x4b021186 chip=0x4b021186 rev=0x10
    vendor     = 'D-Link System Inc'
    device     = 'DGE-560SX PCIe Gigabit Ethernet Adapter'
    class      = network
    subclass   = ethernet

So I've patched the driver to recognize new IDs. 

--- /sys/dev/msk/if_mskreg.h.old        2009-08-14 17:04:09.000000000 +0300
+++ /sys/dev/msk/if_mskreg.h    2009-08-14 17:04:49.000000000 +0300
@@ -149,6 +149,7 @@
 #define DEVICEID_DLINK_DGE550SX        0x4001
 #define DEVICEID_DLINK_DGE560T 0x4b00
+#define DEVICEID_DLINK_DGE560SX        0x4b02

 #define BIT_31         (1 << 31)
 #define BIT_30         (1 << 30)
--- /sys/dev/msk/if_msk.c.old   2009-08-14 17:04:03.000000000 +0300
+++ /sys/dev/msk/if_msk.c       2009-08-14 17:12:48.000000000 +0300
@@ -224,7 +224,9 @@
            "D-Link 550SX Gigabit Ethernet" },
-           "D-Link 560T Gigabit Ethernet" }
+           "D-Link 560T Gigabit Ethernet" },
+           "D-Link 560SX Gigabit Ethernet" }

 static const char *model_name[] = {

Then the driver recognizes the card:

mskc0: <D-Link 560SX Gigabit Ethernet> port 0x4000-0x40ff mem 
0xdc100000-0xdc103fff irq 16 at device 0.0 on pci1
msk0: <Marvell Technology Group Ltd. Yukon XL Id 0xb3 Rev 0x03> on mskc0
msk0: Ethernet address: 00:21:91:52:4f:09
miibus1: <MII bus> on msk0
e1000phy0: <Marvell 88E1112 Gigabit PHY> PHY 0 on miibus1
e1000phy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 
1000baseT-FDX, auto
mskc0: [FILTER]

Now I'm stuck because it doesn't see link.
# ifconfig msk0 up
# ifconfig -m msk0
msk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:21:91:52:4f:09
        media: Ethernet autoselect (100baseTX <half-duplex>)
        status: no carrier
        supported media:
                media autoselect
                media 1000baseTX mediaopt full-duplex
                media 1000baseTX
                media 100baseTX mediaopt full-duplex
                media 100baseTX
                media 10baseT/UTP mediaopt full-duplex
                media 10baseT/UTP
                media none

The adapter is definitely not broken, I've tested it on Win and there it works 
normally. Also on Win it has no speed/duplex settings, while msk driver allows 
to change media.

I've also tried Marvell's binary if_myk driver, but it doesn't know about 

Can anyone propose something to get it working?

Eugene Perevyazko
freebsd-net@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to