PERFORCE change 41720 for review

John Baldwin jhb at FreeBSD.org
Fri Nov 7 21:34:48 PST 2003


http://perforce.freebsd.org/chv.cgi?CH=41720

Change 41720 by jhb at jhb_laptop on 2003/11/07 21:34:27

	IFC @41717.

Affected files ...

.. //depot/projects/smpng/sys/alpha/include/bus.h#14 integrate
.. //depot/projects/smpng/sys/amd64/amd64/cpu_switch.S#5 integrate
.. //depot/projects/smpng/sys/amd64/amd64/fpu.c#1 branch
.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#14 integrate
.. //depot/projects/smpng/sys/amd64/amd64/nexus.c#6 integrate
.. //depot/projects/smpng/sys/amd64/amd64/pmap.c#15 integrate
.. //depot/projects/smpng/sys/amd64/amd64/support.S#6 integrate
.. //depot/projects/smpng/sys/amd64/amd64/sys_machdep.c#4 integrate
.. //depot/projects/smpng/sys/amd64/amd64/trap.c#12 integrate
.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#10 integrate
.. //depot/projects/smpng/sys/amd64/conf/GENERIC#9 integrate
.. //depot/projects/smpng/sys/amd64/conf/gethints.awk#2 integrate
.. //depot/projects/smpng/sys/amd64/ia32/ia32_signal.c#5 integrate
.. //depot/projects/smpng/sys/amd64/include/bus_dma.h#7 integrate
.. //depot/projects/smpng/sys/amd64/include/cpufunc.h#4 integrate
.. //depot/projects/smpng/sys/amd64/include/fpu.h#1 branch
.. //depot/projects/smpng/sys/amd64/include/frame.h#4 integrate
.. //depot/projects/smpng/sys/amd64/include/ieeefp.h#4 integrate
.. //depot/projects/smpng/sys/amd64/include/npx.h#4 delete
.. //depot/projects/smpng/sys/amd64/include/pcb.h#5 integrate
.. //depot/projects/smpng/sys/amd64/include/pmap.h#7 integrate
.. //depot/projects/smpng/sys/amd64/include/reg.h#3 integrate
.. //depot/projects/smpng/sys/amd64/include/signal.h#4 integrate
.. //depot/projects/smpng/sys/amd64/include/specialreg.h#3 integrate
.. //depot/projects/smpng/sys/amd64/include/ucontext.h#5 integrate
.. //depot/projects/smpng/sys/amd64/include/vmparam.h#5 integrate
.. //depot/projects/smpng/sys/amd64/isa/npx.c#3 delete
.. //depot/projects/smpng/sys/amd64/isa/vector.S#2 integrate
.. //depot/projects/smpng/sys/compat/ia32/ia32_signal.h#3 integrate
.. //depot/projects/smpng/sys/compat/ia32/ia32_sysvec.c#4 integrate
.. //depot/projects/smpng/sys/conf/files.amd64#9 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#36 integrate
.. //depot/projects/smpng/sys/i386/i386/db_interface.c#21 integrate
.. //depot/projects/smpng/sys/i386/i386/io_apic.c#3 integrate
.. //depot/projects/smpng/sys/i386/i386/pmap.c#52 integrate
.. //depot/projects/smpng/sys/i386/include/bus_dma.h#10 integrate
.. //depot/projects/smpng/sys/i386/include/pmap.h#18 integrate
.. //depot/projects/smpng/sys/ia64/include/bus.h#14 integrate
.. //depot/projects/smpng/sys/kern/sched_4bsd.c#16 integrate
.. //depot/projects/smpng/sys/netatalk/ddp_usrreq.c#14 integrate
.. //depot/projects/smpng/sys/netinet/ip_fw2.c#22 integrate
.. //depot/projects/smpng/sys/netinet/ip_id.c#3 integrate
.. //depot/projects/smpng/sys/netinet/tcp_output.c#16 integrate
.. //depot/projects/smpng/sys/nfsclient/bootp_subr.c#22 integrate
.. //depot/projects/smpng/sys/nfsclient/krpc_subr.c#9 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_socket.c#20 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_vfsops.c#29 integrate
.. //depot/projects/smpng/sys/nfsserver/nfs_srvsock.c#14 integrate
.. //depot/projects/smpng/sys/nfsserver/nfs_syscalls.c#21 integrate
.. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.c#14 integrate
.. //depot/user/jhb/acpipci/notes#58 edit

Differences ...

==== //depot/projects/smpng/sys/alpha/include/bus.h#14 (text+ko) ====

