diff --git a/kernel/arch/i386/Paging.cpp b/kernel/arch/i386/Paging.cpp index 5382b60f..9769d578 100644 --- a/kernel/arch/i386/Paging.cpp +++ b/kernel/arch/i386/Paging.cpp @@ -32,6 +32,13 @@ namespace Paging if (!HasRequirements()) asm volatile("hlt"); + // Disable paging + asm volatile( + "movl %cr0, %ebx;" + "andl $0x7fffffff, %ebx;" + "movl %ebx, %cr0;" + ); + // Identity map first 2 (2 MiB) pages memset(s_page_directory, 0x00, sizeof(s_page_directory)); s_page_directory[0] = (0x00 << 21) | PAGE_SIZE | READ_WRITE | PRESENT; diff --git a/kernel/arch/i386/boot.S b/kernel/arch/i386/boot.S index 080d88ae..88e9895e 100644 --- a/kernel/arch/i386/boot.S +++ b/kernel/arch/i386/boot.S @@ -42,8 +42,6 @@ boot_page_directory1: .skip 512 * 8 - - .section .text, "a" .global g_multiboot_info @@ -84,7 +82,6 @@ _start: movl %eax, g_multiboot_magic movl %ebx, g_multiboot_info - # Copy kernel command line to known location movl %ebx, %esi addl $16, %esi