summaryrefslogtreecommitdiff
path: root/kernel/src/mem
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/mem')
-rw-r--r--kernel/src/mem/paging.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/src/mem/paging.c b/kernel/src/mem/paging.c
index 531c300..630fb6d 100644
--- a/kernel/src/mem/paging.c
+++ b/kernel/src/mem/paging.c
@@ -51,9 +51,10 @@ void init_paging(void)
page_table_lvl3[2] = (uint64_t)page_table_lvl2_2 + FLAG_PRESENT + FLAG_WRITABLE - KERNEL_VMA;
page_table_lvl3[3] = (uint64_t)page_table_lvl2_3 + FLAG_PRESENT + FLAG_WRITABLE - KERNEL_VMA;
- // higher half map first 4mb
- map_addr(KERNEL_VMA, 0x00000000, FLAG_PRESENT + FLAG_WRITABLE + FLAG_HUGE);
- map_addr(KERNEL_VMA + PAGE_SIZE, 0x00000000 + PAGE_SIZE, FLAG_PRESENT + FLAG_WRITABLE + FLAG_HUGE);
+ // higher half map first 6mb
+ for (size_t i = 0; i < 3; i++) {
+ map_addr(KERNEL_VMA + PAGE_SIZE * i, 0x00000000 + PAGE_SIZE * i, FLAG_PRESENT + FLAG_WRITABLE + FLAG_HUGE);
+ }
load_pt_lvl4(page_table_lvl4);
}