From owner-FreeBSD-users-jp@jp.freebsd.org  Tue Jul 24 03:46:45 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id DAA61649;
	Tue, 24 Jul 2001 03:46:45 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from ns.kobe1995.net (root@211.12.126.15.user.dt.il24.net [211.12.126.15])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id DAA61636
	for <freebsd-users-jp@jp.freebsd.org>; Tue, 24 Jul 2001 03:46:42 +0900 (JST)
	(envelope-from kaz@kobe1995.net)
Received: from beauty.kobe1995.net (beauty [192.168.0.6])
	by ns.kobe1995.net (8.8.8/3.7W-primary) with ESMTP id DAA29790;
	Tue, 24 Jul 2001 03:46:35 +0900 (JST)
Received: (from kaz@localhost) by beauty.kobe1995.net (8.11.3/3.4Wbeta6-glove) id f6NIkZU00649; Tue, 24 Jul 2001 03:46:35 +0900 (JST)
Date: Tue, 24 Jul 2001 03:46:35 +0900 (JST)
Message-Id: <200107231846.f6NIkZU00649@beauty.kobe1995.net>
To: FreeBSD-users-jp@jp.freebsd.org
Cc: kaz@kobe1995.net
In-Reply-To: <87r8v81and.wl@m-fukui.jp.fujitsu.com>
From: kaz@kobe1995.net (NAKAMURA Kazushi)
X-Mailer: mnews [version 1.22] 1999-12/19(Sun)
Reply-To: FreeBSD-users-jp@jp.freebsd.org, kaz@kobe1995.net
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: FreeBSD-users-jp 63194
Subject: [FreeBSD-users-jp 63194] WLI-PCM-L11G + WLI-ISA-OP works !
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: kaz@kobe1995.net

$BCfB<OB;V!w?@8M$G$9!#(BFreeBSD-users-jp$B$K(Bsubscribe$B$7$F$J$$$N$G!"(B
reply$B$N:]$O;d$K$b(BCc$B$7$F$/$@$5$$!#(B

># $B$J$*EvJ}$N4D6-$G$O!"(BCPU_ENABLE_SSE $B$J(B kernel $B$G(B
># netstat $B%3%^%s%I$r<B9T$9$k$H!"$[$\3N<B$K(B kernel panic $B$7$^$9!D!#(B
  $B$4$a$s$J$5$$!"$4$a$s$J$5$$!#$3$l!":#7n$NF,$/$i$$$N(B5-current$B$N(B
$BOC$G$9$h$M!#$J$i$P!"(B

Index: sys/i386/isa/npx.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/isa/npx.c,v
retrieving revision 1.104
diff -u -r1.104 npx.c
--- sys/i386/isa/npx.c	2001/07/12 12:21:53	1.104
+++ sys/i386/isa/npx.c	2001/07/15 16:23:02
@@ -160,8 +160,8 @@
 #endif
 static	int	npx_probe	__P((device_t dev));
 static	int	npx_probe1	__P((device_t dev));
-static	void	fpusave		__P((union savefpu *, u_char));
-static	void	fpurstor	__P((union savefpu *, u_char));
+static	void	fpusave		__P((union savefpu *));
+static	void	fpurstor	__P((union savefpu *));
 #ifdef I586_CPU_XXX
 static	long	timezero	__P((const char *funcname,
 				     void (*func)(void *buf, size_t len)));
@@ -579,7 +579,7 @@
 	stop_emulating();
 	fldcw(&control);
 	if (PCPU_GET(curpcb) != NULL)
-		fpusave(&PCPU_GET(curpcb)->pcb_save, curproc->p_oncpu);
+		fpusave(&PCPU_GET(curpcb)->pcb_save);
 	start_emulating();
 	critical_exit(savecrit);
 }
@@ -881,7 +881,7 @@
 	 * fnsave are broken, so our treatment breaks fnclex if it is the
 	 * first FPU instruction after a context switch.
 	 */
