History log of /src/sys/arch/i386/stand/efiboot |
Revision | Date | Author | Comments |
1.5 | 08-Nov-2018 |
christos | revert previous; does not fix the issue
|
1.4 | 08-Nov-2018 |
christos | Don't build this as a PIE binary, PIE binaries need PHDR and this barfs under the new binutils: error: PHDR segment not covered by LOAD segment [including bsd.init.mk includes ../Makefile.inc which disables PIE like all the other bootloaders do]
|
1.3 | 08-Jul-2018 |
christos | use += :-)
|
1.2 | 08-Jul-2018 |
christos | Enable efiboot on i386, for 32 bit bootblocks
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.18; 1.1.20; 1.1.22; Initial commit of native amd64 EFI boot loader.
|
1.1.22.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.1.20.2 | 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
1.1.20.1 | 28-Jul-2018 |
pgoyette | Sync with HEAD
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file Makefile was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file Makefile was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file Makefile was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file Makefile was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.23 | 29-Jun-2024 |
rin | i386: stand: Retire its own nfs.c, and switch to libsa/nfs.c. NFC
|
1.22 | 24-Jul-2023 |
rin | efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''.
``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least.
Proposed as PR port-amd64/57523
|
1.21 | 03-Jun-2023 |
lukem | bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER
Provide a single variable CC_WNO_ADDRESS_OF_PACKED_MEMBER with options for both clang and gcc, to replace CLANG_NO_ADDR_OF_PACKED_MEMBER CC_NO_ADDR_OF_PACKED_MEMBER GCC_NO_ADDR_OF_PACKED_MEMBER
Using the convention CC_compilerflag, where compilerflag is based on the full compiler flag name.
|
1.20 | 25-Dec-2022 |
christos | Fix broken flag -nocombreloc, 2.34 did not complain for not understanding it, but 2.39 wants -z nocombreloc. Is it really needed?
|
1.19 | 18-Nov-2021 |
manu | branches: 1.19.4; Do not pass BIOS geometry when booting using EFI
Recent Mac return garbage data that will crash the code handling it, and EFI boot does not need it anyway.
|
1.18 | 06-Sep-2020 |
mrg | add support for new GCC 9 warnings that may be too much to fix right now. new address-of-packed-member and format-overflow warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.
apply to a bunch of the tree. mostly, these are real bugs that should be fixed, but in many cases, only by removing the 'packed' attribute from some structure that doesn't really need it. (i looked at many different ones, and while perhaps 60-80% were already properly aligned, it wasn't clear to me that the uses were always coming from sane data vs network alignment, so it doesn't seem safe to remove packed without careful research for each affect struct.) clang already warned (and was not erroring) for many of these cases, but gcc picked up dozens more.
|
1.17 | 04-Apr-2020 |
christos | Add --noinhibit-exec and --no-dynamic-linker
|
1.16 | 13-Sep-2019 |
manu | 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
|
1.15 | 26-Jul-2019 |
nonaka | branches: 1.15.2; Added tftp support to x86 efiboot.
|
1.14 | 25-Jul-2018 |
kamil | Specify NOLIBCSANITIZER in x86 bootloader-like code under sys/arch/
Set NOLIBCSANITIZER for i386 and amd64 specific bootloader-like code.
|
1.13 | 02-Jun-2018 |
christos | branches: 1.13.2; - Disable MKSANITIZER - Redo using NOPIE - Add NORELRO
|
1.12 | 11-Apr-2018 |
nonaka | efiboot: Added network boot support.
|
1.11 | 27-Mar-2018 |
nonaka | efiboot: Added serial console support.
|
1.10 | 08-Mar-2018 |
nonaka | efiboot: system can boot from CD/DVD-ROM media.
|
1.9 | 29-Apr-2017 |
nonaka | branches: 1.9.2; 1.9.8; 1.9.10; efiboot: Boot parameters can be set via installboot(8).
|
1.8 | 08-Apr-2017 |
christos | branches: 1.8.4; 1.8.6; centralize vers.c building for standalone programs.
|
1.7 | 11-Feb-2017 |
nonaka | branches: 1.7.2; efiboot: pass memory map after ExitBootService is called to kernel.
|
1.6 | 06-Feb-2017 |
nonaka | Remove unnecessary flag.
|
1.5 | 05-Feb-2017 |
joerg | branches: 1.5.2; Unbreak clang again.
|
1.4 | 04-Feb-2017 |
christos | Don't error out for set but unused variables for now.
|
1.3 | 04-Feb-2017 |
roy | Mark reboot() and _rtt() as __dead. Use __builtin_unreachable() to ensure Panic really is marked dead.
Thanks to joerg@
|
1.2 | 03-Feb-2017 |
roy | Fix build with clang.
|
1.1 | 24-Jan-2017 |
nonaka | Initial commit of native amd64 EFI boot loader.
|
1.5.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.5.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.5.2.1 | 05-Feb-2017 |
skrll | file Makefile.efiboot was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.7.2.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.7.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.7.2.1 | 11-Feb-2017 |
pgoyette | file Makefile.efiboot was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.8.6.1 | 02-May-2017 |
pgoyette | Sync with HEAD - tag prg-localcount2-base1
|
1.8.4.2 | 08-Apr-2017 |
christos | 1249242
|
1.8.4.1 | 08-Apr-2017 |
christos | file Makefile.efiboot was added on branch bouyer-socketcan on 2017-04-08 19:53:22 +0000
|
1.9.10.5 | 28-Jul-2018 |
pgoyette | Sync with HEAD
|
1.9.10.4 | 25-Jun-2018 |
pgoyette | Sync with HEAD
|
1.9.10.3 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.9.10.2 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.9.10.1 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.9.8.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.9.8.1 | 29-Apr-2017 |
jdolecek | file Makefile.efiboot was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.9.2.6 | 15-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #1897):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13 sys/arch/i386/stand/efiboot/eficons.c: revision 1.14
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
efiboot/x86: eficons.c: Explicitly include params.h for howmany()
NFC for -current and netbsd-10, but necessary for netbsd-[89] to pull up raw IO serial port support (PR port-amd64/57523).
|
1.9.2.5 | 18-Sep-2019 |
martin | 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.
|
1.9.2.4 | 01-Aug-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1309):
sys/arch/i386/stand/lib/exec.c: revision 1.73 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.10 sys/arch/i386/stand/lib/libi386.h: revision 1.44 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.6 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.7 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.8 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.12 sys/arch/i386/stand/efiboot/boot.c: revision 1.13 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.9 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.15 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.2
Added tftp support to x86 efiboot.
Pre-allocate memory for the kernel space at startup.
Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
Sync the output of memmap command to the output of stand/efiboot mem command.
Added missing efi_memory_probe() call.
|
1.9.2.3 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.9.2.2 | 02-Apr-2018 |
martin | 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.
|
1.9.2.1 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.13.2.3 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.13.2.2 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.13.2.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.15.2.2 | 15-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #1732):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13 sys/arch/i386/stand/efiboot/eficons.c: revision 1.14
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
efiboot/x86: eficons.c: Explicitly include params.h for howmany()
NFC for -current and netbsd-10, but necessary for netbsd-[89] to pull up raw IO serial port support (PR port-amd64/57523).
|
1.15.2.1 | 17-Sep-2019 |
martin | 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
|
1.19.4.2 | 20-Sep-2024 |
martin | Pull up following revision(s) (requested by rin in ticket #894):
sys/arch/i386/stand/Makefile.booters: revision 1.98 sys/lib/libsa/nfsv3.h: revision 1.1 sys/lib/libsa/rpcv2.h: revision 1.4 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.23 sys/lib/libsa/nfsv2.h: revision 1.5 sys/lib/libsa/nfs.c: revision 1.51 sys/lib/libsa/nfs.c: revision 1.52 sys/arch/i386/stand/libsa/nfs.c: file removal sys/lib/libsa/nfs.c: revision 1.53 sys/arch/i386/stand/libsa/nfs.c: revision 1.20 sys/arch/i386/stand/libsa/nfs.c: revision 1.21 sys/arch/i386/stand/pxeboot/Makefile: revision 1.29
Add NFSv3 support. Try NFSv3 and fall back to NFSv2.
Merge with generic libsa NFS code to minimize differences and to learn NFSv3.
libsa: nfs: Fix NFS_NOSYMLINK option for previous Used only by mvme68k.
Align again with libsa (NFS_NOSYMLINK fix).
libsa/nfs.c: Add `LIBSA_NFS_IMPLICIT_MOUNT` compile-time option by which nfs_mount() is automatically called from nfs_open(), as done for nfs.c in i386/stand.
This is only functional difference b/w two copies of nfs.c. Now, we can safely retire the latter. XXX It would be really nice to drop this option also. However, unfortunately, it is too much for me at the very moment...
i386: stand: Retire its own nfs.c, and switch to libsa/nfs.c. NFC
|
1.19.4.1 | 11-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #361):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
|
1.5 | 02-Apr-2018 |
nonaka | efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.4 | 08-Mar-2018 |
nonaka | efiboot: system can boot from CD/DVD-ROM media.
|
1.3 | 12-Mar-2017 |
nonaka | branches: 1.3.2; 1.3.6; 1.3.10; 1.3.14; 1.3.18; 1.3.20; Remove `fix module_init()' entry.
I've been committed.
|
1.2 | 21-Feb-2017 |
nonaka | fix to be able to boot amd64 kernel from 32bit efiboot (booia32.efi).
|
1.1 | 11-Feb-2017 |
nonaka | Added efiboot TODO.
|
1.3.20.2 | 07-Apr-2018 |
pgoyette | Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
|
1.3.20.1 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.3.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.3.18.1 | 12-Mar-2017 |
jdolecek | file TODO.efiboot was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.3.14.2 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.3.14.1 | 12-Mar-2017 |
skrll | file TODO.efiboot was added on branch nick-nhusb on 2017-08-28 17:51:41 +0000
|
1.3.10.2 | 04-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #692):
sys/arch/i386/stand/efiboot/devopen.c: revision 1.4 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.5 sys/arch/i386/stand/efiboot/devopen.h: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.3 sys/lib/libsa/bootcfg.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.9 sys/lib/libsa/bootcfg.c: revision 1.3 sys/arch/i386/stand/lib/bootmenu.c: revision 1.17 sys/arch/i386/stand/lib/biosdisk.c: revision 1.49 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.5 sys/arch/i386/stand/lib/bootmenu.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.h: revision 1.10
efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.3.10.1 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.3.6.2 | 12-Mar-2017 |
nonaka | 1673508
|
1.3.6.1 | 12-Mar-2017 |
nonaka | file TODO.efiboot was added on branch bouyer-socketcan on 2017-03-12 06:37:42 +0000
|
1.3.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.3.2.1 | 12-Mar-2017 |
pgoyette | file TODO.efiboot was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.34 | 09-Oct-2025 |
manu | Add support for USB-to-serial adapter in UEFI bootstrap.
This change lets UEFI bootstrap use any UEFI supported serial port. com0 to com3 remain used for EISA based serial ports. com4 and over are used for serial ports based on something else (USB, PCI or whatever).
Support for non-EISA serial ports may be provided by UEFI. An open source UEFI driver exists for FTDI FT232R USB-to-serial adapter.
The change also introduce the kconsdev command, to select the kernel console device without altering the bootstrap console device. This useful because the device names can differ in bootstrap and kernel. For instance an USB-to-serial device could be com4 in boostrap and ucom0 for the kernel.
An upcoming change will add console suport to ucom(4).
|
1.33 | 31-Jul-2025 |
pgoyette | Reorder the names[] array to put the supported/historical entries first. Should eliminate some unwanted and confusing messages.
|
1.32 | 20-May-2025 |
pgoyette | branches: 1.32.2; Historically (prior to supporting the KERNEL_DIR build option), the boot-commands ``boot file'' and ``boot /file'' were equivalent and attempted to execute the same set of files. (In the boot-loader, all path (filename) lookups start at the root directory whether or not a leading slash is present.)
However, with the recent addition of support for the KERNEL_DIR option, the leading slash character resulted in skipping the attempt to load /file/kernel and /file/kernel.gz, and thus the boot loader will not attempt to boot from a new KERNEL_DIR environment if the leading slash is present. This commit restores attempting to load these files, thus making these two boot-commands once again equivalent in both legacy and KERNEL_DIR environments..
Changes were tested on both i386 (biosboot/qemu) and amd64 (both biosboot/qemu and efiboot/bare-metal). Correct behavior was observed using the filenames printed by a preexisting printf(). The output from ``boot'' commands without arguments was also confirmed to meet expectations, and commands other than ``boot'' continued to work as expected.
As discussed on tech-kern, port-i386, and port-amd64 mailing lists. The more extensive documentation requested by riastradh@ should have been dealt with more than five years ago with the initial KERNEL_DIR commit; this commit doesn't pretend to meet that request. As noted by kre@, the changes being made here are minor/trivial and highly unlikely to break anything. These changes only affect booting in new KERNEL_DIR environments; "legacy" environments are not affected.
|
1.31 | 20-May-2025 |
pgoyette | Reverrt previous. I will recomit with proper log message.
|
1.30 | 20-May-2025 |
pgoyette | /home/paul/COMMIT.txt
|
1.29 | 30-Apr-2025 |
pgoyette | Remove conditionals on KERNEL_DIR, and reorder the potential boot locations to put the legacy ones first. This allows us to use a single version of the bootstrap code regardless of the use of the KERNEL_DIR build option, and should avoid spurious error messages disrupting the automated testbeds.
Tested on i386 (non-KERNEL_DIR) and amd64 (both with and without KERNEL_DIR). In all cases the anita installations succeeded and the atf tests were initiated. Any remaining issues are most likely due to subtle changes in text interaction and will probably need updates to "expect" processing in anita.
If necessary this commit can be reverted, but please try to avoid more churn, and update the testbed drivers as appropriate. cvs: ----------------------------------------------------------------------
|
1.28 | 29-Apr-2025 |
pgoyette | KNF - blank linebetween data and code
Also make sure we leave space in the path[] for a possible '.gz' to be appended.
Both suggestions from kre@ - thanks
|
1.27 | 29-Apr-2025 |
pgoyette | Update to pathnames for booting under KERNEL_DIR
Tested on i386 (wwithout KERNEL_DIR) and amd64 (both with and without)
|
1.26 | 29-Apr-2025 |
martin | Backout /filename/kernel changes, this breaks default installs and needs more testing.
|
1.25 | 29-Apr-2025 |
pgoyette | If only a filename is given on the boot command, try /filename/kernel and /filename/kernel.gz, and then /filename to minimize differences between old andnew recovery procedures. No change to ``naked'' boot commands, nor to boot commands with pathname containing `;'
|
1.24 | 27-Apr-2025 |
pgoyette | Add new paths for kernel code when using KERNEL_DIR
|
1.23 | 14-May-2023 |
riastradh | branches: 1.23.6; x86/efiboot: Nix trailing whitespace.
|
1.22 | 20-Apr-2023 |
manu | 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.
|
1.21 | 08-Jun-2022 |
wiz | branches: 1.21.4; Do not use default entry's parameters for for plain "boot" command
Go back to the "menu" instead of you want that.
Patch from RVP in PR 56862, ok uwe@
|
1.20 | 07-Sep-2021 |
nia | Remove banner printing code from bootloaders, add it to libsa.
This harmonizes efiboot and the various x86 bootloaders to use shared code for printing the banner. By friendly coincidence, it also adds support for specifying 'banner=' in arm efiboot's boot.cfg, as on x86.
|
1.19 | 22-Jun-2021 |
nia | efiboot (x86): add ASCII art
|
1.18 | 30-May-2021 |
mlelstv | Add "root" command to provide a BTINFO_ROOTDEVICE parameter.
|
1.17 | 26-Sep-2019 |
nonaka | branches: 1.17.12; 1.17.14; x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.16 | 13-Sep-2019 |
manu | 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
|
1.15 | 02-Sep-2019 |
manu | Make sure devices names are copied including last byte
Fix from M. Levinson.
|
1.14 | 18-Aug-2019 |
manu | Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples: boot NAME=root:/netbsd boot raid0e:/netbsd
|
1.13 | 29-Jul-2019 |
nonaka | branches: 1.13.2; Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
|
1.12 | 26-Jul-2019 |
nonaka | Pre-allocate memory for the kernel space at startup.
|
1.11 | 20-Jun-2019 |
maxv | Add KASLR support in UEFI.
|
1.10 | 11-Apr-2018 |
nonaka | branches: 1.10.2; efiboot: Added network boot support.
|
1.9 | 02-Apr-2018 |
nonaka | efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.8 | 27-Mar-2018 |
nonaka | efiboot: Added serial console support.
|
1.7 | 20-Mar-2018 |
nonaka | efiboot: more pager.
|
1.6 | 08-Mar-2018 |
nonaka | efiboot: system can boot from CD/DVD-ROM media.
|
1.5 | 01-May-2017 |
nonaka | branches: 1.5.2; 1.5.8; 1.5.10; efiboot: implement consdev command.
no support to change console device for efiboot yet. only pass console parameters to kernel.
|
1.4 | 12-Mar-2017 |
nonaka | branches: 1.4.2; 1.4.6; 1.4.8; efiboot: Kernel modules are loaded in pre-allocated memory.
|
1.3 | 03-Mar-2017 |
nonaka | efiboot: fix efivar command.
|
1.2 | 03-Feb-2017 |
roy | branches: 1.2.2; rows is a uint ... it will always be greater than or equal to 0.
|
1.1 | 24-Jan-2017 |
nonaka | Initial commit of native amd64 EFI boot loader.
|
1.2.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.2.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.2.2.1 | 03-Feb-2017 |
skrll | file boot.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.4.8.1 | 02-May-2017 |
pgoyette | Sync with HEAD - tag prg-localcount2-base1
|
1.4.6.2 | 12-Mar-2017 |
nonaka | 1673328
|
1.4.6.1 | 12-Mar-2017 |
nonaka | file boot.c was added on branch bouyer-socketcan on 2017-03-12 05:33:49 +0000
|
1.4.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.4.2.1 | 12-Mar-2017 |
pgoyette | file boot.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.5.10.5 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.5.10.4 | 07-Apr-2018 |
pgoyette | Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
|
1.5.10.3 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.5.10.2 | 22-Mar-2018 |
pgoyette | Synch with HEAD, resolve conflicts
|
1.5.10.1 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.5.8.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.5.8.1 | 01-May-2017 |
jdolecek | file boot.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.5.2.9 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1392):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.5.2.8 | 18-Sep-2019 |
martin | 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.
|
1.5.2.7 | 17-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #1373):
sys/arch/i386/stand/boot/boot2.c: revision 1.72 (patch) sys/arch/i386/stand/lib/biosdisk.c: revision 1.50 sys/arch/i386/stand/lib/biosdisk.c: revision 1.51 sys/arch/i386/stand/efiboot/devopen.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.4 sys/arch/i386/stand/efiboot/devopen.c: revision 1.7 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8 share/man/man8/man8.x86/boot.8: revision 1.16 share/man/man8/man8.x86/boot.8: revision 1.17 sys/arch/i386/stand/lib/Makefile: revision 1.46 sys/arch/i386/stand/boot/devopen.h: revision 1.5 sys/arch/i386/stand/boot/devopen.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.14 (patch) sys/arch/i386/stand/efiboot/boot.c: revision 1.15 sys/arch/i386/stand/lib/biosdisk.h: revision 1.11 sys/arch/i386/stand/boot/boot2.c: revision 1.71
Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples:
boot NAME=root:/netbsd boot raid0e:/netbsd
Correct the memset(3)'s third argument in i386 biosdisk.c
The size of allocation is the size of the structure biosdisk, not the size of a pointer.
Document new GPT and RAIDframe capacity of bootstrap code While there, also document EFI setup and some bugs
Typo fixes, 'file system'; new sentence, new line; expand IA-32.
Bump date for previous.
Make sure devices names are copied including last byte Fix from M. Levinson.
|
1.5.2.6 | 01-Aug-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1309):
sys/arch/i386/stand/lib/exec.c: revision 1.73 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.10 sys/arch/i386/stand/lib/libi386.h: revision 1.44 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.6 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.7 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.8 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.12 sys/arch/i386/stand/efiboot/boot.c: revision 1.13 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.9 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.15 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.2
Added tftp support to x86 efiboot.
Pre-allocate memory for the kernel space at startup.
Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
Sync the output of memmap command to the output of stand/efiboot mem command.
Added missing efi_memory_probe() call.
|
1.5.2.5 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.5.2.4 | 04-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #692):
sys/arch/i386/stand/efiboot/devopen.c: revision 1.4 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.5 sys/arch/i386/stand/efiboot/devopen.h: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.3 sys/lib/libsa/bootcfg.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.9 sys/lib/libsa/bootcfg.c: revision 1.3 sys/arch/i386/stand/lib/bootmenu.c: revision 1.17 sys/arch/i386/stand/lib/biosdisk.c: revision 1.49 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.5 sys/arch/i386/stand/lib/bootmenu.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.h: revision 1.10
efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.5.2.3 | 02-Apr-2018 |
martin | 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.
|
1.5.2.2 | 21-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #648): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.c: revision 1.3 sys/arch/i386/stand/efiboot/boot.c: revision 1.7 sys/arch/i386/stand/lib/biosdisk.c: revision 1.48
efiboot: fix it can't boot from HDD.
efiboot: more pager.
efiboot: boot device is always efi_distlist first element.
efiboot: fix to find boot partition process. NetBSD related partitions with no bootme flag set are also candidates for boot partition.
|
1.5.2.1 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.10.2.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.13.2.4 | 13-May-2023 |
martin | 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
|
1.13.2.3 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #253):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.13.2.2 | 17-Sep-2019 |
martin | 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
|
1.13.2.1 | 13-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #200):
sys/arch/i386/stand/boot/boot2.c: revision 1.72 sys/arch/i386/stand/lib/biosdisk.c: revision 1.50 sys/arch/i386/stand/lib/biosdisk.c: revision 1.51 sys/arch/i386/stand/efiboot/devopen.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.4 sys/arch/i386/stand/efiboot/devopen.c: revision 1.7 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8 share/man/man8/man8.x86/boot.8: revision 1.16 share/man/man8/man8.x86/boot.8: revision 1.17 sys/arch/i386/stand/lib/Makefile: revision 1.46 sys/arch/i386/stand/boot/devopen.h: revision 1.5 sys/arch/i386/stand/boot/devopen.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.14 sys/arch/i386/stand/efiboot/boot.c: revision 1.15 sys/arch/i386/stand/lib/biosdisk.h: revision 1.11 sys/arch/i386/stand/boot/boot2.c: revision 1.71
Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples:
boot NAME=root:/netbsd boot raid0e:/netbsd
Correct the memset(3)'s third argument in i386 biosdisk.c
The size of allocation is the size of the structure biosdisk, not the size of a pointer.
Document new GPT and RAIDframe capacity of bootstrap code While there, also document EFI setup and some bugs
Typo fixes, 'file system'; new sentence, new line; expand IA-32. Bump date for previous.
Make sure devices names are copied including last byte Fix from M. Levinson.
|
1.17.14.1 | 31-May-2021 |
cjep | sync with head
|
1.17.12.2 | 01-Aug-2021 |
thorpej | Sync with HEAD.
|
1.17.12.1 | 17-Jun-2021 |
thorpej | Sync w/ HEAD.
|
1.21.4.2 | 03-Nov-2023 |
martin | 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.
|
1.21.4.1 | 13-May-2023 |
martin | 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
|
1.23.6.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
1.32.2.1 | 31-Jul-2025 |
martin | Pull up following revision(s) (requested by pgoyette in ticket #3):
sys/arch/i386/stand/boot/boot2.c: revision 1.90 sys/arch/i386/stand/efiboot/boot.c: revision 1.33
Reorder the names[] array to put the supported/historical entries first. Should eliminate some unwanted and confusing messages.
|
1.3 | 26-Sep-2019 |
nonaka | x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.2 | 11-Apr-2018 |
nonaka | branches: 1.2.2; 1.2.6; efiboot: Added network boot support.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.20; Initial commit of native amd64 EFI boot loader.
|
1.1.20.1 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file conf.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.12.2 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1392):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.1.12.1 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file conf.c was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file conf.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file conf.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.2.6.1 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #253):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.2.2.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.3 | 26-Sep-2019 |
nonaka | x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.2 | 26-Jul-2019 |
nonaka | branches: 1.2.2; Added tftp support to x86 efiboot.
|
1.1 | 11-Apr-2018 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.6; efiboot: Added network boot support.
|
1.1.6.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.1.4.2 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.1.4.1 | 11-Apr-2018 |
pgoyette | file dev_net.c was added on branch pgoyette-compat on 2018-04-16 01:59:54 +0000
|
1.1.2.4 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1392):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.1.2.3 | 01-Aug-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1309):
sys/arch/i386/stand/lib/exec.c: revision 1.73 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.10 sys/arch/i386/stand/lib/libi386.h: revision 1.44 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.6 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.7 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.8 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.12 sys/arch/i386/stand/efiboot/boot.c: revision 1.13 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.9 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.15 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.2
Added tftp support to x86 efiboot.
Pre-allocate memory for the kernel space at startup.
Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
Sync the output of memmap command to the output of stand/efiboot mem command.
Added missing efi_memory_probe() call.
|
1.1.2.2 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.1.2.1 | 11-Apr-2018 |
martin | file dev_net.c was added on branch netbsd-8 on 2018-04-11 14:51:43 +0000
|
1.2.2.1 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #253):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.14 | 20-Jun-2023 |
rin | ``int i'' is used only for SUPPORT_NFS || SUPPORT_TFTP.
|
1.13 | 27-Dec-2021 |
simonb | branches: 1.13.4; Revert rev 1.12 of devopen.c. This had the unintented side effect of breaking opens on non-root filesystems (eg trying to open/read "esp:/EFI/NetBSD/boot.cfg" on the EFI system partition).
Ok manu@. Original problem to be re-addressed.
|
1.12 | 18-Nov-2021 |
manu | Fix crash because of NULL pointer reference
|
1.11 | 18-Jan-2020 |
nonaka | x86 efiboot: Fixed the problem that /EFI/NetBSD/boot.cfg could not be loaded.
|
1.10 | 18-Jan-2020 |
nonaka | fix indent.
|
1.9 | 10-Dec-2019 |
manu | branches: 1.9.2; In-RAID partitions with no name can be candidate for booting
The code to select boot partition in RAID assumed thet had a name, which is true when there is a GPT inside the RAID, but not when there is a disklabel inside the RAID. This caused a regression from behavior of NetBSD 8.1.
We fix this by allowing nameless partition to be boot candidates. This fixes misc/54748
While there, let raid device be used in the boot specification, like raid0a:/netbsd.
|
1.8 | 26-Sep-2019 |
nonaka | x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.7 | 02-Sep-2019 |
manu | Make sure devices names are copied including last byte
Fix from M. Levinson.
|
1.6 | 18-Aug-2019 |
manu | Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples: boot NAME=root:/netbsd boot raid0e:/netbsd
|
1.5 | 11-Apr-2018 |
nonaka | branches: 1.5.2; 1.5.6; efiboot: Added network boot support.
|
1.4 | 02-Apr-2018 |
nonaka | efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.3 | 20-Mar-2018 |
nonaka | efiboot: fix it can't boot from HDD.
|
1.2 | 08-Mar-2018 |
nonaka | efiboot: system can boot from CD/DVD-ROM media.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.20; Initial commit of native amd64 EFI boot loader.
|
1.1.20.4 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.1.20.3 | 07-Apr-2018 |
pgoyette | Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
|
1.1.20.2 | 22-Mar-2018 |
pgoyette | Synch with HEAD, resolve conflicts
|
1.1.20.1 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file devopen.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.12.8 | 21-Jan-2020 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1485):
sys/arch/i386/stand/efiboot/devopen.c: revision 1.10 sys/arch/i386/stand/efiboot/devopen.c: revision 1.11
fix indent. x86 efiboot: Fixed the problem that /EFI/NetBSD/boot.cfg could not be loaded.
|
1.1.12.7 | 17-Dec-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #1473):
sys/arch/i386/stand/lib/biosdisk.c: revision 1.53 sys/arch/i386/stand/efiboot/devopen.c: revision 1.9 sys/arch/i386/stand/boot/devopen.c: revision 1.10
In-RAID partitions with no name can be candidate for booting
The code to select boot partition in RAID assumed thet had a name, which is true when there is a GPT inside the RAID, but not when there is a disklabel inside the RAID. This caused a regression from behavior of NetBSD 8.1.
We fix this by allowing nameless partition to be boot candidates. This fixes PR misc/54748
While there, let raid device be used in the boot specification, like raid0a:/netbsd.
|
1.1.12.6 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1392):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.1.12.5 | 17-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #1373):
sys/arch/i386/stand/boot/boot2.c: revision 1.72 (patch) sys/arch/i386/stand/lib/biosdisk.c: revision 1.50 sys/arch/i386/stand/lib/biosdisk.c: revision 1.51 sys/arch/i386/stand/efiboot/devopen.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.4 sys/arch/i386/stand/efiboot/devopen.c: revision 1.7 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8 share/man/man8/man8.x86/boot.8: revision 1.16 share/man/man8/man8.x86/boot.8: revision 1.17 sys/arch/i386/stand/lib/Makefile: revision 1.46 sys/arch/i386/stand/boot/devopen.h: revision 1.5 sys/arch/i386/stand/boot/devopen.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.14 (patch) sys/arch/i386/stand/efiboot/boot.c: revision 1.15 sys/arch/i386/stand/lib/biosdisk.h: revision 1.11 sys/arch/i386/stand/boot/boot2.c: revision 1.71
Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples:
boot NAME=root:/netbsd boot raid0e:/netbsd
Correct the memset(3)'s third argument in i386 biosdisk.c
The size of allocation is the size of the structure biosdisk, not the size of a pointer.
Document new GPT and RAIDframe capacity of bootstrap code While there, also document EFI setup and some bugs
Typo fixes, 'file system'; new sentence, new line; expand IA-32.
Bump date for previous.
Make sure devices names are copied including last byte Fix from M. Levinson.
|
1.1.12.4 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.1.12.3 | 04-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #692):
sys/arch/i386/stand/efiboot/devopen.c: revision 1.4 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.5 sys/arch/i386/stand/efiboot/devopen.h: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.3 sys/lib/libsa/bootcfg.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.9 sys/lib/libsa/bootcfg.c: revision 1.3 sys/arch/i386/stand/lib/bootmenu.c: revision 1.17 sys/arch/i386/stand/lib/biosdisk.c: revision 1.49 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.5 sys/arch/i386/stand/lib/bootmenu.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.h: revision 1.10
efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.1.12.2 | 21-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #648): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.c: revision 1.3 sys/arch/i386/stand/efiboot/boot.c: revision 1.7 sys/arch/i386/stand/lib/biosdisk.c: revision 1.48
efiboot: fix it can't boot from HDD.
efiboot: more pager.
efiboot: boot device is always efi_distlist first element.
efiboot: fix to find boot partition process. NetBSD related partitions with no bootme flag set are also candidates for boot partition.
|
1.1.12.1 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file devopen.c was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file devopen.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file devopen.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.5.6.4 | 21-Jan-2020 |
martin | Pull up following revision(s) (requested by nonaka in ticket #631):
sys/arch/i386/stand/efiboot/devopen.c: revision 1.10 sys/arch/i386/stand/efiboot/devopen.c: revision 1.11
fix indent.
x86 efiboot: Fixed the problem that /EFI/NetBSD/boot.cfg could not be loaded.
|
1.5.6.3 | 17-Dec-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #567):
sys/arch/i386/stand/lib/biosdisk.c: revision 1.53 sys/arch/i386/stand/efiboot/devopen.c: revision 1.9 sys/arch/i386/stand/boot/devopen.c: revision 1.10
In-RAID partitions with no name can be candidate for booting
The code to select boot partition in RAID assumed thet had a name, which is true when there is a GPT inside the RAID, but not when there is a disklabel inside the RAID. This caused a regression from behavior of NetBSD 8.1.
We fix this by allowing nameless partition to be boot candidates. This fixes misc/54748
While there, let raid device be used in the boot specification, like raid0a:/netbsd.
|
1.5.6.2 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #253):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.5.6.1 | 13-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #200):
sys/arch/i386/stand/boot/boot2.c: revision 1.72 sys/arch/i386/stand/lib/biosdisk.c: revision 1.50 sys/arch/i386/stand/lib/biosdisk.c: revision 1.51 sys/arch/i386/stand/efiboot/devopen.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.4 sys/arch/i386/stand/efiboot/devopen.c: revision 1.7 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8 share/man/man8/man8.x86/boot.8: revision 1.16 share/man/man8/man8.x86/boot.8: revision 1.17 sys/arch/i386/stand/lib/Makefile: revision 1.46 sys/arch/i386/stand/boot/devopen.h: revision 1.5 sys/arch/i386/stand/boot/devopen.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.14 sys/arch/i386/stand/efiboot/boot.c: revision 1.15 sys/arch/i386/stand/lib/biosdisk.h: revision 1.11 sys/arch/i386/stand/boot/boot2.c: revision 1.71
Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples:
boot NAME=root:/netbsd boot raid0e:/netbsd
Correct the memset(3)'s third argument in i386 biosdisk.c
The size of allocation is the size of the structure biosdisk, not the size of a pointer.
Document new GPT and RAIDframe capacity of bootstrap code While there, also document EFI setup and some bugs
Typo fixes, 'file system'; new sentence, new line; expand IA-32. Bump date for previous.
Make sure devices names are copied including last byte Fix from M. Levinson.
|
1.5.2.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.9.2.1 | 25-Jan-2020 |
ad | Sync with head.
|
1.13.4.1 | 03-Nov-2023 |
martin | 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.
|
1.5 | 26-Sep-2019 |
nonaka | x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.4 | 18-Aug-2019 |
manu | Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples: boot NAME=root:/netbsd boot raid0e:/netbsd
|
1.3 | 11-Apr-2018 |
nonaka | branches: 1.3.2; 1.3.6; efiboot: Added network boot support.
|
1.2 | 02-Apr-2018 |
nonaka | efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.20; Initial commit of native amd64 EFI boot loader.
|
1.1.20.2 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.1.20.1 | 07-Apr-2018 |
pgoyette | Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file devopen.h was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.12.4 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1392):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.1.12.3 | 17-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #1373):
sys/arch/i386/stand/boot/boot2.c: revision 1.72 (patch) sys/arch/i386/stand/lib/biosdisk.c: revision 1.50 sys/arch/i386/stand/lib/biosdisk.c: revision 1.51 sys/arch/i386/stand/efiboot/devopen.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.4 sys/arch/i386/stand/efiboot/devopen.c: revision 1.7 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8 share/man/man8/man8.x86/boot.8: revision 1.16 share/man/man8/man8.x86/boot.8: revision 1.17 sys/arch/i386/stand/lib/Makefile: revision 1.46 sys/arch/i386/stand/boot/devopen.h: revision 1.5 sys/arch/i386/stand/boot/devopen.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.14 (patch) sys/arch/i386/stand/efiboot/boot.c: revision 1.15 sys/arch/i386/stand/lib/biosdisk.h: revision 1.11 sys/arch/i386/stand/boot/boot2.c: revision 1.71
Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples:
boot NAME=root:/netbsd boot raid0e:/netbsd
Correct the memset(3)'s third argument in i386 biosdisk.c
The size of allocation is the size of the structure biosdisk, not the size of a pointer.
Document new GPT and RAIDframe capacity of bootstrap code While there, also document EFI setup and some bugs
Typo fixes, 'file system'; new sentence, new line; expand IA-32.
Bump date for previous.
Make sure devices names are copied including last byte Fix from M. Levinson.
|
1.1.12.2 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.1.12.1 | 04-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #692):
sys/arch/i386/stand/efiboot/devopen.c: revision 1.4 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.5 sys/arch/i386/stand/efiboot/devopen.h: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.3 sys/lib/libsa/bootcfg.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.9 sys/lib/libsa/bootcfg.c: revision 1.3 sys/arch/i386/stand/lib/bootmenu.c: revision 1.17 sys/arch/i386/stand/lib/biosdisk.c: revision 1.49 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.5 sys/arch/i386/stand/lib/bootmenu.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.h: revision 1.10
efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file devopen.h was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file devopen.h was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file devopen.h was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.3.6.2 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #253):
sys/arch/i386/stand/efiboot/conf.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.h: revision 1.5 sys/arch/i386/stand/efiboot/devopen.c: revision 1.8 sys/arch/i386/stand/efiboot/boot.c: revision 1.17 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.3
x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename.
|
1.3.6.1 | 13-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #200):
sys/arch/i386/stand/boot/boot2.c: revision 1.72 sys/arch/i386/stand/lib/biosdisk.c: revision 1.50 sys/arch/i386/stand/lib/biosdisk.c: revision 1.51 sys/arch/i386/stand/efiboot/devopen.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.4 sys/arch/i386/stand/efiboot/devopen.c: revision 1.7 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8 share/man/man8/man8.x86/boot.8: revision 1.16 share/man/man8/man8.x86/boot.8: revision 1.17 sys/arch/i386/stand/lib/Makefile: revision 1.46 sys/arch/i386/stand/boot/devopen.h: revision 1.5 sys/arch/i386/stand/boot/devopen.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.14 sys/arch/i386/stand/efiboot/boot.c: revision 1.15 sys/arch/i386/stand/lib/biosdisk.h: revision 1.11 sys/arch/i386/stand/boot/boot2.c: revision 1.71
Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples:
boot NAME=root:/netbsd boot raid0e:/netbsd
Correct the memset(3)'s third argument in i386 biosdisk.c
The size of allocation is the size of the structure biosdisk, not the size of a pointer.
Document new GPT and RAIDframe capacity of bootstrap code While there, also document EFI setup and some bugs
Typo fixes, 'file system'; new sentence, new line; expand IA-32. Bump date for previous.
Make sure devices names are copied including last byte Fix from M. Levinson.
|
1.3.2.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.13 | 20-Apr-2023 |
manu | 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.
|
1.12 | 09-Feb-2020 |
jmcneill | branches: 1.12.24; Do not clear the screen before exiting boot services as this may cause an undesired display mode switch. PR# 54615
|
1.11 | 13-Sep-2019 |
manu | branches: 1.11.2; 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
|
1.10 | 29-Jul-2019 |
nonaka | branches: 1.10.2; Added missing efi_memory_probe() call.
|
1.9 | 29-Jul-2019 |
nonaka | Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
|
1.8 | 08-Jun-2018 |
nonaka | branches: 1.8.2; Remove unused include.
|
1.7 | 11-Apr-2018 |
nonaka | efiboot: Added network boot support.
|
1.6 | 27-Mar-2018 |
nonaka | efiboot: Added serial console support.
|
1.5 | 08-Mar-2018 |
nonaka | efiboot: system can boot from CD/DVD-ROM media.
|
1.4 | 11-Feb-2017 |
nonaka | branches: 1.4.2; 1.4.6; 1.4.10; 1.4.16; 1.4.18; PR/51953: fix unable to boot on some AMD machine.
Delayed the timing to copy the kernel to actual address. copy routine from common/lib/libc/arch/x86_64/string/bcopy.S
|
1.3 | 11-Feb-2017 |
nonaka | efiboot: don't call WaitForSingleEvent after ExitBootServices is called.
|
1.2 | 11-Feb-2017 |
nonaka | efiboot: pass memory map after ExitBootService is called to kernel.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
1.1.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efiboot.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.4.18.4 | 25-Jun-2018 |
pgoyette | Sync with HEAD
|
1.4.18.3 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.4.18.2 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.4.18.1 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.4.16.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.16.1 | 11-Feb-2017 |
jdolecek | file efiboot.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.4.10.6 | 10-Feb-2020 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1499):
sys/arch/i386/stand/efiboot/efiboot.c: revision 1.12
Do not clear the screen before exiting boot services as this may cause an undesired display mode switch. PR# 54615
|
1.4.10.5 | 18-Sep-2019 |
martin | 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.
|
1.4.10.4 | 01-Aug-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1309):
sys/arch/i386/stand/lib/exec.c: revision 1.73 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.10 sys/arch/i386/stand/lib/libi386.h: revision 1.44 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.6 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.7 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.8 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.12 sys/arch/i386/stand/efiboot/boot.c: revision 1.13 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.9 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.15 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.2
Added tftp support to x86 efiboot.
Pre-allocate memory for the kernel space at startup.
Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
Sync the output of memmap command to the output of stand/efiboot mem command.
Added missing efi_memory_probe() call.
|
1.4.10.3 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.4.10.2 | 02-Apr-2018 |
martin | 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.
|
1.4.10.1 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.4.6.2 | 11-Feb-2017 |
nonaka | 1673251
|
1.4.6.1 | 11-Feb-2017 |
nonaka | file efiboot.c was added on branch bouyer-socketcan on 2017-02-11 10:23:40 +0000
|
1.4.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.4.2.1 | 11-Feb-2017 |
pgoyette | file efiboot.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.8.2.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.8.2.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.10.2.3 | 13-May-2023 |
martin | 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
|
1.10.2.2 | 10-Feb-2020 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #686):
sys/arch/i386/stand/efiboot/efiboot.c: revision 1.12
Do not clear the screen before exiting boot services as this may cause an undesired display mode switch. PR# 54615
|
1.10.2.1 | 17-Sep-2019 |
martin | 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
|
1.11.2.1 | 29-Feb-2020 |
ad | Sync with head.
|
1.12.24.1 | 13-May-2023 |
martin | 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
|
1.13 | 09-Oct-2025 |
manu | Add support for USB-to-serial adapter in UEFI bootstrap.
This change lets UEFI bootstrap use any UEFI supported serial port. com0 to com3 remain used for EISA based serial ports. com4 and over are used for serial ports based on something else (USB, PCI or whatever).
Support for non-EISA serial ports may be provided by UEFI. An open source UEFI driver exists for FTDI FT232R USB-to-serial adapter.
The change also introduce the kconsdev command, to select the kernel console device without altering the bootstrap console device. This useful because the device names can differ in bootstrap and kernel. For instance an USB-to-serial device could be com4 in boostrap and ucom0 for the kernel.
An upcoming change will add console suport to ucom(4).
|
1.12 | 20-Apr-2023 |
manu | 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.
|
1.11 | 07-Sep-2021 |
nia | branches: 1.11.4; Remove banner printing code from bootloaders, add it to libsa.
This harmonizes efiboot and the various x86 bootloaders to use shared code for printing the banner. By friendly coincidence, it also adds support for specifying 'banner=' in arm efiboot's boot.cfg, as on x86.
|
1.10 | 13-Sep-2019 |
manu | 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
|
1.9 | 29-Jul-2019 |
nonaka | branches: 1.9.2; Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
|
1.8 | 11-Apr-2018 |
nonaka | branches: 1.8.2; efiboot: Added network boot support.
|
1.7 | 27-Mar-2018 |
nonaka | efiboot: Added serial console support.
|
1.6 | 08-Mar-2018 |
nonaka | efiboot: system can boot from CD/DVD-ROM media.
|
1.5 | 01-May-2017 |
nonaka | branches: 1.5.2; 1.5.8; 1.5.10; efiboot: implement consdev command.
no support to change console device for efiboot yet. only pass console parameters to kernel.
|
1.4 | 11-Feb-2017 |
nonaka | branches: 1.4.2; 1.4.6; 1.4.8; PR/51953: fix unable to boot on some AMD machine.
Delayed the timing to copy the kernel to actual address. copy routine from common/lib/libc/arch/x86_64/string/bcopy.S
|
1.3 | 11-Feb-2017 |
nonaka | efiboot: don't call WaitForSingleEvent after ExitBootServices is called.
|
1.2 | 11-Feb-2017 |
nonaka | efiboot: pass memory map after ExitBootService is called to kernel.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
1.1.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efiboot.h was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.4.8.1 | 02-May-2017 |
pgoyette | Sync with HEAD - tag prg-localcount2-base1
|
1.4.6.2 | 11-Feb-2017 |
nonaka | 1673251
|
1.4.6.1 | 11-Feb-2017 |
nonaka | file efiboot.h was added on branch bouyer-socketcan on 2017-02-11 10:23:40 +0000
|
1.4.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.4.2.1 | 11-Feb-2017 |
pgoyette | file efiboot.h was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.5.10.3 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.5.10.2 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.5.10.1 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.5.8.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.5.8.1 | 01-May-2017 |
jdolecek | file efiboot.h was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.5.2.5 | 18-Sep-2019 |
martin | 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.
|
1.5.2.4 | 01-Aug-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1309):
sys/arch/i386/stand/lib/exec.c: revision 1.73 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.10 sys/arch/i386/stand/lib/libi386.h: revision 1.44 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.6 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.7 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.8 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.12 sys/arch/i386/stand/efiboot/boot.c: revision 1.13 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.9 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.15 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.2
Added tftp support to x86 efiboot.
Pre-allocate memory for the kernel space at startup.
Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
Sync the output of memmap command to the output of stand/efiboot mem command.
Added missing efi_memory_probe() call.
|
1.5.2.3 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.5.2.2 | 02-Apr-2018 |
martin | 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.
|
1.5.2.1 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.8.2.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.9.2.2 | 13-May-2023 |
martin | 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
|
1.9.2.1 | 17-Sep-2019 |
martin | 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
|
1.11.4.1 | 13-May-2023 |
martin | 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
|
1.1 | 27-Mar-2018 |
nonaka | branches: 1.1.2; 1.1.4; efiboot: Added serial console support.
|
1.1.4.2 | 02-Apr-2018 |
martin | 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.
|
1.1.4.1 | 27-Mar-2018 |
martin | file efichar.c was added on branch netbsd-8 on 2018-04-02 08:50:33 +0000
|
1.1.2.2 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.1.2.1 | 27-Mar-2018 |
pgoyette | file efichar.c was added on branch pgoyette-compat on 2018-03-30 06:20:11 +0000
|
1.18 | 15-Oct-2025 |
manu | Restore keyboard/screen console broken in revision 1.16
Previous change caused com0 to be set as default console instead of pc, leading to a confusing black screen on kernel start.
|
1.17 | 14-Oct-2025 |
skrll | Trailing whitespace
|
1.16 | 09-Oct-2025 |
manu | Add support for USB-to-serial adapter in UEFI bootstrap.
This change lets UEFI bootstrap use any UEFI supported serial port. com0 to com3 remain used for EISA based serial ports. com4 and over are used for serial ports based on something else (USB, PCI or whatever).
Support for non-EISA serial ports may be provided by UEFI. An open source UEFI driver exists for FTDI FT232R USB-to-serial adapter.
The change also introduce the kconsdev command, to select the kernel console device without altering the bootstrap console device. This useful because the device names can differ in bootstrap and kernel. For instance an USB-to-serial device could be com4 in boostrap and ucom0 for the kernel.
An upcoming change will add console suport to ucom(4).
|
1.15 | 19-Jun-2025 |
manu | Make sure sure boot countdown is slow enough
The boot coundown should count seconds. We use internal_waitforinputevent() that in tueb calls UEFI BootServices->SetTmer(). That functions takes a timeout in 100ns units, but it seems some implementation can be broken and return earlier.
Make sure we really wait 1s by checking that system time's ticks one second before proceeding.
|
1.14 | 14-Sep-2023 |
rin | branches: 1.14.6; efiboot/x86: eficons.c: Explicitly include params.h for howmany()
NFC for -current and netbsd-10, but necessary for netbsd-[89] to pull up raw IO serial port support (PR port-amd64/57523).
|
1.13 | 24-Jul-2023 |
rin | efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''.
``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least.
Proposed as PR port-amd64/57523
|
1.12 | 28-Oct-2021 |
kim | branches: 1.12.4; Make "0 seconds" overwrite the countdown also when enter is pressed
Fixes PR misc/56486.
|
1.11 | 22-Feb-2020 |
jmcneill | Remove check for bestmode==-1 (shouldn't happen)
|
1.10 | 22-Feb-2020 |
jmcneill | If the default GOP mode is unavailable, fallback to the first mode defined. PR# port-amd64/55000
|
1.9 | 11-Feb-2020 |
jmcneill | Use 1024x768 as the default GOP mode. It is the only option available for Hyper-V Gen.2 VMs and it seems to be the de facto standard and part of WHQL requirements.
|
1.8 | 08-Feb-2020 |
jmcneill | Fix a few bugs related to the framebuffer: - If a GOP mode wasn't explicitly requested, the bootloader was passing fb info to the kernel even if the console was in text mode! This results in garbled console output on at least ThinkPad T420 and likely many others. If a mode isn't specified, default to 800x600. - The "gop" command was incorrectly parsing video modes in the form WxHxD as WxWxD. - Allow a short form WxH for the "gop" command to select any mode with the target dimensions.
|
1.7 | 13-Sep-2019 |
manu | branches: 1.7.2; 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
|
1.6 | 16-May-2018 |
jakllsch | branches: 1.6.2; 1.6.6; During awaitkey(), move the cursor back to the beginning of the countdown with '\b' only after waiting.
Some UEFI implementations have a destructive/erasing backspace, and will not show the countdown if we move the cursor back before the wait.
My ThinkPad T430 w/ Lenovo's UEFI exhibited this whiteout-backspace, while my Gigabyte Brix GB-BXBT-2807 did not.
Should fix PR #53292.
|
1.5 | 27-Mar-2018 |
nonaka | efiboot: Added serial console support.
|
1.4 | 01-May-2017 |
nonaka | branches: 1.4.2; 1.4.8; 1.4.10; efiboot: implement consdev command.
no support to change console device for efiboot yet. only pass console parameters to kernel.
|
1.3 | 24-Mar-2017 |
nonaka | branches: 1.3.4; 1.3.6; Don't maximize the text columns and rows. only use 100x31 or 80x25.
|
1.2 | 24-Mar-2017 |
nonaka | Don't maximize the screen size when gop is not specified.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; Initial commit of native amd64 EFI boot loader.
|
1.1.4.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file eficons.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file eficons.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.3.6.1 | 02-May-2017 |
pgoyette | Sync with HEAD - tag prg-localcount2-base1
|
1.3.4.2 | 24-Mar-2017 |
nonaka | 1673576
|
1.3.4.1 | 24-Mar-2017 |
nonaka | file eficons.c was added on branch bouyer-socketcan on 2017-03-24 01:25:37 +0000
|
1.4.10.2 | 21-May-2018 |
pgoyette | Sync with HEAD
|
1.4.10.1 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.4.8.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.8.1 | 01-May-2017 |
jdolecek | file eficons.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.4.2.7 | 15-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #1897):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13 sys/arch/i386/stand/efiboot/eficons.c: revision 1.14
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
efiboot/x86: eficons.c: Explicitly include params.h for howmany()
NFC for -current and netbsd-10, but necessary for netbsd-[89] to pull up raw IO serial port support (PR port-amd64/57523).
|
1.4.2.6 | 09-Mar-2020 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1519):
sys/arch/i386/stand/efiboot/eficons.c: revision 1.10 sys/arch/i386/stand/efiboot/eficons.c: revision 1.11
If the default GOP mode is unavailable, fallback to the first mode defined. PR# port-amd64/55000
Remove check for bestmode==-1 (shouldn't happen)
|
1.4.2.5 | 11-Feb-2020 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #1502):
sys/arch/i386/stand/efiboot/eficons.c: revision 1.9
Use 1024x768 as the default GOP mode. It is the only option available for Hyper-V Gen.2 VMs and it seems to be the de facto standard and part of WHQL requirements.
|
1.4.2.4 | 10-Feb-2020 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1498):
sys/arch/i386/stand/efiboot/eficons.c: revision 1.8
Fix a few bugs related to the framebuffer: - If a GOP mode wasn't explicitly requested, the bootloader was passing fb info to the kernel even if the console was in text mode! This results in garbled console output on at least ThinkPad T420 and likely many others. If a mode isn't specified, default to 800x600. - The "gop" command was incorrectly parsing video modes in the form WxHxD as WxWxD. - Allow a short form WxH for the "gop" command to select any mode with the target dimensions.
|
1.4.2.3 | 18-Sep-2019 |
martin | 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.
|
1.4.2.2 | 22-May-2018 |
martin | Pull up following revision(s) (requested by jakllsch in ticket #831):
sys/arch/i386/stand/efiboot/eficons.c: revision 1.6
During awaitkey(), move the cursor back to the beginning of the countdown with '\b' only after waiting.
Some UEFI implementations have a destructive/erasing backspace, and will not show the countdown if we move the cursor back before the wait.
My ThinkPad T430 w/ Lenovo's UEFI exhibited this whiteout-backspace, while my Gigabyte Brix GB-BXBT-2807 did not.
Should fix PR #53292.
|
1.4.2.1 | 02-Apr-2018 |
martin | 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.
|
1.6.6.5 | 15-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #1732):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13 sys/arch/i386/stand/efiboot/eficons.c: revision 1.14
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
efiboot/x86: eficons.c: Explicitly include params.h for howmany()
NFC for -current and netbsd-10, but necessary for netbsd-[89] to pull up raw IO serial port support (PR port-amd64/57523).
|
1.6.6.4 | 25-Feb-2020 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #723):
sys/arch/i386/stand/efiboot/eficons.c: revision 1.10 sys/arch/i386/stand/efiboot/eficons.c: revision 1.11
If the default GOP mode is unavailable, fallback to the first mode defined. PR# port-amd64/55000
Remove check for bestmode==-1 (shouldn't happen)
|
1.6.6.3 | 11-Feb-2020 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #696):
sys/arch/i386/stand/efiboot/eficons.c: revision 1.9
Use 1024x768 as the default GOP mode. It is the only option available for Hyper-V Gen.2 VMs and it seems to be the de facto standard and part of WHQL requirements.
|
1.6.6.2 | 10-Feb-2020 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #685):
sys/arch/i386/stand/efiboot/eficons.c: revision 1.8
Fix a few bugs related to the framebuffer: - If a GOP mode wasn't explicitly requested, the bootloader was passing fb info to the kernel even if the console was in text mode! This results in garbled console output on at least ThinkPad T420 and likely many others. If a mode isn't specified, default to 800x600. - The "gop" command was incorrectly parsing video modes in the form WxHxD as WxWxD. - Allow a short form WxH for the "gop" command to select any mode with the target dimensions.
|
1.6.6.1 | 17-Sep-2019 |
martin | 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
|
1.6.2.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.6.2.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.7.2.1 | 29-Feb-2020 |
ad | Sync with head.
|
1.12.4.1 | 11-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #361):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
|
1.14.6.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
1.1 | 24-Jul-2023 |
rin | branches: 1.1.2; 1.1.4; 1.1.6; efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''.
``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least.
Proposed as PR port-amd64/57523
|
1.1.6.2 | 15-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #1897):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13 sys/arch/i386/stand/efiboot/eficons.c: revision 1.14
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
efiboot/x86: eficons.c: Explicitly include params.h for howmany()
NFC for -current and netbsd-10, but necessary for netbsd-[89] to pull up raw IO serial port support (PR port-amd64/57523).
|
1.1.6.1 | 24-Jul-2023 |
martin | file eficpufunc.c was added on branch netbsd-8 on 2023-09-15 15:44:20 +0000
|
1.1.4.2 | 15-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #1732):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13 sys/arch/i386/stand/efiboot/eficons.c: revision 1.14
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
efiboot/x86: eficons.c: Explicitly include params.h for howmany()
NFC for -current and netbsd-10, but necessary for netbsd-[89] to pull up raw IO serial port support (PR port-amd64/57523).
|
1.1.4.1 | 24-Jul-2023 |
martin | file eficpufunc.c was added on branch netbsd-9 on 2023-09-15 15:40:22 +0000
|
1.1.2.2 | 11-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #361):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
|
1.1.2.1 | 24-Jul-2023 |
martin | file eficpufunc.c was added on branch netbsd-10 on 2023-09-11 13:25:42 +0000
|
1.1 | 24-Jul-2023 |
rin | branches: 1.1.2; 1.1.4; 1.1.6; efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''.
``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least.
Proposed as PR port-amd64/57523
|
1.1.6.2 | 15-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #1897):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13 sys/arch/i386/stand/efiboot/eficons.c: revision 1.14
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
efiboot/x86: eficons.c: Explicitly include params.h for howmany()
NFC for -current and netbsd-10, but necessary for netbsd-[89] to pull up raw IO serial port support (PR port-amd64/57523).
|
1.1.6.1 | 24-Jul-2023 |
martin | file eficpufunc.h was added on branch netbsd-8 on 2023-09-15 15:44:20 +0000
|
1.1.4.2 | 15-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #1732):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13 sys/arch/i386/stand/efiboot/eficons.c: revision 1.14
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
efiboot/x86: eficons.c: Explicitly include params.h for howmany()
NFC for -current and netbsd-10, but necessary for netbsd-[89] to pull up raw IO serial port support (PR port-amd64/57523).
|
1.1.4.1 | 24-Jul-2023 |
martin | file eficpufunc.h was added on branch netbsd-9 on 2023-09-15 15:40:22 +0000
|
1.1.2.2 | 11-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #361):
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.22 sys/arch/i386/stand/efiboot/eficpufunc.c: revision 1.1 sys/arch/i386/stand/efiboot/eficpufunc.h: revision 1.1 sys/arch/i386/stand/efiboot/eficons.c: revision 1.13
efiboot/x86: Add serial console support via raw I/O port access
Unfortunately, some (most?) UEFI implementations do not support com ports by ``Serial I/O Protocol''. ``PNP0501-0'' and friends are not recognized also.
In this case, if user explicitly requires to switch to serial console by ``consdev'' command, try to use raw I/O port access.
Ugly, but what FreeBSD does, at least. Proposed as PR port-amd64/57523
|
1.1.2.1 | 24-Jul-2023 |
martin | file eficpufunc.h was added on branch netbsd-10 on 2023-09-11 13:25:42 +0000
|
1.2 | 27-Mar-2018 |
nonaka | efiboot: Added serial console support.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.20; Initial commit of native amd64 EFI boot loader.
|
1.1.20.1 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file efidelay.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.12.1 | 02-Apr-2018 |
martin | 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.
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file efidelay.c was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file efidelay.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efidelay.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.1 | 08-Mar-2018 |
nonaka | branches: 1.1.2; 1.1.4; efiboot: system can boot from CD/DVD-ROM media.
|
1.1.4.2 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.1.4.1 | 08-Mar-2018 |
pgoyette | file efidev.c was added on branch pgoyette-compat on 2018-03-15 09:12:03 +0000
|
1.1.2.2 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.1.2.1 | 08-Mar-2018 |
martin | file efidev.c was added on branch netbsd-8 on 2018-03-13 14:54:52 +0000
|
1.11 | 06-Jan-2024 |
mlelstv | In efiboot - create bootinfo information only once. - add fake biosgeom entries so that the kernel can distinguish between hard drives (with geom) and CD-ROM (without).
|
1.10 | 14-May-2023 |
riastradh | x86/efiboot: Nix trailing whitespace.
|
1.9 | 17-Dec-2019 |
manu | branches: 1.9.26; Do not use NAME=label syntax when label are empty
When booting sysinst from UEFI, it defaults to a GPT installation where partition have no labels. Bootstrap used the NAME=label partition anyway, with the result that both EFI and FFS root partition had the same name "NAME=" and could not be distinguished. The first matching partition for the name was used, and bootstrap looked for the kernel in the EFI partition.
We fix that by not using NAME=label names for partition when label is empty. In that case we revert to old syntax such as hd0b
|
1.8 | 18-Aug-2019 |
manu | Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples: boot NAME=root:/netbsd boot raid0e:/netbsd
|
1.7 | 17-Apr-2019 |
nonaka | branches: 1.7.4; efiboot: Don't panic when BLOCK_IO_PROTOCOL is not found.
It has been reported that there is a machine where BLOCK_IO_PROTOCOL can not be found when network boot without disk.
|
1.6 | 11-Apr-2018 |
nonaka | branches: 1.6.2; efiboot: Added network boot support.
|
1.5 | 02-Apr-2018 |
nonaka | efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.4 | 27-Mar-2018 |
nonaka | efiboot: Added serial console support.
|
1.3 | 20-Mar-2018 |
nonaka | efiboot: boot device is always efi_distlist first element.
|
1.2 | 08-Mar-2018 |
nonaka | efiboot: system can boot from CD/DVD-ROM media.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.20; Initial commit of native amd64 EFI boot loader.
|
1.1.20.5 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.1.20.4 | 07-Apr-2018 |
pgoyette | Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
|
1.1.20.3 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.1.20.2 | 22-Mar-2018 |
pgoyette | Synch with HEAD, resolve conflicts
|
1.1.20.1 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file efidisk.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.12.8 | 17-Dec-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #1474):
sys/arch/i386/stand/lib/biosdisk.c: revision 1.54 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.9
Do not use NAME=label syntax when label are empty
When booting sysinst from UEFI, it defaults to a GPT installation where partition have no labels. Bootstrap used the NAME=label partition anyway, with the result that both EFI and FFS root partition had the same name "NAME=" and could not be distinguished. The first matching partition for the name was used, and bootstrap looked for the kernel in the EFI partition.
We fix that by not using NAME=label names for partition when label is empty. In that case we revert to old syntax such as hd0b
|
1.1.12.7 | 17-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #1373):
sys/arch/i386/stand/boot/boot2.c: revision 1.72 (patch) sys/arch/i386/stand/lib/biosdisk.c: revision 1.50 sys/arch/i386/stand/lib/biosdisk.c: revision 1.51 sys/arch/i386/stand/efiboot/devopen.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.4 sys/arch/i386/stand/efiboot/devopen.c: revision 1.7 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8 share/man/man8/man8.x86/boot.8: revision 1.16 share/man/man8/man8.x86/boot.8: revision 1.17 sys/arch/i386/stand/lib/Makefile: revision 1.46 sys/arch/i386/stand/boot/devopen.h: revision 1.5 sys/arch/i386/stand/boot/devopen.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.14 (patch) sys/arch/i386/stand/efiboot/boot.c: revision 1.15 sys/arch/i386/stand/lib/biosdisk.h: revision 1.11 sys/arch/i386/stand/boot/boot2.c: revision 1.71
Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples:
boot NAME=root:/netbsd boot raid0e:/netbsd
Correct the memset(3)'s third argument in i386 biosdisk.c
The size of allocation is the size of the structure biosdisk, not the size of a pointer.
Document new GPT and RAIDframe capacity of bootstrap code While there, also document EFI setup and some bugs
Typo fixes, 'file system'; new sentence, new line; expand IA-32.
Bump date for previous.
Make sure devices names are copied including last byte Fix from M. Levinson.
|
1.1.12.6 | 17-Apr-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1231):
sys/arch/i386/stand/efiboot/efidisk.c: revision 1.7
efiboot: Don't panic when BLOCK_IO_PROTOCOL is not found.
It has been reported that there is a machine where BLOCK_IO_PROTOCOL can not be found when network boot without disk.
|
1.1.12.5 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.1.12.4 | 04-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #692):
sys/arch/i386/stand/efiboot/devopen.c: revision 1.4 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.5 sys/arch/i386/stand/efiboot/devopen.h: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.3 sys/lib/libsa/bootcfg.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.9 sys/lib/libsa/bootcfg.c: revision 1.3 sys/arch/i386/stand/lib/bootmenu.c: revision 1.17 sys/arch/i386/stand/lib/biosdisk.c: revision 1.49 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.5 sys/arch/i386/stand/lib/bootmenu.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.h: revision 1.10
efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.1.12.3 | 02-Apr-2018 |
martin | 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.
|
1.1.12.2 | 21-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #648): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.3 sys/arch/i386/stand/efiboot/devopen.c: revision 1.3 sys/arch/i386/stand/efiboot/boot.c: revision 1.7 sys/arch/i386/stand/lib/biosdisk.c: revision 1.48
efiboot: fix it can't boot from HDD.
efiboot: more pager.
efiboot: boot device is always efi_distlist first element.
efiboot: fix to find boot partition process. NetBSD related partitions with no bootme flag set are also candidates for boot partition.
|
1.1.12.1 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file efidisk.c was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file efidisk.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efidisk.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.6.2.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.6.2.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.7.4.2 | 17-Dec-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #568):
sys/arch/i386/stand/lib/biosdisk.c: revision 1.54 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.9
Do not use NAME=label syntax when label are empty
When booting sysinst from UEFI, it defaults to a GPT installation where partition have no labels. Bootstrap used the NAME=label partition anyway, with the result that both EFI and FFS root partition had the same name "NAME=" and could not be distinguished. The first matching partition for the name was used, and bootstrap looked for the kernel in the EFI partition.
We fix that by not using NAME=label names for partition when label is empty. In that case we revert to old syntax such as hd0b
|
1.7.4.1 | 13-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #200):
sys/arch/i386/stand/boot/boot2.c: revision 1.72 sys/arch/i386/stand/lib/biosdisk.c: revision 1.50 sys/arch/i386/stand/lib/biosdisk.c: revision 1.51 sys/arch/i386/stand/efiboot/devopen.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.4 sys/arch/i386/stand/efiboot/devopen.c: revision 1.7 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.8 share/man/man8/man8.x86/boot.8: revision 1.16 share/man/man8/man8.x86/boot.8: revision 1.17 sys/arch/i386/stand/lib/Makefile: revision 1.46 sys/arch/i386/stand/boot/devopen.h: revision 1.5 sys/arch/i386/stand/boot/devopen.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.14 sys/arch/i386/stand/efiboot/boot.c: revision 1.15 sys/arch/i386/stand/lib/biosdisk.h: revision 1.11 sys/arch/i386/stand/boot/boot2.c: revision 1.71
Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices using the NAME=gpt_label syntax, or using raid partitions. Here are examples:
boot NAME=root:/netbsd boot raid0e:/netbsd
Correct the memset(3)'s third argument in i386 biosdisk.c
The size of allocation is the size of the structure biosdisk, not the size of a pointer.
Document new GPT and RAIDframe capacity of bootstrap code While there, also document EFI setup and some bugs
Typo fixes, 'file system'; new sentence, new line; expand IA-32. Bump date for previous.
Make sure devices names are copied including last byte Fix from M. Levinson.
|
1.9.26.2 | 14-Jan-2024 |
martin | Pull up following revision(s) (requested by mlelstv in ticket #548):
sys/arch/i386/stand/efiboot/efidisk.h: revision 1.4 sys/arch/i386/stand/lib/exec.c: revision 1.80 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.11 sys/arch/i386/stand/lib/biosdisk.c: revision 1.61
In efiboot - create bootinfo information only once. - add fake biosgeom entries so that the kernel can distinguish between hard drives (with geom) and CD-ROM (without).
|
1.9.26.1 | 03-Nov-2023 |
martin | 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.
|
1.4 | 06-Jan-2024 |
mlelstv | In efiboot - create bootinfo information only once. - add fake biosgeom entries so that the kernel can distinguish between hard drives (with geom) and CD-ROM (without).
|
1.3 | 02-Apr-2018 |
nonaka | branches: 1.3.32; efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.2 | 08-Mar-2018 |
nonaka | efiboot: system can boot from CD/DVD-ROM media.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.20; Initial commit of native amd64 EFI boot loader.
|
1.1.20.2 | 07-Apr-2018 |
pgoyette | Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
|
1.1.20.1 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file efidisk.h was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.12.2 | 04-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #692):
sys/arch/i386/stand/efiboot/devopen.c: revision 1.4 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.5 sys/arch/i386/stand/efiboot/devopen.h: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.3 sys/lib/libsa/bootcfg.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.9 sys/lib/libsa/bootcfg.c: revision 1.3 sys/arch/i386/stand/lib/bootmenu.c: revision 1.17 sys/arch/i386/stand/lib/biosdisk.c: revision 1.49 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.5 sys/arch/i386/stand/lib/bootmenu.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.h: revision 1.10
efiboot: try to read boot.cfg from /EFI/NetBSD on ESP of the booted disk.
|
1.1.12.1 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file efidisk.h was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file efidisk.h was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efidisk.h was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.3.32.1 | 14-Jan-2024 |
martin | Pull up following revision(s) (requested by mlelstv in ticket #548):
sys/arch/i386/stand/efiboot/efidisk.h: revision 1.4 sys/arch/i386/stand/lib/exec.c: revision 1.80 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.11 sys/arch/i386/stand/lib/biosdisk.c: revision 1.61
In efiboot - create bootinfo information only once. - add fake biosgeom entries so that the kernel can distinguish between hard drives (with geom) and CD-ROM (without).
|
1.2 | 08-Mar-2018 |
nonaka | efiboot: system can boot from CD/DVD-ROM media.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.20; Initial commit of native amd64 EFI boot loader.
|
1.1.20.1 | 15-Mar-2018 |
pgoyette | Synch with HEAD
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file efidisk_ll.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.12.1 | 13-Mar-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #625): sys/arch/i386/stand/efiboot/efidisk.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.2 sys/arch/i386/stand/efiboot/efidisk.h: revision 1.2 sys/arch/i386/stand/efiboot/boot.c: revision 1.6 sys/arch/i386/stand/efiboot/efidisk_ll.c: revision 1.2 sys/arch/i386/stand/efiboot/efidev.c: revision 1.1 sys/arch/i386/stand/lib/biosdisk_ll.h: revision 1.16 sys/arch/i386/stand/lib/biosdisk.h: revision 1.9 sys/lib/libsa/cd9660.c: revision 1.31 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.5 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.6 sys/arch/i386/stand/lib/biosdisk.c: revision 1.47 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.10 sys/arch/i386/stand/efiboot/TODO.efiboot: revision 1.4 efiboot: system can boot from CD/DVD-ROM media.
Add missed file in previous commit.
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file efidisk_ll.c was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file efidisk_ll.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efidisk_ll.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.18; Initial commit of native amd64 EFI boot loader.
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file efigetsecs.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file efigetsecs.c was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file efigetsecs.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efigetsecs.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.10 | 14-May-2023 |
riastradh | x86/efiboot: Nix trailing whitespace.
|
1.9 | 13-Sep-2019 |
manu | branches: 1.9.26; 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
|
1.8 | 29-Jul-2019 |
nonaka | branches: 1.8.2; Sync the output of memmap command to the output of stand/efiboot mem command.
|
1.7 | 29-Jul-2019 |
nonaka | Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
|
1.6 | 26-Jul-2019 |
nonaka | Pre-allocate memory for the kernel space at startup.
|
1.5 | 27-Mar-2018 |
nonaka | branches: 1.5.2; efiboot: Added serial console support.
|
1.4 | 14-Feb-2017 |
nonaka | branches: 1.4.2; 1.4.6; 1.4.10; 1.4.16; 1.4.18; Handle persistent memory. Currently only debug output.
|
1.3 | 11-Feb-2017 |
nonaka | efiboot: pass memory map after ExitBootService is called to kernel.
|
1.2 | 03-Feb-2017 |
roy | branches: 1.2.2; rows is a uint ... it will always be greater than or equal to 0.
|
1.1 | 24-Jan-2017 |
nonaka | Initial commit of native amd64 EFI boot loader.
|
1.2.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.2.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.2.2.1 | 03-Feb-2017 |
skrll | file efimemory.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.4.18.1 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.4.16.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.16.1 | 14-Feb-2017 |
jdolecek | file efimemory.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.4.10.3 | 18-Sep-2019 |
martin | 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.
|
1.4.10.2 | 01-Aug-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1309):
sys/arch/i386/stand/lib/exec.c: revision 1.73 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.10 sys/arch/i386/stand/lib/libi386.h: revision 1.44 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.6 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.7 sys/arch/i386/stand/efiboot/efimemory.c: revision 1.8 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.9 sys/arch/i386/stand/efiboot/boot.c: revision 1.12 sys/arch/i386/stand/efiboot/boot.c: revision 1.13 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.9 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.15 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.2
Added tftp support to x86 efiboot.
Pre-allocate memory for the kernel space at startup.
Added BTINFO_EFIMEMMAP compaction support to x86 efiboot.
Sync the output of memmap command to the output of stand/efiboot mem command.
Added missing efi_memory_probe() call.
|
1.4.10.1 | 02-Apr-2018 |
martin | 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.
|
1.4.6.2 | 14-Feb-2017 |
nonaka | 1210367
|
1.4.6.1 | 14-Feb-2017 |
nonaka | file efimemory.c was added on branch bouyer-socketcan on 2017-02-14 13:29:10 +0000
|
1.4.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.4.2.1 | 14-Feb-2017 |
pgoyette | file efimemory.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.5.2.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.8.2.1 | 17-Sep-2019 |
martin | 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
|
1.9.26.1 | 03-Nov-2023 |
martin | 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.
|
1.3 | 05-Mar-2019 |
msaitoh | Centralize ETHER_ALIGN into net/if_ether.h. Note that this commit also changes if_upgt.c's ETHER_ALIGN from 0 to 2.
|
1.2 | 03-Sep-2018 |
riastradh | Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
1.1 | 11-Apr-2018 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.6; efiboot: Added network boot support.
|
1.1.6.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.1.4.3 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.1.4.2 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.1.4.1 | 11-Apr-2018 |
pgoyette | file efinet.c was added on branch pgoyette-compat on 2018-04-16 01:59:54 +0000
|
1.1.2.2 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.1.2.1 | 11-Apr-2018 |
martin | file efinet.c was added on branch netbsd-8 on 2018-04-11 14:51:43 +0000
|
1.1 | 11-Apr-2018 |
nonaka | branches: 1.1.2; 1.1.4; efiboot: Added network boot support.
|
1.1.4.2 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.1.4.1 | 11-Apr-2018 |
pgoyette | file efinet.h was added on branch pgoyette-compat on 2018-04-16 01:59:54 +0000
|
1.1.2.2 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.1.2.1 | 11-Apr-2018 |
martin | file efinet.h was added on branch netbsd-8 on 2018-04-11 14:51:43 +0000
|
1.2 | 24-Jul-2023 |
rin | MI and x86 efiboot: Fix device path type for PXE boot device.
It should be Messaging, not Media Device Path. Taken from OpenBSD, for which this code was originally written:
https://cvsweb.openbsd.org/src/sys/arch/amd64/stand/efiboot/efipxe.c#rev1.6
> Network-based device paths use Messaging and not Media types. Thus > in reality the depth was always -1 which made the compare function > a No-Op. Properly check the device path depth value and look for > the Messaging type instead to find the correct NIC. This check > never worked before and was uncovered by the last change. > > Regression noticed by bluhm@
|
1.1 | 11-Apr-2018 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.36; efiboot: Added network boot support.
|
1.1.36.1 | 11-Sep-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #362):
sys/arch/i386/stand/efiboot/efipxe.c: revision 1.2 sys/stand/efiboot/efipxe.c: revision 1.3
MI and x86 efiboot: Fix device path type for PXE boot device. It should be Messaging, not Media Device Path. Taken from OpenBSD, for which this code was originally written: https://cvsweb.openbsd.org/src/sys/arch/amd64/stand/efiboot/efipxe.c#rev1.6
Network-based device paths use Messaging and not Media types. Thus in reality the depth was always -1 which made the compare function a No-Op. Properly check the device path depth value and look for the Messaging type instead to find the correct NIC. This check never worked before and was uncovered by the last change.
Regression noticed by bluhm@
|
1.1.4.2 | 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.1.4.1 | 11-Apr-2018 |
pgoyette | file efipxe.c was added on branch pgoyette-compat on 2018-04-16 01:59:54 +0000
|
1.1.2.2 | 11-Apr-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #739):
sys/arch/i386/stand/efiboot/efinet.h: revision 1.1 sys/arch/i386/stand/efiboot/efinet.c: revision 1.1 sys/arch/i386/stand/efiboot/conf.c: revision 1.2 sys/arch/i386/stand/efiboot/devopen.c: revision 1.5 sys/arch/i386/stand/efiboot/efidisk.c: revision 1.6 sys/arch/i386/stand/efiboot/devopen.h: revision 1.3 sys/arch/i386/stand/efiboot/efipxe.c: revision 1.1 sys/arch/i386/stand/efiboot/efiboot.c: revision 1.7 sys/arch/i386/stand/efiboot/boot.c: revision 1.10 sys/arch/i386/stand/efiboot/efiboot.h: revision 1.8 sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.12 sys/arch/i386/stand/efiboot/dev_net.c: revision 1.1
efiboot: Added network boot support.
|
1.1.2.1 | 11-Apr-2018 |
martin | file efipxe.c was added on branch netbsd-8 on 2018-04-11 14:51:43 +0000
|
1.5 | 17-Aug-2018 |
kre | Deal with gnu-efi upgrade - "efilib.h" now provides a prototype for VPrint() so it is no longer needed here, particularly not a slightly different prototype. Fixes the amd64 i386 & ia64 builds.
|
1.4 | 11-Feb-2017 |
nonaka | branches: 1.4.2; 1.4.6; 1.4.16; 1.4.18; 1.4.20; efiboot: don't call WaitForSingleEvent after ExitBootServices is called.
|
1.3 | 05-Feb-2017 |
joerg | branches: 1.3.2; Be a bit nicer to outdated compilers and use __unreachable().
|
1.2 | 04-Feb-2017 |
roy | Mark reboot() and _rtt() as __dead. Use __builtin_unreachable() to ensure Panic really is marked dead.
Thanks to joerg@
|
1.1 | 24-Jan-2017 |
nonaka | Initial commit of native amd64 EFI boot loader.
|
1.3.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.3.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.3.2.1 | 05-Feb-2017 |
skrll | file panic.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.4.20.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.4.18.1 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.4.16.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.16.1 | 11-Feb-2017 |
jdolecek | file panic.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.4.6.2 | 11-Feb-2017 |
nonaka | 1673339
|
1.4.6.1 | 11-Feb-2017 |
nonaka | file panic.c was added on branch bouyer-socketcan on 2017-02-11 10:15:56 +0000
|
1.4.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.4.2.1 | 11-Feb-2017 |
pgoyette | file panic.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.18; Initial commit of native amd64 EFI boot loader.
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file self_reloc.c was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file self_reloc.c was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file self_reloc.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file self_reloc.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.5 | 21-Sep-2024 |
rin | i386/stand: Document NFSv3 support to {efi,pxe}boot/version
|
1.4 | 20-Sep-2024 |
mrg | x86/boot: fill in a bunch of missed changes and bump some versions.
missed features included: - support for partition labels - recursive labels inside RAID partitions - booting a directory with kernel and modules - multiBoot 2 - "root" command that changes default root - "vesa" command to control graphical modes - bi-endian support in disklabel, RAID and UFS - fixes for buggy ACPI implementations - fix PXE device path type - fixes for buggy ACPI implementations - serial console support with raw I/O accessors - ASCII art
XXX: perhaps we could pullup some of these as minor version to release branches but it seems extreme for a largely cosmetic issue. the version across releases has a different build ID, so you can already tell the difference between versions that changed.
|
1.3 | 10-May-2023 |
manu | branches: 1.3.6; Raise the version for new feature (here reloc command) Suggested by Masanobu SAITOH
|
1.2 | 03-Aug-2019 |
nonaka | branches: 1.2.26; x86 efiboot: version 1.1.
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.22; 1.1.26; Initial commit of native amd64 EFI boot loader.
|
1.1.26.2 | 13-May-2023 |
martin | 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
|
1.1.26.1 | 04-Aug-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #12):
sys/arch/i386/stand/efiboot/version: revision 1.2
x86 efiboot: version 1.1.
|
1.1.22.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file version was added on branch tls-maxphys on 2017-12-03 11:36:18 +0000
|
1.1.12.1 | 04-Aug-2019 |
martin | Pull up following revision(s) (requested by nonaka in ticket #1325):
sys/arch/i386/stand/efiboot/version: revision 1.2
x86 efiboot: version 1.1.
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file version was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file version was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file version was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.2.26.1 | 13-May-2023 |
martin | 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
|
1.3.6.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
1.3 | 13-Sep-2019 |
manu | 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
|
1.2 | 21-Feb-2017 |
nonaka | branches: 1.2.2; 1.2.6; 1.2.10; 1.2.16; 1.2.20; 1.2.24; fix to be able to boot amd64 kernel from 32bit efiboot (booia32.efi).
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
1.1.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file Makefile was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.2.24.1 | 17-Sep-2019 |
martin | 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
|
1.2.20.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.2.16.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.2.16.1 | 21-Feb-2017 |
jdolecek | file Makefile was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.2.10.1 | 18-Sep-2019 |
martin | 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.
|
1.2.6.2 | 21-Feb-2017 |
nonaka | 1673439
|
1.2.6.1 | 21-Feb-2017 |
nonaka | file Makefile was added on branch bouyer-socketcan on 2017-02-21 10:53:38 +0000
|
1.2.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.2.2.1 | 21-Feb-2017 |
pgoyette | file Makefile was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.18; Initial commit of native amd64 EFI boot loader.
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file efiboot_machdep.h was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file efiboot_machdep.h was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file efiboot_machdep.h was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efiboot_machdep.h was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.8 | 19-Jun-2023 |
rin | whitespace -> tab, blank line, no binary changes.
|
1.7 | 14-May-2023 |
riastradh | x86/efiboot: Nix trailing whitespace.
|
1.6 | 20-Apr-2023 |
manu | 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.
|
1.5 | 13-Sep-2019 |
manu | branches: 1.5.26; 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
|
1.4 | 27-Mar-2018 |
nonaka | branches: 1.4.2; 1.4.6; efiboot: Added serial console support.
|
1.3 | 29-Apr-2017 |
nonaka | branches: 1.3.2; 1.3.8; 1.3.10; efiboot: Boot parameters can be set via installboot(8).
|
1.2 | 21-Feb-2017 |
nonaka | branches: 1.2.2; 1.2.6; 1.2.8; fix to be able to boot amd64 kernel from 32bit efiboot (booia32.efi).
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
1.1.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efibootia32.c was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.2.8.1 | 02-May-2017 |
pgoyette | Sync with HEAD - tag prg-localcount2-base1
|
1.2.6.2 | 21-Feb-2017 |
nonaka | 1673439
|
1.2.6.1 | 21-Feb-2017 |
nonaka | file efibootia32.c was added on branch bouyer-socketcan on 2017-02-21 10:53:38 +0000
|
1.2.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.2.2.1 | 21-Feb-2017 |
pgoyette | file efibootia32.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.3.10.1 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.3.8.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.3.8.1 | 29-Apr-2017 |
jdolecek | file efibootia32.c was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.3.2.2 | 18-Sep-2019 |
martin | 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.
|
1.3.2.1 | 02-Apr-2018 |
martin | 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.
|
1.4.6.2 | 13-May-2023 |
martin | 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
|
1.4.6.1 | 17-Sep-2019 |
martin | 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
|
1.4.2.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.5.26.2 | 03-Nov-2023 |
martin | 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.
|
1.5.26.1 | 13-May-2023 |
martin | 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
|
1.2 | 24-Dec-2018 |
christos | Avoid error with new binutils: error: PHDR segment not covered by LOAD segment
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.18; 1.1.20; 1.1.22; Initial commit of native amd64 EFI boot loader.
|
1.1.22.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.1.20.1 | 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file ldscript was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file ldscript was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file ldscript was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file ldscript was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.2 | 24-Sep-2019 |
manu | branches: 1.2.8; Fix multiboot32 argument usage
|
1.1 | 13-Sep-2019 |
manu | branches: 1.1.2; 1.1.4; 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
|
1.1.4.3 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #1391):
sys/arch/i386/stand/efiboot/bootia32/multiboot32.S: revision 1.2
Fix multiboot32 argument usage
|
1.1.4.2 | 18-Sep-2019 |
martin | 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.
|
1.1.4.1 | 13-Sep-2019 |
martin | file multiboot32.S was added on branch netbsd-8 on 2019-09-18 17:30:05 +0000
|
1.1.2.3 | 27-Sep-2019 |
martin | Pull up following revision(s) (requested by manu in ticket #251):
sys/arch/i386/stand/efiboot/bootia32/multiboot32.S: revision 1.2
Fix multiboot32 argument usage
|
1.1.2.2 | 17-Sep-2019 |
martin | 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
|
1.1.2.1 | 13-Sep-2019 |
martin | file multiboot32.S was added on branch netbsd-9 on 2019-09-17 19:32:00 +0000
|
1.2.8.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.2.8.1 | 24-Sep-2019 |
martin | file multiboot32.S was added on branch phil-wifi on 2020-04-13 08:03:54 +0000
|
1.2 | 29-Apr-2017 |
nonaka | branches: 1.2.8; efiboot: Boot parameters can be set via installboot(8).
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.10; Initial commit of native amd64 EFI boot loader.
|
1.1.10.1 | 02-May-2017 |
pgoyette | Sync with HEAD - tag prg-localcount2-base1
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file start.S was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file start.S was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file start.S was added on branch nick-nhusb on 2017-02-05 13:40:12 +0000
|
1.2.8.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.2.8.1 | 29-Apr-2017 |
jdolecek | file start.S was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.3 | 20-Apr-2023 |
manu | 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.
|
1.2 | 24-Feb-2017 |
nonaka | branches: 1.2.2; 1.2.6; 1.2.14; 1.2.18; 1.2.26; 1.2.52; efiboot: Don't access old stack after copying a kernel.
It's possible that the old stack is overwritten by the kernel.
|
1.1 | 21-Feb-2017 |
nonaka | fix to be able to boot amd64 kernel from 32bit efiboot (booia32.efi).
|
1.2.52.1 | 13-May-2023 |
martin | 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
|
1.2.26.1 | 13-May-2023 |
martin | 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
|
1.2.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.2.18.1 | 24-Feb-2017 |
jdolecek | file startprog32.S was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.2.14.2 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.2.14.1 | 24-Feb-2017 |
skrll | file startprog32.S was added on branch nick-nhusb on 2017-08-28 17:51:41 +0000
|
1.2.6.2 | 24-Feb-2017 |
nonaka | 1673486
|
1.2.6.1 | 24-Feb-2017 |
nonaka | file startprog32.S was added on branch bouyer-socketcan on 2017-02-24 12:24:26 +0000
|
1.2.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.2.2.1 | 24-Feb-2017 |
pgoyette | file startprog32.S was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.6 | 03-Jun-2023 |
lukem | adapt to ${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
Simplify CWARNFLAGS to use ${CC_WNO_ADDRESS_OF_PACKED_MEMBER} which works for both clang and gcc, and remove compiler-specific equivalents.
|
1.5 | 03-Jun-2023 |
lukem | bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER
Provide a single variable CC_WNO_ADDRESS_OF_PACKED_MEMBER with options for both clang and gcc, to replace CLANG_NO_ADDR_OF_PACKED_MEMBER CC_NO_ADDR_OF_PACKED_MEMBER GCC_NO_ADDR_OF_PACKED_MEMBER
Using the convention CC_compilerflag, where compilerflag is based on the full compiler flag name.
|
1.4 | 06-Sep-2020 |
mrg | add support for new GCC 9 warnings that may be too much to fix right now. new address-of-packed-member and format-overflow warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.
apply to a bunch of the tree. mostly, these are real bugs that should be fixed, but in many cases, only by removing the 'packed' attribute from some structure that doesn't really need it. (i looked at many different ones, and while perhaps 60-80% were already properly aligned, it wasn't clear to me that the uses were always coming from sane data vs network alignment, so it doesn't seem safe to remove packed without careful research for each affect struct.) clang already warned (and was not erroring) for many of these cases, but gcc picked up dozens more.
|
1.3 | 21-Mar-2020 |
riastradh | Fix clang build after packed lfs64 accessor change.
|
1.2 | 13-Sep-2019 |
manu | 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
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.12; 1.1.18; 1.1.22; 1.1.26; Initial commit of native amd64 EFI boot loader.
|
1.1.26.2 | 17-Aug-2020 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1050):
sys/ufs/lfs/lfs_subr.c: revision 1.101 sys/ufs/lfs/lfs_subr.c: revision 1.102 sys/ufs/lfs/lfs_inode.c: revision 1.158 sys/ufs/lfs/lfs_inode.h: revision 1.25 sys/ufs/lfs/lfs_balloc.c: revision 1.95 sys/ufs/lfs/lfs_pages.c: revision 1.21 sys/ufs/lfs/lfs_vnops.c: revision 1.330 sys/ufs/lfs/lfs_alloc.c: revision 1.140 (patch) sys/ufs/lfs/lfs_alloc.c: revision 1.141 (patch) lib/libp2k/p2k.c: revision 1.72 sys/ufs/lfs/lfs.h: revision 1.205 sys/ufs/lfs/lfs.h: revision 1.206 sys/ufs/lfs/lfs_segment.c: revision 1.284 sys/ufs/lfs/lfs.h: revision 1.207 sys/ufs/lfs/lfs_segment.c: revision 1.285 sys/ufs/lfs/lfs_debug.c: revision 1.55 sys/ufs/lfs/lfs_rename.c: revision 1.23 usr.sbin/dumplfs/dumplfs.c: revision 1.65 sys/ufs/lfs/lfs_vfsops.c: revision 1.371 sys/arch/i386/stand/efiboot/bootx64/Makefile: revision 1.3 sys/ufs/lfs/lfs_vfsops.c: revision 1.372 sys/ufs/lfs/lfs_vfsops.c: revision 1.373 sbin/fsck_lfs/pass1.c: revision 1.46 sys/ufs/lfs/lfs_vnops.c: revision 1.326 sys/ufs/lfs/lfs_vnops.c: revision 1.327 sys/ufs/lfs/lfs_vfsops.c: revision 1.375 (patch) sys/ufs/lfs/lfs_vnops.c: revision 1.328 sys/ufs/lfs/lfs_subr.c: revision 1.98 sys/ufs/lfs/lfs_extern.h: revision 1.116 sys/ufs/lfs/lfs_vnops.c: revision 1.329 sys/ufs/lfs/lfs_subr.c: revision 1.99 sys/ufs/lfs/lfs_extern.h: revision 1.117 sys/ufs/lfs/lfs_accessors.h: revision 1.49 sys/ufs/lfs/lfs_extern.h: revision 1.118 sys/rump/fs/lib/liblfs/Makefile: revision 1.15 sys/ufs/lfs/lfs_bio.c: revision 1.146 (patch) sys/ufs/lfs/lfs_bio.c: revision 1.147 sys/ufs/lfs/lfs_subr.c: revision 1.100
Fix kassert in lfs by initializing vp first.
Use a marker node to iterate lfs_dchainhd / i_lfs_dchain.
I believe elements can be removed while the lock is dropped, including the next node we're hanging on to.
Just use VOP_BWRITE for lfs_bwrite_log. Hope this doesn't cause trouble with vfs_suspend.
Teach lfs to transition ro<->rw.
Prevent new dirops while we issue lfs_flush_dirops.
lfs_flush_dirops assumes (by KASSERT((ip->i_state & IN_ADIROP) == 0)) that vnodes on the dchain will not become involved in active dirops even while holding no other locks (lfs_lock, v_interlock), so we must set lfs_writer here. All other callers already set lfs_writer.
We set fs->lfs_writer++ without explicitly doing lfs_writer_enter because (a) we already waited for the dirops to drain, and (b) we hold lfs_lock and cannot drop it before setting lfs_writer.
Assert lfs_writer where I think we can now prove it.
Serialize access to the splay tree with lfs_lock.
Change some cheap KDASSERT into KASSERT.
Take a reference and fix assertions in lfs_flush_dirops. Fixes panic: KASSERT((ip->i_state & IN_ADIROP) == 0) at lfs_vnops.c:1670 lfs_flush_dirops lfs_check lfs_setattr VOP_SETATTR change_mode sys_fchmod syscall
This assertion -- and the assertion that vp->v_uflag has VU_DIROP set -- is valid only until we release lfs_lock, because we may race with lfs_unmark_dirop which will remove the nodes and change the flags.
Further, vp itself is valid only as long as it is referenced, which it is as long as it's on the dchain, but lfs_unmark_dirop drops the dchain's reference.
Don't lfs_writer_enter while holding v_interlock.
There's no need to lfs_writer_enter at all here, as far as I can see. lfs_flush_fs will do it for us.
Break deadlock in PR kern/52301.
The lock order is lfs_writer -> lfs_seglock. The problem in 52301 is that lfs_segwrite violates this lock order by sometimes doing lfs_seglock -> lfs_writer, either (a) when doing a checkpoint or (b), opportunistically, when there are no dirops pending. Both cases can deadlock, because dirops sometimes take the seglock (lfs_truncate, lfs_valloc, lfs_vfree): (a) There may be dirops pending, and they may be waiting for the seglock, so we can't wait for them to complete while holding the seglock. (b) The test for fs->lfs_dirops == 0 happens unlocked, and the state may change by the time lfs_writer_enter acquires lfs_lock.
To resolve this in each case: (a) Do lfs_writer_enter before lfs_seglock, since we will need it unconditionally anyway. The worst performance impact of this should be that some dirops get delayed a little bit. (b) Create a new lfs_writer_tryenter to use at this point so that the test for fs->lfs_dirops == 0 and the acquisition of lfs_writer happen atomically under lfs_lock.
Initialize/destroy lfs_allclean_wakeup in modcmd, not lfs_mountfs.
Fixes reloading lfs.kmod.
In lfs_update, hold lfs_writer around lfs_vflush.
Otherwise, we might do lfs_vflush -> lfs_seglock -> lfs_segwait(SEGM_CKP) -> lfs_writer_enter which is the reverse of the lfs_writer -> lfs_seglock ordering.
Call lfs_orphan in lfs_rename while we're still in the dirop. lfs_writer_enter can't fail; keep it simple and don't pretend it can.
Assert that mtsleep can't fail either -- it doesn't catch signals and there's no timeout.
Teach LFS_ORPHAN_NEXTFREE about lfs64.
Dust off the orphan detection code and try to make it work.
Fix !DIAGNOSTIC compile
Fix userland references to LFS_ORPHAN_NEXTFREE.
Forgot to grep for these or do a full distribution build, oops!
Fix missing <sys/evcnt.h> by removing the evcnts instead.
Just wanted to confirm that a race might happen, and indeed it did. These serve little diagnostic value otherwise.
OR into bp->b_cflags; don't overwrite.
CTASSERT lfs on-disk structure sizes.
Avoid misaligned access to lfs64 on-disk records in memory. lfs64 directory entries are only 32-bit aligned in order to conserve space in directory blocks, and we had a hack to stuff a 64-bit inode in them. This replaces the hack by __aligned(4) __packed, and goes further:
1. It's not clear that all the other lfs64 data structures are 64-bit aligned on disk to begin with. We can go through these later and upgrade them from struct foo64 { ... } __aligned(4) __packed; union foo { struct foo64 f64; ... }; to struct foo64 { ... }; union foo { struct foo64 f64 __aligned(8); ... } __aligned(4) __packed; if we really want to take advantage of 64-bit memory accesses. However, the __aligned(4) __packed must remain on the union because: 2. We access even the lfs32 data structures via a union that has lfs64 members, and it turns out that compilers will assume access through a union with 64-bit aligned members implies the whole union has 64-bit alignment, even if we're only accessing a 32-bit aligned member.
Fix clang build after packed lfs64 accessor change.
Suppress spurious address-of-packed error in rump lfs too.
|
1.1.26.1 | 17-Sep-2019 |
martin | 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
|
1.1.22.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.1.22.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file Makefile was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.1.12.1 | 18-Sep-2019 |
martin | 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.
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file Makefile was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file Makefile was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file Makefile was added on branch nick-nhusb on 2017-02-05 13:40:13 +0000
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.18; Initial commit of native amd64 EFI boot loader.
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file efiboot_machdep.h was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file efiboot_machdep.h was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file efiboot_machdep.h was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efiboot_machdep.h was added on branch nick-nhusb on 2017-02-05 13:40:13 +0000
|
1.6 | 20-Apr-2023 |
manu | 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.
|
1.5 | 13-Sep-2019 |
manu | branches: 1.5.26; 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
|
1.4 | 27-Mar-2018 |
nonaka | branches: 1.4.2; 1.4.6; efiboot: Added serial console support.
|
1.3 | 29-Apr-2017 |
nonaka | branches: 1.3.2; 1.3.8; 1.3.10; efiboot: Boot parameters can be set via installboot(8).
|
1.2 | 11-Feb-2017 |
nonaka | branches: 1.2.2; 1.2.6; 1.2.8; PR/51953: fix unable to boot on some AMD machine.
Delayed the timing to copy the kernel to actual address. copy routine from common/lib/libc/arch/x86_64/string/bcopy.S
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
1.1.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file efibootx64.c was added on branch nick-nhusb on 2017-02-05 13:40:13 +0000
|
1.2.8.1 | 02-May-2017 |
pgoyette | Sync with HEAD - tag prg-localcount2-base1
|
1.2.6.2 | 11-Feb-2017 |
nonaka | 1673251
|
1.2.6.1 | 11-Feb-2017 |
nonaka | file efibootx64.c was added on branch bouyer-socketcan on 2017-02-11 10:23:40 +0000
|
1.2.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.2.2.1 | 11-Feb-2017 |
pgoyette | file efibootx64.c was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.3.10.1 | 30-Mar-2018 |
pgoyette | Resolve conflicts between branch and HEAD
|
1.3.8.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.3.8.1 | 29-Apr-2017 |
jdolecek | file efibootx64.c was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.3.2.2 | 18-Sep-2019 |
martin | 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.
|
1.3.2.1 | 02-Apr-2018 |
martin | 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.
|
1.4.6.2 | 13-May-2023 |
martin | 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
|
1.4.6.1 | 17-Sep-2019 |
martin | 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
|
1.4.2.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.5.26.1 | 13-May-2023 |
martin | 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
|
1.2 | 24-Dec-2018 |
christos | Avoid error with new binutils: error: PHDR segment not covered by LOAD segment
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.18; 1.1.20; 1.1.22; Initial commit of native amd64 EFI boot loader.
|
1.1.22.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.1.20.1 | 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 24-Jan-2017 |
jdolecek | file ldscript was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file ldscript was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file ldscript was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file ldscript was added on branch nick-nhusb on 2017-02-05 13:40:13 +0000
|
1.1 | 13-Sep-2019 |
manu | branches: 1.1.2; 1.1.4; 1.1.12; 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
|
1.1.12.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.1.12.1 | 13-Sep-2019 |
martin | file multiboot64.S was added on branch phil-wifi on 2020-04-13 08:03:54 +0000
|
1.1.4.2 | 18-Sep-2019 |
martin | 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.
|
1.1.4.1 | 13-Sep-2019 |
martin | file multiboot64.S was added on branch netbsd-8 on 2019-09-18 17:30:05 +0000
|
1.1.2.2 | 17-Sep-2019 |
martin | 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
|
1.1.2.1 | 13-Sep-2019 |
martin | file multiboot64.S was added on branch netbsd-9 on 2019-09-17 19:32:00 +0000
|
1.2 | 29-Apr-2017 |
nonaka | branches: 1.2.8; efiboot: Boot parameters can be set via installboot(8).
|
1.1 | 24-Jan-2017 |
nonaka | branches: 1.1.2; 1.1.4; 1.1.8; 1.1.10; Initial commit of native amd64 EFI boot loader.
|
1.1.10.1 | 02-May-2017 |
pgoyette | Sync with HEAD - tag prg-localcount2-base1
|
1.1.8.2 | 24-Jan-2017 |
nonaka | 1468398
|
1.1.8.1 | 24-Jan-2017 |
nonaka | file start.S was added on branch bouyer-socketcan on 2017-01-24 11:09:15 +0000
|
1.1.4.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.1.4.1 | 24-Jan-2017 |
pgoyette | file start.S was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|
1.1.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.1.2.1 | 24-Jan-2017 |
skrll | file start.S was added on branch nick-nhusb on 2017-02-05 13:40:13 +0000
|
1.2.8.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.2.8.1 | 29-Apr-2017 |
jdolecek | file start.S was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.5 | 24-Jun-2023 |
msaitoh | Fix typo in comment.
|
1.4 | 20-Apr-2023 |
manu | 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.
|
1.3 | 11-Feb-2017 |
nonaka | branches: 1.3.2; 1.3.6; 1.3.16; 1.3.24; 1.3.50; PR/51953: fix unable to boot on some AMD machine.
Delayed the timing to copy the kernel to actual address. copy routine from common/lib/libc/arch/x86_64/string/bcopy.S
|
1.2 | 04-Feb-2017 |
christos | branches: 1.2.2; Fix operand width
|
1.1 | 24-Jan-2017 |
nonaka | Initial commit of native amd64 EFI boot loader.
|
1.2.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.2.2.2 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.2.2.1 | 04-Feb-2017 |
skrll | file startprog64.S was added on branch nick-nhusb on 2017-02-05 13:40:13 +0000
|
1.3.50.1 | 13-May-2023 |
martin | 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
|
1.3.24.1 | 13-May-2023 |
martin | 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
|
1.3.16.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.3.16.1 | 11-Feb-2017 |
jdolecek | file startprog64.S was added on branch tls-maxphys on 2017-12-03 11:36:19 +0000
|
1.3.6.2 | 11-Feb-2017 |
nonaka | 1673251
|
1.3.6.1 | 11-Feb-2017 |
nonaka | file startprog64.S was added on branch bouyer-socketcan on 2017-02-11 10:23:40 +0000
|
1.3.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.3.2.1 | 11-Feb-2017 |
pgoyette | file startprog64.S was added on branch pgoyette-localcount on 2017-03-20 06:57:15 +0000
|