diff --git a/arch/risc-v/src/common/riscv_cpustart.c b/arch/risc-v/src/common/riscv_cpustart.c index a3141aff9ab89..9cf04b7d6315a 100644 --- a/arch/risc-v/src/common/riscv_cpustart.c +++ b/arch/risc-v/src/common/riscv_cpustart.c @@ -77,7 +77,11 @@ void riscv_cpu_boot(int cpu) /* Wait interrupt */ - asm("WFI"); + do + { + asm("WFI"); + } + while (READ_CSR(CSR_IP) != IP_SIP); #ifdef CONFIG_RISCV_PERCPU_SCRATCH /* Initialize the per CPU areas */