u-boot/lib/efi_loader
Sughosh Ganu 1ea06bc929 capsule: FMP: Populate the image descriptor array from platform data
Currently, the image descriptor array that has been passed to the
GetImageInfo function of the Firmware Management Protocol(FMP) gets
populated through the data stored with the dfu framework. The
dfu data is not restricted to contain information only of the images
updatable through the capsule update mechanism, but it also contains
information on other images. The image descriptor array is also parsed
by the ESRT generation code, and thus the ESRT table contains entries
for other images that are not being handled by the FMP for the capsule
updates. Fix this by populating the image descriptor array from the
structure initialised in the board file.

The other issue fixed is assignment of a separate GUID for all images
in the image descriptor array. The UEFI specification mandates that
all entries in the ESRT table should have a unique GUID value as part
of the FwClass member of the EFI_SYSTEM_RESOURCE_ENTRY. Currently, all
images are assigned a single GUID value, either an FIT GUID or a raw
image GUID. This is fixed by obtaining the GUID values from the
efi_fw_images array defined per platform.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
2022-04-15 10:43:18 +02:00
..
.gitignore efi_loader: git ignore helloworld_efi.S 2020-01-07 18:08:20 +01:00
dtbdump.c efi_loader: move dtbdump.c, initrddump.c to lib/efi_loader 2022-03-20 17:01:00 +01:00
efi_acpi.c efi: Correct address handling with ACPI tables 2022-01-25 11:44:36 -07:00
efi_bootmgr.c efi: Use 16-bit unicode strings 2022-02-03 12:16:01 -05:00
efi_boottime.c efi_loader: support booting via short-form device-path 2022-03-20 11:03:06 +01:00
efi_capsule.c efi_loader: Use sysreset instead of reset command 2022-04-09 21:06:31 +02:00
efi_console.c efi_loader: add handle for UART 2022-02-05 20:20:01 +01:00
efi_device_path.c efi_loader: typo devie-path 2022-03-26 07:46:21 +01:00
efi_device_path_to_text.c efi_loader: fix text output for Uart() DP nodes 2022-02-05 20:20:01 +01:00
efi_device_path_utilities.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
efi_disk.c efi_loader: remove efi_disk_is_system_part() 2022-03-20 11:03:06 +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: use %pUs for printing GUIDs 2022-01-19 16:16:33 +01:00
efi_file.c efi_loader: correct function comment style 2022-01-29 10:23:40 +01:00
efi_firmware.c capsule: FMP: Populate the image descriptor array from platform data 2022-04-15 10:43:18 +02:00
efi_freestanding.c efi_loader: correct function comment style 2022-01-29 10:23:40 +01:00
efi_gop.c efi_loader: correct function comment style 2022-01-29 10:23:40 +01:00
efi_helper.c efi: Use 16-bit unicode strings 2022-02-03 12:16:01 -05:00
efi_hii.c efi_loader: use %pUs for printing GUIDs 2022-01-19 16:16:33 +01:00
efi_hii_config.c efi_loader: use %pUs for printing GUIDs 2022-01-19 16:16:33 +01:00
efi_image_loader.c efi_loader: copy GUID in InstallProtocolInterface() 2022-03-12 12:27:07 +01: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 doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
efi_net.c efi_loader: fix use after free in receive path 2020-10-19 22:59:53 +02:00
efi_riscv.c efi_loader: Enable RISCV_EFI_BOOT_PROTOCOL support 2022-01-29 10:23:40 +01:00
efi_rng.c efi_loader: use %pUs for printing GUIDs 2022-01-19 16:16:33 +01: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: Use 16-bit unicode strings 2022-02-03 12:16:01 -05:00
efi_signature.c efi_loader: fix uefi secure boot with intermediate certs 2022-02-26 07:37:00 +01:00
efi_smbios.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
efi_string.c efi: Use 16-bit unicode strings 2022-02-03 12:16:01 -05:00
efi_tcg2.c efi: Use 16-bit unicode strings 2022-02-03 12:16:01 -05: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: Use 16-bit unicode strings 2022-02-03 12:16:01 -05: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: Use 16-bit unicode strings 2022-02-03 12:16:01 -05:00
efi_variable_tee.c efi_loader: Set variable attributes when EFI_BUFFER_TOO_SMALL is returned 2022-03-20 11:03:06 +01:00
efi_watchdog.c efi_loader: update the timing of enabling and disabling EFI watchdog 2022-02-26 07:37:01 +01:00
helloworld.c efi: Use 16-bit unicode strings 2022-02-03 12:16:01 -05:00
initrddump.c efi_loader: initrddump: drain input before prompt 2022-03-26 07:46:21 +01:00
Kconfig efi_loader: Use sysreset instead of reset command 2022-04-09 21:06:31 +02:00
Makefile efi_loader: initrddump: Actually use the custom CFLAGS 2022-03-31 19:06:17 +02:00