@@ -67,7 +67,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-/* $FreeBSD: src/sys/alpha/include/bus.h,v 1.24 2003/09/23 08:22:33 nyan Exp $ */
+/* $FreeBSD: src/sys/alpha/include/bus.h,v 1.25 2003/11/07 23:29:42 scottl Exp $ */
 
 #ifndef _ALPHA_BUS_H_
 #define _ALPHA_BUS_H_
@@ -569,6 +569,10 @@
  *	nsegments:	Number of discontinuities allowed in maps.
  *	maxsegsz:	Maximum size of a segment in the map.
  *	flags:		Bus DMA flags.
+ *	lockfunc:	An optional function to handle driver-defined lock
+ *			operations.
+ *	lockfuncarg:	An argument that will be passed to lockfunc in addition
+ *			to the lock operation.
  *	dmat:		A pointer to set to a valid dma tag should the return
  *			value of this function indicate success.
  */

==== //depot/projects/smpng/sys/amd64/amd64/cpu_switch.S#5 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
  *
@@ -33,7 +34,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.141 2003/05/15 00:23:39 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.143 2003/11/08 04:39:21 peter Exp $
  */
 
 #include <machine/asmacros.h>
@@ -131,7 +132,7 @@
 	pushq	%rsi
 	addq	$PCB_SAVEFPU,%r8		/* h/w bugs make saving complicated */
 	movq	%r8, %rdi
-	call	npxsave				/* do it in a big C function */
+	call	fpusave				/* do it in a big C function */
 	popq	%rsi
 	popq	%rdi
 1:
@@ -301,16 +302,16 @@
 	popq	PCB_RFLAGS(%rcx)
 
 	/*
-	 * If fpcurthread == NULL, then the npx h/w state is irrelevant and the
+	 * If fpcurthread == NULL, then the fpu h/w state is irrelevant and the
 	 * state had better already be in the pcb.  This is true for forks
 	 * but not for dumps (the old book-keeping with FP flags in the pcb
 	 * always lost for dumps because the dump pcb has 0 flags).
 	 *
-	 * If fpcurthread != NULL, then we have to save the npx h/w state to
+	 * If fpcurthread != NULL, then we have to save the fpu h/w state to
 	 * fpcurthread's pcb and copy it to the requested pcb, or save to the
 	 * requested pcb and reload.  Copying is easier because we would
 	 * have to handle h/w bugs for reloading.  We used to lose the
-	 * parent's npx state for forks by forgetting to reload.
+	 * parent's fpu state for forks by forgetting to reload.
 	 */
 	pushfq
 	cli
@@ -322,7 +323,7 @@
 	pushq	%rax
 	movq	TD_PCB(%rax),%rdi
 	leaq	PCB_SAVEFPU(%rdi),%rdi
-	call	npxsave
+	call	fpusave
 	popq	%rax
 	popq	%rcx
 

==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#14 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1992 Terrence R. Lambert.
  * Copyright (c) 1982, 1987, 1990 The Regents of the University of California.
  * All rights reserved.
@@ -38,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.594 2003/10/18 22:25:07 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.596 2003/11/08 04:37:54 peter Exp $");
 
 #include "opt_atalk.h"
 #include "opt_compat.h"
@@ -516,7 +517,6 @@
 
 	bzero((char *)regs, sizeof(struct trapframe));
 	regs->tf_rip = entry;
-	/* This strangeness is to ensure alignment after the implied return address */
 	regs->tf_rsp = ((stack - 8) & ~0xF) + 8;
 	regs->tf_rdi = stack;		/* argv */
 	regs->tf_rflags = PSL_USER | (regs->tf_rflags & PSL_T);
@@ -524,20 +524,20 @@
 	regs->tf_cs = _ucodesel;
 
 	/*
-	 * Arrange to trap the next npx or `fwait' instruction (see npx.c
-	 * for why fwait must be trapped at least if there is an npx or an
+	 * Arrange to trap the next fpu or `fwait' instruction (see fpu.c
+	 * for why fwait must be trapped at least if there is an fpu or an
 	 * emulator).  This is mainly to handle the case where npx0 is not
-	 * configured, since the npx routines normally set up the trap
+	 * configured, since the fpu routines normally set up the trap
 	 * otherwise.  It should be done only at boot time, but doing it
-	 * here allows modifying `npx_exists' for testing the emulator on
-	 * systems with an npx.
+	 * here allows modifying `fpu_exists' for testing the emulator on
+	 * systems with an fpu.
 	 */
 	load_cr0(rcr0() | CR0_MP | CR0_TS);
 
