aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsashimi-yzh <yuzihao@ict.ac.cn>2016-09-16 02:02:20 +0800
committerAndrew Waterman <waterman@eecs.berkeley.edu>2016-09-15 11:02:20 -0700
commitf892b43a2bb1c2405b9941aaefdb25e3b4efe1f1 (patch)
tree7f039f48c067b91609d0b55a7fd9128c73b3d703
parent8006d004a59618ce455c4365c09e138b06ca7b70 (diff)
downloadpk-f892b43a2bb1c2405b9941aaefdb25e3b4efe1f1.zip
pk-f892b43a2bb1c2405b9941aaefdb25e3b4efe1f1.tar.gz
pk-f892b43a2bb1c2405b9941aaefdb25e3b4efe1f1.tar.bz2
machine, mentry.S: fix not receiving IPI for other harts (#38)
* Before waiting for IPI by executing wfi instruction, MSIE bit should be set in mie CSR for other harts, else they will get stuck at the wfi instruction.
-rw-r--r--machine/mentry.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/machine/mentry.S b/machine/mentry.S
index 9d2fe75..64c60c3 100644
--- a/machine/mentry.S
+++ b/machine/mentry.S
@@ -232,6 +232,10 @@ do_reset:
beqz a0, init_first_hart
+ # set MSIE bit to receive IPI
+ li a1, MIP_MSIP
+ csrw mie, a1
+
.LmultiHart:
#if MAX_HARTS > 1
# wait for an IPI to signal that it's safe to boot