aboutsummaryrefslogtreecommitdiff
path: root/pk/vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'pk/vm.c')
-rw-r--r--pk/vm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/pk/vm.c b/pk/vm.c
index 0719a4b..f66f8f1 100644
--- a/pk/vm.c
+++ b/pk/vm.c
@@ -485,6 +485,10 @@ void supervisor_vm_init()
uintptr_t pk_vm_init()
{
+ // keep RV32 addresses positive
+ if (!current.elf64)
+ current.mmap_max = MIN(current.mmap_max, 0x80000000);
+
__map_kernel_range(0, 0, current.first_free_paddr, PROT_READ|PROT_WRITE|PROT_EXEC);
__map_kernel_range(first_free_page, first_free_page, free_pages * RISCV_PGSIZE, PROT_READ|PROT_WRITE);