-	/* Initialize the npx (if any) for the current process. */
+	/* Initialize the fpu (if any) for the current process. */
 	/*
 	 * XXX the above load_cr0() also initializes it and is a layering
-	 * violation if NPX is configured.  It drops the npx partially
+	 * violation.  It drops the fpu state partially
 	 * and this would be fatal if we were interrupted now, and decided
 	 * to force the state to the pcb, and checked the invariant
 	 * (CR0_TS clear) if and only if PCPU_GET(fpcurthread) != NULL).
@@ -555,7 +555,7 @@
 	register_t cr0;
 
 	cr0 = rcr0();
-	cr0 |= CR0_NE;			/* Done by npxinit() */
+	cr0 |= CR0_NE;			/* Done by fpuinit() */
 	cr0 |= CR0_MP | CR0_TS;		/* Done at every execve() too. */
 	cr0 |= CR0_WP | CR0_AM;
 	load_cr0(cr0);
@@ -1255,6 +1255,7 @@
 		pmap_kenter((vm_offset_t)msgbufp + off, avail_end + off);
 
 	msgbufinit(msgbufp, MSGBUF_SIZE);
+	fpuinit();
 
 	/* transfer to user mode */
 
@@ -1525,8 +1526,8 @@
 get_fpcontext(struct thread *td, mcontext_t *mcp)
 {
 
-	mcp->mc_ownedfp = npxgetregs(td, (struct savefpu *)&mcp->mc_fpstate);
-	mcp->mc_fpformat = npxformat();
+	mcp->mc_ownedfp = fpugetregs(td, (struct savefpu *)&mcp->mc_fpstate);
+	mcp->mc_fpformat = fpuformat();
 }
 
 static int
@@ -1543,11 +1544,11 @@
 	else if (mcp->mc_ownedfp == _MC_FPOWNED_FPU ||
 	    mcp->mc_ownedfp == _MC_FPOWNED_PCB) {
 		/*
-		 * XXX we violate the dubious requirement that npxsetregs()
+		 * XXX we violate the dubious requirement that fpusetregs()
 		 * be called with interrupts disabled.
 		 * XXX obsolete on trap-16 systems?
 		 */
-		npxsetregs(td, (struct savefpu *)&mcp->mc_fpstate);
+		fpusetregs(td, (struct savefpu *)&mcp->mc_fpstate);
 	} else
 		return (EINVAL);
 	return (0);
@@ -1560,18 +1561,18 @@
 
 	s = intr_disable();
 	if (PCPU_GET(fpcurthread) == td)
-		npxdrop();
+		fpudrop();
 	/*
-	 * XXX force a full drop of the npx.  The above only drops it if we
+	 * XXX force a full drop of the fpu.  The above only drops it if we
 	 * owned it.
 	 *
-	 * XXX I don't much like npxgetregs()'s semantics of doing a full
+	 * XXX I don't much like fpugetregs()'s semantics of doing a full
 	 * drop.  Dropping only to the pcb matches fnsave's behaviour.
 	 * We only need to drop to !PCB_INITDONE in sendsig().  But
-	 * sendsig() is the only caller of npxgetregs()... perhaps we just
+	 * sendsig() is the only caller of fpugetregs()... perhaps we just
 	 * have too many layers.
 	 */
-	curthread->td_pcb->pcb_flags &= ~PCB_NPXINITDONE;
+	curthread->td_pcb->pcb_flags &= ~PCB_FPUINITDONE;
 	intr_restore(s);
 }
 

