[...]
> config EFI_CAPSULE_FIRMWARE_MANAGEMENT > diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c > index de0d49ebebda..9ef67d1b4405 100644 > --- a/lib/efi_loader/efi_capsule.c > +++ b/lib/efi_loader/efi_capsule.c > @@ -19,8 +19,9 @@ > #include <mapmem.h> > #include <sort.h> > #include <sysreset.h> > #include <asm/global_data.h> > +#include <uuid.h> > > #include <crypto/pkcs7.h> > #include <crypto/pkcs7_parser.h> > #include <linux/err.h> > @@ -403,8 +404,40 @@ out: > return status; > } > #endif /* CONFIG_EFI_CAPSULE_AUTHENTICATE */ > > +#if CONFIG_IS_ENABLED(EFI_CAPSULE_DYNAMIC_UUIDS) > +int efi_capsule_update_info_gen_ids(efi_guid_t *namespace, const char *soc, > const char *model, const char *compatible) > +{ > + int i; Perhaps irrelevant to this patch, but do we need to define the name space in platform code? Can't we just put it on a Kconfig and do the dynamic UUIID generation in efi_capsule.c? Thanks /Ilias > + > + if (!soc || !model || !compatible) { > + log_err("%s: soc, model, or compatible not defined\n", > __func__); > + return -EINVAL; > + } > + > + if (!update_info.num_images) { > + log_err("%s: no fw_images, make sure update_info.num_images > is set\n", __func__); > + return -ENODATA; > + } > + > + for (i = 0; i < update_info.num_images; i++) { > + gen_uuid_v5((struct uuid*)namespace, > + (struct uuid > *)&update_info.images[i].image_type_id, > + soc, strlen(soc), > + model, strlen(model), > + compatible, strlen(compatible), > + update_info.images[i].fw_name, > u16_strlen(update_info.images[i].fw_name), > + NULL); > + > + log_debug("Image %ls generated UUID %pUs\n", > update_info.images[i].fw_name, > + &update_info.images[i].image_type_id); > + } > + > + return 0; > +} > +#endif > + > static __maybe_unused bool fwu_empty_capsule(struct efi_capsule_header > *capsule) > { > return !guidcmp(&capsule->capsule_guid, > &fwu_guid_os_request_fw_revert) || > > -- > 2.44.0 >