From owner-FreeBSD-users-jp@jp.freebsd.org  Mon Oct 22 18:53:56 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id SAA97998;
	Mon, 22 Oct 2001 18:53:56 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from leo.ec.t.kanazawa-u.ac.jp (root@leo.ec.t.kanazawa-u.ac.jp [133.28.119.41])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id SAA97993
	for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 22 Oct 2001 18:53:55 +0900 (JST)
	(envelope-from hirano@t.kanazawa-u.ac.jp)
Received: from localhost (hirano@pisces.ec.t.kanazawa-u.ac.jp [133.28.119.45])
	by leo.ec.t.kanazawa-u.ac.jp (8.9.3/3.7W) with ESMTP id SAA22924
	for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 22 Oct 2001 18:53:56 +0900 (JST)
To: FreeBSD-users-jp@jp.freebsd.org
In-Reply-To: <20011022.023821.65666466.tu7k-kbt@asahi-net.or.jp>
References: <20011019153104T.hirano@t.kanazawa-u.ac.jp>
	<20011021.151818.74697244.nin@smtp.shikoku.ne.jp>
	<20011022.023821.65666466.tu7k-kbt@asahi-net.or.jp>
X-Mailer: Mew version 1.94.1 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <20011022185354J.hirano@t.kanazawa-u.ac.jp>
Date: Mon, 22 Oct 2001 18:53:54 +0900
From: Akihiro HIRANO <hirano@t.kanazawa-u.ac.jp>
X-Dispatcher: imput version 20000228(IM140)
Lines: 107
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: FreeBSD-users-jp 65002
Subject: [FreeBSD-users-jp 65002] Re: ADMtek AN983B CentaurB Ethernet
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: hirano@t.kanazawa-u.ac.jp

$BJ?Ln(B@$B6bBtBg$G$9!#(B

$B!t$5$j$2$J$/(BSubject:$B$N(BTYPO$B$r;XE&$7$F2<$5$C$?$h$&$G!D(B  f(^.^;;

> > $B$&!A$`$C!"(Bpciconf -l $B$N=PNO$r8+$F$_$?$$5$$,$7$FMh$^$7$?(B

$B!!$3$3$@$1$G$h$m$7$$$G$7$g$&$+!)(B

dc0@pci0:10:0:  class=0x020000 card=0xa11b1259 chip=0x12161113 \
	rev=0x11 hdr=0x00

> > $BMW$O(B DC_IS_CENTAUR $B$K$J$i$J$$$h$&$K$7$F$d$C$?$iNI$$$N$G$9$h$M$'(B ...

$B!!%Q%C%A$N$d$C$F$$$k$3$H$O!"$:$P$j$=$&$G$9!#(B

> $B;d$b<BJ*;}$C$F$J$$$N$G$h$/$o$+$C$F$$$^$;$s$,!"(BNetBSD $B$N(B if_tlp* $B8+$k8B(B
> $B$j$G$O!"$=$A$i$OF0$-$=$&$J46$8$G$9!#$G!"$=$$$D$r$^$M$k$H$3$s$J46$8$G$7$g(B
> $B$&$+!#(B
> 
> DC_TYPE_AN983 $B$ODj5A$5$l$F$$$J$$$N$G!"$H$j$"$($:B>$N(B DC_TYPE_* $B$H$V$D(B
> $B$+$i$J$$CM$GDj5A$7$F$*$1$P!"(Bcompile $B$ODL$k$H;W$$$^$9!#$?$@!"F0$/$+$I$&(B
> $B$+$O$5$C$Q$j$o$+$j$^$;$s$,(B($BL5@UG$(B ^^;)$B!#(B

$B!!$"$j$,$H$&$4$$$^$9!#(B

> pci_read_config() $B$NBh(B2$B0z?t$O(B DC_CFID_DEVICE $B$G$O$J$$$+$b!#(B
> if_tlp_pci.c $B$N%3%a%s%H$K$O(B PCI ID $B$,$I$&$N$H=q$$$F$"$k$N$G!"(B
> if_dcreg.h $B$+$i$=$l$C$]$$$b$N$r;XDj$7$?$@$1$J$N$G!D!D!#(B

$B!!(BDC_CFID_DEVICE$B$O(B0xFFFF0000$B$H$$$&%^%9%/$J$N$G!"$3$l$G$O$J$+$C$?$G$9!#(B

$B!!$H$$$&$3$H$G!"$=$N$^$^$G$OF0$-$^$;$s$G$7$?!#%Q%C%A$N0U?^$9$k$H$3$m$O(B
$B!V(Bcard=0xa11b1259$B!W$rD4$Y$F%+!<%I$r8+J,$1$k$N$+$H9M$($F!"2<5-$N%Q%C%A(B
$B$rEv$F$?$iF0$/$h$&$K$J$j$^$7$?!#JQ99E@$O(Bpci_read_config$B$NBh(B2$B0z?t$r(B
DC_PCI_CSID (Subsystem ID) $B$K$7$?$N$H!"(BAL981$B$d(BAN985$B$@$C$?;~$N=hM}$K(B
AN983$B$bDI2C$7$?$3$H$/$i$$$G$9!#8e<T$r$7$J$$$H!"(B

	ukphy0: <Generic IEEE 802.3u media interface> on miibus0
	ukphy0:  10baseT-FDX, 100baseTX-FDX

$B$H$$$&$N$,(B32$B8DEP>l$7$^$7$?!#(B

$B!!$?$@!D$3$l$GNI$$$N$+$I$&$+$O$5$C$Q$j$o$+$j$^$;$s!#(BAL981, AN983,
AN985$B$N%+!<%I$G%F%9%H$9$kI,MW$,$"$j$=$&$G$9$M!#(B

========================================================================
--- if_dc.c.orig Fri Jul 20 11:01:26 2001 +++ if_dc.c Mon Oct 22
17:45:55 2001 @@ -1646,7 +1646,7 @@
 {
 	int			s, tmp = 0;
 	u_char			eaddr[ETHER_ADDR_LEN];
-	u_int32_t		command;
+	u_int32_t		command, reg;
 	struct dc_softc		*sc;
 	struct ifnet		*ifp;
 	u_int32_t		revision;
@@ -1752,7 +1752,18 @@
 		break;
 	case DC_DEVICEID_AN985:
 	case DC_DEVICEID_EN2242:
-		sc->dc_type = DC_TYPE_AN985;
+		reg = pci_read_config(dev, DC_PCI_CSID, 4);
+		printf("CSID=%08x\n", reg);
+		switch (reg) {
+		case 0x09851317:
+		case 0xa11b1259:
+			sc->dc_type = DC_TYPE_AN983;
+			break;
+		case 0x09811317u:
+		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;
@@ -1870,6 +1881,7 @@
 		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;
--- if_dcreg.h.orig	Mon Mar  5 13:17:24 2001
+++ if_dcreg.h	Mon Oct 22 17:52:00 2001
@@ -75,7 +75,7 @@
 #define DC_TYPE_DM9102		0x8	/* Davicom DM9102 */
 #define DC_TYPE_PNICII		0x9	/* 82c115 PNIC II */
 #define DC_TYPE_PNIC		0xA	/* 82c168/82c169 PNIC I */
-
+#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 ||	\
@@ -83,6 +83,7 @@
 
 #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)
========================================================================
----
$BJ?Ln989((B@$B6bBtBg3X9)3XIt(B $B>pJs%7%9%F%`9)3X2J(B ($B5l(B $BEE5$!&>pJs9)3X2J(B)
hirano@t.kanazawa-u.ac.jp