==== //depot/projects/smpng/sys/amd64/amd64/nexus.c#6 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.54 2003/07/25 21:15:44 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.55 2003/11/08 03:33:37 peter Exp $");
 
 /*
  * This code implements a `root nexus' for Intel Architecture
@@ -268,7 +268,6 @@
 /*
  * Allocate a resource on behalf of child.  NB: child is usually going to be a
  * child of one of our descendants, not a direct child of nexus0.
- * (Exceptions include npx.)
  */
 static struct resource *
 nexus_alloc_resource(device_t bus, device_t child, int type, int *rid,

==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#15 (text+ko) ====

@@ -5,6 +5,8 @@
  * All rights reserved.
  * Copyright (c) 1994 David Greenman
  * All rights reserved.
+ * Copyright (c) 2003 Peter Wemm
+ * All rights reserved.
  *
  * This code is derived from software contributed to Berkeley by
  * the Systems Programming Group of the University of Utah Computer
@@ -73,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.444 2003/10/30 04:08:22 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.445 2003/11/08 04:39:21 peter Exp $");
 
 /*
  *	Manages physical address maps.

==== //depot/projects/smpng/sys/amd64/amd64/support.S#6 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1993 The Regents of the University of California.
  * All rights reserved.
  *
@@ -30,7 +31,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.102 2003/10/02 05:08:13 alc Exp $
+ * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.103 2003/11/08 04:39:21 peter Exp $
  */
 
 #include "opt_ddb.h"

==== //depot/projects/smpng/sys/amd64/amd64/sys_machdep.c#4 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
  *
@@ -34,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.85 2003/07/25 21:15:44 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.86 2003/11/08 04:39:21 peter Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/smpng/sys/amd64/amd64/trap.c#12 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.268 2003/10/30 04:06:28 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.269 2003/11/08 03:33:37 peter Exp $");
 
 /*
  * AMD64 Trap and System call handling
@@ -244,7 +244,7 @@
 			break;
 
 		case T_ARITHTRAP:	/* arithmetic trap */
-			ucode = npxtrap();
+			ucode = fputrap();
 			if (ucode == -1)
 				goto userout;
 			i = SIGFPE;
@@ -310,7 +310,7 @@
 
 		case T_DNA:
 			/* transparent fault (due to context switch "late") */
-			if (npxdna())
+			if (fpudna())
 				goto userout;
 			i = SIGFPE;
 			ucode = FPE_FPU_NP_TRAP;
@@ -338,12 +338,12 @@
 
 		case T_DNA:
 			/*
-			 * The kernel is apparently using npx for copying.
+			 * The kernel is apparently using fpu for copying.
 			 * XXX this should be fatal unless the kernel has
 			 * registered such use.
 			 */
-			if (npxdna()) {
-				printf("npxdna in kernel mode!\n");
+			if (fpudna()) {
+				printf("fpudna in kernel mode!\n");
 				goto out;
 			}
 			break;

==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#10 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.218 2003/10/30 19:04:58 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.220 2003/11/08 03:33:37 peter Exp $");
 
 #include "opt_isa.h"
 #include "opt_kstack_pages.h"
@@ -118,7 +118,7 @@
 	/* Ensure that p1's pcb is up to date. */
 	savecrit = intr_disable();
 	if (PCPU_GET(fpcurthread) == td1)
-		npxsave(&td1->td_pcb->pcb_save);
+		fpusave(&td1->td_pcb->pcb_save);
 	intr_restore(savecrit);
 
 	/* Point the pcb to the top of the stack */
@@ -206,7 +206,7 @@
 {
 
 	if (td == PCPU_GET(fpcurthread))
-		npxdrop();
+		fpudrop();
 }
 
 void
@@ -266,7 +266,7 @@
 	 * more analysis) (need a good safe default).
 	 */
 	bcopy(td0->td_pcb, pcb2, sizeof(*pcb2));
-	pcb2->pcb_flags &= ~(PCB_NPXTRAP|PCB_NPXINITDONE);
+	pcb2->pcb_flags &= ~PCB_FPUINITDONE;
 
 	/*
 	 * Create a new fresh stack for the new thread.

==== //depot/projects/smpng/sys/amd64/conf/GENERIC#9 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first 
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.396 2003/09/19 20:04:55 joerg Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.397 2003/11/08 03:17:36 peter Exp $
 
 machine		amd64
 cpu		HAMMER
@@ -64,11 +64,13 @@
 options 	WITNESS			#Enable checks to detect deadlocks and cycles
 options 	WITNESS_SKIPSPIN	#Don't run witness on spinlocks for speed
 
+device		acpi
 device		isa
 device		pci
-device		acpi
-options 	ACPI_DEBUG
+
 
+# Sound (no modules)
+device		pcm
 
 # Floppy drives
 device		fdc
@@ -100,15 +102,9 @@
 device		aic		# Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
 device		bt		# Buslogic/Mylex MultiMaster SCSI adapters
 
-# RAID controllers interfaced to the SCSI subsystem
-device		asr		# DPT SmartRAID V, VI and Adaptec SCSI RAID
-device		ciss		# Compaq Smart RAID 5*
-device		dpt		# DPT Smartcache III, IV - See NOTES for options!
-device		iir		# Intel Integrated RAID
-device		mly		# Mylex AcceleRAID/eXtremeRAID
 
 # SCSI peripherals
-device		scbus		# SCSI bus (required)
+device		scbus		# SCSI bus (required for SCSI)
 device		ch		# SCSI media changers
 device		da		# Direct Access (disks)
 device		sa		# Sequential Access (tape etc)
@@ -116,13 +112,19 @@
 device		pass		# Passthrough device (direct SCSI access)
 device		ses		# SCSI Environmental Services (and SAF-TE)
 
+# RAID controllers interfaced to the SCSI subsystem
+device		amr		# AMI MegaRAID
+device		asr		# DPT SmartRAID V, VI and Adaptec SCSI RAID
+device		ciss		# Compaq Smart RAID 5*
+device		dpt		# DPT Smartcache III, IV - See NOTES for options
+device		iir		# Intel Integrated RAID
+device		ips		# IBM (Adaptec) ServeRAID
+device		mly		# Mylex AcceleRAID/eXtremeRAID
+
 # RAID controllers
-#XXX pointer/int warnings
 device		aac		# Adaptec FSA RAID
 device		aacp		# SCSI passthrough for aac (requires CAM)
-device		amr		# AMI MegaRAID
 device		ida		# Compaq Smart RAID
-device		ips		# IBM (Adaptec) ServeRAID
 device		mlx		# Mylex DAC960 family
 #XXX pointer/int warnings
 #device		pst		# Promise Supertrak SX6000
@@ -172,6 +174,7 @@
 # PCI Ethernet NICs that use the common MII bus controller code.
 # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
 device		miibus		# MII bus support
+device		bfe		# Broadcom BCM440x 10/100 ethernet
 device		bge		# Broadcom BCM570xx Gigabit Ethernet
 device		dc		# DEC/Intel 21143 and various workalikes
 device		fxp		# Intel EtherExpress PRO/100B (82557, 82558)
@@ -253,5 +256,3 @@
 device		firewire	# FireWire bus code
 device		sbp		# SCSI over FireWire (Requires scbus and da)
 device		fwe		# Ethernet over FireWire (non-standard!)
-
-device		pcm		# Sound

==== //depot/projects/smpng/sys/amd64/conf/gethints.awk#2 (text+ko) ====

@@ -6,7 +6,7 @@
 # 'hints' directive.  See how GENERIC and GENERIC.hints fit together for
 # a static example.  You should use loader(8) if at all possible.
 #
-# $FreeBSD: src/sys/amd64/conf/gethints.awk,v 1.2 2002/07/26 03:52:30 peter Exp $
+# $FreeBSD: src/sys/amd64/conf/gethints.awk,v 1.3 2003/11/08 03:33:38 peter Exp $
 
 # skip commented lines, empty lines and not "device" lines
 /^[ \t]*#/ || /^[ \t]*$/ || !/[ \t]*device/ { next; }
@@ -91,7 +91,6 @@
 				sub ("IO_LPT3", "0x3BC", val);
 				sub ("IO_MDA", "0x3B0", val);
 				sub ("IO_NMI", "0x070", val);
-				sub ("IO_NPX", "0x0F0", val);
 				sub ("IO_PMP1", "0x026", val);
 				sub ("IO_PMP2", "0x178", val);
 				sub ("IO_PPI", "0x061", val);

==== //depot/projects/smpng/sys/amd64/ia32/ia32_signal.c#5 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.4 2003/08/23 00:04:53 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.5 2003/11/08 03:33:38 peter Exp $");
 
 #include "opt_compat.h"
 
@@ -108,7 +108,7 @@
 	 *
 	 * XXX unpessimize most cases by only aligning when fxsave might be
 	 * called, although this requires knowing too much about
-	 * npxgetregs()'s internals.
+	 * fpugetregs()'s internals.
 	 */
 	addr = (struct savefpu *)&mcp->mc_fpstate;
 	if (td == PCPU_GET(fpcurthread) && ((uintptr_t)(void *)addr & 0xF)) {
@@ -116,12 +116,12 @@
 			addr = (void *)((char *)addr + 4);
 		while ((uintptr_t)(void *)addr & 0xF);
 	}
-	mcp->mc_ownedfp = npxgetregs(td, addr);
+	mcp->mc_ownedfp = fpugetregs(td, addr);
 	if (addr != (struct savefpu *)&mcp->mc_fpstate) {
 		bcopy(addr, &mcp->mc_fpstate, sizeof(mcp->mc_fpstate));
 		bzero(&mcp->mc_spare2, sizeof(mcp->mc_spare2));
 	}
-	mcp->mc_fpformat = npxformat();
+	mcp->mc_fpformat = fpuformat();
 }
 
 static int
