]> git.dujemihanovic.xyz Git - u-boot.git/commit
efi_loader: store firmware version into FmpState variable
authorMasahisa Kojima <masahisa.kojima@linaro.org>
Wed, 7 Jun 2023 05:41:52 +0000 (14:41 +0900)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Thu, 8 Jun 2023 07:20:36 +0000 (09:20 +0200)
commitbfaa1fbc62669ac94415f9e36698c534bec29832
tree031633f00672e16a9d9fd2f1c7e7bce4b183a5c6
parentcccea18813c44c15b2709edcfba1048e42d28404
efi_loader: store firmware version into FmpState variable

Firmware version management is not implemented in the current
FMP protocol.
EDK II reference implementation capsule generation script inserts
the FMP Payload Header right before the payload, FMP Payload Header
contains the firmware version and lowest supported version.

This commit utilizes the FMP Payload Header, reads the header and
stores the firmware version into "FmpStateXXXX" EFI non-volatile variable.
XXXX indicates the image index, since FMP protocol handles multiple
image indexes.
Note that lowest supported version included in the FMP Payload Header
is not used. If the platform uses file-based EFI variable storage,
it can be tampered. The file-based EFI variable storage is not the
right place to store the lowest supported version for anti-rollback
protection.

This change is compatible with the existing FMP implementation.
This change does not mandate the FMP Payload Header.
If no FMP Payload Header is found in the capsule file, fw_version,
lowest supported version, last attempt version and last attempt
status is 0 and this is the same behavior as existing FMP
implementation.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
lib/efi_loader/efi_firmware.c