Module Name: src Committed By: bouyer Date: Sat May 2 16:44:36 UTC 2020
Modified Files: src/sys/arch/amd64/amd64: autoconf.c genassym.cf locore.S machdep.c src/sys/arch/amd64/conf: GENERIC src/sys/arch/i386/i386: autoconf.c genassym.cf locore.S machdep.c src/sys/arch/x86/acpi: acpi_machdep.c src/sys/arch/x86/include: cpu.h src/sys/arch/x86/isa: clock.c isa_machdep.c src/sys/arch/x86/x86: consinit.c cpu.c lapic.c pmap.c x86_autoconf.c x86_machdep.c src/sys/arch/xen/conf: Makefile.xen files.xen src/sys/arch/xen/include: hypervisor.h xen.h src/sys/arch/xen/x86: autoconf.c hypervisor_machdep.c x86_xpmap.c xen_mainbus.c src/sys/arch/xen/xen: hypervisor.c xen_clock.c xen_machdep.c Added Files: src/sys/arch/xen/x86: pvh_consinit.c Log Message: Introduce Xen PVH support in GENERIC. This is compiled in with options XENPVHVM x86 changes: - add Xen section and xen pvh entry points to locore.S. Set vm_guest to VM_GUEST_XENPVH in this entry point. Most of the boot procedure (especially page table setup and switch to paged mode) is shared with native. - change some x86_delay() to delay_func(), which points to x86_delay() for native/HVM, and xen_delay() for PVH Xen changes: - remove Xen bits from init_x86_64_ksyms() and init386_ksyms() and move to xen_init_ksyms(), used for both PV and PVH - set ISA no-legacy-devices property for PVH - factor out code from Xen's cpu_bootconf() to xen_bootconf() in xen_machdep.c - set up a specific pvh_consinit() which starts with printk() (which uses a simple hypercall that is available early) and switch to xencons when we can use pmap_kenter_pa(). To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/arch/amd64/amd64/autoconf.c cvs rdiff -u -r1.83 -r1.84 src/sys/arch/amd64/amd64/genassym.cf cvs rdiff -u -r1.205 -r1.206 src/sys/arch/amd64/amd64/locore.S cvs rdiff -u -r1.351 -r1.352 src/sys/arch/amd64/amd64/machdep.c cvs rdiff -u -r1.566 -r1.567 src/sys/arch/amd64/conf/GENERIC cvs rdiff -u -r1.106 -r1.107 src/sys/arch/i386/i386/autoconf.c cvs rdiff -u -r1.121 -r1.122 src/sys/arch/i386/i386/genassym.cf cvs rdiff -u -r1.181 -r1.182 src/sys/arch/i386/i386/locore.S cvs rdiff -u -r1.828 -r1.829 src/sys/arch/i386/i386/machdep.c cvs rdiff -u -r1.29 -r1.30 src/sys/arch/x86/acpi/acpi_machdep.c cvs rdiff -u -r1.124 -r1.125 src/sys/arch/x86/include/cpu.h cvs rdiff -u -r1.37 -r1.38 src/sys/arch/x86/isa/clock.c cvs rdiff -u -r1.45 -r1.46 src/sys/arch/x86/isa/isa_machdep.c cvs rdiff -u -r1.32 -r1.33 src/sys/arch/x86/x86/consinit.c cvs rdiff -u -r1.188 -r1.189 src/sys/arch/x86/x86/cpu.c cvs rdiff -u -r1.77 -r1.78 src/sys/arch/x86/x86/lapic.c cvs rdiff -u -r1.386 -r1.387 src/sys/arch/x86/x86/pmap.c cvs rdiff -u -r1.81 -r1.82 src/sys/arch/x86/x86/x86_autoconf.c cvs rdiff -u -r1.140 -r1.141 src/sys/arch/x86/x86/x86_machdep.c cvs rdiff -u -r1.49 -r1.50 src/sys/arch/xen/conf/Makefile.xen cvs rdiff -u -r1.182 -r1.183 src/sys/arch/xen/conf/files.xen cvs rdiff -u -r1.51 -r1.52 src/sys/arch/xen/include/hypervisor.h cvs rdiff -u -r1.46 -r1.47 src/sys/arch/xen/include/xen.h cvs rdiff -u -r1.24 -r1.25 src/sys/arch/xen/x86/autoconf.c cvs rdiff -u -r1.38 -r1.39 src/sys/arch/xen/x86/hypervisor_machdep.c cvs rdiff -u -r0 -r1.1 src/sys/arch/xen/x86/pvh_consinit.c cvs rdiff -u -r1.85 -r1.86 src/sys/arch/xen/x86/x86_xpmap.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/xen/x86/xen_mainbus.c cvs rdiff -u -r1.78 -r1.79 src/sys/arch/xen/xen/hypervisor.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/xen/xen/xen_clock.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/xen/xen/xen_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.