@@ -148,10 +148,10 @@
 			bcopy(&mcp->mc_fpstate, addr, sizeof(mcp->mc_fpstate));
 		}
 		/*
-		 * XXX we violate the dubious requirement that npxsetregs()
+		 * XXX we violate the dubious requirement that fpusetregs()
 		 * be called with interrupts disabled.
 		 */
-		npxsetregs(td, addr);
+		fpusetregs(td, addr);
 		/*
 		 * Don't bother putting things back where they were in the
 		 * misaligned case, since we know that the caller won't use

==== //depot/projects/smpng/sys/amd64/include/bus_dma.h#7 (text+ko) ====

@@ -67,7 +67,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-/* $FreeBSD: src/sys/amd64/include/bus_dma.h,v 1.24 2003/07/27 13:52:08 mux Exp $ */
+/* $FreeBSD: src/sys/amd64/include/bus_dma.h,v 1.25 2003/11/07 23:29:42 scottl Exp $ */
 
 #ifndef _AMD64_BUS_DMA_H_
 #define _AMD64_BUS_DMA_H_
@@ -160,6 +160,10 @@
  *	nsegments:	Number of discontinuities allowed in maps.
  *	maxsegsz:	Maximum size of a segment in the map.
  *	flags:		Bus DMA flags.
