diff --git a/src/mainboard/emulation/qemu-riscv/Kconfig b/src/mainboard/emulation/qemu-riscv/Kconfig index c6ff42bdb2..a8972260b5 100644 --- a/src/mainboard/emulation/qemu-riscv/Kconfig +++ b/src/mainboard/emulation/qemu-riscv/Kconfig @@ -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 diff --git a/src/mainboard/emulation/qemu-riscv/Makefile.mk b/src/mainboard/emulation/qemu-riscv/Makefile.mk index 90e5023feb..deaec5e44f 100644 --- a/src/mainboard/emulation/qemu-riscv/Makefile.mk +++ b/src/mainboard/emulation/qemu-riscv/Makefile.mk @@ -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 diff --git a/src/mainboard/emulation/qemu-riscv/acpi.c b/src/mainboard/emulation/qemu-riscv/acpi.c new file mode 100644 index 0000000000..687fe20361 --- /dev/null +++ b/src/mainboard/emulation/qemu-riscv/acpi.c @@ -0,0 +1,18 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include + +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; +} diff --git a/src/mainboard/emulation/qemu-riscv/dsdt.asl b/src/mainboard/emulation/qemu-riscv/dsdt.asl new file mode 100644 index 0000000000..4e992f5ed3 --- /dev/null +++ b/src/mainboard/emulation/qemu-riscv/dsdt.asl @@ -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 + +DefinitionBlock( + "dsdt.aml", + "DSDT", + ACPI_DSDT_REV_2, + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20110725 // OEM revision +) +{ +}