diff options
author | Andrew Waterman <waterman@cs.berkeley.edu> | 2016-06-01 17:01:57 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@cs.berkeley.edu> | 2016-06-01 17:03:26 -0700 |
commit | 771c1163d397cd08e1974869f15b2e0c2d394602 (patch) | |
tree | 08b5fd8ed054fd7ad42df9f5e176cbc6b49338a9 /machine/minit.c | |
parent | f70ee5576a07d455bdcc5275b7fc9d471090bf64 (diff) | |
download | pk-771c1163d397cd08e1974869f15b2e0c2d394602.zip pk-771c1163d397cd08e1974869f15b2e0c2d394602.tar.gz pk-771c1163d397cd08e1974869f15b2e0c2d394602.tar.bz2 |
Clear IPIs using MMIO, not mip CSR
Diffstat (limited to 'machine/minit.c')
-rw-r--r-- | machine/minit.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/machine/minit.c b/machine/minit.c index f2bc0cf..609eb3a 100644 --- a/machine/minit.c +++ b/machine/minit.c @@ -100,6 +100,10 @@ static void plic_init() static void hart_plic_init() { + // clear pending interrupts + HLS()->ipi = 0; + write_csr(mip, 0); + if (!plic_ndevs) return; @@ -128,6 +132,7 @@ void init_other_hart() // wait until hart 0 discovers us while (*(uint64_t * volatile *)&HLS()->timecmp == NULL) ; + mb(); hart_plic_init(); boot_other_hart(); |