From owner-FreeBSD-users-jp@jp.FreeBSD.org Wed Aug 28 02:27:24 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id g7RHROW97745;
	Wed, 28 Aug 2002 02:27:24 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from imfep03.kcom.ne.jp (imfep03.kcom.ne.jp [210.174.120.149])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with ESMTP/inet id g7RHRO397740
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Wed, 28 Aug 2002 02:27:24 +0900 (JST)
	(envelope-from takashi.sato@mc.neweb.ne.jp)
Received: from san.zan.jp ([211.134.57.7]) by imfep03.kcom.ne.jp
          (InterMail vM.4.01.03.23 201-229-121-123-20010418) with SMTP
          id <20020827172723.QIZM13295.imfep03.kcom.ne.jp@san.zan.jp>
          for <FreeBSD-users-jp@jp.FreeBSD.org>;
          Wed, 28 Aug 2002 02:27:23 +0900
From: Takashi Sato <takashi.sato@mc.neweb.ne.jp>
To: FreeBSD-users-jp@jp.FreeBSD.org
Message-Id: <20020828022755.424795dc.takashi.sato@mc.neweb.ne.jp>
In-Reply-To: <20020826.222451.74661612.ackie@atoll.net>
References: <20020826.184409.74708588.knomura@stat.phys.kyushu-u.ac.jp>
	<20020826.200343.74707402.knomura@stat.phys.kyushu-u.ac.jp>
	<20020826.222451.74661612.ackie@atoll.net>
X-Mailer: Sylpheed version 0.8.1 (GTK+ 1.2.10; i386-portbld-freebsd4.6)
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Wed, 28 Aug 2002 02:27:55 +0900
X-Sequence: FreeBSD-users-jp 70492
Subject: [FreeBSD-users-jp 70492] Re: =?ISO-2022-JP?B?GyRCJU0lQxsoQg==?=
 =?ISO-2022-JP?B?GyRCJUglbyE8JS8lKyE8JUkbKEI=?= ADMTek AN983
 =?ISO-2022-JP?B?GyRCJE4bKEI=?=
 =?ISO-2022-JP?B?GyRCJUglaSVWJWsbKEI=?= 
Errors-To: owner-FreeBSD-users-jp@jp.FreeBSD.org
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: takashi.sato@mc.neweb.ne.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+020820

$B:4F#$H$b$&$7$^$9!#(B

On Mon, 26 Aug 2002 22:24:51 +0900
Tomonobu AKIMOTO <ackie@atoll.net> wrote:

> $B=)85$H$b$&$7$^$9!#(B
>
> $B$"$^$jM-1W$J>pJs$G$O$J$/?=$7Lu$J$$$N$G$9$,!";d$b(BFNW-9803-T$B$*$h$S(B
> FNW-9802-T$B$r(B2$BKg$N9g7W(B3$BKg$[$I;HMQ$7$F$$$^$9$,!"(BFNW-9803-T$B$N$_(BMAC$B%"(B
> $B%I%l%9$,@5>o$G$O$"$j$^$;$s!#(B
> $BN><T$O(B
> FNW-9802-T --- ADMtek AN983
> FNW-9803-T --- ADMtek AN983B
> $B$H%A%C%W$,0[$J$j$^$9!#(B
> $B8e<T$N$[$&$,!"LdBj$N$h$&$G$9!#(B
> 4.5-RELEASE$B$+$i;HMQ$7;O$a$^$7$?$,!"$=$NEv;~$+$i(BMAC$B%"%I%l%9$O!"(B
> 08:00:08:00:08:00$B$G$7$?!#(B

$B$G$-$?$i$G$$$$$N$G$9$,(B AN983(FNW-9802-T) $B$N$[$&$N(B pciconf -l $B$N=PNO$r8+$;$FD:$1$J$$$G$7$g$&$+!#(B
AN983B $B$NJ}$O(B Revision $B$,(B 0x11 $B$G$"$k$3$H$r(B FNW-9803-T $B$H%G!<%?%7!<%H$G3NG'$7$?$N$G$9$,!"(BAN983 or AN985 $B$N(B Revision $B$,$o$+$i$J$$$b$N$G!#(B
$B$b$7(B Revision $B$G%A%C%W$rH=JL$G$-$k$J$i0J2<$N%Q%C%A$,;H$($k$+$J$H!#(B

--- sys/pci/if_dcreg.h.orig	Wed Aug 28 02:06:05 2002
+++ sys/pci/if_dcreg.h	Wed Aug 28 02:06:22 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_AN983B		0xD	/* ADMtek AN983B */
 
 #define DC_IS_MACRONIX(x)			\
 	(x->dc_type == DC_TYPE_98713 ||		\
@@ -84,7 +85,8 @@
 
 #define DC_IS_ADMTEK(x)				\
 	(x->dc_type == DC_TYPE_AL981 ||		\
-	 x->dc_type == DC_TYPE_AN985)
+	 x->dc_type == DC_TYPE_AN985 ||		\
+	 x->dc_type == DC_TYPE_AN983B)
 
 #define DC_IS_INTEL(x)		(x->dc_type == DC_TYPE_21143)
 #define DC_IS_ASIX(x)		(x->dc_type == DC_TYPE_ASIX)
@@ -834,6 +836,12 @@
  */
 #define DC_DEVICEID_AL981	0x0981
 #define DC_DEVICEID_AN985	0x0985
+
+/*
+ * The AN983B has the same PCI device ID as the AN985,
+ * but a higher revision code(?).
+ */
+#define DC_REVISION_AN983B	0x11
 
 /*
  * ASIX vendor ID.


--- sys/pci/if_dc.c.orig	Wed Aug 28 01:55:37 2002
+++ sys/pci/if_dc.c	Wed Aug 28 02:04:34 2002
@@ -43,6 +43,7 @@
  * ASIX Electronics AX88141 (www.asix.com.tw)
  * ADMtek AL981 (www.admtek.com.tw)
  * ADMtek AN985 (www.admtek.com.tw)
+ * ADMtek AN983B (www.admtek.com.tw)
  * Davicom DM9100, DM9102, DM9102A (www.davicom8.com)
  * Accton EN1217 (www.accton.com)
  * Conexant LANfinity (www.conexant.com)
@@ -153,6 +154,8 @@
 		"ADMtek AL981 10/100BaseTX" },
 	{ DC_VENDORID_ADMTEK, DC_DEVICEID_AN985,
 		"ADMtek AN985 10/100BaseTX" },
+	{ DC_VENDORID_ADMTEK, DC_DEVICEID_AN985,
+		"ADMtek AN983B 10/100BaseTX" },
 	{ DC_VENDORID_ASIX, DC_DEVICEID_AX88140A,
 		"ASIX AX88140A 10/100BaseTX" },
 	{ DC_VENDORID_ASIX, DC_DEVICEID_AX88140A,
@@ -1442,6 +1445,9 @@
 			if (t->dc_did == DC_DEVICEID_DM9102 &&
 			    rev >= DC_REVISION_DM9102A)
 				t++;
+			if (t->dc_did == DC_DEVICEID_AN985 &&
+			    rev >= DC_REVISION_AN983B)
+				t++;
 			return(t);
 		}
 		t++;
@@ -1779,7 +1785,12 @@
 		break;
 	case DC_DEVICEID_AN985:
 	case DC_DEVICEID_EN2242:
-		sc->dc_type = DC_TYPE_AN985;
+		if (revision < DC_REVISION_AN983B) {
+			sc->dc_type = DC_TYPE_AN985;
+		}
+		if (revision >= DC_REVISION_AN983B) {
+			sc->dc_type = DC_TYPE_AN983B;
+		}
 		sc->dc_flags |= DC_TX_USE_TX_INTR;
 		sc->dc_flags |= DC_TX_ADMTEK_WAR;
 		sc->dc_pmode = DC_PMODE_MII;
@@ -1905,6 +1916,7 @@
 		break;
 	case DC_TYPE_AL981:
 	case DC_TYPE_AN985:
+	case DC_TYPE_AN983B:
 		dc_read_eeprom(sc, (caddr_t)&eaddr, DC_AL_EE_NODEADDR, 3, 0);
 		break;
 	case DC_TYPE_CONEXANT:
