diff options
author | sashimi-yzh <yuzihao@ict.ac.cn> | 2016-09-16 02:02:20 +0800 |
---|---|---|
committer | Andrew Waterman <waterman@eecs.berkeley.edu> | 2016-09-15 11:02:20 -0700 |
commit | f892b43a2bb1c2405b9941aaefdb25e3b4efe1f1 (patch) | |
tree | 7f039f48c067b91609d0b55a7fd9128c73b3d703 | |
parent | 8006d004a59618ce455c4365c09e138b06ca7b70 (diff) | |
download | pk-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.S | 4 |
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 |