Module Name: src Committed By: dsl Date: Sun Jan 26 19:16:17 UTC 2014
Modified Files: src/sys/arch/i386/conf: ALL GENERIC GENERIC_PS2TINY GENERIC_TINY INSTALL_FLOPPY INSTALL_TINY NET4501 XEN3_DOM0 XEN3_DOMU files.i386 src/sys/arch/i386/i386: autoconf.c i386_trap.S locore.S machdep.c process_machdep.c trap.c vector.S src/sys/arch/i386/include: npx.h src/sys/arch/i386/isa: npx.c src/sys/arch/i386/pnpbios: files.pnpbios src/sys/arch/x86/acpi: acpi_wakeup.c src/sys/arch/x86/include: cpu.h src/sys/arch/x86/x86: cpu.c ipi.c vm_machdep.c src/sys/arch/xen/conf: files.xen src/sys/arch/xen/x86: cpu.c xen_ipi.c src/sys/arch/xen/xen: hypervisor.c src/sys/compat/linux/arch/i386: linux_machdep.c Removed Files: src/sys/arch/i386/acpi: npx_acpi.c src/sys/arch/i386/isa: npx_isa.c npxvar.h src/sys/arch/i386/pnpbios: npx_pnpbios.c src/sys/arch/xen/i386: npx_hv.c Log Message: Remove support for 'external' floating point units and the MS-DOS compatible method of handling floating point exceptions. Make kernel support for teh fpu non-optional (486SX should still work). Only 386 cpus support external fpu, and i386 support was removed years ago. This means that the npx code no longer uses port 0xf0 or interupt 13. All the "npx at isa" lines go from the configs, arch/i386/isa/npx.c is now mandatory for all i386 kernels. I've renamed npxinit() to fpuinit() and npxinit_cpu() to fpuinit_cpu() to match the very similar amd64 functions. The fpu of the boot cpu is now initialised by a direct call from cpu_configure(), this enables FP emulation for a 486SX. (for amd64 the cr0 values are set in locore.S and similar). This fixes a long-standing bug in linux_setregs() - which did not save the fpu regsiters if they were active. I've test booted a single cpu i386 kernel (using anita). amd64 builds - none of teh changes should affect it. The i386 XEN kernels build, but I'm not sure where they set cr0, and it might have got lost! To generate a diff of this commit: cvs rdiff -u -r1.19 -r0 src/sys/arch/i386/acpi/npx_acpi.c cvs rdiff -u -r1.366 -r1.367 src/sys/arch/i386/conf/ALL cvs rdiff -u -r1.1098 -r1.1099 src/sys/arch/i386/conf/GENERIC cvs rdiff -u -r1.70 -r1.71 src/sys/arch/i386/conf/GENERIC_PS2TINY cvs rdiff -u -r1.136 -r1.137 src/sys/arch/i386/conf/GENERIC_TINY cvs rdiff -u -r1.21 -r1.22 src/sys/arch/i386/conf/INSTALL_FLOPPY cvs rdiff -u -r1.138 -r1.139 src/sys/arch/i386/conf/INSTALL_TINY cvs rdiff -u -r1.82 -r1.83 src/sys/arch/i386/conf/NET4501 cvs rdiff -u -r1.80 -r1.81 src/sys/arch/i386/conf/XEN3_DOM0 cvs rdiff -u -r1.55 -r1.56 src/sys/arch/i386/conf/XEN3_DOMU cvs rdiff -u -r1.371 -r1.372 src/sys/arch/i386/conf/files.i386 cvs rdiff -u -r1.98 -r1.99 src/sys/arch/i386/i386/autoconf.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/i386/i386/i386_trap.S cvs rdiff -u -r1.109 -r1.110 src/sys/arch/i386/i386/locore.S cvs rdiff -u -r1.742 -r1.743 src/sys/arch/i386/i386/machdep.c cvs rdiff -u -r1.79 -r1.80 src/sys/arch/i386/i386/process_machdep.c cvs rdiff -u -r1.268 -r1.269 src/sys/arch/i386/i386/trap.c cvs rdiff -u -r1.63 -r1.64 src/sys/arch/i386/i386/vector.S cvs rdiff -u -r1.31 -r1.32 src/sys/arch/i386/include/npx.h cvs rdiff -u -r1.148 -r1.149 src/sys/arch/i386/isa/npx.c cvs rdiff -u -r1.22 -r0 src/sys/arch/i386/isa/npx_isa.c cvs rdiff -u -r1.8 -r0 src/sys/arch/i386/isa/npxvar.h cvs rdiff -u -r1.17 -r1.18 src/sys/arch/i386/pnpbios/files.pnpbios cvs rdiff -u -r1.13 -r0 src/sys/arch/i386/pnpbios/npx_pnpbios.c cvs rdiff -u -r1.34 -r1.35 src/sys/arch/x86/acpi/acpi_wakeup.c cvs rdiff -u -r1.58 -r1.59 src/sys/arch/x86/include/cpu.h cvs rdiff -u -r1.107 -r1.108 src/sys/arch/x86/x86/cpu.c cvs rdiff -u -r1.20 -r1.21 src/sys/arch/x86/x86/ipi.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/x86/x86/vm_machdep.c cvs rdiff -u -r1.129 -r1.130 src/sys/arch/xen/conf/files.xen cvs rdiff -u -r1.10 -r0 src/sys/arch/xen/i386/npx_hv.c cvs rdiff -u -r1.95 -r1.96 src/sys/arch/xen/x86/cpu.c cvs rdiff -u -r1.14 -r1.15 src/sys/arch/xen/x86/xen_ipi.c cvs rdiff -u -r1.62 -r1.63 src/sys/arch/xen/xen/hypervisor.c cvs rdiff -u -r1.155 -r1.156 src/sys/compat/linux/arch/i386/linux_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.