All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-arm@nongnu.org,
	"Ard Biesheuvel" <ardb@kernel.org>,
	"Michael Roth" <michael.roth@amd.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Eric Blake" <eblake@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	graf@amazon.com, "Markus Armbruster" <armbru@redhat.com>
Subject: Re: [PATCH v4 14/24] hw/uefi: add var-service-json.c + qapi for NV vars.
Date: Thu, 20 Feb 2025 16:54:29 +0100	[thread overview]
Message-ID: <87tt8or4qy.fsf@pond.sub.org> (raw)
In-Reply-To: <20250219071431.50626-15-kraxel@redhat.com> (Gerd Hoffmann's message of "Wed, 19 Feb 2025 08:14:16 +0100")

Gerd Hoffmann <kraxel@redhat.com> writes:

> Define qapi schema for the uefi variable store state.
>
> Use it and the generated visitor helper functions to store persistent
> (EFI_VARIABLE_NON_VOLATILE) variables in JSON format on disk.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>

[...]

> diff --git a/qapi/meson.build b/qapi/meson.build
> index e7bc54e5d047..eadde4db307f 100644
> --- a/qapi/meson.build
> +++ b/qapi/meson.build
> @@ -65,6 +65,7 @@ if have_system
>      'pci',
>      'rocker',
>      'tpm',
> +    'uefi',
>    ]
>  endif
>  if have_system or have_tools
> diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
> index b1581988e4eb..2877aff73d0c 100644
> --- a/qapi/qapi-schema.json
> +++ b/qapi/qapi-schema.json
> @@ -81,3 +81,4 @@
>  { 'include': 'vfio.json' }
>  { 'include': 'cryptodev.json' }
>  { 'include': 'cxl.json' }
> +{ 'include': 'uefi.json' }
> diff --git a/qapi/uefi.json b/qapi/uefi.json
> new file mode 100644
> index 000000000000..c268ed11b70c
> --- /dev/null
> +++ b/qapi/uefi.json
> @@ -0,0 +1,45 @@
> +# -*- Mode: Python -*-
> +# vim: filetype=python
> +#
> +

This ends up in section "CXL devices", which is not what you want.  I
guess you want a suitable heading right here, like

   ##
   # UEFI mumble mumble
   ##

> +##
> +# @UefiVariable:
> +#
> +# UEFI Variable

Overview text is optional.  Is this one worthwhile?

> +#
> +# @guid: variable namespace guid

How is guid usually capitalized in UEFI documentation?  GUID maybe?

> +#
> +# @name: variable name (utf-8)

UTF-8

> +#
> +# @attr: variable attributes

These are encoded as int.  How?

> +#
> +# @data: variable content (base64)

I'm not a native speaker...  for what it's worth, "contents" feels
better to me.

(base64 encoded) and (encoded in base64) are the common phrasings.

> +#
> +# @time: variable modification time (EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS).

Long line, please break it like

   # @time: variable modification time
   #     (EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS)

What's the unit and the anchor?  Seconds since the epoch?

What is EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS trying to
tell the reader?

> +#
> +# @digest: variable certificate digest (EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS).

Long line, please break it like

   # @digest: variable certificate digest
   #     (EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS)

What kind of digest is this?

> +#
> +# Since: 10.0
> +##
> +{ 'struct' : 'UefiVariable',
> +  'data' : { 'guid'  : 'str',
> +             'name'  : 'str',
> +             'attr'  : 'int',
> +             'data'  : 'str',
> +             '*time' : 'str',
> +             '*digest' : 'str'}}
> +
> +##
> +# @UefiVarStore:
> +#
> +# UEFI Variable Store

Overview is optional.  Is this one worthwhile?

> +#
> +# @version: 2

What about "currently always 2"?

> +#
> +# @variables: list of uefi variables

UEFI

> +#
> +# Since: 10.0
> +##
> +{ 'struct' : 'UefiVarStore',
> +  'data' : { 'version'   : 'int',
> +             'variables' : [ 'UefiVariable' ] }}


  reply	other threads:[~2025-02-20 15:55 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-19  7:14 [PATCH v4 00/24] hw/uefi: add uefi variable service Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 01/24] Add support for etc/hardware-info fw_cfg file Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 02/24] hw/uefi: add include/hw/uefi/var-service-api.h Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 03/24] hw/uefi: add include/hw/uefi/var-service-edk2.h Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 04/24] hw/uefi: add include/hw/uefi/var-service.h Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 05/24] hw/uefi: add var-service-guid.c Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 06/24] hw/uefi: add var-service-utils.c Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 07/24] hw/uefi: add var-service-vars.c Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 08/24] hw/uefi: add var-service-auth.c Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 09/24] hw/uefi: add var-service-policy.c Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 10/24] hw/uefi: add var-service-core.c Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 11/24] hw/uefi: add var-service-pkcs7.c Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 12/24] hw/uefi: add var-service-pkcs7-stub.c Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 13/24] hw/uefi: add var-service-siglist.c Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 14/24] hw/uefi: add var-service-json.c + qapi for NV vars Gerd Hoffmann
2025-02-20 15:54   ` Markus Armbruster [this message]
2025-02-19  7:14 ` [PATCH v4 15/24] hw/uefi: add trace-events Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 16/24] hw/uefi: add UEFI_VARS to Kconfig Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 17/24] hw/uefi: add to meson Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 18/24] hw/uefi: add uefi-vars-sysbus device Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 19/24] hw/uefi-vars-sysbus: qemu platform bus support Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 20/24] hw/uefi-vars-sysbus: add x64 variant Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 21/24] hw/uefi-vars-sysbus: allow for arm virt Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 22/24] hw/uefi-vars-sysbus: allow for pc and q35 Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 23/24] hw/uefi: add MAINTAINERS entry Gerd Hoffmann
2025-02-19  7:14 ` [PATCH v4 24/24] docs: add uefi variable service documentation Gerd Hoffmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87tt8or4qy.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=ardb@kernel.org \
    --cc=berrange@redhat.com \
    --cc=eblake@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=graf@amazon.com \
    --cc=kraxel@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=michael.roth@amd.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.