On Tue, Jul 29, 2025 at 03:28:49PM -0600, Jim Fehlig wrote: > On 5/13/25 14:25, Jim Fehlig wrote: > > On 4/24/25 14:18, Jim Fehlig wrote: > > > On 4/24/25 04:59, Daniel P. Berrangé wrote: > > > > On Mon, Apr 21, 2025 at 01:38:35PM -0600, Jim Fehlig via Devel wrote: > > > > > Hi All, > > > > > > > > > > While investigating an internal bug report, we noticed that a minimal > > > > > firmware auto-selection configuration along with SEV* fails to find a > > > > > match. > > > > > E.g. the following config > > > > > > > > > > <domain type="kvm"> > > > > > <os firmware="efi"> > > > > > <type arch="x86_64" machine="q35">hvm</type> > > > > > <boot dev="hd"/> > > > > > </os> > > > > > <launchSecurity type="sev"> > > > > > <policy>0x07</policy> > > > > > </launchSecurity> > > > > > ... > > > > > </domain> > > > > > > > > > > Fails with "Unable to find 'efi' firmware that is compatible with the > > > > > current configuration". A firmware that should match has the > > > > > following json > > > > > description > > > > > > > > > > { > > > > > "description": "UEFI firmware for x86_64, with AMD SEV", > > > > > "interface-types": [ > > > > > "uefi" > > > > > ], > > > > > "mapping": { > > > > > "device": "flash", > > > > > "mode": "stateless", > > > > > "executable": { > > > > > "filename": "/usr/share/qemu/ovmf-x86_64-sev.bin", > > > > > "format": "raw" > > > > > } > > > > > }, > > > > > "targets": [ > > > > > { > > > > > "architecture": "x86_64", > > > > > "machines": [ > > > > > "pc-q35-*" > > > > > ] > > > > > } > > > > > ], > > > > > "features": [ > > > > > "acpi-s4", > > > > > "amd-sev", > > > > > "amd-sev-es", > > > > > "amd-sev-snp", > > > > > "verbose-dynamic" > > > > > ], > > > > > "tags": [ > > > > > > > > > > ] > > > > > } > > > > > > > > > > Auto-selection works fine if I specify a 'stateless' firmware, e.g. > > > > > amend > > > > > the above config with > > > > > > > > > > <os firmware="efi"> > > > > > <type arch="x86_64" machine="q35">hvm</type> > > > > > <loader stateless="yes"/> > > > > > <boot dev="hd"/> > > > > > </os> > > > > > > > > > > Being unfamiliar with the firmware auto-selection code, I tried the > > > > > below > > > > > naive hack, which only led to test failures and the subsequent > > > > > runtime error > > > > > "unable to find any master var store for loader: > > > > > /usr/share/qemu/ovmf-x86_64-sev.bin". Should auto-selection work with > > > > > the > > > > > minimal config, or is it expected that user also specify a stateless > > > > > firmware? > > > > Andrea, > > > > Having spent a fair bit of time in the firmware auto-selection code, > > perhaps you have an opinion about this? > > Sorry to keep nagging about this, but I still see the issue with latest git > master using a json descriptor identical to the latest Fedora one. When > omitting the 'stateless' attribute, autoselection fails with > > operation failed: Unable to find 'efi' firmware that is compatible with the > current configuration > > With debug enabled, I can see the firmware is not even considered since it's > not "split" > > 2025-07-29 21:02:05.517+0000: 32187: debug : qemuFirmwareMatchDomain:1310 : > Discarding loader without split flash > > I would need to install Fedora and verify myself, but I'd be surprised if it > didn't encounter the same issue. Without the 'stateless' attribute, the > following test would fail > > https://gitlab.com/libvirt/libvirt/-/blob/master/src/qemu/qemu_firmware.c?ref_type=heads#L1303 > > executing the else condition, and failing similarly since the firmware is not > split.
So I've tested the scenario I mentioned before, and in fact see the same behaviour as you describe error: operation failed: Unable to find 'efi' firmware that is compatible with the current configuration which confuses me, because I'm sure I used virt-install to provision SNP guests before, without expanding the args to --boot uefi,loader.stateless=on 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 :|