From owner-FreeBSD-tech-jp@jp.freebsd.org  Wed Aug 27 10:00:07 1997
Received: by jaz.jp.freebsd.org (8.8.7+2.7Wbeta7/8.7.3) id KAA15347
	Wed, 27 Aug 1997 10:00:07 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.7+2.7Wbeta7/8.7.3) with ESMTP id KAA15342
	for <FreeBSD-tech-jp@jp.freebsd.org>; Wed, 27 Aug 1997 10:00:06 +0900 (JST)
Received: (from hosokawa@localhost) by afs.ntc.mita.keio.ac.jp (8.7.4+2.6Wbeta6/3.4W5-ntc_mailserver1.02) id KAA27382; Wed, 27 Aug 1997 10:00:04 +0900 (JST)
Date: Wed, 27 Aug 1997 10:00:04 +0900 (JST)
Message-Id: <199708270100.KAA27382@afs.ntc.mita.keio.ac.jp>
To: bsd-nomads@ai.cs.fujitsu.co.jp
Cc: FreeBSD-tech-jp@jp.freebsd.org
In-Reply-To: Your message of Wed, 27 Aug 1997 09:51:39 +0900 (JST).
	<199708270051.JAA27322@afs.ntc.mita.keio.ac.jp>
From: hosokawa@ntc.keio.ac.jp (HOSOKAWA Tatsumi)
X-Mailer: mnews [version 1.18PL3] 1994-08/01(Mon)
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=20]
X-Sequence: FreeBSD-tech-jp 501
Subject: [FreeBSD-tech-jp 501] Re: [bsd-nomads:05341] Re: [Q] pccard-3.0-patch
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org

<199708270051.JAA27322@afs.ntc.mita.keio.ac.jp>$B$N5-;v$K$*$$$F(B
hosokawa@ntc.keio.ac.jp$B$5$s$O=q$-$^$7$?!#(B

>> $BEv$F$F$/$@$5$$(B :-)$B!#(B
>> $B$b$&$9$0<!$N$rN.$7$^$9!#(B
>> 
>> $B!t(B $B0l:rF|$OHh$l2L$F$FGz?g$7$F$7$^$C$?$N$G$@$a$@$C$?$N$G$9!#(B

$B<!$N$G$9!#(B
$BA0$N$GF0$+$J$+$C$?>l9g$K;n$7$F$_$F$/$@$5$$!#(B

$B$[$=$+$o(B

--- pcic.c.970824	Sun Aug 24 11:50:18 1997
+++ pcic.c	Wed Aug 27 01:59:05 1997
@@ -174,6 +174,14 @@
 	static int pcic_unit = 0;
 	int	reinit_legacy16;
 
+	/* XXX - don't initialize PCIC twice! */
+	if (pci_pcics[pcic_unit].bus != 0xff)
+		if (bootverbose) {
+			printf("pci_pcic_attach: pcic(%d,%d) has already "
+				"been initialized.\n", tag->bus, tag->slot);
+			goto pci_pcic_attach_end;
+		}
+
 	/* Assign PCIC unit number (support for multiple PCIC's on PCI bus) */
 	for (i = 0; i < x_pcic_unit; i++) {
 		if (tag->bus == pci_pcics[i].bus && 
@@ -213,6 +221,7 @@
 				if (pci_pcics[i].legacy16 == legacy16)
 					reinit_legacy16 = 1;
 		if (reinit_legacy16) {
+			u_int	res;
 			switch (pcic_unit) {
 			case 0:
 				legacy16 = PCIC_INDEX_0 | PCI_MAP_IO;
@@ -223,12 +232,13 @@
 				break;
 			}
 			pci_cfgwrite(tag, CB_PCI_LEGACY16_IOADDR, legacy16, 2);
-			legacy16 = pci_cfgread(tag, CB_PCI_LEGACY16_IOADDR, 2)
+			res = pci_cfgread(tag, CB_PCI_LEGACY16_IOADDR, 2)
 						 & ~PCI_MAP_IO;
 			if (bootverbose)
 				printf("TI PCI-113X: unit %d, Legacy PC-card "
-					"16bit I/O address is set to 0x%x\n", 
-					pcic_unit, legacy16);
+					"16bit I/O address is set to 0x%x "
+					"(res: 0x%x)\n", 
+					pcic_unit, legacy16, res);
 		}
 		else {
 			/* 
@@ -306,6 +316,7 @@
 		break;
 	}
 
+pci_pcic_attach_end:
 	if (!bootverbose)
 		return;
 	print_cardbus_registers(tag);
--
HOSOKAWA, Tatsumi
Network Technology Center
Keio University
hosokawa@ntc.keio.ac.jp
