History log of /src/sys/stand/efiboot/efifdt.c |
Revision | | Date | Author | Comments |
1.38 |
| 07-Dec-2024 |
jmcneill | efiboot: Use 1:1 PA to VA mappings for RT services.
UEFI firmware on Snapdragon X Elite devices crashes when SetVirtualAddressMap is called with runtime mappings that are not 1:1. Always do this on arm64 as it won't interfere with KVA and will help us avoid avoid a very common class of firmware bugs.
|
1.37 |
| 15-Aug-2024 |
skrll | Allow an MD check in prepare_boot and use it on arm64 (aarch64) to check that, if a big endian kernel is seen, the CPU is capable of supporting BE data accesses at EL0 via ID_AA64MMFR0_EL1.BigEnd.
|
1.36 |
| 15-Aug-2024 |
skrll | Rename some symbols for consistency with the style used elsewhere in efiboot.
NFCI.
|
1.35 |
| 14-Aug-2022 |
jmcneill | Align output of "version" command.
|
1.34 |
| 25-Mar-2022 |
jmcneill | efiboot: Add support for 'userconf' command.
Add support for the 'userconf' command at the boot prompt and in boot.cfg, and for FDT based booting, pass the commands as a string list property named "netbsd,userconf" on the /chosen node.
|
1.33 |
| 06-Nov-2021 |
jmcneill | Revert part of previous commit that broke DT booting.
|
1.32 |
| 03-Nov-2021 |
skrll | Provide the ablity to ignore ACPI with an 'acpi' command:
acpi [{on|off}]
|
1.31 |
| 06-Oct-2021 |
jmcneill | Fix bootarm build.
|
1.30 |
| 06-Oct-2021 |
jmcneill | efiboot: Make FDT support optional on a per-arch basis.
|
1.29 |
| 21-May-2021 |
jmcneill | Disable ACPI support when booting big endian kernels.
|
1.28 |
| 19-Dec-2020 |
skrll | branches: 1.28.4; 1.28.6; Various clean ups - cache node where possible - remove a compiler warning - improve a comment (the round_page might not be needed)
|
1.27 |
| 22-Oct-2020 |
jmcneill | branches: 1.27.2; Fix previous.
|
1.26 |
| 22-Oct-2020 |
jmcneill | If the framebuffer node already exists, we don't need to create one
|
1.25 |
| 10-Oct-2020 |
jmcneill | Support EFI runtime and GOP FB for devicetree (non-ACPI) setups.
|
1.24 |
| 21-Jun-2020 |
jmcneill | Add module support.
|
1.23 |
| 14-May-2020 |
riastradh | Deduplicate lazy /chosen node creation logic.
|
1.22 |
| 14-May-2020 |
riastradh | Pass EFI RNG output via /chosen/netbsd,efirng-{start,end}.
This is separate from /chosen/netbsd,rndseed-{start,end}, which specifies NetBSD's persistent on-disk seed; efirng is the firmware's RNG device.
|
1.21 |
| 03-Jan-2020 |
skrll | Fix EFIBOOT_DEBUG build on arm
|
1.20 |
| 18-Dec-2019 |
riastradh | Implement rndseed support in efiboot and fdt arm.
The EFI environment variable `rndseed' specifies the path to the random seed. It is loaded only for fdt platforms at the moment.
Since the rndseed (an rndsave_t object as defined in <sys/rndio.h>) is 536 bytes long (for hysterical raisins), and to avoid having to erase parts of the fdt tree, we load it into a physical page whose address is passed in the fdt tree, rather than passing the content of the file as an fdt node directly; the kernel then reserves the page from uvm, and maps it into kva to call rnd_seed.
For now, the only kernel that does use efiboot with fdt is evbarm, which knows to handle the rndseed. Any new kernels that use efiboot with fdt must do the same; otherwise uvm may hand out the page with the secret key on it for a normal page allocation in the kernel -- which should be OK if there are no kernel memory disclosure bugs, but would lead to worse consequences than simply loading the seed late in userland with /etc/rc.d/random_seed otherwise.
ok jmcneill
|
1.19 |
| 30-Aug-2019 |
jmcneill | Only set #address-cells and #size-cells properties on /chosen if we are fabricating a devicetree (ACPI mode). Fixes PR# 54494
|
1.18 |
| 01-Aug-2019 |
jmcneill | Add full UEFI memory map to the /chosen node.
|
1.17 |
| 25-Jul-2019 |
skrll | branches: 1.17.2; Fix arm build
|
1.16 |
| 24-Jul-2019 |
jmcneill | Add support for simple framebuffers when booting in ACPI mode.
|
1.15 |
| 21-Apr-2019 |
thorpej | branches: 1.15.2; - Add support for a boot configuration file, defaulting to /etc/efiboot.plist. - Add support for pre-loading EFI environment variables from efiboot.plist. - Add support for device tree overlays specified in efiboot.plist.
(Man page for efiboot forthcoming.)
|
1.14 |
| 15-Nov-2018 |
jmcneill | Add support for loading kernels over NFS.
|
1.13 |
| 02-Nov-2018 |
jmcneill | Add a "mem" command to print the EFI memory map.
|
1.12 |
| 01-Nov-2018 |
jmcneill | Add GPT support.
|
1.11 |
| 31-Oct-2018 |
jmcneill | When building /memory, skip EFI runtime memory ranges
|
1.10 |
| 31-Oct-2018 |
jmcneill | No longer need to delete reserved memory ranges.
|
1.9 |
| 09-Sep-2018 |
jmcneill | Add "dtb" command for loading a custom .dtb file.
|
1.8 |
| 07-Sep-2018 |
jmcneill | Add initrd support.
|
1.7 |
| 03-Sep-2018 |
jmcneill | branches: 1.7.2; Print FDT model and compatible strings with "version" command
|
1.6 |
| 02-Sep-2018 |
jmcneill | Dump memory map if EFI_MEMORY_DEBUG is defined
|
1.5 |
| 28-Aug-2018 |
jmcneill | Remove call to fdt_pack, it is causing problems with memory detection
|
1.4 |
| 27-Aug-2018 |
alnsn | Fix typo in a panic string.
|
1.3 |
| 27-Aug-2018 |
jmcneill | Pass a hash of the MBR and the booted partition to the kernel.
|
1.2 |
| 24-Aug-2018 |
jmcneill | Sanitize the memory map passed to the kernel.
|
1.1 |
| 24-Aug-2018 |
jmcneill | Add MI EFI bootloader and AArch64 glue.
|
1.7.2.4 |
| 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
1.7.2.3 |
| 30-Sep-2018 |
pgoyette | Ssync with HEAD
|
1.7.2.2 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.7.2.1 |
| 03-Sep-2018 |
pgoyette | file efifdt.c was added on branch pgoyette-compat on 2018-09-06 06:56:47 +0000
|
1.15.2.3 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.15.2.2 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.15.2.1 |
| 21-Apr-2019 |
christos | file efifdt.c was added on branch phil-wifi on 2019-06-10 22:09:56 +0000
|
1.17.2.3 |
| 12-Feb-2020 |
martin | Pull up following revision(s) (requested by riastradh in ticket #705):
sys/arch/aarch64/aarch64/aarch64_machdep.c: revision 1.35 sys/stand/efiboot/efifdt.c: revision 1.20 sys/stand/efiboot/efifdt.h: revision 1.7 sys/arch/aarch64/include/machdep.h: revision 1.9 sys/stand/efiboot/efiboot.h: revision 1.11 sys/arch/arm/arm32/arm32_machdep.c: revision 1.129 sys/arch/arm/include/arm32/machdep.h: revision 1.30 sys/stand/efiboot/exec.c: revision 1.12 sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.65 sys/stand/efiboot/version: revision 1.14 sys/stand/efiboot/boot.c: revision 1.19
New function cpu_startup_hook on arm.
Called at end of cpu_startup. Can be defined in, e.g., evbarm to do additional stuff after cpu_startup. Defined as a weak alias to a function that does nothing, so optional. ok jmcneill
Implement rndseed support in efiboot and fdt arm.
The EFI environment variable `rndseed' specifies the path to the random seed. It is loaded only for fdt platforms at the moment. Since the rndseed (an rndsave_t object as defined in <sys/rndio.h>) is 536 bytes long (for hysterical raisins), and to avoid having to erase parts of the fdt tree, we load it into a physical page whose address is passed in the fdt tree, rather than passing the content of the file as an fdt node directly; the kernel then reserves the page from uvm, and maps it into kva to call rnd_seed.
For now, the only kernel that does use efiboot with fdt is evbarm, which knows to handle the rndseed. Any new kernels that use efiboot with fdt must do the same; otherwise uvm may hand out the page with the secret key on it for a normal page allocation in the kernel -- which should be OK if there are no kernel memory disclosure bugs, but would lead to worse consequences than simply loading the seed late in userland with /etc/rc.d/random_seed otherwise.
ok jmcneill
|
1.17.2.2 |
| 01-Sep-2019 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #142):
sys/stand/efiboot/efifdt.c: revision 1.19
Only set #address-cells and #size-cells properties on /chosen if we are fabricating a devicetree (ACPI mode). Fixes PR# 54494
|
1.17.2.1 |
| 04-Aug-2019 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #3):
sys/stand/efiboot/efiacpi.c: revision 1.4 sys/stand/efiboot/efifdt.c: revision 1.18 sys/stand/efiboot/version: revision 1.12 sys/arch/arm/acpi/acpi_machdep.c: revision 1.7 sys/arch/arm/acpi/acpi_machdep.c: revision 1.8
Add full UEFI memory map to the /chosen node.
-
acpi_md_OsMapMemory can be used for both normal and device memory. Use the UEFI memory map to determine how to map a given region.
Always map ACPI table memory as normal memory. Always map device memory as device memory.
|
1.27.2.1 |
| 03-Jan-2021 |
thorpej | Sync w/ HEAD.
|
1.28.6.1 |
| 31-May-2021 |
cjep | sync with head
|
1.28.4.1 |
| 17-Jun-2021 |
thorpej | Sync w/ HEAD.
|