From owner-freebsd-bugs Thu Aug 15 7:40:14 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 120E837B400 for ; Thu, 15 Aug 2002 07:40:05 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id B903A43E6E for ; Thu, 15 Aug 2002 07:40:04 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g7FEe4JU042466 for ; Thu, 15 Aug 2002 07:40:04 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g7FEe4Ul042464; Thu, 15 Aug 2002 07:40:04 -0700 (PDT) Date: Thu, 15 Aug 2002 07:40:04 -0700 (PDT) Message-Id: <200208151440.g7FEe4Ul042464@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Marcel Prisi Subject: Re: misc/40837: SMC EN5251BE ethernet chipset gets incorrect MAC address throuch dc driver Reply-To: Marcel Prisi 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 The following reply was made to PR misc/40837; it has been noted by GNATS. From: Marcel Prisi To: freebsd-gnats-submit@FreeBSD.org Cc: jon@FreeBSD.org Subject: Re: misc/40837: SMC EN5251BE ethernet chipset gets incorrect MAC address throuch dc driver Date: Thu, 15 Aug 2002 16:36:28 +0200 I adapted Ted Stockwell's kern/35482 to FreeBSD-4.6.2, and it seems to wo= rk=20 perfectly well. Here are the diffs : --- if_dc.c.orig Tue Feb 26 05:21:30 2002 +++ if_dc.c Thu Aug 15 16:11:17 2002 @@ -183,6 +183,8 @@ "Accton EN1217 10/100BaseTX" }, { DC_VENDORID_ACCTON, DC_DEVICEID_EN2242, "Accton EN2242 MiniPCI 10/100BaseTX" }, + { DC_VENDORID_ACCTON, DC_DEVICEID_EN5251B, + "Accton EN5251-Based 10/100BaseTX" }, { DC_VENDORID_CONEXANT, DC_DEVICEID_RS7112, "Conexant LANfinity MiniPCI 10/100BaseTX" }, { 0, 0, NULL } @@ -1438,6 +1440,9 @@ if (t->dc_did =3D=3D DC_DEVICEID_DM9102 && rev >=3D DC_REVISION_DM9102A) t++; + if (t->dc_did =3D=3D DC_DEVICEID_EN2242 && + rev >=3D DC_REVISION_EN5251B) + t++; return(t); } t++; @@ -1774,12 +1779,16 @@ sc->dc_pmode =3D DC_PMODE_MII; break; case DC_DEVICEID_AN985: - case DC_DEVICEID_EN2242: - sc->dc_type =3D DC_TYPE_AN985; - sc->dc_flags |=3D DC_TX_USE_TX_INTR; - sc->dc_flags |=3D DC_TX_ADMTEK_WAR; - sc->dc_pmode =3D DC_PMODE_MII; - break; + case DC_DEVICEID_EN2242: /* and DC_DEVICEID_EN5251B: */ + if (revision < DC_REVISION_EN5251B) { + sc->dc_type =3D DC_TYPE_AN985; + } else { + sc->dc_type =3D DC_TYPE_EN5152B; + } + sc->dc_flags |=3D DC_TX_USE_TX_INTR; + sc->dc_flags |=3D DC_TX_ADMTEK_WAR; + sc->dc_pmode =3D DC_PMODE_MII; + break; case DC_DEVICEID_98713: case DC_DEVICEID_98713_CP: if (revision < DC_REVISION_98713A) { @@ -1901,6 +1910,7 @@ break; case DC_TYPE_AL981: case DC_TYPE_AN985: + case DC_TYPE_EN5152B: dc_read_eeprom(sc, (caddr_t)&eaddr, DC_AL_EE_NODEADDR, 3,= 0); break; case DC_TYPE_CONEXANT: --- if_dcreg.h.orig Tue Feb 26 05:21:30 2002 +++ if_dcreg.h Thu Aug 15 16:16:21 2002 @@ -76,6 +76,7 @@ #define DC_TYPE_PNICII 0x9 /* 82c115 PNIC II */ #define DC_TYPE_PNIC 0xA /* 82c168/82c169 PNIC I */ #define DC_TYPE_CONEXANT 0xC /* Conexant LANfinity RS7112 */ +#define DC_TYPE_EN5152B 0xD /* Accton EN5251B. Clone = of=20 ADMtek 983B? */ #define DC_IS_MACRONIX(x) \ (x->dc_type =3D=3D DC_TYPE_98713 || \ @@ -84,6 +85,7 @@ #define DC_IS_ADMTEK(x) \ (x->dc_type =3D=3D DC_TYPE_AL981 || \ + x->dc_type =3D=3D DC_TYPE_EN5152B || \ x->dc_type =3D=3D DC_TYPE_AN985) #define DC_IS_INTEL(x) (x->dc_type =3D=3D DC_TYPE_21143) @@ -855,6 +857,14 @@ */ #define DC_DEVICEID_EN1217 0x1217 #define DC_DEVICEID_EN2242 0x1216 +#define DC_DEVICEID_EN5251B 0x1216 + + /* + * The Accton EN5251B is sold as the Siemens Speedstream SS1020 and + * as SMC EN5251BE. + * The EN5251B seems to be a clone of the ADMtek 983 or 983B + */ +#define DC_REVISION_EN5251B 0x11 /* ASSUMING that EN2242's revision=20 differs */ /* * Conexant vendor ID. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message