Up to [cvs.NetBSD.org] / src / sys / arch / i386 / stand / efiboot / bootia32
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Pull up following revision(s) (requested by rin in ticket #452): sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.7 sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.23 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.10 sys/arch/i386/stand/efiboot/devopen.c: revision 1.14 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.10 x86/efiboot: Nix trailing whitespace. whitespace -> tab, blank line, no binary changes. ``int i'' is used only for SUPPORT_NFS || SUPPORT_TFTP.
whitespace -> tab, blank line, no binary changes.
x86/efiboot: Nix trailing whitespace.
Pull up following revision(s) (requested by manu in ticket #159): share/man/man8/man8.x86/boot.8: revision 1.27 sys/arch/i386/stand/efiboot/version: revision 1.3 share/man/man8/man8.x86/boot.8: revision 1.28 share/man/man8/man8.x86/boot.8: revision 1.29 sys/arch/i386/stand/lib/exec.c: revision 1.79 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.13 sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.6 sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.6 sys/arch/i386/stand/efiboot/boot.c: revision 1.22 sys/arch/amd64/amd64/locore.S: revision 1.219 sys/arch/i386/stand/efiboot/bootia32/startprog32.S: revision 1.3 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.12 sys/arch/amd64/conf/files.amd64: revision 1.121 sys/arch/amd64/conf/std.amd64: revision 1.13 share/man/man8/man8.x86/pxeboot.8: revision 1.6 sys/arch/i386/stand/efiboot/bootx64/startprog64.S: revision 1.4 sys/arch/amd64/amd64/locore.S: revision 1.220 share/man/man8/man8.x86/dosboot.8: revision 1.4 share/man/man4/options.4: revision 1.524 Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address EFI bootstrap assumes it can copy the amd64 kernel to its ELF load address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can clash with previous UEFI memory allocation, as described here: http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html This change adds a reloc keyword for controling where the EFI boostrap will copy the kernel image. Possible values are: default - the default and prior behavior, copy at 0x200000. none - do not copy and use the kernel image where it was loaded. address - specify an explicit address where to copy the kernel. This comes with an amd64 kernel patch that makes it self-relocatable. It first discover where it was loaded in memory, and if this is different than the expected 0x200000, hhe the kernel relocates itself and start over at the right address. Merge x86 boot options in x86/boot(8) and add undocumented UEFI options We were supposed to keep the option list in x86/boot(8), x86/dosoot(8) and x86/pxeboot(8) in sync, but it did not happen, hence it may work better with all the options in x86/boot(8). Also add the undocumented UEFI boot options. Add a SELFRELOC kernel option for the sake of documentation clarity. Instead of telling that x86/boot(8) reloc command needs a kernel able to self relocate, we can tell it needs a kernel built with the SELFRELOC option. This keeps the reader from wondering what could make a kernel able to self relocate. Remove XXX todo marker left by mistake Raise the version for new feature (here reloc command) Suggested by Masanobu SAITOH
Pull up following revision(s) (requested by manu in ticket #1632): share/man/man8/man8.x86/boot.8: revision 1.27 sys/arch/i386/stand/efiboot/version: revision 1.3 share/man/man8/man8.x86/boot.8: revision 1.28 (via patch) share/man/man8/man8.x86/boot.8: revision 1.29 (via patch) sys/arch/i386/stand/lib/exec.c: revision 1.79 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.13 sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.6 sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.6 sys/arch/i386/stand/efiboot/boot.c: revision 1.22 sys/arch/amd64/amd64/locore.S: revision 1.219 sys/arch/i386/stand/efiboot/bootia32/startprog32.S: revision 1.3 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.12 sys/arch/amd64/conf/files.amd64: revision 1.121 sys/arch/amd64/conf/std.amd64: revision 1.13 share/man/man8/man8.x86/pxeboot.8: revision 1.6 sys/arch/i386/stand/efiboot/bootx64/startprog64.S: revision 1.4 sys/arch/amd64/amd64/locore.S: revision 1.220 share/man/man8/man8.x86/dosboot.8: revision 1.4 share/man/man4/options.4: revision 1.524 Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address EFI bootstrap assumes it can copy the amd64 kernel to its ELF load address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can clash with previous UEFI memory allocation, as described here: http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html This change adds a reloc keyword for controling where the EFI boostrap will copy the kernel image. Possible values are: default - the default and prior behavior, copy at 0x200000. none - do not copy and use the kernel image where it was loaded. address - specify an explicit address where to copy the kernel. This comes with an amd64 kernel patch that makes it self-relocatable. It first discover where it was loaded in memory, and if this is different than the expected 0x200000, hhe the kernel relocates itself and start over at the right address. Merge x86 boot options in x86/boot(8) and add undocumented UEFI options We were supposed to keep the option list in x86/boot(8), x86/dosoot(8) and x86/pxeboot(8) in sync, but it did not happen, hence it may work better with all the options in x86/boot(8). Also add the undocumented UEFI boot options. Add a SELFRELOC kernel option for the sake of documentation clarity. Instead of telling that x86/boot(8) reloc command needs a kernel able to self relocate, we can tell it needs a kernel built with the SELFRELOC option. This keeps the reader from wondering what could make a kernel able to self relocate. Remove XXX todo marker left by mistake Raise the version for new feature (here reloc command) Suggested by Masanobu SAITOH
Add reloc keyworkd to let EFI bootstrap load amd64 kernel at any address EFI bootstrap assumes it can copy the amd64 kernel to its ELF load address (that is KERNTEXTOFF - KERNBASE = 0x200000), but it can clash with previous UEFI memory allocation, as described here: http://mail-index.netbsd.org/tech-kern/2023/04/07/msg028833.html This change adds a reloc keyword for controling where the EFI boostrap will copy the kernel image. Possible values are: default - the default and prior behavior, copy at 0x200000. none - do not copy and use the kernel image where it was loaded. address - specify an explicit address where to copy the kernel. This comes with an amd64 kernel patch that makes it self-relocatable. It first discover where it was loaded in memory, and if this is different than the expected 0x200000, hhe the kernel relocates itself and start over at the right address.
Mostly merge changes from HEAD upto 20200411
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.
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
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
Pull up following revision(s) (requested by nonaka in ticket #685): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.4 sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.4 sys/arch/i386/stand/efiboot/eficons.c: revision 1.5 sys/arch/i386/stand/efiboot/efichar.c: revision 1.1 sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.4 sys/arch/i386/stand/efiboot/boot.c: revision 1.8 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidelay.c: revision 1.2 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.7 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.11 efiboot: Added serial console support.
Resolve conflicts between branch and HEAD
efiboot: Added serial console support.
update from HEAD
Sync with HEAD
Sync with HEAD - tag prg-localcount2-base1
file efibootia32.c was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
efiboot: Boot parameters can be set via installboot(8).
Sync with HEAD
1673439
file efibootia32.c was added on branch bouyer-socketcan on 2017-02-21 10:53:38 +0000
file efibootia32.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
fix to be able to boot amd64 kernel from 32bit efiboot (booia32.efi).
Sync with HEAD
file efibootia32.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
Initial commit of native amd64 EFI boot loader.