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/[email protected]/

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


Reply via email to