u-boot/lib/efi_loader
Ilias Apalodimas 0fa5020c02 efi_loader: Allow capsule update on-disk without checking OsIndications
Although U-Boot supports capsule update on-disk, it's lack of support for
SetVariable at runtime prevents applications like fwupd from using it.

In order to perform the capsule update on-disk the spec says that the OS
must copy the capsule to the \EFI\UpdateCapsule directory and set a bit in
the OsIndications variable.  The firmware then checks for the
EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED bit in OsIndications
variable, which is set by the submitter to trigger processing of the
capsule on the next reboot.

Let's add a config option which ignores the bit and just relies on the
capsule being present. Since U-Boot deletes the capsule while processing
it, we won't end up applying it multiple times.

Note that this is allowed for all capsules. In the future, once
authenticated capsules are fully supported, we can limit the functionality
to those only.

Signed-off-by: apalos <ilias.apalodimas@linaro.org>

Reword Kconfig description.
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2021-07-02 18:29:06 +02: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: TPL_HIGH_LEVEL not allowed for CreateEvent 2021-06-28 19:57:13 +02:00
efi_capsule.c efi_loader: Allow capsule update on-disk without checking OsIndications 2021-07-02 18:29:06 +02: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: path length in efi_dp_from_name() 2021-05-25 13:06:57 +02:00
efi_device_path_to_text.c efi_loader: Uart device path missing break 2021-03-31 06:22:22 +00: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: partition numbers are hexadecimal 2021-06-09 00:16:39 +02:00
efi_dt_fixup.c efi_loader: fix memory type for memory reservation block 2021-03-25 20:07:18 +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: loosen buffer parameter check in efi_file_read_int 2021-05-18 12:36:12 +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 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
efi_helper.c efi_loader: Add helper functions for EFI 2021-03-25 20:14:25 +01: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: fix Sphinx warning 2021-06-09 12:35:01 +02:00
efi_load_initrd.c efi_loader: Replace config option for initrd loading 2021-03-25 20:14:26 +01:00
efi_load_options.c efi_loader: move load options to new module 2021-01-19 18:56:08 +01:00
efi_memory.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05: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: clear OsIndications 2021-07-02 09:37:01 +02:00
efi_signature.c efi_loader: expose efi_image_parse() even if UEFI Secure Boot is disabled 2021-05-25 13:06:57 +02:00
efi_smbios.c common: Drop log.h from common header 2020-05-18 21:19:18 -04: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: add PE/COFF image measurement 2021-05-28 16:17:01 +02: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: Improve the parameter check for QueryVariableInfo() 2021-07-02 09:37:01 +02:00
efi_var_file.c efi_loader: partition numbers are hexadecimal 2021-06-09 00:16:39 +02:00
efi_var_mem.c efi_loader: Avoid emitting efi_var_buf to .GOT 2021-01-20 08:17:17 +01:00
efi_var_seed.S efi_loader: pre-seed UEFI variables 2020-07-16 12:37:02 +02:00
efi_variable.c efi_loader: Make the pkcs7 header parsing function an extern 2020-12-31 14:41:31 +01:00
efi_variable_tee.c efi_loader: Avoid emitting efi_var_buf to .GOT 2021-01-20 08:17:17 +01:00
efi_watchdog.c efi_loader: function descriptions efi_watchdog.c 2020-04-16 08:10:02 +02:00
helloworld.c efi_loader: typo 'devide path' 2021-03-31 06:34:33 +00:00
Kconfig efi_loader: Allow capsule update on-disk without checking OsIndications 2021-07-02 18:29:06 +02:00
Makefile efi_loader: expose efi_image_parse() even if UEFI Secure Boot is disabled 2021-05-25 13:06:57 +02:00