On 10/13/2026 10:23 PM, Bin Meng wrote:
The Icicle Kit contains one E51 management hart and four U54 application
harts. Defaulting to two harts can accidentally boot firmware and a
device tree that expect the full five-hart topology.
Default to all five harts, while retaining the existing two-to-five
range for users intentionally configuring fewer application harts.
Document that firmware and device trees must match the selected count.
Signed-off-by: Bin Meng <[email protected]>
Tested-by: Conor Dooley <[email protected]>
---
Reviewed-by: Daniel Henrique Barboza <[email protected]>
(no changes since v3)
Changes in v3:
- Change only the default hart count and retain the minimum of two
- Document reduced topologies and matching firmware requirements
docs/system/riscv/microchip-icicle-kit.rst | 3 +++
hw/riscv/microchip_pfsoc.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/docs/system/riscv/microchip-icicle-kit.rst
b/docs/system/riscv/microchip-icicle-kit.rst
index b0ad24f174..138289a913 100644
--- a/docs/system/riscv/microchip-icicle-kit.rst
+++ b/docs/system/riscv/microchip-icicle-kit.rst
@@ -27,6 +27,9 @@ The ``microchip-icicle-kit`` machine supports the following
devices:
* 1 SDHC storage controller
The machine has a fixed 2 GiB of RAM. Other memory sizes are rejected.
+The machine defaults to all five harts. ``-smp`` may select two to five harts,
+with one E51 and one to four U54 cores. The firmware and device tree must match
+the selected topology; the HSS boot flow below uses all five harts.
Boot options
------------
diff --git a/hw/riscv/microchip_pfsoc.c b/hw/riscv/microchip_pfsoc.c
index 855c719f76..9d8e5916e7 100644
--- a/hw/riscv/microchip_pfsoc.c
+++ b/hw/riscv/microchip_pfsoc.c
@@ -752,7 +752,7 @@ static void
microchip_icicle_kit_machine_class_init(ObjectClass *oc,
mc->max_cpus = MICROCHIP_PFSOC_MANAGEMENT_CPU_COUNT +
MICROCHIP_PFSOC_COMPUTE_CPU_COUNT;
mc->min_cpus = MICROCHIP_PFSOC_MANAGEMENT_CPU_COUNT + 1;
- mc->default_cpus = mc->min_cpus;
+ mc->default_cpus = mc->max_cpus;
mc->default_ram_id = "microchip.icicle.kit.ram";
mc->auto_create_sdcard = true;