On Thu, 17 Sept 2026 at 20:19, Harsimran Singh Tungal <[email protected]> wrote: > > From: Abdellatif El Khlifi <[email protected]> > > Allow sending the payload with its FMP header > > The Secure world needs the data provided by the payload > FMP header. So, let's allow the user to keep it in > case of FWU_ARM_PSA. This is controlled with > CONFIG_FWU_KEEP_FMP_HEADER. > > Signed-off-by: Abdellatif El Khlifi <[email protected]> > Cc: Heinrich Schuchardt <[email protected]> > Cc: Sughosh Ganu <[email protected]> > Cc: Tom Rini <[email protected]> > Cc: Ilias Apalodimas <[email protected]> > Cc: Simon Glass <[email protected]> > Cc: Michal Simek <[email protected]> > Cc: Marek Vasut <[email protected]> > Cc: Casey Connolly <[email protected]> > Cc: Adriano Cordova <[email protected]> > ---
Reviewed-by: Ilias Apalodimas <[email protected]> > lib/efi_loader/Kconfig | 8 ++++++++ > lib/efi_loader/efi_firmware.c | 7 +++++-- > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig > index 483d2c6dc18..50302a03eae 100644 > --- a/lib/efi_loader/Kconfig > +++ b/lib/efi_loader/Kconfig > @@ -387,6 +387,14 @@ config FWU_NUM_IMAGES_PER_BANK > Define the number of firmware images per bank. This value > should be the same for all the banks. > > +config FWU_KEEP_FMP_HEADER > + bool "Allow sending the FMP header with the payload" > + depends on FWU_ARM_PSA > + default y > + help > + Select this option if you do not want to strip the FMP header > + of the payload > + > config FWU_BUFFER_PAGES > int "Number of 4KB pages in the FWU shared buffer" > depends on FWU_ARM_PSA > diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c > index 290db9d27eb..09d386cdf9a 100644 > --- a/lib/efi_loader/efi_firmware.c > +++ b/lib/efi_loader/efi_firmware.c > @@ -512,8 +512,11 @@ static void efi_firmware_get_fw_version(const void > **p_image, > /* FMP header is inserted above the capsule payload */ > state->fw_version = header->fw_version; > > - *p_image += header->header_size; > - *p_image_size -= header->header_size; > + if (!IS_ENABLED(CONFIG_FWU_KEEP_FMP_HEADER)) { > + *p_image += header->header_size; > + *p_image_size -= header->header_size; > + } > + > } > } > > -- > 2.43.0 >
