On Tue, Nov 18, 2025 at 11:58:13AM +0900, Kazuhiro Abe wrote: > Although QEMU allows ACPI with UEFI firmware via the '-bios' option on > aarch64, libvirt rejected such configurations through its validation. > > Therefore, the conditional statement was changed to allow the following > settings: > > <os> > <type arch='aarch64' machine='virt-4.0'>hvm</type> > <loader type="rom">/usr/share/qemu-efi-aarch64/QEMU_EFI.fd</loader> > </os> > <features> > <acpi/> > </features> > > Specifying <os firmware='bios'> still results in error, as before. > > Signed-off-by: Kazuhiro Abe <[email protected]> > --- > src/qemu/qemu_validate.c | 2 +- > ...auto-bios-acpi-aarch64.aarch64-latest.err} | 0 > .../firmware-auto-bios-acpi-aarch64.xml | 17 ++++++++++ > ...ual-noefi-acpi-aarch64.aarch64-latest.args | 31 +++++++++++++++++++ > ...nual-noefi-acpi-aarch64.aarch64-latest.xml | 29 +++++++++++++++++ > tests/qemuxmlconftest.c | 3 +- > 6 files changed, 80 insertions(+), 2 deletions(-) > rename > tests/qemuxmlconfdata/{firmware-manual-noefi-acpi-aarch64.aarch64-latest.err > => firmware-auto-bios-acpi-aarch64.aarch64-latest.err} (100%) > create mode 100644 tests/qemuxmlconfdata/firmware-auto-bios-acpi-aarch64.xml > create mode 100644 > tests/qemuxmlconfdata/firmware-manual-noefi-acpi-aarch64.aarch64-latest.args > create mode 100644 > tests/qemuxmlconfdata/firmware-manual-noefi-acpi-aarch64.aarch64-latest.xml > > diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c > index 3b0f2b50a5..263aaa25a2 100644 > --- a/src/qemu/qemu_validate.c > +++ b/src/qemu/qemu_validate.c > @@ -1341,7 +1341,7 @@ qemuValidateDomainDef(const virDomainDef *def, > /* On aarch64, ACPI requires UEFI */ > if (def->features[VIR_DOMAIN_FEATURE_ACPI] == VIR_TRISTATE_SWITCH_ON && > def->os.arch == VIR_ARCH_AARCH64 && > - (def->os.firmware != VIR_DOMAIN_OS_DEF_FIRMWARE_EFI && > + (def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS && > !virDomainDefHasOldStyleUEFI(def))) { > virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > _("ACPI requires UEFI on this architecture"));
This makes the specific scenario you're interested in work but doesn't address the underlying cause, that is, libvirt failing to recognize the firmware being loaded as a UEFI implementation. As mentioned in the other thread, I will soon post a patch that takes care of that, thus making this change unnecessary. NACK -- Andrea Bolognani / Red Hat / Virtualization
