mb/emulation/qemu-riscv: Enable ACPI by default

Select HAVE_ACPI_TABLES & PCI for QEMU riscv virt machine mainboard. Add
an empty dsdt.asl to fit current build process, but it will not actually
be used since QEMU has its own method of providing DSDT blob.

TEST=build and run successfully on QEMU rvvirt machine. Using command
"qemu-system-riscv64 -machine virt,aia=aplic-imsic,acpi=on -bios
build/coreboot.rom -nographic -pflash build/coreboot.rom".

Change-Id: If8c9b5d86adb69afdcb4bf320d6353b2b2acfb31
Signed-off-by: Ziang Wang <wangziang.ok@bytedance.com>
Signed-off-by: Dong Wei <weidong.wd@bytedance.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89562
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Ziang Wang 2025-10-14 16:45:10 +08:00 committed by Matt DeVillier
commit c1c83df3b5
4 changed files with 46 additions and 0 deletions

View file

@ -38,6 +38,8 @@ config BOARD_SPECIFIC_OPTIONS
select RISCV_USE_ARCH_TIMER
select FLATTENED_DEVICE_TREE
select DRIVERS_EMULATION_QEMU_FW_CFG
select PCI
select HAVE_ACPI_TABLES
config MEMLAYOUT_LD_FILE
string
@ -49,6 +51,12 @@ config MAINBOARD_DIR
config MAINBOARD_PART_NUMBER
default "QEMU RISCV"
config ECAM_MMCONF_BASE_ADDRESS
default 0x30000000
config ECAM_MMCONF_BUS_NUMBER
default 256
config MAX_CPUS
int
default 512 # QEMUs current limit for the virt target

View file

@ -23,5 +23,6 @@ ramstage-y += cbmem.c
ramstage-y += chip.c
ramstage-y += smp.c
ramstage-y += mmio.c
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi.c
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/include

View file

@ -0,0 +1,18 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <acpi/acpi.h>
#include <smbios.h>
smbios_enclosure_type smbios_mainboard_enclosure_type(void)
{
return SMBIOS_ENCLOSURE_MAIN_SERVER_CHASSIS;
}
void acpi_fill_fadt(acpi_fadt_t *fadt)
{
}
unsigned long acpi_fill_madt(unsigned long current)
{
return current;
}

View file

@ -0,0 +1,19 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* This DSDT source is meant to be empty since riscv qemu has its own
* method to retrieve DSDT blob via fw_cfg.
*/
#include <acpi/acpi.h>
DefinitionBlock(
"dsdt.aml",
"DSDT",
ACPI_DSDT_REV_2,
OEM_ID,
ACPI_TABLE_CREATOR,
0x20110725 // OEM revision
)
{
}