From owner-freebsd-bugs Wed Mar 27 23:20:16 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 931BC37B41C for ; Wed, 27 Mar 2002 23:20:01 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g2S7K1p70568; Wed, 27 Mar 2002 23:20:01 -0800 (PST) (envelope-from gnats) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 4640C37B419 for ; Wed, 27 Mar 2002 23:13:13 -0800 (PST) Received: (from nobody@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g2S7DDX69612; Wed, 27 Mar 2002 23:13:13 -0800 (PST) (envelope-from nobody) Message-Id: <200203280713.g2S7DDX69612@freefall.freebsd.org> Date: Wed, 27 Mar 2002 23:13:13 -0800 (PST) From: Genya Sugiyama To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-1.0 Subject: kern/36410: Bad mac address return from FNW-9803-T (ADMtek 983B) NIC Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 36410 >Category: kern >Synopsis: Bad mac address return from FNW-9803-T (ADMtek 983B) NIC >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Mar 27 23:20:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: Genya Sugiyama >Release: FreeBSD 4.5-STABLE >Organization: >Environment: FreeBSD ak73.home 4.5-STABLE FreeBSD 4.5-STABLE #13: Thu Mar 28 15:29:48 JST 2002 genya@ak73.home:/usr/export/src/sys/compile/AK73 i386 >Description: I use FNW-9803-T ethernet card. (ADMtek 983B) It released PLANEX COMMUNICATIONS INC.(TAIWAN) in japan. it's dmesg was dc0: port 0xdc00-0xdcff \ mem 0xe5810000-0xe58103ff irq 5 at device 10.0 on pci0 dc0: Ethernet address: 08:00:08:00:08:00 it's correct mac addres is 00:90:cc:xx:xx:xx >How-To-Repeat: >Fix: I rewrited if_dc.c and if_dcreg.h. *** /usr/src/sys/pci/if_dcreg.h.org Tue Feb 26 22:35:49 2002 --- /usr/src/sys/pci/if_dcreg.h Thu Mar 28 09:29:18 2002 *************** *** 77,82 **** --- 77,84 ---- #define DC_TYPE_PNIC 0xA /* 82c168/82c169 PNIC I */ #define DC_TYPE_CONEXANT 0xC /* Conexant LANfinity RS7112 */ + #define DC_TYPE_AN983 0xFF /* ADMtek AN983B CentaurB */ + #define DC_IS_MACRONIX(x) \ (x->dc_type == DC_TYPE_98713 || \ x->dc_type == DC_TYPE_98713A || \ *************** *** 84,89 **** --- 86,92 ---- #define DC_IS_ADMTEK(x) \ (x->dc_type == DC_TYPE_AL981 || \ + x->dc_type == DC_TYPE_AN983 || \ x->dc_type == DC_TYPE_AN985) #define DC_IS_INTEL(x) (x->dc_type == DC_TYPE_21143) *** /usr/src/sys/pci/if_dc.c.org Tue Feb 26 22:35:49 2002 --- /usr/src/sys/pci/if_dc.c Thu Mar 28 09:27:06 2002 *************** *** 1669,1675 **** { int s, tmp = 0; u_char eaddr[ETHER_ADDR_LEN]; ! u_int32_t command; struct dc_softc *sc; struct ifnet *ifp; u_int32_t revision; --- 1669,1675 ---- { int s, tmp = 0; u_char eaddr[ETHER_ADDR_LEN]; ! u_int32_t command, reg; struct dc_softc *sc; struct ifnet *ifp; u_int32_t revision; *************** *** 1775,1781 **** break; case DC_DEVICEID_AN985: case DC_DEVICEID_EN2242: ! sc->dc_type = DC_TYPE_AN985; sc->dc_flags |= DC_TX_USE_TX_INTR; sc->dc_flags |= DC_TX_ADMTEK_WAR; sc->dc_pmode = DC_PMODE_MII; --- 1775,1791 ---- break; case DC_DEVICEID_AN985: case DC_DEVICEID_EN2242: ! reg = pci_read_config(dev, DC_PCI_CSID, 4); ! /* printf("CSID=%08x\n", reg); */ ! switch (reg) { ! case 0x980314ea: /* FNW-9803-T */ ! case 0xa11b1259: /* Corega */ ! sc->dc_type = DC_TYPE_AN983; ! break; ! default: ! sc->dc_type = DC_TYPE_AN985; ! break; ! } sc->dc_flags |= DC_TX_USE_TX_INTR; sc->dc_flags |= DC_TX_ADMTEK_WAR; sc->dc_pmode = DC_PMODE_MII; *************** *** 1900,1905 **** --- 1910,1916 ---- dc_read_eeprom(sc, (caddr_t)&eaddr, DC_EE_NODEADDR, 3, 0); break; case DC_TYPE_AL981: + case DC_TYPE_AN983: case DC_TYPE_AN985: dc_read_eeprom(sc, (caddr_t)&eaddr, DC_AL_EE_NODEADDR, 3, 0); break; >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message