[PATCH v2 0/2] EFI Capsule update explicitly sets dfu_alt_info
Jonathan Humphreys
j-humphreys at ti.com
Thu Feb 6 16:47:17 CET 2025
For capsule update, explicitly set the dfu_alt_info environment variable
before the DFU operation, and then restore it to the original value.
Previously, the dfu_alt_info environment variable was set with the
set_dfu_alt_info() function.
The problem with setting the capsule update's dfu_alt_info setting in
set_dfu_alt_info() is that set_dfu_alt_info() lacks the context of what DFU
operation is being performed (eg, capsule update, DFU boot, listing the
alt_info, etc) so the capsule update setting was overwriting the setting
for other DFU operations.
Changes from v1:
- use log_err() instead of pr_err()
- create a local copy of the original dfu_alt_info environment variable to
be used to later restore it, rather than just a pointer to the stored
value, because changing its value to the EFI capsule update setting will
cause the original string location to be freed.
- even in the case of a DFU operation error, restore the dfu_alt_info
environment variable to its original value.
- return EFI_EXIT based error codes if setting environment variables fails
Link to v1: https://lore.kernel.org/r/20250203215351.2840144-1-j-humphreys@ti.com
Jonathan Humphreys (2):
efi_firmware: set EFI capsule dfu_alt_info env explicitly
board: remove capsule update support in set_dfu_alt_info()
board/beagle/beagleboneai64/beagleboneai64.c | 8 ----
board/beagle/beagleplay/beagleplay.c | 8 ----
.../aml-a311d-cc/aml-a311d-cc.c | 2 -
.../aml-s805x-ac/aml-s805x-ac.c | 2 -
.../aml-s905d3-cc/aml-s905d3-cc.c | 2 -
board/phytec/common/k3/board.c | 8 ----
board/ti/am62px/evm.c | 8 ----
board/ti/am62x/evm.c | 8 ----
board/ti/am64x/evm.c | 8 ----
board/ti/j721e/evm.c | 8 ----
board/ti/j784s4/evm.c | 8 ----
lib/efi_loader/Kconfig | 2 -
lib/efi_loader/efi_firmware.c | 44 +++++++++++++++----
13 files changed, 36 insertions(+), 80 deletions(-)
--
2.34.1
More information about the U-Boot
mailing list