Module Name: src Committed By: martin Date: Tue Sep 17 19:32:01 UTC 2019
Modified Files: src/share/man/man8/man8.x86 [netbsd-9]: boot.8 src/sys/arch/i386/include [netbsd-9]: Makefile src/sys/arch/i386/stand/boot [netbsd-9]: Makefile.boot src/sys/arch/i386/stand/dosboot [netbsd-9]: Makefile src/sys/arch/i386/stand/efiboot [netbsd-9]: Makefile.efiboot boot.c efiboot.c efiboot.h eficons.c efimemory.c src/sys/arch/i386/stand/efiboot/bootia32 [netbsd-9]: Makefile efibootia32.c src/sys/arch/i386/stand/efiboot/bootx64 [netbsd-9]: Makefile efibootx64.c src/sys/arch/i386/stand/lib [netbsd-9]: Makefile biosdisk.c biosdisk.h bootinfo_memmap.c exec.c libi386.h multiboot.S pread.c src/sys/arch/i386/stand/netboot [netbsd-9]: Makefile.netboot src/sys/arch/i386/stand/pxeboot [netbsd-9]: Makefile Added Files: src/sys/arch/i386/include [netbsd-9]: multiboot2.h src/sys/arch/i386/stand/efiboot/bootia32 [netbsd-9]: multiboot32.S src/sys/arch/i386/stand/efiboot/bootx64 [netbsd-9]: multiboot64.S src/sys/arch/i386/stand/lib [netbsd-9]: exec_multiboot1.c exec_multiboot2.c Log Message: Pull up following revision(s) (requested by manu in ticket #203): sys/arch/i386/include/multiboot2.h: revision 1.1 sys/arch/i386/stand/lib/exec.c: revision 1.74 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.11 sys/arch/i386/stand/efiboot/bootia32/multiboot32.S: revision 1.1 sys/arch/i386/stand/lib/biosdisk.c: revision 1.52 sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.5 sys/arch/i386/stand/efiboot/eficons.c: revision 1.7 sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.5 sys/arch/i386/stand/lib/libi386.h: revision 1.45 sys/arch/i386/stand/lib/bootinfo_memmap.c: revision 1.6 sys/arch/i386/stand/lib/pread.c: revision 1.8 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.10 sys/arch/i386/stand/efiboot/bootia32/Makefile: revision 1.3 sys/arch/i386/stand/lib/Makefile: revision 1.47 sys/arch/i386/stand/efiboot/bootx64/Makefile: revision 1.2 sys/arch/i386/stand/lib/multiboot.S: revision 1.3 sys/arch/i386/stand/efiboot/bootx64/multiboot64.S: revision 1.1 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.16 sys/arch/i386/include/Makefile: revision 1.50 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.16 share/man/man8/man8.x86/boot.8: revision 1.20 sys/arch/i386/stand/boot/Makefile.boot: revision 1.73 sys/arch/i386/stand/pxeboot/Makefile: revision 1.26 sys/arch/i386/stand/lib/exec_multiboot1.c: revision 1.1 sys/arch/i386/stand/netboot/Makefile.netboot: revision 1.11 sys/arch/i386/stand/lib/exec_multiboot2.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk.h: revision 1.12 sys/arch/i386/stand/lib/exec_multiboot2.c: revision 1.2 sys/arch/i386/stand/dosboot/Makefile: revision 1.32 Add multiboot 2 support to x86 bootloaders multiboot 2 is required to boot Xen on an EFI system. This also require a kernel patch for properly discovering the ACPI RSDP, which is available after 20190912, in src/sys/arch/x86/acpi/acpi_machdep.c 1.26-1.28 There are a few missing bit in this multiboot 2 implementation (which are unused by Xen): - Header tags Address, Freambuffer, and Relocatable are ignored - Tags APM and Network are not provided - Tags ACPI old and ACP new are only provided for ACPI boot - Tag boot device does not provides the subpart (BSD disklabel partition) Notes: - multiboot2 is disabled in dosboot, otherwise the binary gets too big and build fails. - in src/sys/arch/i386/stand/efiboot, consinit() is renamed as efi_consinit() to avoid prototype conflicts in src/sys/sys/systm.h Remove debug define. It remained there unseen because it was misspelled! Remove obsoeolete BUGS note that UEFI bootloader does not support multiboot To generate a diff of this commit: cvs rdiff -u -r1.15.2.1 -r1.15.2.2 src/share/man/man8/man8.x86/boot.8 cvs rdiff -u -r1.49 -r1.49.4.1 src/sys/arch/i386/include/Makefile cvs rdiff -u -r0 -r1.1.2.2 src/sys/arch/i386/include/multiboot2.h cvs rdiff -u -r1.72 -r1.72.4.1 src/sys/arch/i386/stand/boot/Makefile.boot cvs rdiff -u -r1.31 -r1.31.6.1 src/sys/arch/i386/stand/dosboot/Makefile cvs rdiff -u -r1.15 -r1.15.2.1 \ src/sys/arch/i386/stand/efiboot/Makefile.efiboot cvs rdiff -u -r1.13.2.1 -r1.13.2.2 src/sys/arch/i386/stand/efiboot/boot.c cvs rdiff -u -r1.10 -r1.10.2.1 src/sys/arch/i386/stand/efiboot/efiboot.c cvs rdiff -u -r1.9 -r1.9.2.1 src/sys/arch/i386/stand/efiboot/efiboot.h cvs rdiff -u -r1.6 -r1.6.6.1 src/sys/arch/i386/stand/efiboot/eficons.c cvs rdiff -u -r1.8 -r1.8.2.1 src/sys/arch/i386/stand/efiboot/efimemory.c cvs rdiff -u -r1.2 -r1.2.24.1 \ src/sys/arch/i386/stand/efiboot/bootia32/Makefile cvs rdiff -u -r1.4 -r1.4.6.1 \ src/sys/arch/i386/stand/efiboot/bootia32/efibootia32.c cvs rdiff -u -r0 -r1.1.2.2 \ src/sys/arch/i386/stand/efiboot/bootia32/multiboot32.S cvs rdiff -u -r1.1 -r1.1.26.1 \ src/sys/arch/i386/stand/efiboot/bootx64/Makefile cvs rdiff -u -r1.4 -r1.4.6.1 \ src/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c cvs rdiff -u -r0 -r1.1.2.2 \ src/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S cvs rdiff -u -r1.45.8.1 -r1.45.8.2 src/sys/arch/i386/stand/lib/Makefile cvs rdiff -u -r1.49.6.1 -r1.49.6.2 src/sys/arch/i386/stand/lib/biosdisk.c cvs rdiff -u -r1.10.6.1 -r1.10.6.2 src/sys/arch/i386/stand/lib/biosdisk.h cvs rdiff -u -r1.5 -r1.5.70.1 src/sys/arch/i386/stand/lib/bootinfo_memmap.c cvs rdiff -u -r1.73 -r1.73.2.1 src/sys/arch/i386/stand/lib/exec.c cvs rdiff -u -r0 -r1.1.2.2 src/sys/arch/i386/stand/lib/exec_multiboot1.c cvs rdiff -u -r0 -r1.2.2.2 src/sys/arch/i386/stand/lib/exec_multiboot2.c cvs rdiff -u -r1.44 -r1.44.2.1 src/sys/arch/i386/stand/lib/libi386.h cvs rdiff -u -r1.2 -r1.2.20.1 src/sys/arch/i386/stand/lib/multiboot.S cvs rdiff -u -r1.7 -r1.7.70.1 src/sys/arch/i386/stand/lib/pread.c cvs rdiff -u -r1.10 -r1.10.34.1 \ src/sys/arch/i386/stand/netboot/Makefile.netboot cvs rdiff -u -r1.25 -r1.25.6.1 src/sys/arch/i386/stand/pxeboot/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.