+ *	lockfunc:	An optional function to handle driver-defined lock
+ *			operations.
+ *	lockfuncarg:	An argument that will be passed to lockfunc in addition
+ *			to the lock operation.
  *	dmat:		A pointer to set to a valid dma tag should the return
  *			value of this function indicate success.
  */

==== //depot/projects/smpng/sys/amd64/include/cpufunc.h#4 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1993 The Regents of the University of California.
  * All rights reserved.
  *
@@ -30,7 +31,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.136 2003/05/15 00:23:40 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.137 2003/11/08 04:39:22 peter Exp $
  */
 
 /*

==== //depot/projects/smpng/sys/amd64/include/frame.h#4 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
  *
@@ -34,7 +35,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)frame.h	5.2 (Berkeley) 1/18/91
- * $FreeBSD: src/sys/amd64/include/frame.h,v 1.25 2003/10/15 02:04:52 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/frame.h,v 1.26 2003/11/08 04:39:22 peter Exp $
  */
 
 #ifndef _MACHINE_FRAME_H_

==== //depot/projects/smpng/sys/amd64/include/ieeefp.h#4 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1990 Andrew Moore, Talke Studio
  * All rights reserved.
  *
@@ -31,7 +32,7 @@
  * SUCH DAMAGE.
  *
  * 	from: @(#) ieeefp.h 	1.0 (Berkeley) 9/23/93
- * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.10 2003/08/02 00:26:30 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.11 2003/11/08 04:39:22 peter Exp $
  */
 
 /*

==== //depot/projects/smpng/sys/amd64/include/pcb.h#5 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
  *
@@ -34,16 +35,16 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)pcb.h	5.10 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/pcb.h,v 1.53 2003/05/15 00:23:40 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/pcb.h,v 1.56 2003/11/08 04:39:22 peter Exp $
  */
 
-#ifndef _I386_PCB_H_
-#define _I386_PCB_H_
+#ifndef _AMD64_PCB_H_
+#define _AMD64_PCB_H_
 
 /*
- * Intel 386 process control block
+ * AMD64 process control block
  */
-#include <machine/npx.h>
+#include <machine/fpu.h>
 
 struct pcb {
 	register_t	padxx[8];
@@ -66,9 +67,8 @@
 
 	struct	savefpu	pcb_save;
 	u_long	pcb_flags;
-#define	PCB_NPXTRAP	0x01	/* npx trap pending */
-#define	PCB_NPXINITDONE	0x02	/* fpu state is initialized */
-#define	PCB_FULLCTX	0x04	/* full context restore on sysret */
+#define	PCB_FPUINITDONE	0x01	/* fpu state is initialized */
+#define	PCB_FULLCTX	0x02	/* full context restore on sysret */
 
 	caddr_t	pcb_onfault;	/* copyin/out fault recovery */
 };
@@ -77,4 +77,4 @@
 void	savectx(struct pcb *);
 #endif
 
-#endif /* _I386_PCB_H_ */
+#endif /* _AMD64_PCB_H_ */

==== //depot/projects/smpng/sys/amd64/include/pmap.h#7 (text+ko) ====

@@ -1,4 +1,5 @@
 /*
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1991 Regents of the University of California.
  * All rights reserved.
  *
@@ -42,7 +43,7 @@
  *
  *	from: hp300: @(#)pmap.h	7.2 (Berkeley) 12/16/90
  *	from: @(#)pmap.h	7.4 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.107 2003/10/06 01:47:11 bms Exp $
+ * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.108 2003/11/08 04:39:22 peter Exp $
  */
 
 #ifndef _MACHINE_PMAP_H_

==== //depot/projects/smpng/sys/amd64/include/reg.h#3 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
  *
@@ -34,7 +35,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)reg.h	5.5 (Berkeley) 1/18/91
- * $FreeBSD: src/sys/amd64/include/reg.h,v 1.31 2003/05/23 06:31:56 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/reg.h,v 1.33 2003/11/08 04:39:22 peter Exp $
  */
 
 #ifndef _MACHINE_REG_H_
