[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