From: Lucian-Raul Silistru <lucian-raul.silis...@intel.com>

When running on a multicore device with SMP disabled it is possible
for unused harts to still be pulled out of reset. This change parks
them in a wfi loop.

Updates #4735
---
 bsps/riscv/shared/start/start.S | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/bsps/riscv/shared/start/start.S b/bsps/riscv/shared/start/start.S
index a8ff1b079f..da5cd2be67 100644
--- a/bsps/riscv/shared/start/start.S
+++ b/bsps/riscv/shared/start/start.S
@@ -71,6 +71,8 @@ SYM(_start):
        bnez    s0, .Lstart_on_secondary_processor
        add     sp, sp, t2
 #else
+       csrr    s0, mhartid
+       bnez    s0, .Lblock_on_unused_processor
        LADDR   sp, _ISR_Stack_area_end
 #endif
 
@@ -144,4 +146,8 @@ SYM(_start):
        .word   0x00100073
 #endif
 
+#else /* RTEMS_SMP */
+.Lblock_on_unused_processor:
+       wfi
+       bnez    s0, .Lblock_on_unused_processor
 #endif /* RTEMS_SMP */
-- 
2.25.1

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to