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

Reply via email to