diff options
-rw-r--r-- | firmware/fw_base.S | 4 | ||||
-rw-r--r-- | lib/sbi_hart.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/firmware/fw_base.S b/firmware/fw_base.S index ad6371b..5738f57 100644 --- a/firmware/fw_base.S +++ b/firmware/fw_base.S @@ -125,10 +125,6 @@ _start_warm: csrw mie, zero csrw mip, zero - /* Set MSIE bit to receive IPI */ - li a2, MIP_MSIP - csrw mie, a2 - /* Preload per-HART details * s6 -> HART ID * s7 -> HART Count diff --git a/lib/sbi_hart.c b/lib/sbi_hart.c index e8a689e..e12a546 100644 --- a/lib/sbi_hart.c +++ b/lib/sbi_hart.c @@ -304,6 +304,10 @@ void sbi_hart_wait_for_coldboot(struct sbi_scratch *scratch, u32 hartid) if ((sbi_platform_hart_count(plat) <= hartid) || (COLDBOOT_WAIT_BITMAP_SIZE <= hartid)) sbi_hart_hang(); + + /* Set MSIE bit to receive IPI */ + csr_set(mie, MIP_MSIP); + do { spin_lock(&coldboot_wait_bitmap_lock); coldboot_wait_bitmap |= (1UL << hartid); |