aboutsummaryrefslogtreecommitdiff
path: root/pk/minit.c
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2015-04-03 22:18:54 -0700
committerAndrew Waterman <waterman@cs.berkeley.edu>2015-04-03 22:18:54 -0700
commit01fd29cb6ef8202ef6201f6f471dec9cbd1a4145 (patch)
tree0f499fd2c72cdf8beef41983b15ddea05bf23a1f /pk/minit.c
parenta24e1934dd116a3a6a11c095de7bed56ee271986 (diff)
downloadpk-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.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/pk/minit.c b/pk/minit.c
index 01625bd..09b89aa 100644
--- a/pk/minit.c
+++ b/pk/minit.c
@@ -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;
}