Module Name: src Committed By: martin Date: Wed Sep 18 17:30:06 UTC 2019
Modified Files: src/distrib/sets/lists/comp [netbsd-8]: md.amd64 md.i386 src/share/man/man8/man8.x86 [netbsd-8]: boot.8 src/sys/arch/i386/include [netbsd-8]: Makefile src/sys/arch/i386/stand/boot [netbsd-8]: Makefile.boot src/sys/arch/i386/stand/dosboot [netbsd-8]: Makefile src/sys/arch/i386/stand/efiboot [netbsd-8]: Makefile.efiboot boot.c efiboot.c efiboot.h eficons.c efimemory.c src/sys/arch/i386/stand/efiboot/bootia32 [netbsd-8]: Makefile efibootia32.c src/sys/arch/i386/stand/efiboot/bootx64 [netbsd-8]: Makefile efibootx64.c src/sys/arch/i386/stand/lib [netbsd-8]: Makefile biosdisk.c biosdisk.h bootinfo_memmap.c exec.c libi386.h multiboot.S pread.c src/sys/arch/i386/stand/netboot [netbsd-8]: Makefile.netboot src/sys/arch/i386/stand/pxeboot [netbsd-8]: Makefile src/sys/external/bsd/gnu-efi/dist/inc [netbsd-8]: efiapi.h Added Files: src/sys/arch/i386/include [netbsd-8]: multiboot2.h src/sys/arch/i386/stand/efiboot/bootia32 [netbsd-8]: multiboot32.S src/sys/arch/i386/stand/efiboot/bootx64 [netbsd-8]: multiboot64.S src/sys/arch/i386/stand/lib [netbsd-8]: exec_multiboot1.c exec_multiboot2.c Log Message: Pull up following revision(s) [adapted, via patch] (requested by manu in ticket #1382): 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 distrib/sets/lists/comp/md.amd64: revision 1.273 sys/arch/i386/stand/efiboot/eficons.c: revision 1.7 sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.5 distrib/sets/lists/comp/md.i386: revision 1.191 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 sys/external/bsd/gnu-efi/dist/inc/efiapi.h (apply patch) 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 Add new multiboot2.h header. To generate a diff of this commit: cvs rdiff -u -r1.243.4.1 -r1.243.4.2 src/distrib/sets/lists/comp/md.amd64 cvs rdiff -u -r1.167.4.1 -r1.167.4.2 src/distrib/sets/lists/comp/md.i386 cvs rdiff -u -r1.11.4.3 -r1.11.4.4 src/share/man/man8/man8.x86/boot.8 cvs rdiff -u -r1.44 -r1.44.10.1 src/sys/arch/i386/include/Makefile cvs rdiff -u -r0 -r1.1.4.2 src/sys/arch/i386/include/multiboot2.h cvs rdiff -u -r1.70 -r1.70.6.1 src/sys/arch/i386/stand/boot/Makefile.boot cvs rdiff -u -r1.30 -r1.30.10.1 src/sys/arch/i386/stand/dosboot/Makefile cvs rdiff -u -r1.9.2.4 -r1.9.2.5 \ src/sys/arch/i386/stand/efiboot/Makefile.efiboot cvs rdiff -u -r1.5.2.7 -r1.5.2.8 src/sys/arch/i386/stand/efiboot/boot.c cvs rdiff -u -r1.4.10.4 -r1.4.10.5 src/sys/arch/i386/stand/efiboot/efiboot.c cvs rdiff -u -r1.5.2.4 -r1.5.2.5 src/sys/arch/i386/stand/efiboot/efiboot.h cvs rdiff -u -r1.4.2.2 -r1.4.2.3 src/sys/arch/i386/stand/efiboot/eficons.c cvs rdiff -u -r1.4.10.2 -r1.4.10.3 \ src/sys/arch/i386/stand/efiboot/efimemory.c cvs rdiff -u -r1.2 -r1.2.10.1 \ src/sys/arch/i386/stand/efiboot/bootia32/Makefile cvs rdiff -u -r1.3.2.1 -r1.3.2.2 \ src/sys/arch/i386/stand/efiboot/bootia32/efibootia32.c cvs rdiff -u -r0 -r1.1.4.2 \ src/sys/arch/i386/stand/efiboot/bootia32/multiboot32.S cvs rdiff -u -r1.1 -r1.1.12.1 \ src/sys/arch/i386/stand/efiboot/bootx64/Makefile cvs rdiff -u -r1.3.2.1 -r1.3.2.2 \ src/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c cvs rdiff -u -r0 -r1.1.4.2 \ src/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S cvs rdiff -u -r1.44.10.1 -r1.44.10.2 src/sys/arch/i386/stand/lib/Makefile cvs rdiff -u -r1.46.6.4 -r1.46.6.5 src/sys/arch/i386/stand/lib/biosdisk.c cvs rdiff -u -r1.8.52.3 -r1.8.52.4 src/sys/arch/i386/stand/lib/biosdisk.h cvs rdiff -u -r1.5 -r1.5.58.1 src/sys/arch/i386/stand/lib/bootinfo_memmap.c cvs rdiff -u -r1.68.6.1 -r1.68.6.2 src/sys/arch/i386/stand/lib/exec.c cvs rdiff -u -r0 -r1.1.4.2 src/sys/arch/i386/stand/lib/exec_multiboot1.c cvs rdiff -u -r0 -r1.2.4.2 src/sys/arch/i386/stand/lib/exec_multiboot2.c cvs rdiff -u -r1.42.6.1 -r1.42.6.2 src/sys/arch/i386/stand/lib/libi386.h cvs rdiff -u -r1.2 -r1.2.8.1 src/sys/arch/i386/stand/lib/multiboot.S cvs rdiff -u -r1.7 -r1.7.58.1 src/sys/arch/i386/stand/lib/pread.c cvs rdiff -u -r1.10 -r1.10.22.1 \ src/sys/arch/i386/stand/netboot/Makefile.netboot cvs rdiff -u -r1.24 -r1.24.10.1 src/sys/arch/i386/stand/pxeboot/Makefile cvs rdiff -u -r1.2 -r1.2.8.1 src/sys/external/bsd/gnu-efi/dist/inc/efiapi.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.