diff options
author | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-05-09 16:17:11 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-05-09 16:41:10 -0700 |
commit | 1a8572a47db3151323ec390c430da37d831fc962 (patch) | |
tree | 0e84071d505a875c874460a7d036ff9aa4b8931a /pk/init.c | |
parent | ac7853a1bc5fcbee820a4f1472aa59eaf074e4e9 (diff) | |
download | pk-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.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -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; |