efi_loader: capsule: support firmware update
authorAKASHI Takahiro <takahiro.akashi@linaro.org>
Mon, 30 Nov 2020 09:12:11 +0000 (18:12 +0900)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 3 Dec 2020 20:22:50 +0000 (21:22 +0100)
commit8d99026f06978ddf2ed72ccaed6cd3ad0887e4e5
treefb4b261aab678d2a83380a674b40cee1fe21da9d
parented9349c697711bd2d1b69b0877bc3d96fc664a37
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>
include/efi_api.h
include/efi_loader.h
lib/efi_loader/Kconfig
lib/efi_loader/efi_capsule.c
lib/efi_loader/efi_setup.c