On Mon, Feb 09, 2026 at 02:39:06PM +0100, Andrea Bolognani wrote:
> This allows describing firmwares that are loaded as ROMs but also
> support a UEFI variable store. This is the case for edk2 builds
> that are set up to use the uefi-vars QEMU device, and whose
> descriptors would advertise the 'host-uefi-vars' feature.
>
> Signed-off-by: Andrea Bolognani <[email protected]>
> ---
> docs/interop/firmware.json | 44 +++++++++++++++++++++++++++++++++++++-
> 1 file changed, 43 insertions(+), 1 deletion(-)
>
> diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json
> index da0362a2c0..e51fffa473 100644
> --- a/docs/interop/firmware.json
> +++ b/docs/interop/firmware.json
> @@ -369,6 +369,39 @@
> { 'struct' : 'FirmwareMappingKernel',
> 'data' : { 'filename' : 'str' } }
>
> +##
> +# @FirmwareMemoryUefiVars:
> +#
> +# Contains information needed to set up the "uefi-vars" device
> +# to provide UEFI variable store access to the firmware.
> +#
> +# @template: The path to the UEFI variable store template compatible
s/UEFI variable store/UEFI JSON variable store/
> +# with the firmware. Management software instantiates an
> +# individual copy -- a specific UEFI variable store file -- from
> +# @template for each new virtual machine definition created.
> +# @template itself is never mapped into virtual machines, only
> +# individual copies of it are. The file created by copying
> +# @template is used for persistently storing the non-volatile
> +# UEFI variables of a virtual machine definition. The
> +# corresponding QEMU command line options are
> +#
> +# ::
> +#
> +# -device uefi-vars-x64,jsonfile=PATH_TO_PRIVATE_FILE
> +#
> +# for x86_64 virtual machines, or
> +#
> +# ::
> +#
> +# -device uefi-vars-sysbus,jsonfile=PATH_TO_PRIVATE_FILE
> +#
> +# for other UEFI architectures (aarch64, riscv64, loongarch64).
> +#
> +# Since: 11.0
> +##
> +{ 'struct' : 'FirmwareMemoryUefiVars',
> + 'data' : { 'template' : 'str' }}
> +
> ##
> # @FirmwareMappingMemory:
> #
> @@ -380,10 +413,19 @@
> # definitions. The corresponding QEMU command line option is
> # "-bios @filename".
> #
> +# @uefi-vars: Information specific to firmware builds that expect the
> +# "uefi-vars" device to be used to provide access to the
> +# UEFI variable store. If the mapping contains this
> +# member, the firmware descriptor should advertise the
> +# @uefi interface from @FirmwareOSInterface as well as
> +# the @host-uefi-vars feature from @FirmwareFeature.
> +# Since 11.0
s/should advertize the/must advertize both the/
s/as well as/and/
With those changes:
Reviewed-by: Daniel P. Berrangé <[email protected]>
> +#
> # Since: 3.0
> ##
> { 'struct' : 'FirmwareMappingMemory',
> - 'data' : { 'filename' : 'str' } }
> + 'data' : { 'filename' : 'str',
> + '*uefi-vars' : 'FirmwareMemoryUefiVars' } }
>
> ##
> # @FirmwareMappingIgvm:
> --
> 2.53.0
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|