From owner-freebsd-net@FreeBSD.ORG Fri Aug 21 14:20:42 2009 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1BDD106564A for ; Fri, 21 Aug 2009 14:20:42 +0000 (UTC) (envelope-from john@traktor.dnepro.net) Received: from traktor.dnepro.net (roof1.dnepro.net [212.3.111.66]) by mx1.freebsd.org (Postfix) with ESMTP id 457B58FC16 for ; Fri, 21 Aug 2009 14:20:41 +0000 (UTC) Received: from traktor.dnepro.net (localhost [127.0.0.1]) by traktor.dnepro.net (8.14.3/8.14.3) with ESMTP id n7LEKdtx049433 for ; Fri, 21 Aug 2009 17:20:39 +0300 (EEST) (envelope-from john@traktor.dnepro.net) Received: (from john@localhost) by traktor.dnepro.net (8.14.3/8.14.3/Submit) id n7LEKdYZ049430 for freebsd-net@freebsd.org; Fri, 21 Aug 2009 17:20:39 +0300 (EEST) (envelope-from john) Date: Fri, 21 Aug 2009 17:20:39 +0300 From: Eugene Perevyazko To: freebsd-net@freebsd.org Message-ID: <20090821142039.GA40018@traktor.dnepro.net> Mail-Followup-To: freebsd-net@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.3i Subject: D-Link DGE-560SX (Marvell 88E8061-based) doesn't see link X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Aug 2009 14:20:42 -0000 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: port 0x4000-0x40ff mem 0xdc100000-0xdc103fff irq 16 at device 0.0 on pci1 msk0: on mskc0 msk0: Ethernet address: 00:21:91:52:4f:09 miibus1: on msk0 e1000phy0: 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 metric 0 mtu 1500 options=11a capabilities=11a ether 00:21:91:52:4f:09 media: Ethernet autoselect (100baseTX ) 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