Module Name: src Committed By: manu Date: Fri Sep 13 02:19:46 UTC 2019
Modified Files: src/sys/arch/i386/include: Makefile src/sys/arch/i386/stand/boot: Makefile.boot src/sys/arch/i386/stand/dosboot: Makefile src/sys/arch/i386/stand/efiboot: Makefile.efiboot boot.c efiboot.c efiboot.h eficons.c efimemory.c src/sys/arch/i386/stand/efiboot/bootia32: Makefile efibootia32.c src/sys/arch/i386/stand/efiboot/bootx64: Makefile efibootx64.c src/sys/arch/i386/stand/lib: Makefile biosdisk.c biosdisk.h bootinfo_memmap.c exec.c libi386.h multiboot.S pread.c src/sys/arch/i386/stand/netboot: Makefile.netboot src/sys/arch/i386/stand/pxeboot: Makefile Added Files: src/sys/arch/i386/include: multiboot2.h src/sys/arch/i386/stand/efiboot/bootia32: multiboot32.S src/sys/arch/i386/stand/efiboot/bootx64: multiboot64.S src/sys/arch/i386/stand/lib: exec_multiboot1.c exec_multiboot2.c Log Message: 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 To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 src/sys/arch/i386/include/Makefile cvs rdiff -u -r0 -r1.1 src/sys/arch/i386/include/multiboot2.h cvs rdiff -u -r1.72 -r1.73 src/sys/arch/i386/stand/boot/Makefile.boot cvs rdiff -u -r1.31 -r1.32 src/sys/arch/i386/stand/dosboot/Makefile cvs rdiff -u -r1.15 -r1.16 src/sys/arch/i386/stand/efiboot/Makefile.efiboot \ src/sys/arch/i386/stand/efiboot/boot.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/i386/stand/efiboot/efiboot.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/i386/stand/efiboot/efiboot.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/i386/stand/efiboot/eficons.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/i386/stand/efiboot/efimemory.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/i386/stand/efiboot/bootia32/Makefile cvs rdiff -u -r1.4 -r1.5 \ src/sys/arch/i386/stand/efiboot/bootia32/efibootia32.c cvs rdiff -u -r0 -r1.1 src/sys/arch/i386/stand/efiboot/bootia32/multiboot32.S cvs rdiff -u -r1.1 -r1.2 src/sys/arch/i386/stand/efiboot/bootx64/Makefile cvs rdiff -u -r1.4 -r1.5 src/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c cvs rdiff -u -r0 -r1.1 src/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S cvs rdiff -u -r1.46 -r1.47 src/sys/arch/i386/stand/lib/Makefile cvs rdiff -u -r1.51 -r1.52 src/sys/arch/i386/stand/lib/biosdisk.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/i386/stand/lib/biosdisk.h cvs rdiff -u -r1.5 -r1.6 src/sys/arch/i386/stand/lib/bootinfo_memmap.c cvs rdiff -u -r1.73 -r1.74 src/sys/arch/i386/stand/lib/exec.c cvs rdiff -u -r0 -r1.1 src/sys/arch/i386/stand/lib/exec_multiboot1.c \ src/sys/arch/i386/stand/lib/exec_multiboot2.c cvs rdiff -u -r1.44 -r1.45 src/sys/arch/i386/stand/lib/libi386.h cvs rdiff -u -r1.2 -r1.3 src/sys/arch/i386/stand/lib/multiboot.S cvs rdiff -u -r1.7 -r1.8 src/sys/arch/i386/stand/lib/pread.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/i386/stand/netboot/Makefile.netboot cvs rdiff -u -r1.25 -r1.26 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.