aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pk/entry.S1
-rw-r--r--pk/pcr.h12
-rw-r--r--pk/pk.c2
-rw-r--r--pk/riscv-pk.c2
4 files changed, 8 insertions, 9 deletions
diff --git a/pk/entry.S b/pk/entry.S
index a5638dd..a9ddfc3 100644
--- a/pk/entry.S
+++ b/pk/entry.S
@@ -131,7 +131,6 @@ trap_entry:
move $a0,$x2
ei
jal handle_trap
- unimp
.end trap_entry
.bss
diff --git a/pk/pcr.h b/pk/pcr.h
index b95ff46..920defe 100644
--- a/pk/pcr.h
+++ b/pk/pcr.h
@@ -5,12 +5,12 @@
#define SR_ET 0x0000000000000001
#define SR_EF 0x0000000000000002
-#define SR_PS 0x0000000000000004
-#define SR_S 0x0000000000000008
-#define SR_UX 0x0000000000000010
-#define SR_SX 0x0000000000000020
-#define SR_UC 0x0000000000000040
-#define SR_SC 0x0000000000000080
+#define SR_EV 0x0000000000000004
+#define SR_EC 0x0000000000000008
+#define SR_PS 0x0000000000000010
+#define SR_S 0x0000000000000020
+#define SR_UX 0x0000000000000040
+#define SR_SX 0x0000000000000080
#define SR_IM 0x000000000000FF00
#define PCR_SR 0
diff --git a/pk/pk.c b/pk/pk.c
index 7ee573e..9c6653d 100644
--- a/pk/pk.c
+++ b/pk/pk.c
@@ -127,7 +127,7 @@ void init_tf(trapframe_t* tf, long pc, long sp, int user64)
memset(tf,0,sizeof(*tf));
if(sizeof(void*) != 8)
kassert(!user64);
- tf->sr = (mfpcr(PCR_SR) & (SR_IM | SR_SX)) | SR_S | SR_UC | SR_UC;
+ tf->sr = (mfpcr(PCR_SR) & (SR_IM | SR_SX)) | SR_S | SR_EC;
if(user64)
tf->sr |= SR_UX;
tf->gpr[30] = sp;
diff --git a/pk/riscv-pk.c b/pk/riscv-pk.c
index 5392100..490a271 100644
--- a/pk/riscv-pk.c
+++ b/pk/riscv-pk.c
@@ -13,7 +13,7 @@ void __attribute__((section(".boottext"))) __start()
mtpcr(0,PCR_COUNT);
mtpcr(0,PCR_COMPARE);
- register long sr0 = SR_S | SR_PS | SR_ET | SR_IM | SR_SC;
+ register long sr0 = SR_S | SR_PS | SR_ET | SR_IM | SR_EC;
if(sizeof(void*) == 8)
sr0 |= SR_SX;