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