u-boot/lib/efi_loader
Ilias Apalodimas ec80b4735a efi_loader: Implement FileLoad2 for initramfs loading
Following kernel's proposal for an arch-agnostic initrd loading
mechanism [1] let's implement the U-boot counterpart.
This new approach has a number of advantages compared to what we did up
to now. The file is loaded into memory only when requested limiting the
area of TOCTOU attacks. Users will be allowed to place the initramfs
file on any u-boot accessible partition instead of just the ESP one.
Finally this is an attempt of a generic interface across architectures
in the linux kernel so it makes sense to support that.

The file location is intentionally only supported as a config option
argument(CONFIG_EFI_INITRD_FILESPEC), in an effort to enhance security.
Although U-boot is not responsible for verifying the integrity of the
initramfs, we can enhance the offered security by only accepting a
built-in option, which will be naturally verified by UEFI Secure Boot.
This can easily change in the future if needed and configure that via ENV
or UEFI variable.

[1] https://lore.kernel.org/linux-efi/20200207202637.GA3464906@rani.riverdale.lan/T/#m4a25eb33112fab7a22faa0fd65d4d663209af32f

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2020-02-28 19:37:14 +01:00
..
.gitignore efi_loader: git ignore helloworld_efi.S 2020-01-07 18:08:20 +01:00
efi_acpi.c efi_loader: Install ACPI configuration tables 2018-07-02 09:23:28 +08:00
efi_bootmgr.c efi_loader: function comments efi_bootmgr.c 2019-07-16 22:17:20 +00:00
efi_boottime.c efi_loader: describe returning of control 2020-01-15 00:51:51 +01:00
efi_console.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
efi_device_path.c efi_loader: remove unused function efi_dp_from_dev() 2019-11-19 12:10:22 +01:00
efi_device_path_to_text.c efi: device path for nvme 2019-10-06 16:02:37 +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: disk: install file system protocol to a whole disk 2019-11-12 23:13:54 +01:00
efi_file.c efi_loader: adjust file system info 2020-01-07 18:08:20 +01:00
efi_freestanding.c efi_loader: __cyg_profile_func_enter/_exit 2020-01-07 18:08:20 +01:00
efi_gop.c doc: UEFI API documentation 2019-09-05 23:18:52 +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: debug output for HII protocols 2019-02-13 09:40:06 +01:00
efi_image_loader.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
efi_load_initrd.c efi_loader: Implement FileLoad2 for initramfs loading 2020-02-28 19:37:14 +01:00
efi_memory.c common: Move board_get_usable_ram_top() out of common.h 2019-12-02 18:25:04 -05:00
efi_net.c doc: UEFI API documentation 2019-09-05 23:18:52 +02:00
efi_rng.c efi_loader: document functions in efi_rng.c 2020-01-15 00:51:51 +01:00
efi_root_node.c efi_rng_protocol: Install the efi_rng_protocol on the root node 2020-01-07 18:08:22 +01:00
efi_runtime.c efi_loader: implement EFI_RT_PROPERTIES_TABLE 2020-02-26 19:32:09 +01:00
efi_setup.c efi_loader: Implement FileLoad2 for initramfs loading 2020-02-28 19:37:14 +01:00
efi_smbios.c sandbox: smbios: Update to support sandbox 2018-12-02 21:59:37 +01:00
efi_unicode_collation.c efi_loader: description efi_stri_coll() 2019-09-23 22:53:25 +02:00
efi_variable.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
efi_watchdog.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
helloworld.c efi_loader: consistent naming of protocol GUIDs 2019-04-23 00:37:27 +02:00
Kconfig efi_loader: Implement FileLoad2 for initramfs loading 2020-02-28 19:37:14 +01:00
Makefile efi_loader: Implement FileLoad2 for initramfs loading 2020-02-28 19:37:14 +01:00