[PATCH v2 08/10] DONOTMERGE update firmware data

Andrea Bolognani via Devel posted 10 patches 1 week, 5 days ago
[PATCH v2 08/10] DONOTMERGE update firmware data
Posted by Andrea Bolognani via Devel 1 week, 5 days ago
Based on proposed changes in the Fedora edk2 package.

The SEV(-ES) and SEV-SNP descriptors are now separate, which
allows libvirt to pick the correct firmware loading mechanism
(flash vs ROM) automatically.
---
 .../qemu/firmware/60-edk2-ovmf-x64-amdsev.json     |  1 -
 .../qemu/firmware/60-edk2-ovmf-x64-amdsev.json     |  3 +--
 .../qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json} | 14 ++++++--------
 tests/qemufirmwaretest.c                           |  2 ++
 ...ware-auto-efi-sev-snp.x86_64-latest+amdsev.args |  5 ++---
 ...mware-auto-efi-sev-snp.x86_64-latest+amdsev.xml |  2 +-
 ...unch-security-sev-snp.x86_64-latest+amdsev.args |  5 ++---
 ...aunch-security-sev-snp.x86_64-latest+amdsev.xml |  2 +-
 .../launch-security-sev-snp.x86_64-latest.args     |  5 ++---
 .../launch-security-sev-snp.x86_64-latest.xml      |  2 +-
 10 files changed, 18 insertions(+), 23 deletions(-)
 copy tests/qemufirmwaredata/{out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json => usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json} (57%)

diff --git a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
index d83d394ba7..2d3b821acb 100644
--- a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
+++ b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
@@ -21,7 +21,6 @@
     "features": [
         "amd-sev",
         "amd-sev-es",
-        "amd-sev-snp",
         "verbose-dynamic"
     ]
 }
