This series adds multi-socket support for RISC-V virt machine and RISC-V spike machine. The multi-socket support will help us improve various RISC-V operating systems, firmwares, and bootloader to support RISC-V NUMA systems.
These patch can be found in riscv_multi_socket_v6 branch at: https://github.com/avpatel/qemu.git Changes since v5: - Rebased patches on Spike changes from Alistair - Added comments describing RISC-V NUMA helper functions Changes since v4: - Re-arrange patches and move CLINT and PLIC patches before other patches because these are already reviewed - Added PATCH3 for common RISC-V multi-socket helpers - Added support for "-numa cpu,node-id" option in PATCH4 and PATCH5 Changes since v3: - Use "-numa" QEMU options to populate sockets instead of custom "multi-socket" sub-option in machine name Changes since v2: - Dropped PATCH1 as it is not required any more - Added "multi-socket" sub-option for Spike and Virt machine which can be used to enable/disable mult-socket support Changes since v1: - Fixed checkpatch errors and warnings - Added PATCH1 for knowning whether "sockets" sub-option was specified - Remove SPIKE_CPUS_PER_SOCKET_MIN and SPIKE_CPUS_PER_SOCKET_MAX in PATCH3 - Remove VIRT_CPUS_PER_SOCKET_MIN and VIRT_CPUS_PER_SOCKET_MAX in PATCH5 Anup Patel (5): hw/riscv: Allow creating multiple instances of CLINT hw/riscv: Allow creating multiple instances of PLIC hw/riscv: Add helpers for RISC-V multi-socket NUMA machines hw/riscv: spike: Allow creating multiple NUMA sockets hw/riscv: virt: Allow creating multiple NUMA sockets hw/riscv/Makefile.objs | 1 + hw/riscv/numa.c | 242 +++++++++++++++ hw/riscv/sifive_clint.c | 20 +- hw/riscv/sifive_e.c | 4 +- hw/riscv/sifive_plic.c | 24 +- hw/riscv/sifive_u.c | 4 +- hw/riscv/spike.c | 237 +++++++++----- hw/riscv/virt.c | 530 ++++++++++++++++++-------------- include/hw/riscv/numa.h | 113 +++++++ include/hw/riscv/sifive_clint.h | 7 +- include/hw/riscv/sifive_plic.h | 12 +- include/hw/riscv/spike.h | 11 +- include/hw/riscv/virt.h | 9 +- 13 files changed, 873 insertions(+), 341 deletions(-) create mode 100644 hw/riscv/numa.c create mode 100644 include/hw/riscv/numa.h -- 2.25.1