aboutsummaryrefslogtreecommitdiff
path: root/lib/efi_loader/efi_setup.c
diff options
context:
space:
mode:
authorAKASHI Takahiro <takahiro.akashi@linaro.org>2020-11-30 18:12:11 +0900
committerHeinrich Schuchardt <xypron.glpk@gmx.de>2020-12-03 21:22:50 +0100
commit8d99026f06978ddf2ed72ccaed6cd3ad0887e4e5 (patch)
treefb4b261aab678d2a83380a674b40cee1fe21da9d /lib/efi_loader/efi_setup.c
parented9349c697711bd2d1b69b0877bc3d96fc664a37 (diff)
downloadu-boot-8d99026f06978ddf2ed72ccaed6cd3ad0887e4e5.zip
u-boot-8d99026f06978ddf2ed72ccaed6cd3ad0887e4e5.tar.gz
u-boot-8d99026f06978ddf2ed72ccaed6cd3ad0887e4e5.tar.bz2
efi_loader: capsule: support firmware update
A capsule tagged with the guid, EFI_FIRMWARE_MANAGEMENT_CAPSULE_ID_GUID, is handled as a firmware update object. What efi_update_capsule() basically does is to load any firmware management protocol (or fmp) drivers contained in a capsule, find out an appropriate fmp driver and then invoke its set_image() interface against each binary in a capsule. In this commit, however, loading drivers is not supported. The result of applying a capsule is set to be stored in "CapsuleXXXX" variable, but its implementation is deferred to a fmp driver. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Diffstat (limited to 'lib/efi_loader/efi_setup.c')
-rw-r--r--lib/efi_loader/efi_setup.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
index a126a59..ce6292f 100644
--- a/lib/efi_loader/efi_setup.c
+++ b/lib/efi_loader/efi_setup.c
@@ -159,6 +159,10 @@ static efi_status_t efi_init_os_indications(void)
os_indications_supported |=
EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED;
+ if (IS_ENABLED(CONFIG_EFI_CAPSULE_FIRMWARE_MANAGEMENT))
+ os_indications_supported |=
+ EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED;
+
return efi_set_variable_int(L"OsIndicationsSupported",
&efi_global_variable_guid,
EFI_VARIABLE_BOOTSERVICE_ACCESS |