[PATCH v5 11/16] docs/interop/firmware.json: Add igvm to FirmwareDevice

Roy Hopkins posted 16 patches 3 months, 1 week ago
There is a newer version of this series
[PATCH v5 11/16] docs/interop/firmware.json: Add igvm to FirmwareDevice
Posted by Roy Hopkins via 3 months, 1 week ago
Create an enum entry within FirmwareDevice for 'igvm' to describe that
an IGVM file can be used to map firmware into memory as an alternative
to pre-existing firmware devices.

Signed-off-by: Roy Hopkins <roy.hopkins@suse.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
---
 docs/interop/firmware.json | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json
index 57f55f6c54..59ae39cb13 100644
--- a/docs/interop/firmware.json
+++ b/docs/interop/firmware.json
@@ -57,10 +57,17 @@
 #
 # @memory: The firmware is to be mapped into memory.
 #
+# @igvm: The firmware is defined by a file conforming to the IGVM
+#        specification and mapped into memory according to directives
+#        defined in the file. This is similar to @memory but may
+#        include additional processing defined by the IGVM file
+#        including initial CPU state or population of metadata into
+#        the guest address space. Since: 9.1
+#
 # Since: 3.0
 ##
 { 'enum' : 'FirmwareDevice',
-  'data' : [ 'flash', 'kernel', 'memory' ] }
+  'data' : [ 'flash', 'kernel', 'memory', 'igvm' ] }
 
 ##
 # @FirmwareArchitecture:
@@ -367,6 +374,24 @@
 { 'struct' : 'FirmwareMappingMemory',
   'data'   : { 'filename' : 'str' } }
 
+##
+# @FirmwareMappingIgvm:
+#
+# Describes loading and mapping properties for the firmware executable,
+# when @FirmwareDevice is @igvm.
+#
+# @filename: Identifies the IGVM file containing the firmware executable
+#            along with other information used to configure the initial
+#            state of the guest. The IGVM file may be shared by multiple
+#            virtual machine definitions. This corresponds to creating
+#            an object on the command line with "-object igvm-cfg,
+#            file=@filename".
+#
+# Since: 9.1
+##
+{ 'struct' : 'FirmwareMappingIgvm',
+  'data'   : { 'filename' : 'str' } }
+
 ##
 # @FirmwareMapping:
 #
@@ -383,7 +408,8 @@
   'discriminator' : 'device',
   'data'          : { 'flash'  : 'FirmwareMappingFlash',
                       'kernel' : 'FirmwareMappingKernel',
-                      'memory' : 'FirmwareMappingMemory' } }
+                      'memory' : 'FirmwareMappingMemory',
+                      'igvm'   : 'FirmwareMappingIgvm' } }
 
 ##
 # @Firmware:
-- 
2.43.0
Re: [PATCH v5 11/16] docs/interop/firmware.json: Add igvm to FirmwareDevice
Posted by Stefano Garzarella 2 months, 3 weeks ago
On Tue, Aug 13, 2024 at 04:01:13PM GMT, Roy Hopkins wrote:
>Create an enum entry within FirmwareDevice for 'igvm' to describe that
>an IGVM file can be used to map firmware into memory as an alternative
>to pre-existing firmware devices.
>
>Signed-off-by: Roy Hopkins <roy.hopkins@suse.com>
>Acked-by: Michael S. Tsirkin <mst@redhat.com>
>---
> docs/interop/firmware.json | 30 ++++++++++++++++++++++++++++--
> 1 file changed, 28 insertions(+), 2 deletions(-)
>
>diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json
>index 57f55f6c54..59ae39cb13 100644
>--- a/docs/interop/firmware.json
>+++ b/docs/interop/firmware.json
>@@ -57,10 +57,17 @@
> #
> # @memory: The firmware is to be mapped into memory.
> #
>+# @igvm: The firmware is defined by a file conforming to the IGVM
>+#        specification and mapped into memory according to directives
>+#        defined in the file. This is similar to @memory but may
>+#        include additional processing defined by the IGVM file
>+#        including initial CPU state or population of metadata into
>+#        the guest address space. Since: 9.1

Since: 9.2

>+#
> # Since: 3.0
> ##
> { 'enum' : 'FirmwareDevice',
>-  'data' : [ 'flash', 'kernel', 'memory' ] }
>+  'data' : [ 'flash', 'kernel', 'memory', 'igvm' ] }
>
> ##
> # @FirmwareArchitecture:
>@@ -367,6 +374,24 @@
> { 'struct' : 'FirmwareMappingMemory',
>   'data'   : { 'filename' : 'str' } }
>
>+##
>+# @FirmwareMappingIgvm:
>+#
>+# Describes loading and mapping properties for the firmware executable,
>+# when @FirmwareDevice is @igvm.
>+#
>+# @filename: Identifies the IGVM file containing the firmware executable
>+#            along with other information used to configure the initial
>+#            state of the guest. The IGVM file may be shared by multiple
>+#            virtual machine definitions. This corresponds to creating
>+#            an object on the command line with "-object igvm-cfg,
>+#            file=@filename".
>+#
>+# Since: 9.1

Ditto

With them fixed:

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>

>+##
>+{ 'struct' : 'FirmwareMappingIgvm',
>+  'data'   : { 'filename' : 'str' } }
>+
> ##
> # @FirmwareMapping:
> #
>@@ -383,7 +408,8 @@
>   'discriminator' : 'device',
>   'data'          : { 'flash'  : 'FirmwareMappingFlash',
>                       'kernel' : 'FirmwareMappingKernel',
>-                      'memory' : 'FirmwareMappingMemory' } }
>+                      'memory' : 'FirmwareMappingMemory',
>+                      'igvm'   : 'FirmwareMappingIgvm' } }
>
> ##
> # @Firmware:
>-- 
>2.43.0
>