mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
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> Reviewed-by: Simon Glass <sjg@chromium.org> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
committed by
Patrice Chotard
parent
2dc71c48bf
commit
97cdde6dfa
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user