diff options
author | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-04-03 22:18:54 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-04-03 22:18:54 -0700 |
commit | 01fd29cb6ef8202ef6201f6f471dec9cbd1a4145 (patch) | |
tree | 0f499fd2c72cdf8beef41983b15ddea05bf23a1f /pk/minit.c | |
parent | a24e1934dd116a3a6a11c095de7bed56ee271986 (diff) | |
download | pk-01fd29cb6ef8202ef6201f6f471dec9cbd1a4145.zip pk-01fd29cb6ef8202ef6201f6f471dec9cbd1a4145.tar.gz pk-01fd29cb6ef8202ef6201f6f471dec9cbd1a4145.tar.bz2 |
Make PK compile on RV32
Of course, it doesn't work, because there's no support for
fromhost/tohost devices in RV32.
Diffstat (limited to 'pk/minit.c')
-rw-r--r-- | pk/minit.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -7,14 +7,16 @@ uint32_t num_harts; static void mstatus_init() { uintptr_t ms = read_csr(mstatus); +#ifdef __riscv64 ms = INSERT_FIELD(ms, MSTATUS_SA, UA_RV64); ms = INSERT_FIELD(ms, MSTATUS_UA, UA_RV64); +#endif ms = INSERT_FIELD(ms, MSTATUS_PRV1, PRV_S); ms = INSERT_FIELD(ms, MSTATUS_IE1, 0); ms = INSERT_FIELD(ms, MSTATUS_PRV2, PRV_U); ms = INSERT_FIELD(ms, MSTATUS_IE2, 1); ms = INSERT_FIELD(ms, MSTATUS_MPRV, PRV_M); - ms = INSERT_FIELD(ms, MSTATUS_VM, VM_SV43); + ms = INSERT_FIELD(ms, MSTATUS_VM, VM_CHOICE); ms = INSERT_FIELD(ms, MSTATUS_FS, 3); ms = INSERT_FIELD(ms, MSTATUS_XS, 3); write_csr(mstatus, ms); @@ -28,7 +30,7 @@ static void mstatus_init() panic("supervisor support is required"); } - if (EXTRACT_FIELD(ms, MSTATUS_VM) != VM_SV43) + if (EXTRACT_FIELD(ms, MSTATUS_VM) != VM_CHOICE) have_vm = 0; } |