diff --git a/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json b/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
index 9a561bc7eb..ca88ef9176 100644
--- a/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
+++ b/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
@@ -1,5 +1,5 @@
 {
-    "description": "OVMF with SEV-ES support",
+    "description": "OVMF with SEV + SEV-ES support",
     "interface-types": [
         "uefi"
     ],
@@ -22,7 +22,6 @@
     "features": [
         "amd-sev",
         "amd-sev-es",
-        "amd-sev-snp",
         "verbose-dynamic"
     ],
     "tags": [
diff --git a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json b/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json
similarity index 57%
copy from tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
copy to tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json
index d83d394ba7..99e51c3d00 100644
--- a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
+++ b/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json
@@ -1,14 +1,11 @@
 {
+    "description": "OVMF with SEV-SNP support",
     "interface-types": [
         "uefi"
     ],
     "mapping": {
-        "device": "flash",
-        "mode": "stateless",
-        "executable": {
-            "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd",
-            "format": "raw"
-        }
+        "device": "memory",
+        "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd"
     },
     "targets": [
         {
@@ -19,9 +16,10 @@
         }
     ],
     "features": [
-        "amd-sev",
-        "amd-sev-es",
         "amd-sev-snp",
         "verbose-dynamic"
+    ],
+    "tags": [
+
     ]
 }
diff --git a/tests/qemufirmwaretest.c b/tests/qemufirmwaretest.c
index a4fb5c9b9c..c18ee85c0a 100644
--- a/tests/qemufirmwaretest.c
+++ b/tests/qemufirmwaretest.c
@@ -100,6 +100,7 @@ testFWPrecedence(const void *opaque G_GNUC_UNUSED)
         PREFIX "/share/qemu/firmware/53-edk2-aarch64-verbose-raw.json",
         SYSCONFDIR "/qemu/firmware/59-combined.json",
         PREFIX "/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json",
+        PREFIX "/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json",
         PREFIX "/share/qemu/firmware/60-edk2-ovmf-x64-inteltdx.json",
         PREFIX "/share/qemu/firmware/90-combined.json",
         PREFIX "/share/qemu/firmware/91-bios.json",
@@ -279,6 +280,7 @@ mymain(void)
     DO_PARSE_TEST("usr/share/qemu/firmware/52-edk2-aarch64-verbose-qcow2.json");
     DO_PARSE_TEST("usr/share/qemu/firmware/53-edk2-aarch64-verbose-raw.json");
     DO_PARSE_TEST("usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json");
+    DO_PARSE_TEST("usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json");
     DO_PARSE_TEST("usr/share/qemu/firmware/60-edk2-ovmf-x64-inteltdx.json");
     DO_PARSE_TEST("usr/share/qemu/firmware/90-combined.json");
     DO_PARSE_TEST("usr/share/qemu/firmware/91-bios.json");
diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.args b/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.args
index 99350f600c..624039d1a2 100644
--- a/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.args
+++ b/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.args
@@ -10,11 +10,10 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -name guest=guest,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
--blockdev '{"driver":"file","filename":"/usr/share/edk2/ovmf/OVMF.amdsev.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \
--blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \
--machine pc-q35-10.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,pflash0=libvirt-pflash0-format,acpi=on \
+-machine pc-q35-10.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,acpi=on \
 -accel kvm \
 -cpu qemu64 \
+-bios /usr/share/edk2/ovmf/OVMF.amdsev.fd \
 -m size=1048576k \
 -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}' \
 -overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.xml b/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.xml
index 6ea58f3361..10a1a3a22d 100644
--- a/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.xml
+++ b/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.xml
@@ -10,7 +10,7 @@
       <feature enabled='no' name='enrolled-keys'/>
       <feature enabled='no' name='secure-boot'/>
     </firmware>
-    <loader readonly='yes' type='pflash' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
+    <loader type='rom' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
     <boot dev='hd'/>
   </os>
   <features>
diff --git a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.args b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.args
index d849eb88e0..f8bc8a71fe 100644
--- a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.args
+++ b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.args
@@ -10,11 +10,10 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--blockdev '{"driver":"file","filename":"/usr/share/edk2/ovmf/OVMF.amdsev.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \
--blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \
--machine pc-q35-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,pflash0=libvirt-pflash0-format,acpi=on \
+-machine pc-q35-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,acpi=on \
 -accel kvm \
 -cpu qemu64 \
+-bios /usr/share/edk2/ovmf/OVMF.amdsev.fd \
 -m size=219136k \
 -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
 -overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.xml b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.xml
index a0487b021e..f57f3f2b68 100644
--- a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.xml
+++ b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.xml
@@ -10,7 +10,7 @@
       <feature enabled='no' name='enrolled-keys'/>
       <feature enabled='no' name='secure-boot'/>
     </firmware>
-    <loader readonly='yes' type='pflash' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
+    <loader type='rom' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
     <boot dev='hd'/>
   </os>
   <features>
diff --git a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.args b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.args
index d849eb88e0..f8bc8a71fe 100644
--- a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.args
@@ -10,11 +10,10 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -name guest=QEMUGuest1,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--blockdev '{"driver":"file","filename":"/usr/share/edk2/ovmf/OVMF.amdsev.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \
--blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \
--machine pc-q35-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,pflash0=libvirt-pflash0-format,acpi=on \
+-machine pc-q35-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,acpi=on \
 -accel kvm \
 -cpu qemu64 \
+-bios /usr/share/edk2/ovmf/OVMF.amdsev.fd \
 -m size=219136k \
 -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
 -overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.xml b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.xml
index a0487b021e..f57f3f2b68 100644
--- a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.xml
@@ -10,7 +10,7 @@
       <feature enabled='no' name='enrolled-keys'/>
       <feature enabled='no' name='secure-boot'/>
     </firmware>
-    <loader readonly='yes' type='pflash' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
+    <loader type='rom' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
     <boot dev='hd'/>
   </os>
   <features>
-- 
2.51.0
Re: [PATCH v2 08/10] DONOTMERGE update firmware data
Posted by Jim Fehlig via Devel 1 week, 2 days ago
On 8/25/25 10:19, Andrea Bolognani via Devel wrote:
> Based on proposed changes in the Fedora edk2 package.

AFAICT, the edk2 changes have landed

https://src.fedoraproject.org/rpms/edk2/c/5146a0c3e9bf821d045e0cc3600ad715aca14588?branch=rawhide

Making it possible to merge this, correct?

Regards,
Jim


> 
> The SEV(-ES) and SEV-SNP descriptors are now separate, which
> allows libvirt to pick the correct firmware loading mechanism
> (flash vs ROM) automatically.
> ---
>   .../qemu/firmware/60-edk2-ovmf-x64-amdsev.json     |  1 -
>   .../qemu/firmware/60-edk2-ovmf-x64-amdsev.json     |  3 +--
>   .../qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json} | 14 ++++++--------
>   tests/qemufirmwaretest.c                           |  2 ++
>   ...ware-auto-efi-sev-snp.x86_64-latest+amdsev.args |  5 ++---
>   ...mware-auto-efi-sev-snp.x86_64-latest+amdsev.xml |  2 +-
>   ...unch-security-sev-snp.x86_64-latest+amdsev.args |  5 ++---
>   ...aunch-security-sev-snp.x86_64-latest+amdsev.xml |  2 +-
>   .../launch-security-sev-snp.x86_64-latest.args     |  5 ++---
>   .../launch-security-sev-snp.x86_64-latest.xml      |  2 +-
>   10 files changed, 18 insertions(+), 23 deletions(-)
>   copy tests/qemufirmwaredata/{out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json => usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json} (57%)
> 
> diff --git a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
> index d83d394ba7..2d3b821acb 100644
> --- a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
> +++ b/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
> @@ -21,7 +21,6 @@
>       "features": [
>           "amd-sev",
>           "amd-sev-es",
> -        "amd-sev-snp",
>           "verbose-dynamic"
>       ]
>   }
> diff --git a/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json b/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
> index 9a561bc7eb..ca88ef9176 100644
> --- a/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
> +++ b/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
> @@ -1,5 +1,5 @@
>   {
> -    "description": "OVMF with SEV-ES support",
> +    "description": "OVMF with SEV + SEV-ES support",
>       "interface-types": [
>           "uefi"
>       ],
> @@ -22,7 +22,6 @@
>       "features": [
>           "amd-sev",
>           "amd-sev-es",
> -        "amd-sev-snp",
>           "verbose-dynamic"
>       ],
>       "tags": [
> diff --git a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json b/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json
> similarity index 57%
> copy from tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
> copy to tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json
> index d83d394ba7..99e51c3d00 100644
> --- a/tests/qemufirmwaredata/out/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json
> +++ b/tests/qemufirmwaredata/usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json
> @@ -1,14 +1,11 @@
>   {
> +    "description": "OVMF with SEV-SNP support",
>       "interface-types": [
>           "uefi"
>       ],
>       "mapping": {
> -        "device": "flash",
> -        "mode": "stateless",
> -        "executable": {
> -            "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd",
> -            "format": "raw"
> -        }
> +        "device": "memory",
> +        "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd"
>       },
>       "targets": [
>           {
> @@ -19,9 +16,10 @@
>           }
>       ],
>       "features": [
> -        "amd-sev",
> -        "amd-sev-es",
>           "amd-sev-snp",
>           "verbose-dynamic"
> +    ],
> +    "tags": [
> +
>       ]
>   }
> diff --git a/tests/qemufirmwaretest.c b/tests/qemufirmwaretest.c
> index a4fb5c9b9c..c18ee85c0a 100644
> --- a/tests/qemufirmwaretest.c
> +++ b/tests/qemufirmwaretest.c
> @@ -100,6 +100,7 @@ testFWPrecedence(const void *opaque G_GNUC_UNUSED)
>           PREFIX "/share/qemu/firmware/53-edk2-aarch64-verbose-raw.json",
>           SYSCONFDIR "/qemu/firmware/59-combined.json",
>           PREFIX "/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json",
> +        PREFIX "/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json",
>           PREFIX "/share/qemu/firmware/60-edk2-ovmf-x64-inteltdx.json",
>           PREFIX "/share/qemu/firmware/90-combined.json",
>           PREFIX "/share/qemu/firmware/91-bios.json",
> @@ -279,6 +280,7 @@ mymain(void)
>       DO_PARSE_TEST("usr/share/qemu/firmware/52-edk2-aarch64-verbose-qcow2.json");
>       DO_PARSE_TEST("usr/share/qemu/firmware/53-edk2-aarch64-verbose-raw.json");
>       DO_PARSE_TEST("usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsev.json");
> +    DO_PARSE_TEST("usr/share/qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json");
>       DO_PARSE_TEST("usr/share/qemu/firmware/60-edk2-ovmf-x64-inteltdx.json");
>       DO_PARSE_TEST("usr/share/qemu/firmware/90-combined.json");
>       DO_PARSE_TEST("usr/share/qemu/firmware/91-bios.json");
> diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.args b/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.args
> index 99350f600c..624039d1a2 100644
> --- a/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.args
> +++ b/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.args
> @@ -10,11 +10,10 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
>   -name guest=guest,debug-threads=on \
>   -S \
>   -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
> --blockdev '{"driver":"file","filename":"/usr/share/edk2/ovmf/OVMF.amdsev.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \
> --blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \
> --machine pc-q35-10.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,pflash0=libvirt-pflash0-format,acpi=on \
> +-machine pc-q35-10.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,acpi=on \
>   -accel kvm \
>   -cpu qemu64 \
> +-bios /usr/share/edk2/ovmf/OVMF.amdsev.fd \
>   -m size=1048576k \
>   -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}' \
>   -overcommit mem-lock=off \
> diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.xml b/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.xml
> index 6ea58f3361..10a1a3a22d 100644
> --- a/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.xml
> +++ b/tests/qemuxmlconfdata/firmware-auto-efi-sev-snp.x86_64-latest+amdsev.xml
> @@ -10,7 +10,7 @@
>         <feature enabled='no' name='enrolled-keys'/>
>         <feature enabled='no' name='secure-boot'/>
>       </firmware>
> -    <loader readonly='yes' type='pflash' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
> +    <loader type='rom' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
>       <boot dev='hd'/>
>     </os>
>     <features>
> diff --git a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.args b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.args
> index d849eb88e0..f8bc8a71fe 100644
> --- a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.args
> +++ b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.args
> @@ -10,11 +10,10 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
>   -name guest=QEMUGuest1,debug-threads=on \
>   -S \
>   -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
> --blockdev '{"driver":"file","filename":"/usr/share/edk2/ovmf/OVMF.amdsev.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \
> --blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \
> --machine pc-q35-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,pflash0=libvirt-pflash0-format,acpi=on \
> +-machine pc-q35-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,acpi=on \
>   -accel kvm \
>   -cpu qemu64 \
> +-bios /usr/share/edk2/ovmf/OVMF.amdsev.fd \
>   -m size=219136k \
>   -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
>   -overcommit mem-lock=off \
> diff --git a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.xml b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.xml
> index a0487b021e..f57f3f2b68 100644
> --- a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.xml
> +++ b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.xml
> @@ -10,7 +10,7 @@
>         <feature enabled='no' name='enrolled-keys'/>
>         <feature enabled='no' name='secure-boot'/>
>       </firmware>
> -    <loader readonly='yes' type='pflash' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
> +    <loader type='rom' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
>       <boot dev='hd'/>
>     </os>
>     <features>
> diff --git a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.args b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.args
> index d849eb88e0..f8bc8a71fe 100644
> --- a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.args
> +++ b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.args
> @@ -10,11 +10,10 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
>   -name guest=QEMUGuest1,debug-threads=on \
>   -S \
>   -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
> --blockdev '{"driver":"file","filename":"/usr/share/edk2/ovmf/OVMF.amdsev.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \
> --blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \
> --machine pc-q35-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,pflash0=libvirt-pflash0-format,acpi=on \
> +-machine pc-q35-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,confidential-guest-support=lsec0,acpi=on \
>   -accel kvm \
>   -cpu qemu64 \
> +-bios /usr/share/edk2/ovmf/OVMF.amdsev.fd \
>   -m size=219136k \
>   -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
>   -overcommit mem-lock=off \
> diff --git a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.xml b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.xml
> index a0487b021e..f57f3f2b68 100644
> --- a/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.xml
> +++ b/tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest.xml
> @@ -10,7 +10,7 @@
>         <feature enabled='no' name='enrolled-keys'/>
>         <feature enabled='no' name='secure-boot'/>
>       </firmware>
> -    <loader readonly='yes' type='pflash' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
> +    <loader type='rom' stateless='yes' format='raw'>/usr/share/edk2/ovmf/OVMF.amdsev.fd</loader>
>       <boot dev='hd'/>
>     </os>
>     <features>
Re: [PATCH v2 08/10] DONOTMERGE update firmware data
Posted by Jim Fehlig via Devel 1 week, 5 days ago
On 8/25/25 10:19, Andrea Bolognani via Devel wrote:
> Based on proposed changes in the Fedora edk2 package.
> 
> The SEV(-ES) and SEV-SNP descriptors are now separate, which
> allows libvirt to pick the correct firmware loading mechanism
> (flash vs ROM) automatically.
> ---
>   .../qemu/firmware/60-edk2-ovmf-x64-amdsev.json     |  1 -
>   .../qemu/firmware/60-edk2-ovmf-x64-amdsev.json     |  3 +--
>   .../qemu/firmware/60-edk2-ovmf-x64-amdsevsnp.json} | 14 ++++++--------

As said before, with these changes on top of git master, autoselection for SNP 
guests should work fine.

>   tests/qemufirmwaretest.c                           |  2 ++
>   ...ware-auto-efi-sev-snp.x86_64-latest+amdsev.args |  5 ++---
>   ...mware-auto-efi-sev-snp.x86_64-latest+amdsev.xml |  2 +-
>   ...unch-security-sev-snp.x86_64-latest+amdsev.args |  5 ++---
>   ...aunch-security-sev-snp.x86_64-latest+amdsev.xml |  2 +-
>   .../launch-security-sev-snp.x86_64-latest.args     |  5 ++---
>   .../launch-security-sev-snp.x86_64-latest.xml      |  2 +-

Along with improving the SEV-related tests, I now recall another change in the 
series I assembled: forcibly rebasing this patch on git master

https://gitlab.com/jfehlig/libvirt/-/commit/894f3602ec279bc0eeaa723ca6e948596dfa88f9

No need to repeat my preference of first reaching closure on patches 8 and 9, 
before proceeding with the rest (sans patch 1). Opps...

Regards,
Jim