@@ -73,7 +74,7 @@
  */
 struct fpreg {
 	/*
-	 * XXX should get struct from npx.h.  Here we give a slightly
+	 * XXX should get struct from fpu.h.  Here we give a slightly
 	 * simplified struct.  This may be too much detail.  Perhaps
 	 * an array of unsigned longs is best.
 	 */

==== //depot/projects/smpng/sys/amd64/include/signal.h#4 (text+ko) ====

@@ -1,4 +1,5 @@
 /*
+ * Copyright (c) 2003 Peter Wemm.
  * Copyright (c) 1986, 1989, 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *
@@ -31,7 +32,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)signal.h	8.1 (Berkeley) 6/11/93
- * $FreeBSD: src/sys/amd64/include/signal.h,v 1.24 2003/10/15 02:04:52 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/signal.h,v 1.26 2003/11/08 04:39:22 peter Exp $
  */
 
 #ifndef _MACHINE_SIGNAL_H_
@@ -100,7 +101,7 @@
 	long	sc_ss;
 	long	sc_len;			/* sizeof(mcontext_t) */
 	/*
-	 * XXX - See <machine/ucontext.h> and <machine/npx.h> for
+	 * XXX - See <machine/ucontext.h> and <machine/fpu.h> for
 	 *       the following fields.
 	 */
 	long	sc_fpformat;

==== //depot/projects/smpng/sys/amd64/include/specialreg.h#3 (text+ko) ====

@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)specialreg.h	7.1 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.25 2003/09/22 22:51:46 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.26 2003/11/08 03:33:38 peter Exp $
  */
 
 #ifndef _MACHINE_SPECIALREG_H_
@@ -41,12 +41,9 @@
  * Bits in 386 special registers:
  */
 #define	CR0_PE	0x00000001	/* Protected mode Enable */
-#define	CR0_MP	0x00000002	/* "Math" Present (NPX or NPX emulator) */
-#define	CR0_EM	0x00000004	/* EMulate non-NPX coproc. (trap ESC only) */
+#define	CR0_MP	0x00000002	/* "Math" (fpu) Present */
+#define	CR0_EM	0x00000004	/* EMulate FPU instructions. (trap ESC only) */
 #define	CR0_TS	0x00000008	/* Task Switched (if MP, trap ESC and WAIT) */
-#ifdef notused
-#define	CR0_ET	0x00000010	/* Extension Type (387 (if set) vs 287) */
-#endif
 #define	CR0_PG	0x80000000	/* PaGing enable */
 
 /*

==== //depot/projects/smpng/sys/amd64/include/ucontext.h#5 (text+ko) ====

@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2003 Peter Wemm
  * Copyright (c) 1999 Marcel Moolenaar
  * All rights reserved.
  *
@@ -25,7 +26,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/ucontext.h,v 1.16 2003/10/15 02:04:52 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/ucontext.h,v 1.18 2003/11/08 04:39:22 peter Exp $
  */
 
 #ifndef _MACHINE_UCONTEXT_H_
@@ -72,7 +73,7 @@
 #define	_MC_FPOWNED_PCB		0x20002	/* FP state came from PCB */
 	long	mc_ownedfp;
 	/*
-	 * See <machine/npx.h> for the internals of mc_fpstate[].
+	 * See <machine/fpu.h> for the internals of mc_fpstate[].
 	 */
 	long	mc_fpstate[64] __aligned(16);
 	long	mc_spare[8];

==== //depot/projects/smpng/sys/amd64/include/vmparam.h#5 (text+ko) ====

@@ -3,6 +3,8 @@
  * All rights reserved.
  * Copyright (c) 1994 John S. Dyson
  * All rights reserved.
+ * Copyright (c) 2003 Peter Wemm
+ * All rights reserved.
  *
  * This code is derived from software contributed to Berkeley by
  * William Jolitz.
@@ -36,7 +38,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)vmparam.h	5.9 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.42 2003/09/25 01:11:17 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.43 2003/11/08 04:39:22 peter Exp $
  */
 
 

==== //depot/projects/smpng/sys/amd64/isa/vector.S#2 (text+ko) ====

@@ -1,6 +1,6 @@
 /*
  *	from: vector.s, 386BSD 0.1 unknown origin
- * $FreeBSD: src/sys/amd64/isa/vector.S,v 1.39 2003/05/03 00:21:43 peter Exp $
+ * $FreeBSD: src/sys/amd64/isa/vector.S,v 1.40 2003/11/08 03:33:38 peter Exp $
  */
 
 #include <amd64/isa/icu.h>
@@ -33,7 +33,7 @@
  *
  * XXX - the interrupt frame is set up to look like a trap frame.  This is
  * usually a waste of time.  The only interrupt handlers that want a frame
