u-boot/lib/efi_loader
Ilias Apalodimas a2f1482fc0 efi_loader: Get rid of kaslr-seed if EFI_RNG_PROTOCOL is installed
U-Boot, in some occasions, injects a 'kaslr-seed' property on the /chosen
node. That would be problematic in case we want to measure the DTB we
install in the configuration table, since it would change across reboots.

The Linux kernel EFI-stub completely ignores it and only relies on
EFI_RNG_PROTOCOL for it's own randomness needs (i.e the randomization
of the physical placement of the kernel). In fact it (blindly) overwrites
the existing seed if the protocol is installed. However it still uses it
for randomizing it's virtual placement.
So let's get rid of it in the presence of the RNG protocol.

It's worth noting that TPMs also provide an RNG.  So if we tweak our
EFI_RNG_PROTOCOL slightly and install the protocol when a TPM device
is present the 'kaslr-seed' property will always be removed, allowing
us to reliably measure our DTB.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
2022-01-15 10:57:22 +01:00
..
.gitignore efi_loader: git ignore helloworld_efi.S 2020-01-07 18:08:20 +01:00
efi_acpi.c efi_loader: ACPI tables must be in EfiACPIReclaimMemory 2021-02-26 16:17:43 +01:00
efi_bootmgr.c efi_loader: Cleanup get_var duplication 2021-04-10 12:00:24 +02:00
efi_boottime.c efi_loader: correctly handle no tpm device error 2021-12-09 11:43:25 -08:00
efi_capsule.c efi_loader: segfault in efi_clear_os_indications() 2021-11-26 21:30:59 +01:00
efi_console.c efi_loader: missing parentheses in query_console_size 2021-07-02 09:37:01 +02:00
efi_device_path.c efi_loader: add UEFI GPT measurement 2021-10-26 21:32:46 +02:00
efi_device_path_to_text.c efi_loader: use EfiBootServicesData for DP to text 2021-08-17 17:24:08 +02:00
efi_device_path_utilities.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
efi_disk.c efi_loader: efi_disk_register() should not fail 2021-11-26 21:30:59 +01:00
efi_dt_fixup.c efi_loader: Get rid of kaslr-seed if EFI_RNG_PROTOCOL is installed 2022-01-15 10:57:22 +01:00
efi_esrt.c efi_loader: esrt: Remove incorrect invocations of EFI_CALL macro 2021-04-17 20:01:31 +02:00
efi_file.c efi_loader: provide file attributes in EFI_FILE_PROTOCOL.Read() 2021-07-12 20:30:48 +02:00
efi_firmware.c efi_loader: capsule: Remove the check for capsule_authentication_enabled environment variable 2021-05-18 12:36:12 +02:00
efi_freestanding.c efi_loader: fix freestanding memmove() 2020-03-22 11:06:23 +01:00
efi_gop.c efi_loader: GOP: Fix 30bpp block transfer support 2021-10-09 18:50:31 +02:00
efi_helper.c efi_loader: efi_dp_from_lo() should skip VenMedia node 2021-10-21 03:46:04 +02:00
efi_hii.c efi_loader: ListPackageLists() return EFI_NOT_FOUND 2019-06-20 22:26:19 +00:00
efi_hii_config.c efi_loader: remove EFI_HII_CONFIG_ROUTING_PROTOCOL 2020-12-10 09:15:32 +01:00
efi_image_loader.c efi_loader: correctly handle no tpm device error 2021-12-09 11:43:25 -08:00
efi_load_initrd.c efi_loader: avoid multiple local copies of lf2_initrd_guid 2021-10-21 03:46:04 +02:00
efi_load_options.c efi_loader: move load options to new module 2021-01-19 18:56:08 +01:00
efi_memory.c efi_loader: Fix loaded image alignment 2021-10-21 03:46:04 +02:00
efi_net.c efi_loader: fix use after free in receive path 2020-10-19 22:59:53 +02:00
efi_rng.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
efi_root_node.c efi_loader: remove EFI_UNICODE_COLLATION_PROTOCOL 2021-01-20 08:17:17 +01:00
efi_runtime.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
efi_setup.c efi_loader: efi_tcg2_register returns appropriate error 2021-12-09 11:43:25 -08:00
efi_signature.c efi_loader: simplify efi_sigstore_parse_sigdb() 2021-10-25 21:13:07 +02:00
efi_smbios.c efi_loader: add SMBIOS table measurement 2021-10-26 17:58:14 +02:00
efi_string.c efi_loader: missing include in efi_string.c 2021-04-24 06:53:40 +02:00
efi_tcg2.c efi_loader: correctly handle no tpm device error 2021-12-09 11:43:25 -08:00
efi_unicode_collation.c efi_loader: carve out utf_to_cp() 2021-03-07 17:37:13 +01:00
efi_var_common.c efi_loader: function to get GUID for variable name 2021-10-25 21:13:06 +02:00
efi_var_file.c efi_loader: don't load Shim's MOK database from file 2021-10-21 03:46:04 +02:00
efi_var_mem.c efi_loader: treat UEFI variable name as const 2021-10-25 21:13:06 +02:00
efi_var_seed.S efi_loader: pre-seed UEFI variables 2020-07-16 12:37:02 +02:00
efi_variable.c efi_loader: treat UEFI variable name as const 2021-10-25 21:13:06 +02:00
efi_variable_tee.c efi_loader: Don't limit the StMM buffer size explicitly 2021-12-26 06:49:14 +01:00
efi_watchdog.c efi_loader: simplify efi_watchdog_timer_notify() 2021-09-11 11:02:02 +02:00
helloworld.c efi_loader: typo 'devide path' 2021-03-31 06:34:33 +00:00
Kconfig efi_loader: efi_tcg2_register returns appropriate error 2021-12-09 11:43:25 -08:00
Makefile Revert "efi_capsule: Move signature from DTB to .rodata" 2021-09-18 03:47:50 -06:00