Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Aug 2009 17:20:39 +0300
From:      Eugene Perevyazko <john@dnepro.net>
To:        freebsd-net@freebsd.org
Subject:   D-Link DGE-560SX (Marvell 88E8061-based) doesn't see link
Message-ID:  <20090821142039.GA40018@traktor.dnepro.net>

next in thread | raw e-mail | index | archive | help
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:
none1@pci0:1:0:0:       class=0x020000 card=0x4b021186 chip=0x4b021186 rev=0x10
hdr=0x00
    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 @@
        { VENDORID_DLINK, DEVICEID_DLINK_DGE550SX,
            "D-Link 550SX Gigabit Ethernet" },
        { VENDORID_DLINK, DEVICEID_DLINK_DGE560T,
-           "D-Link 560T Gigabit Ethernet" }
+           "D-Link 560T Gigabit Ethernet" },
+       { VENDORID_DLINK, DEVICEID_DLINK_DGE560SX,
+           "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
        options=11a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4>
        capabilities=11a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4>
        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 d-link.

Can anyone propose something to get it working?

-- 
Eugene Perevyazko



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090821142039.GA40018>