diff options
author | Andrew Waterman <andrew@sifive.com> | 2021-05-18 18:33:26 -0700 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2021-05-18 18:33:26 -0700 |
commit | 09521e8550750172e7f137d1ed2845c95eefc0b6 (patch) | |
tree | 46bce4a42fd15238769d3d200609645f5948780c /machine/minit.c | |
parent | e8e6b3aaee44d43b48164fbd377864c3a682dbd3 (diff) | |
download | pk-09521e8550750172e7f137d1ed2845c95eefc0b6.zip pk-09521e8550750172e7f137d1ed2845c95eefc0b6.tar.gz pk-09521e8550750172e7f137d1ed2845c95eefc0b6.tar.bz2 |
Add 2-stage translation (for debugging purposes only)remap
Diffstat (limited to 'machine/minit.c')
-rw-r--r-- | machine/minit.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/machine/minit.c b/machine/minit.c index c519926..59df32b 100644 --- a/machine/minit.c +++ b/machine/minit.c @@ -66,8 +66,14 @@ static void delegate_traps() write_csr(mideleg, interrupts); write_csr(medeleg, exceptions); - assert(read_csr(mideleg) == interrupts); + assert((~read_csr(mideleg) & interrupts) == 0); assert(read_csr(medeleg) == exceptions); + + uintptr_t hypervisor_exceptions = + (1U << CAUSE_FETCH_GUEST_PAGE_FAULT) | + (1U << CAUSE_LOAD_GUEST_PAGE_FAULT) | + (1U << CAUSE_STORE_GUEST_PAGE_FAULT); + set_csr(medeleg, hypervisor_exceptions); } static void fp_init() |