-	fpurstor(&PCPU_GET(curpcb)->pcb_save, curproc->p_oncpu);
+	fpurstor(&PCPU_GET(curpcb)->pcb_save);
 	critical_exit(s);
 
 	return (1);
@@ -916,18 +916,18 @@
 {
 
 	stop_emulating();
-	fpusave(addr, curproc->p_oncpu);
+	fpusave(addr);
 
 	start_emulating();
 	PCPU_SET(npxproc, NULL);
 }
 
 static void
-fpusave(addr, oncpu)
+fpusave(addr)
 	union savefpu *addr;
-	u_char oncpu;
 {
 	static struct savexmm svxmm[MAXCPU];
+	u_char oncpu = PCPU_GET(cpuid);
 	
 	if (!cpu_fxsr)
 		fnsave(addr);
@@ -938,11 +938,11 @@
 }
 
 static void
-fpurstor(addr, oncpu)
+fpurstor(addr)
 	union savefpu *addr;
-	u_char oncpu;
 {
 	static struct savexmm svxmm[MAXCPU];
+	u_char oncpu = PCPU_GET(cpuid);
 
 	if (!cpu_fxsr)
 		frstor(addr);

  $B99$K!"(B

Index: sys/i386/isa/npx.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/isa/npx.c,v
retrieving revision 1.105
diff -u -r1.105 npx.c
--- sys/i386/isa/npx.c	2001/07/16 06:00:23	1.105
+++ sys/i386/isa/npx.c	2001/07/16 16:54:13
@@ -564,7 +564,7 @@
 npxinit(control)
 	u_short control;
 {
-	union savefpu dummy;
+	static union savefpu dummy;
 	critical_t savecrit;
 
 	if (!npx_exists)
@@ -926,30 +926,21 @@
 fpusave(addr)
 	union savefpu *addr;
 {
-	static struct savexmm svxmm[MAXCPU];
-	u_char oncpu = PCPU_GET(cpuid);
 	
 	if (!cpu_fxsr)
 		fnsave(addr);
-	else {
-		fxsave(&svxmm[oncpu]);
-		bcopy(&svxmm[oncpu], addr, sizeof(struct savexmm));
-	}
+	else
+		fxsave(addr);
 }
 
 static void
 fpurstor(addr)
 	union savefpu *addr;
 {
-	static struct savexmm svxmm[MAXCPU];
-	u_char oncpu = PCPU_GET(cpuid);
-
 	if (!cpu_fxsr)
 		frstor(addr);
-	else {
-		bcopy(addr, &svxmm[oncpu], sizeof (struct savexmm));
-		fxrstor(&svxmm[oncpu]);
-	}
+	else
+		fxrstor(addr);
 }
 
 #ifdef I586_CPU_XXX

  $B$H$$$&%Q%C%A$,=P$F$$$^$9!#$J$s$+!"$I$s$I$s@N$KLa$j$D$D$"$k$h$&$J(B
$B5$$,$7$F2y$7$$$N$G$9$,!"$H$j$"$($:$3$l$G(B*stat$B%3%^%s%I$G(Bpanic$B$9$k(B
$B$3$H$O$J$/$J$j$^$7$?!#>/$J$/$H$b;d$N$H$3$m$G$O!#(B
  $B0lJ}(B4.2R,4.3R$B$J$i!"JL$KLdBjL5$$$H;W$&$N$G$9$,!#(B

  Subject$B$KLa$C$F!"Bg3X;~Be$N@hGZ$,(B WLI-PCI-L11 + WLI-PCM-L11
$B$H$$$&AH9g$;$G(BWave v6 router$B$r:n$m$&$H$7$F!"(BNetBSD$B$J$i;H$($k$N$K(B
FreeBSD4.3R$B$@$H;H$($J$$!*$H$+8@$C$F$FD4$Y$?7P83CL$r$P!#(B
  $B860x$O(BPCMCIA$B%3%s%H%m!<%i$N3d9~$_%O%s%I%j%s%0$K$H$s$G$b$J$$%P%0$,(B
$B;D$C$F$$$?$+$i$G!"$h$/:#$^$GF0$$$F$?$J$"$H$$$&$b$N$G$9!#$3$$$D$,(B
PCI$B%P%9$K>h$C$+$k$H!"$H$&$H$&F0$+$J$/$J$k$H!#(B5-current$B$G$O(B1$B7nDxA0(B
$B$KD>$C$F$$$^$9!#0J2<$N%Q%C%A$G!"7o$N@hGZ$b(BFreeBSD$B$G;H$($k$h$&$K(B
$B$J$C$?$H$N$3$H$G$9!#$7$+$74pCO6I%b!<%I$@$H!"$^$@BLL\$i$7$$!#(B

From: <shigeru@iij.ad.jp>
Message-Id: <20010614.143715.110847928.shigeru@iij.ad.jp>
Cc: current@FreeBSD.ORG
Subject: Re: PCCARD and -current 
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
 boundary="--Next_Part(Thu_Jun_14_14:37:15_2001_123)--"
Content-Transfer-Encoding: 7bit

----Next_Part(Thu_Jun_14_14:37:15_2001_123)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


I make a short patch to sharing IRQ between a PCIC and a PC Card when using
PCI IRQ routing.
#Does this patch help you?

-------
YAMAMOTO Shigeru			Internet Initiative Japan Inc.
<shigeru@iij.ad.jp>			Network Engineering Div.

----Next_Part(Thu_Jun_14_14:37:15_2001_123)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="pcic.diff"

Index: pcic.c
===================================================================
RCS file: /share/cvsup/FreeBSD/current/usr/src/sys/pccard/pcic.c,v
retrieving revision 1.141
diff -u -r1.141 pcic.c
--- pcic.c	2001/06/04 03:29:06	1.141
+++ pcic.c	2001/06/13 04:18:17
@@ -805,8 +805,13 @@
 	/*
 	 * If we're routing via pci, we can share.
 	 */
-	if (sc->func_route == pci_parallel && type == SYS_RES_IRQ)
+	if (sc->func_route == pci_parallel && type == SYS_RES_IRQ) {
 		flags |= RF_SHAREABLE;
+		if (sc->irqres) {
+			start = rman_get_start(sc->irqres);
+			end = rman_get_start(sc->irqres);
+		}
+	}
 
 	return (bus_generic_alloc_resource(dev, child, type, rid, start, end,
 	    count, flags));
Index: pcic_pci.c
===================================================================
RCS file: /share/cvsup/FreeBSD/current/usr/src/sys/pccard/pcic_pci.c,v
retrieving revision 1.48
diff -u -r1.48 pcic_pci.c
--- pcic_pci.c	2001/06/09 07:34:17	1.48
+++ pcic_pci.c	2001/06/13 04:26:52
@@ -446,9 +446,10 @@
 		sc->flags = PCIC_PD_POWER;
 		num6729++;
 	} else {
+		device_printf(dev, "MEMORY mapped device!\n");
 		sc->memrid = CB_PCI_SOCKET_BASE;
 		sc->memres = bus_alloc_resource(dev, SYS_RES_MEMORY,
-		    &sc->memrid, 0, ~0, 1, RF_ACTIVE);
+		    &sc->memrid, 0, ~0, 0x1000, RF_ACTIVE);
 		if (sc->memres == NULL && pcic_pci_get_memory(dev) != 0)
 			return (ENOMEM);
 		sp->getb = pcic_pci_getb2;

----Next_Part(Thu_Jun_14_14:37:15_2001_123)----
-- 
$BCfB<OB;V!w?@8M(B		<mailto:kaz@kobe1995.net>
NAKAMURA Kazushi@KOBE	<http://kobe1995.net/>
