[PATCH v2 3/7] doc: uefi: document dynamic UUID generation

Ilias Apalodimas ilias.apalodimas at linaro.org
Thu May 30 16:42:05 CEST 2024


On Wed, 29 May 2024 at 17:49, Caleb Connolly <caleb.connolly at linaro.org>
wrote:

> Document how platforms can generate GUIDs at runtime rather than
> maintaining a list of UUIDs per-board.
>
> Signed-off-by: Caleb Connolly <caleb.connolly at linaro.org>
> ---
>  doc/develop/uefi/uefi.rst | 31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
>
> diff --git a/doc/develop/uefi/uefi.rst b/doc/develop/uefi/uefi.rst
> index 0389b269c01b..0b60702c052a 100644
> --- a/doc/develop/uefi/uefi.rst
> +++ b/doc/develop/uefi/uefi.rst
> @@ -448,8 +448,39 @@ the location of the firmware updates is not a very
> secure
>  practice. Getting this information from the firmware itself is more
>  secure, assuming the firmware has been verified by a previous stage
>  boot loader.
>
> +The image_type_id contains a GUID value which is specific to the image
> +and board being updated, that is to say it should uniquely identify the
> +board model (and revision if relevant) and image pair. Traditionally,
> +these GUIDs are generated manually and hardcoded on a per-board basis,
> +however this scheme makes it difficult to scale up to support many
> +boards.
> +
> +To address this, v5 GUIDs can be used to generate board-specific GUIDs
> +at runtime, based on a set of persistent identifiable information:
> +
> +.. code-block:: c
> +
> +       /**
> +       * efi_capsule_update_info_gen_ids - generate GUIDs for the images
> +       *
> +       * Generate the image_type_id for each image in the
> update_info.images array
> +       * using the model and compatible strings from the device tree and
> a salt
> +       * UUID defined at build time.
> +       *
> +       * Returns:              status code
> +       */
> +       static efi_status_t efi_capsule_update_info_gen_ids(void);
> +
> +These strings are combined with the fw_image name to generate GUIDs for
> +each image. Support for dynamic UUIDs can be enabled by turning on
> +CONFIG_EFI_CAPSULE_DYNAMIC_UUIDS, generating a new namespace UUID and
> +setting CONFIG_EFI_CAPSULE_NAMESPACE_UUID to it.
> +
> +The genguid tool can be used to determine the GUIDs for a particular board
> +and image. It can be found in the tools directory.
> +
>  The firmware images structure defines the GUID values, image index
>  values and the name of the images that are to be updated through
>  the capsule update feature. These values are to be defined as part of
>  an array. These GUID values would be used by the Firmware Management
>
> --
> 2.45.0
>
>
 Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>


More information about the U-Boot mailing list