[PATCH v3 17/24] fwu_arm_psa: Add ESRT support

Michal Simek michal.simek at amd.com
Mon Jul 21 16:16:53 CEST 2025



On 7/21/25 13:18, abdellatif.elkhlifi at arm.com wrote:
> From: Abdellatif El Khlifi <abdellatif.elkhlifi at arm.com>
> 
> Read ESRT data from Secure world in GetImageInfo()
> 
> Use FWU_READ_STREAM ABI to read ESRT data from Secure world.
> 
> Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi at arm.com>
> Cc: Sughosh Ganu <sughosh.ganu at linaro.org>
> Cc: Tom Rini <trini at konsulko.com>
> Cc: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Michal Simek <michal.simek at amd.com>
> Cc: Marek Vasut <marek.vasut+renesas at mailbox.org>
> Cc: Casey Connolly <casey.connolly at linaro.org>
> 
> ---
> 
> Changelog of changes:
> ===========================
> 
> v2:
> 
> * As suggested by Michal: Add /** for marking kernel-doc format
> 
> v1:
> 
> * Read ESRT data from Secure world in GetImageInfo()
> 
>   include/fwu_arm_psa.h         |  13 ++++
>   lib/fwu_updates/fwu_arm_psa.c | 116 +++++++++++++++++++++++++++++++---
>   2 files changed, 119 insertions(+), 10 deletions(-)
> 
> diff --git a/include/fwu_arm_psa.h b/include/fwu_arm_psa.h
> index 6400cf44d1b..38fb9bde165 100644
> --- a/include/fwu_arm_psa.h
> +++ b/include/fwu_arm_psa.h
> @@ -16,6 +16,9 @@
>   
>   #define DEFAULT_HW_INSTANCE		(1)
>   
> +/* The minimum supported ESRT version */
> +#define EFI_SYSTEM_RESOURCE_TABLE_FIRMWARE_RESOURCE_VERSION		(1)
> +
>   /* Default values of the ESRT fields which are not supported at this stage */
>   #define PACKAGE_VERSION_NOT_SUP		(0xffffffff)
>   #define LAST_ATTEMPT_NOT_SUP		(0)
> @@ -355,6 +358,16 @@ struct __packed fwu_image_directory {
>   	struct fwu_image_info_entry entries[FWU_DIRECTORY_IMAGE_ENTRIES_COUNT];
>   };
>   
> +/**
> + * struct fwu_esrt_data_wrapper - Wrapper for the ESRT data
> + * @data: The ESRT data read from secure world
> + * @entries: The ESRT entries
> + */
> +struct __packed fwu_esrt_data_wrapper {
> +	struct efi_system_resource_table  data;

double space

> +	struct efi_system_resource_entry entries[CONFIG_FWU_NUM_IMAGES_PER_BANK];
> +};
> +
>   /**
>    * fwu_agent_init() - Setup the FWU agent
>    *
> diff --git a/lib/fwu_updates/fwu_arm_psa.c b/lib/fwu_updates/fwu_arm_psa.c
> index 40746eee6ce..7297e724569 100644
> --- a/lib/fwu_updates/fwu_arm_psa.c
> +++ b/lib/fwu_updates/fwu_arm_psa.c
> @@ -27,6 +27,7 @@ static u8 g_fwu_version_minor;
>   static bool g_fwu_initialized;
>   struct fwu_image_directory g_fwu_cached_directory;
>   efi_guid_t g_update_guid[CONFIG_FWU_NUM_IMAGES_PER_BANK];
> +struct fwu_esrt_data_wrapper g_esrt_data;
>   
>   /* Error mapping declarations */
>   
> @@ -898,6 +899,100 @@ close_handle:
>   	return ret;
>   }
>   
> +/**
> + * fwu_esrt_sanity_check() - Verify ESRT data
> + *
> + * Make sure the ESRT data matches the directory data.
> + *
> + * Return:
> + *
> + * 0 on success
> + */

Please run
./scripts/kernel-doc -man -v 1>/dev/null lib/fwu_updates/fwu_arm_psa.c

and fix issues created by new added code.

And obviously here you are returning more then just 0.


M


More information about the U-Boot mailing list