-#include "../../env/encoding.h"
+#include "encoding.h"
#define PGSHIFT 12
.global main
# update mstatus
csrr t1, CSR_MSTATUS
- li t0, (MSTATUS_MPRV | (VM_SV39 << 24))
+#if XLEN == 32
+ li t0, (MSTATUS_MPRV | (SPTBR_MODE_SV32 << 24))
+#else
+ li t0, (MSTATUS_MPRV | (SPTBR_MODE_SV39 << 24))
+#endif
#li t0, ((VM_SV39 << 24))
or t1, t0, t1
csrw CSR_MSTATUS, t1
.balign 0x1000
page_table:
- .word ((0x80000000 >> 2) | PTE_V | PTE_TYPE_URWX_SRWX)
+#if XLEN == 32
+ .word ((0x80000000 >> 2) | PTE_V | PTE_R | PTE_W | PTE_X | PTE_G | PTE_U)
+#else
+ .word ((0x80000000 >> 2) | PTE_V | PTE_R | PTE_W | PTE_X | PTE_G | PTE_U)
.word 0
+#endif