#
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.
|
Revision tags: netbsd-10-base bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base phil-wifi-20191119
|
#
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
|
Revision tags: netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330
|
#
1.4 |
|
27-Mar-2018 |
nonaka |
branches: 1.4.2; 1.4.6; efiboot: Added serial console support.
|
Revision tags: pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1
|
#
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).
|
Revision tags: prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
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).
|
Revision tags: nick-nhusb-base-20170204
|
#
1.1 |
|
24-Jan-2017 |
nonaka |
branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
#
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.
|
Revision tags: netbsd-10-base bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base phil-wifi-20191119
|
#
1.5 |
|
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
|
Revision tags: netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330
|
#
1.4 |
|
27-Mar-2018 |
nonaka |
branches: 1.4.2; 1.4.6; efiboot: Added serial console support.
|
Revision tags: pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1
|
#
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).
|
Revision tags: prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
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).
|
Revision tags: nick-nhusb-base-20170204
|
#
1.1 |
|
24-Jan-2017 |
nonaka |
branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
#
1.5 |
|
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
|
Revision tags: netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330
|
#
1.4 |
|
27-Mar-2018 |
nonaka |
efiboot: Added serial console support.
|
Revision tags: pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1
|
#
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).
|
Revision tags: prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
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).
|
Revision tags: nick-nhusb-base-20170204
|
#
1.1 |
|
24-Jan-2017 |
nonaka |
branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330
|
#
1.4 |
|
27-Mar-2018 |
nonaka |
efiboot: Added serial console support.
|
Revision tags: pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1
|
#
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).
|
Revision tags: prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
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).
|
Revision tags: nick-nhusb-base-20170204
|
#
1.1 |
|
24-Jan-2017 |
nonaka |
branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
#
1.3 |
|
29-Apr-2017 |
nonaka |
efiboot: Boot parameters can be set via installboot(8).
|
Revision tags: prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.2 |
|
21-Feb-2017 |
nonaka |
branches: 1.2.2; fix to be able to boot amd64 kernel from 32bit efiboot (booia32.efi).
|
Revision tags: nick-nhusb-base-20170204
|
#
1.1 |
|
24-Jan-2017 |
nonaka |
branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|
#
1.2 |
|
21-Feb-2017 |
nonaka |
fix to be able to boot amd64 kernel from 32bit efiboot (booia32.efi).
|
Revision tags: nick-nhusb-base-20170204
|
#
1.1 |
|
24-Jan-2017 |
nonaka |
branches: 1.1.2; Initial commit of native amd64 EFI boot loader.
|