aboutsummaryrefslogtreecommitdiff
path: root/pk/init.c
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2015-05-09 16:17:11 -0700
committerAndrew Waterman <waterman@cs.berkeley.edu>2015-05-09 16:41:10 -0700
commit1a8572a47db3151323ec390c430da37d831fc962 (patch)
tree0e84071d505a875c874460a7d036ff9aa4b8931a /pk/init.c
parentac7853a1bc5fcbee820a4f1472aa59eaf074e4e9 (diff)
downloadpk-1a8572a47db3151323ec390c430da37d831fc962.zip
pk-1a8572a47db3151323ec390c430da37d831fc962.tar.gz
pk-1a8572a47db3151323ec390c430da37d831fc962.tar.bz2
Upgrade to privileged architecture 1.7
Diffstat (limited to 'pk/init.c')
-rw-r--r--pk/init.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/pk/init.c b/pk/init.c
index a3f22d9..683c366 100644
--- a/pk/init.c
+++ b/pk/init.c
@@ -19,10 +19,13 @@ char* uarch_counter_names[NUM_COUNTERS];
void init_tf(trapframe_t* tf, long pc, long sp, int user64)
{
memset(tf, 0, sizeof(*tf));
- if (user64) {
- kassert(sizeof(void*) == 8);
- set_csr(sstatus, UA_RV64 * (SSTATUS_UA & ~(SSTATUS_UA << 1)));
- }
+#ifdef __riscv64
+ if (!user64)
+ panic("can't run 32-bit ELF on 64-bit pk");
+#else
+ if (user64)
+ panic("can't run 64-bit ELF on 32-bit pk");
+#endif
tf->status = read_csr(sstatus);
tf->gpr[2] = sp;
tf->epc = pc;