[PATCH v4 0/3] EFI Capsule update explicitly sets dfu_alt_info
Jon Humphreys
j-humphreys at ti.com
Wed Apr 9 23:36:58 CEST 2025
Michal Simek <monstr at monstr.eu> writes:
> Hi,
>
> st 26. 2. 2025 v 23:36 odesílatel Jonathan Humphreys
> <j-humphreys at ti.com> napsal:
>>
>> 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
>>
>> Changes from v2:
>> - add patch for xilinx boards to set the dfu_string member with the created
>> dfu_alt_info string for capsule updates
>> Link to v2: https://lore.kernel.org/r/20250206154719.3032322-1-j-humphreys@ti.com
>>
>> Changes from v3:
>> - in case that the dfu_alt_info env variable is set and we save a copy
>> using strdup(), check that strdup() doesn't fail
>> - separate the reporting of an error due to the DFU operation from failure
>> to restore the dfu_alt_info environment variable. In the latter case,
>> just emit a warning and return success for the DFU operation.
>> Link to v3: https://lore.kernel.org/r/20250213195351.3518305-1-j-humphreys@ti.com
>>
>> Tested-by: Michal Simek <michal.simek at amd.com>
>>
>> Jonathan Humphreys (2):
>> efi_firmware: set EFI capsule dfu_alt_info env explicitly
>> board: remove capsule update support in set_dfu_alt_info()
>>
>> Michal Simek (1):
>> xilinx: dfu: Fill directly update_info.dfu_string
>>
>> 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 ---
>> board/xilinx/common/board.h | 3 +
>> board/xilinx/versal/board.c | 16 +++---
>> board/xilinx/zynq/board.c | 16 +++---
>> board/xilinx/zynqmp/zynqmp.c | 16 +++---
>> lib/efi_loader/Kconfig | 2 -
>> lib/efi_loader/efi_firmware.c | 56 ++++++++++++++++---
>> 17 files changed, 72 insertions(+), 107 deletions(-)
>>
>> --
>> 2.34.1
>>
>
> Is anybody going to take this series?
>
> Thanks,
> Michal
>
> --
> Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
> w: www.monstr.eu p: +42-0-721842854
> Maintainer of Linux kernel - Xilinx Microblaze
> Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
> U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs
I believe it is Heinrich Schuchardt's queue.
Heinrich, is there anything else to be closed?
Thanks
Jon
More information about the U-Boot
mailing list