[PATCH 0/3] qfw/acpi: do not zero out XSDT address
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Sat Nov 1 00:15:25 CET 2025
On 10/31/25 20:59, Heinrich Schuchardt wrote:
> Since release 2025.01 the discovery of QEMU ACPI tables is broken.
>
> * Remove the line erasing the pointer to the XSDT table
> * Add a test for the 'acpi list' command
> * Provide a configuration that can run this test
>
> This series goes together with patch
>
> [PATCH 1/1] CI: test qemu-riscv64_smode[_acpi]
> https://lore.kernel.org/u-boot/20251028131720.55212-1-heinrich.schuchardt@canonical.com/
With the series applied I can use
qemu-system-riscv64 \
-M virt -m 8G -smp 4 -cpu rva23s64 \
-kernel u-boot \
-serial mon:stdio \
-device qemu-xhci \
-device usb-kbd \
-device usb-tablet \
-device VGA \
-display sdl \
-drive file=ubuntu25.10-riscv64.qcow2,format=qcow2,if=virtio \
-netdev user,id=net0 \
-device virtio-net-device,netdev=net0 \
-audio pa,model=virtio \
-device virtio-rng-pci
to boot a RISC-V virtual machine using ACPI (not device-tree) running
Ubuntu 25.10, kernel 6.17.0-5-generic with an Xfce desktop. Here is the
relevant kernel output:
[ 0.000000] efi: RTPROP=0x27de43040 ACPI 2.0=0x27ee72000 SMBIOS
3.0=0x27ee83000 INITRD=0x27de2f040 RNG=0x27de2e040 MEMRESERVE=0x27de2d040
...
[ 0.000000] ACPI: Early table checksum verification disabled
[ 0.000000] ACPI: RSDP 0x000000027EE72000 000024 (v02 BOCHS )
[ 0.000000] ACPI: XSDT 0x000000027EED340A 00004C (v01 BOCHS BXPC
00000001 BXPC 00000001)
[ 0.000000] ACPI: FACP 0x000000027EED2EF2 000114 (v06 BOCHS BXPC
00000001 BXPC 00000001)
[ 0.000000] ACPI: DSDT 0x000000027EED2040 000EB2 (v02 BOCHS BXPC
00000001 BXPC 00000001)
[ 0.000000] ACPI: APIC 0x000000027EED3006 0000E0 (v07 BOCHS BXPC
00000001 BXPC 00000001)
[ 0.000000] ACPI: RHCT 0x000000027EED30E6 00028E (v01 BOCHS BXPC
00000001 BXPC 00000001)
[ 0.000000] ACPI: SPCR 0x000000027EED3374 00005A (v04 BOCHS BXPC
00000001 BXPC 00000001)
[ 0.000000] ACPI: MCFG 0x000000027EED33CE 00003C (v01 BOCHS BXPC
00000001 BXPC 00000001)
[ 0.000000] ACPI: SPCR: console: uart,mmio,0x10000000,115200
The QEMU device-tree passed to U-Boot is not used in this case:
$ dtc -I fs -O dts /proc/device-tree
/dts-v1/;
/ {
#address-cells = <0x02>;
#size-cells = <0x02>;
chosen {
linux,uefi-mmap-size = <0x5f0>;
bootargs = "BOOT_IMAGE=/boot/vmlinuz-6.17.0-5-generic
root=UUID=171edd56-ad1d-4ca9-8f9d-503b05bdc840 ro efi=debug earlycon=sbi";
linux,uefi-mmap-start = <0x02 0x7de2b068>;
kaslr-seed = <0x00 0x00>;
linux,uefi-mmap-desc-size = <0x28>;
linux,uefi-mmap-desc-ver = <0x01>;
linux,uefi-secure-boot = <0x02>;
linux,uefi-system-table = <0x02 0x7f6b4fb8>;
};
};
$ ls /sys/firmware/acpi/tables/
APIC DSDT FACP MCFG RHCT SPCR data dynamic
Best regards
Heinrich
>
> which enables running CI tests on qemu-riscv64_smode_acpi_defconfig.
>
> Heinrich Schuchardt (3):
> qfw/acpi: do not zero out XSDT address
> test: provide test for 'acpi list' command
> configs: CONFIG_CONSOLE_RECORD=y on qemu-riscv64_smode_acpi
>
> configs/qemu-riscv64_smode_acpi_defconfig | 1 +
> drivers/misc/qfw_acpi.c | 1 -
> test/cmd/Makefile | 3 ++
> test/cmd/acpi.c | 52 +++++++++++++++++++++++
> 4 files changed, 56 insertions(+), 1 deletion(-)
> create mode 100644 test/cmd/acpi.c
>
More information about the U-Boot
mailing list