From owner-p4-projects@FreeBSD.ORG Fri Nov 7 21:34:48 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1539F16A4D0; Fri, 7 Nov 2003 21:34:48 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E0D8216A4CE for ; Fri, 7 Nov 2003 21:34:47 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 59D014400B for ; Fri, 7 Nov 2003 21:34:46 -0800 (PST) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id hA85YkXJ025555 for ; Fri, 7 Nov 2003 21:34:46 -0800 (PST) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id hA85YjjY025552 for perforce@freebsd.org; Fri, 7 Nov 2003 21:34:45 -0800 (PST) (envelope-from jhb@freebsd.org) Message-Id: <200311080534.hA85YjjY025552@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 41720 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Sat, 08 Nov 2003 05:34:48 -0000 X-Original-Date: Fri, 7 Nov 2003 21:34:45 -0800 (PST) X-List-Received-Date: Sat, 08 Nov 2003 05:34:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=41720 Change 41720 by jhb@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 @@ -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 -__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 -__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 -__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 -__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 #include ==== //depot/projects/smpng/sys/amd64/amd64/trap.c#12 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__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 -__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 -__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 +#include 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 and for + * XXX - See and 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 for the internals of mc_fpstate[]. + * See 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 @@ -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 for the internals of mc_fpstate[]. + * See 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 -__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 -__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) <<<