On Wed, Jan 07, 2026 at 12:24:18AM +0000, Kazuhiro Abe (Fujitsu) wrote: > > That took longer than I anticipated, even though I had already exceeded my > > original estimate O:-) however patches are finally on the list. > > > > https://lists.libvirt.org/archives/list/[email protected]/thread/N2ETTZ3W > > I5RWXGJG7DW5YYMZ7UGDYMHA/ > > > > I'd appreciate any testing you could give them, as well as any other kind of > > feedback you might have. > > Thank you for posting the patches. > > I applied the patch and tested it on my side. > However, it seems the issue my previous patch(linked below) aimed to resolve > is still present. > https://lists.libvirt.org/archives/list/[email protected]/thread/AII3X37F7AK7AR234LYWNCS7BIR5AL2P/ > > I expect the following XML not to result in an error. > <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> > > However, I am still seeing the same error as before. > The error message observed when running "virsh create test.xml" is: > error: Failed to create domain from test.xml > error: unsupported configuration: ACPI requires UEFI on this architecture
Did you ensure that a suitable JSON firmware descriptor exists in the expected location? It should normally come in the same package as the firmware binary itself, though it wouldn't be surprising if that's not currently the case considering that the combination was not working until now. If it doesn't exist, that will have to be addressed at the distro level, but you can create the file yourself in the meantime for development purposes. See the attached patch showing how the XML you provided is processed correctly by the libvirt test suite once the JSON firmware descriptor is added. -- Andrea Bolognani / Red Hat / Virtualization
From 61f08f1f7d36142b4fd22bd8b19b0af192a35df4 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani <[email protected]> Date: Wed, 7 Jan 2026 11:48:39 +0100 Subject: [PATCH] aarch64-cca --- .../share/qemu/firmware/99-aarch64-cca.json | 19 +++++++++++ tests/qemufirmwaretest.c | 5 ++- ...l-efi-acpi-aarch64-cca.aarch64-latest.args | 32 +++++++++++++++++ ...al-efi-acpi-aarch64-cca.aarch64-latest.xml | 34 +++++++++++++++++++ .../firmware-manual-efi-acpi-aarch64-cca.xml | 18 ++++++++++ tests/qemuxmlconftest.c | 2 ++ 6 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 tests/qemufirmwaredata/usr/share/qemu/firmware/99-aarch64-cca.json create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.aarch64-latest.args create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.aarch64-latest.xml create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.xml diff --git a/tests/qemufirmwaredata/usr/share/qemu/firmware/99-aarch64-cca.json b/tests/qemufirmwaredata/usr/share/qemu/firmware/99-aarch64-cca.json new file mode 100644 index 0000000000..698b17f320 --- /dev/null +++ b/tests/qemufirmwaredata/usr/share/qemu/firmware/99-aarch64-cca.json @@ -0,0 +1,19 @@ +{ + "interface-types": [ + "uefi" + ], + "mapping": { + "device": "memory", + "filename": "/usr/share/qemu-efi-aarch64/QEMU_EFI.fd" + }, + "targets": [ + { + "architecture": "aarch64", + "machines": [ + "virt-*" + ] + } + ], + "features": [ + ] +} diff --git a/tests/qemufirmwaretest.c b/tests/qemufirmwaretest.c index a4fb5c9b9c..6e8d827ead 100644 --- a/tests/qemufirmwaretest.c +++ b/tests/qemufirmwaretest.c @@ -104,6 +104,7 @@ testFWPrecedence(const void *opaque G_GNUC_UNUSED) PREFIX "/share/qemu/firmware/90-combined.json", PREFIX "/share/qemu/firmware/91-bios.json", PREFIX "/share/qemu/firmware/93-invalid.json", + PREFIX "/share/qemu/firmware/99-aarch64-cca.json", NULL }; const char **e; @@ -283,6 +284,7 @@ mymain(void) DO_PARSE_TEST("usr/share/qemu/firmware/90-combined.json"); DO_PARSE_TEST("usr/share/qemu/firmware/91-bios.json"); DO_PARSE_FAILURE_TEST("usr/share/qemu/firmware/93-invalid.json"); + DO_PARSE_TEST("usr/share/qemu/firmware/99-aarch64-cca.json"); if (virTestRun("QEMU FW precedence test", testFWPrecedence, NULL) < 0) ret = -1; @@ -332,7 +334,8 @@ mymain(void) "/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.qcow2:/usr/share/edk2/aarch64/vars-template-pflash.qcow2:" "/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.raw:/usr/share/edk2/aarch64/vars-template-pflash.raw:" "/usr/share/edk2/aarch64/QEMU_EFI-pflash.qcow2:/usr/share/edk2/aarch64/vars-template-pflash.qcow2:" - "/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2/aarch64/vars-template-pflash.raw", + "/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2/aarch64/vars-template-pflash.raw:" + "/usr/share/qemu-efi-aarch64/QEMU_EFI.fd:NULL", VIR_DOMAIN_OS_DEF_FIRMWARE_EFI); DO_SUPPORTED_TEST("virt", VIR_ARCH_RISCV64, false, "/usr/share/edk2/riscv/RISCV_VIRT_CODE.qcow2:/usr/share/edk2/riscv/RISCV_VIRT_VARS.qcow2", diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.aarch64-latest.args b/tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.aarch64-latest.args new file mode 100644 index 0000000000..1d6fa8268a --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.aarch64-latest.args @@ -0,0 +1,32 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/var/lib/libvirt/qemu/domain--1-guest \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \ +XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \ +XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \ +/usr/bin/qemu-system-aarch64 \ +-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"}' \ +-machine virt-4.0,usb=off,gic-version=2,dump-guest-core=off,memory-backend=mach-virt.ram,acpi=on \ +-accel tcg \ +-cpu cortex-a15 \ +-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \ +-m size=1048576k \ +-object '{"qom-type":"memory-backend-ram","id":"mach-virt.ram","size":1073741824}' \ +-overcommit mem-lock=off \ +-smp 1,sockets=1,cores=1,threads=1 \ +-uuid 63840878-0deb-4095-97e6-fc444d9bc9fa \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-boot strict=on \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ +-msg timestamp=on diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.aarch64-latest.xml b/tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.aarch64-latest.xml new file mode 100644 index 0000000000..45137b4d5e --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.aarch64-latest.xml @@ -0,0 +1,34 @@ +<domain type='qemu'> + <name>guest</name> + <uuid>63840878-0deb-4095-97e6-fc444d9bc9fa</uuid> + <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> + <vcpu placement='static'>1</vcpu> + <os firmware='efi'> + <type arch='aarch64' machine='virt-4.0'>hvm</type> + <firmware> + <feature enabled='no' name='enrolled-keys'/> + <feature enabled='no' name='secure-boot'/> + </firmware> + <loader type='rom' format='raw'>/usr/share/qemu-efi-aarch64/QEMU_EFI.fd</loader> + <boot dev='hd'/> + </os> + <features> + <acpi/> + <gic version='2'/> + </features> + <cpu mode='custom' match='exact' check='none'> + <model fallback='forbid'>cortex-a15</model> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-aarch64</emulator> + <controller type='usb' index='0' model='none'/> + <controller type='pci' index='0' model='pcie-root'/> + <audio id='1' type='none'/> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.xml b/tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.xml new file mode 100644 index 0000000000..516ccc5572 --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-manual-efi-acpi-aarch64-cca.xml @@ -0,0 +1,18 @@ +<domain type='qemu'> + <name>guest</name> + <uuid>63840878-0deb-4095-97e6-fc444d9bc9fa</uuid> + <memory unit='KiB'>1048576</memory> + <vcpu placement='static'>1</vcpu> + <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> + <devices> + <emulator>/usr/bin/qemu-system-aarch64</emulator> + <controller type='usb' model='none'/> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c index 89b8ad1a35..5c29c0ce9f 100644 --- a/tests/qemuxmlconftest.c +++ b/tests/qemuxmlconftest.c @@ -1642,6 +1642,8 @@ mymain(void) ARG_CAPS_VARIANT, "+amdsev", ARG_END); + DO_TEST_CAPS_ARCH_LATEST("firmware-manual-efi-acpi-aarch64-cca", "aarch64"); + DO_TEST_CAPS_LATEST("clock-utc"); DO_TEST_CAPS_LATEST("clock-localtime"); DO_TEST_CAPS_LATEST("clock-localtime-basis-localtime"); -- 2.52.0
