diff options
Diffstat (limited to 'kernel/src/arch/aarch64/paging.cpp')
| -rw-r--r-- | kernel/src/arch/aarch64/paging.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/src/arch/aarch64/paging.cpp b/kernel/src/arch/aarch64/paging.cpp index 69ecd4b..9137e19 100644 --- a/kernel/src/arch/aarch64/paging.cpp +++ b/kernel/src/arch/aarch64/paging.cpp @@ -4,6 +4,7 @@ #include <generic/hhdm.hpp> #include <generic/pmm.hpp> #include <utils/gobject.hpp> +#include <klibc/stdio.hpp> #define PTE_MASK_VALUE 0x0000fffffffff000 #define PTE_PRESENT (1 << 0) @@ -77,11 +78,11 @@ void aarch64_map_page(std::uintptr_t root, std::uintptr_t phys, std::uintptr_t v namespace arch { [[gnu::weak]] void enable_paging(std::uintptr_t root) { - asm volatile("msr ttbr0_el1, %0" : : "r"(root) : "memory"); if (root == gobject::kernel_root) { asm volatile("msr ttbr1_el1, %0" : : "r"(root) : "memory"); asm volatile("dsb ish; tlbi vmalle1; dsb ish; isb" : : : "memory"); } else { + asm volatile("msr ttbr0_el1, %0" : : "r"(root) : "memory"); asm volatile("dsb ish; tlbi vmalle1; dsb ish; isb" : : : "memory"); } } |
