| Message ID | 20260404152640.3297713-7-dario.binacchi@amarulasolutions.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
Hi Dario, On 2026-04-04T15:23:27, Dario Binacchi <dario.binacchi@amarulasolutions.com> wrote: > fwu: add helper to get image GUID by type and bank index > > Introduce fwu_mdata_get_image_guid() to retrieve a specific image GUID > from the FWU metadata based on the bank index and image type GUID. > > This allows identifying the correct partition in multi-bank (A/B) > scenarios, ensuring the correct image is targeted depending on the > current bank. > > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> > > include/fwu.h | 3 +++ > lib/fwu_updates/fwu.c | 33 +++++++++++++++++++++++++++++++++ > test/hooks/bin/u | 1 + > 3 files changed, 37 insertions(+) > diff --git a/include/fwu.h b/include/fwu.h > @@ -396,6 +396,9 @@ void fwu_populate_mdata_image_info(struct fwu_data *data); > +int fwu_mdata_get_image_guid(efi_guid_t *image_guid, > + const efi_guid_t *image_type_guid, u32 bank_index); The cover letter mentions 'Add kerneldoc comment for fwu_mdata_get_image_guid()' but the header declaration has no kerneldoc. Please can you add it before the declaration in fwu.h to match other functions in this file? The comment in fwu.c is good, but the U-Boot convention is to document public APIs in the header. Regards, Simon To unsubscribe from this group and stop receiving emails from it, send an email to linux-amarula+unsubscribe@amarulasolutions.com.
diff --git a/include/fwu.h b/include/fwu.h index e7bd1d492af1..40b12810d5fc 100644 --- a/include/fwu.h +++ b/include/fwu.h @@ -394,6 +394,9 @@ void fwu_populate_mdata_image_info(struct fwu_data *data); */ int fwu_get_mdata_size(uint32_t *mdata_size); +int fwu_mdata_get_image_guid(efi_guid_t *image_guid, + const efi_guid_t *image_type_guid, u32 bank_index); + /** * fwu_state_machine_updates() - Update FWU state of the platform * @trial_state: Is platform transitioning into Trial State diff --git a/lib/fwu_updates/fwu.c b/lib/fwu_updates/fwu.c index 0f5ef2ba5153..b26b244cf855 100644 --- a/lib/fwu_updates/fwu.c +++ b/lib/fwu_updates/fwu.c @@ -243,6 +243,39 @@ int fwu_sync_mdata(struct fwu_mdata *mdata, int part) return 0; } +/** + * fwu_mdata_get_image_guid() - Get image GUID for a type and bank + * @image_guid: Pointer to be filled with the found image GUID + * @image_type_guid: Pointer to the image type GUID to search for + * @bank_index: Index of the bank + * + * Return: 0 if OK, -ve on error + */ +int fwu_mdata_get_image_guid(efi_guid_t *image_guid, + const efi_guid_t *image_type_guid, u32 bank_index) +{ + struct fwu_data *data = &g_fwu_data; + struct fwu_image_entry *image; + int i; + + if (bank_index >= data->num_banks) + return -EINVAL; + + for (i = 0; i < data->num_images; i++) { + image = &data->fwu_images[i]; + + if (!guidcmp(image_type_guid, &image->image_type_guid)) { + struct fwu_image_bank_info *bank; + + bank = &image->img_bank_info[bank_index]; + guidcpy(image_guid, &bank->image_guid); + return 0; + } + } + + return -ENOENT; +} + /** * fwu_mdata_copies_allocate() - Allocate memory for metadata * @mdata_size: Size of the metadata structure
Introduce fwu_mdata_get_image_guid() to retrieve a specific image GUID from the FWU metadata based on the bank index and image type GUID. This allows identifying the correct partition in multi-bank (A/B) scenarios, ensuring the correct image is targeted depending on the current bank. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> --- Changes in v2: - Add kerneldoc comment for fwu_mdata_get_image_guid(). - Pass efi_guid_t by pointer for consistency. include/fwu.h | 3 +++ lib/fwu_updates/fwu.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+)