qemu-e2k/docs/interop
Daniel P. Berrangé 2720ceda05 docs: expand firmware descriptor to allow flash without NVRAM
The current firmware descriptor schema for flash requires that both the
executable to NVRAM template paths be provided. This is fine for the
most common usage of EDK2 builds in virtualization where the separate
_CODE and _VARS files are provided.

With confidential computing technology like AMD SEV, persistent storage
of variables may be completely disabled because the firmware requires a
known clean state on every cold boot. There is no way to express this
in the firmware descriptor today.

Even with regular EDK2 builds it is possible to create a firmware that
has both executable code and variable persistence in a single file. This
hasn't been commonly used, since it would mean every guest bootup would
need to clone the full firmware file, leading to redundant duplicate
storage of the code portion. In some scenarios this may not matter and
might even be beneficial. For example if a public cloud allows users to
bring their own firmware, such that the user can pre-enroll their own
secure boot keys, you're going to have this copied on disk for each
tenant already. At this point the it can be simpler to just deal with
a single file rather than split builds. The firmware descriptor ought
to be able to express this combined firmware model too.

This all points towards expanding the schema for flash with a 'mode'
concept:

 - "split" - the current implicit behaviour with separate files
   for code and variables.

 - "combined" - the alternate behaviour where a single file contains
   both code and variables.

 - "stateless" - the confidential computing use case where storage
   of variables is completely disable, leaving only the code.

Reviewed-by: Kashyap Chamarthy <kchamart@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-02-16 18:53:26 +00:00
..
barrier.rst docs: Move the protocol part of barrier.txt into interop 2021-08-02 12:55:51 +01:00
bitmaps.rst docs/interop/bitmaps: use blockdev-backup 2021-11-09 18:20:47 +01:00
dbus-display.rst docs: add dbus-display documentation 2021-12-21 10:50:21 +04:00
dbus-vmstate.rst docs: move D-Bus VMState documentation to source XML 2021-12-21 10:50:21 +04:00
dbus.rst docs: add dbus-display documentation 2021-12-21 10:50:21 +04:00
firmware.json docs: expand firmware descriptor to allow flash without NVRAM 2022-02-16 18:53:26 +00:00
index.rst docs: reSTify virtio-balloon-stats documentation and move to docs/interop 2022-01-07 19:30:13 -05:00
live-block-operations.rst qapi: deprecate drive-backup 2021-11-09 18:21:19 +01:00
nbd.txt docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
parallels.txt parallels.txt: fix bitmap L1 table description 2021-03-08 14:56:54 +01:00
pr-helper.rst
prl-xml.txt
qcow2.txt docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
qed_spec.txt
qemu-ga-ref.rst docs: Remove stale TODO comments about license and version 2021-08-02 11:42:38 +01:00
qemu-ga.rst
qemu-qmp-ref.rst docs: Remove stale TODO comments about license and version 2021-08-02 11:42:38 +01:00
qemu-storage-daemon-qmp-ref.rst docs: Remove stale TODO comments about license and version 2021-08-02 11:42:38 +01:00
qmp-intro.txt docs: update to show preferred boolean syntax for -chardev 2021-02-25 14:14:33 +01:00
qmp-spec.txt docs/interop/qmp-spec: Document the request queue limit 2021-02-04 13:20:29 +01:00
vhost-user-gpu.rst docs: Move licence/copyright from HTML output to rST comments 2021-08-02 11:42:38 +01:00
vhost-user.json configure: Improve OpenGL dependency detections 2021-03-04 09:35:30 +01:00
vhost-user.rst docs: Move licence/copyright from HTML output to rST comments 2021-08-02 11:42:38 +01:00
vhost-vdpa.rst vhost-vdpa: introduce vhost-vdpa backend 2020-07-07 07:59:51 -04:00
virtio-balloon-stats.rst docs: reSTify virtio-balloon-stats documentation and move to docs/interop 2022-01-07 19:30:13 -05:00
vnc-ledstate-Pseudo-encoding.txt