Anup Patel 於 2021年12月30日 週四 下午9:06寫道: > From: Anup Patel > > To facilitate software development of RISC-V systems with large number > of HARTs, we increase the maximum number of allowed CPUs to 512 (2^9). > > We also add a detailed source level comments about limit defines which > impact the physical address space utilization. > > Signed-off-by: Anup Patel > Signed-off-by: Anup Patel > --- > hw/riscv/virt.c | 10 ++++++++++ > include/hw/riscv/virt.h | 2 +- > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c > index 7579f7b41f..86b03736eb 100644 > --- a/hw/riscv/virt.c > +++ b/hw/riscv/virt.c > @@ -44,6 +44,16 @@ > #include "hw/pci-host/gpex.h" > #include "hw/display/ramfb.h" > > +/* > + * The virt machine physical address space used by some of the devices > + * namely ACLINT, PLIC, APLIC, and IMSIC depend on number of Sockets, > + * number of CPUs, and number of IMSIC guest files. > + * > + * Various limits defined by VIRT_SOCKETS_MAX_BITS, VIRT_CPUS_MAX_BITS, > + * and VIRT_IRQCHIP_MAX_GUESTS_BITS are tuned for maximum utilization > + * of virt machine physical address space. > + */ > + > #define VIRT_IMSIC_GROUP_MAX_SIZE (1U << IMSIC_MMIO_GROUP_MIN_SHIFT) > #if VIRT_IMSIC_GROUP_MAX_SIZE < \ > IMSIC_GROUP_SIZE(VIRT_CPUS_MAX_BITS, VIRT_IRQCHIP_MAX_GUESTS_BITS) > diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h > index e12e8ddcae..62d8e9c6d0 100644 > --- a/include/hw/riscv/virt.h > +++ b/include/hw/riscv/virt.h > @@ -24,7 +24,7 @@ > #include "hw/block/flash.h" > #include "qom/object.h" > > -#define VIRT_CPUS_MAX_BITS 3 > +#define VIRT_CPUS_MAX_BITS 9 > #define VIRT_CPUS_MAX (1 << VIRT_CPUS_MAX_BITS) > #define VIRT_SOCKETS_MAX_BITS 2 > #define VIRT_SOCKETS_MAX (1 << VIRT_SOCKETS_MAX_BITS) > -- > 2.25.1 > > > Reviewed-by: Frank Chang