Hi Andrea,

Thanks for your comments.

> 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-late
> > st.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-lates
> > t.args  create mode 100644
> > tests/qemuxmlconfdata/firmware-manual-noefi-acpi-aarch64.aarch64-lates
> > t.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.

Understood.
I'll wait for your patch.

Best Regards,
Kazuhiro Abe

> 
> NACK
> 
> --
> Andrea Bolognani / Red Hat / Virtualization

Reply via email to