On 28/5/25 22:01, Daniel Henrique Barboza wrote:
From: Fei Wu <[email protected]>

The RISC-V Server Platform specification[1] defines a standardized set
of hardware and software capabilities, that portable system software,
such as OS and hypervisors can rely on being present in a RISC-V server
platform.

A corresponding Qemu RISC-V server platform reference (rvsp-ref for
short) machine type is added to provide a environment for firmware/OS
development and testing. The main features included in rvsp-ref are:

  - Based on riscv virt machine type
  - A new memory map as close as virt machine as possible
  - A new virt CPU type rvsp-ref-cpu for server platform compliance
  - AIA
  - PCIe AHCI
  - PCIe NIC
  - No virtio device
  - No fw_cfg device
  - No ACPI table provided
  - Only minimal device tree nodes

[1] https://github.com/riscv-non-isa/riscv-server-platform

Signed-off-by: Fei Wu <[email protected]>
Signed-off-by: Daniel Henrique Barboza <[email protected]>
---
  configs/devices/riscv64-softmmu/default.mak |    1 +
  hw/riscv/Kconfig                            |   14 +
  hw/riscv/meson.build                        |    1 +
  hw/riscv/server_platform_ref.c              | 1276 +++++++++++++++++++
  4 files changed, 1292 insertions(+)
  create mode 100644 hw/riscv/server_platform_ref.c

diff --git a/configs/devices/riscv64-softmmu/default.mak 
b/configs/devices/riscv64-softmmu/default.mak
index 39ed3a0061..0c4893b708 100644
--- a/configs/devices/riscv64-softmmu/default.mak
+++ b/configs/devices/riscv64-softmmu/default.mak
@@ -9,5 +9,6 @@
  # CONFIG_SIFIVE_E=n
  # CONFIG_SIFIVE_U=n
  # CONFIG_RISCV_VIRT=n
+# CONFIG_SERVER_PLATFORM_REF=n
  # CONFIG_MICROCHIP_PFSOC=n
  # CONFIG_SHAKTI_C=n
diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig
index e6a0ac1fa1..f626774c52 100644
--- a/hw/riscv/Kconfig
+++ b/hw/riscv/Kconfig
@@ -69,6 +69,20 @@ config RISCV_VIRT
      select ACPI
      select ACPI_PCI
+config SERVER_PLATFORM_REF
+    bool
+    default y
+    depends on RISCV64
+    select RISCV_NUMA
+    select GOLDFISH_RTC
+    select PCI

PCI is already selected by PCI_EXPRESS_GENERIC_BRIDGE.

+    select PCI_EXPRESS_GENERIC_BRIDGE
+    select PFLASH_CFI01
+    select SERIAL
+    select RISCV_ACLINT
+    select RISCV_APLIC
+    select RISCV_IMSIC

Reply via email to