- * are the clock handler (it wants a clock frame), the npx handler (it's
+ * are the clock handler (it wants a clock frame), the fpu handler (it's
  * easier to do right all in assembler).  The interrupt return routine
  * needs a trap frame for rare AST's (it could easily convert the frame).
  * The direct costs of setting up a trap frame are two pushl's (error
@@ -42,7 +42,7 @@
  * costs are making the driver interface nonuniform so unpending of
  * interrupts is more complicated and slower (call_driver(unit) would
  * be easier than ensuring an interrupt frame for all handlers.  Finally,
- * there are some struct copies in the npx handler and maybe in the clock
+ * there are some struct copies in the fpu handler and maybe in the clock
  * handler that could be avoided by working more with pointers to frames
  * instead of frames.
  *

==== //depot/projects/smpng/sys/compat/ia32/ia32_signal.h#3 (text+ko) ====

@@ -26,7 +26,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/compat/ia32/ia32_signal.h,v 1.2 2003/10/30 02:40:30 peter Exp $
+ * $FreeBSD: src/sys/compat/ia32/ia32_signal.h,v 1.3 2003/11/08 02:36:05 peter Exp $
  */
 
 struct ia32_sigaltstack {
@@ -62,7 +62,7 @@
 	int	mc_ownedfp;
 	int	mc_spare1[1];		/* align next field to 16 bytes */
 	/*
-	 * See <machine/npx.h> for the internals of mc_fpstate[].
+	 * See <i386/include/npx.h> for the internals of mc_fpstate[].
 	 */
 	int	mc_fpstate[128] __aligned(16);
 	int	mc_spare2[8];

==== //depot/projects/smpng/sys/compat/ia32/ia32_sysvec.c#4 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.10 2003/10/30 02:43:19 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.11 2003/11/08 03:35:06 peter Exp $");
 
 #include "opt_compat.h"
 
@@ -279,18 +279,7 @@
 	regs->tf_ss = _udatasel;
 	regs->tf_cs = _ucode32sel;
 	regs->tf_rbx = ps_strings;
-
-	/*
-	 * Arrange to trap the next npx or `fwait' instruction (see npx.c
-	 * for why fwait must be trapped at least if there is an npx or an
-	 * emulator).  This is mainly to handle the case where npx0 is not
-	 * configured, since the npx routines normally set up the trap
-	 * otherwise.  It should be done only at boot time, but doing it
-	 * here allows modifying `npx_exists' for testing the emulator on
-	 * systems with an npx.
-	 */
 	load_cr0(rcr0() | CR0_MP | CR0_TS);
-
 	fpstate_drop(td);
 
 	/* Return via doreti so that we can change to a different %cs */

==== //depot/projects/smpng/sys/conf/files.amd64#9 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.amd64,v 1.24 2003/10/14 05:51:31 alc Exp $
+# $FreeBSD: src/sys/conf/files.amd64,v 1.25 2003/11/08 02:40:40 peter Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -76,13 +76,13 @@
 amd64/amd64/uma_machdep.c	standard
 amd64/amd64/vm_machdep.c	standard
 amd64/amd64/in_cksum.c		optional inet
+amd64/amd64/fpu.c		standard
 
 amd64/isa/clock.c		standard
 amd64/isa/intr_machdep.c	standard
 amd64/isa/isa.c			standard
 amd64/isa/isa_dma.c		standard
 amd64/isa/ithread.c		standard
-amd64/isa/npx.c			standard
 
 amd64/pci/pci_cfgreg.c		optional	pci
 amd64/pci/pci_bus.c		optional	pci

==== //depot/projects/smpng/sys/dev/pccbb/pccbb.c#36 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.96 2003/10/24 07:20:13 imp Exp $
+ * $FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.98 2003/11/08 03:28:43 imp Exp $
  */
 
 /*
@@ -415,15 +415,22 @@
  * interrupts.  These interrupts aren't really generated by the chip, since
  * IRQ1 is reserved.  Some chipsets assert INTA# inappropriately during
  * initialization, so this helps to work around the problem.
+ *
+ * XXX We can't do this workaround for all chipsets, because this
+ * XXX causes interference with the keyboard because somechipsets will
+ * XXX actually signal IRQ1 over their serial interrupt connections to
+ * XXX the south bridge.  Disable it it for now.
  */
 static void
 cbb_disable_func_intr(struct cbb_softc *sc)
 {
+#if 0
 	uint8_t reg;
 
 	reg = (exca_getb(&sc->exca, EXCA_INTR) & ~EXCA_INTR_IRQ_MASK) | 
 	    EXCA_INTR_IRQ_RESERVED1;
 	exca_putb(&sc->exca, EXCA_INTR, reg);
+#endif
 }
 
 /*

==== //depot/projects/smpng/sys/i386/i386/db_interface.c#21 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/db_interface.c,v 1.76 2003/11/03 22:32:03 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/db_interface.c,v 1.77 2003/11/08 03:01:26 alc Exp $");
 
 /*
  * Interface to new debugger.
@@ -263,7 +263,7 @@

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list