summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/fw_base.S4
-rw-r--r--lib/sbi_hart.c4
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);