diff --git a/boot/loader/loader.asm b/boot/loader/loader.asm index 2040668..09b565b 100644 --- a/boot/loader/loader.asm +++ b/boot/loader/loader.asm @@ -108,7 +108,6 @@ lnext: %include "boot/loader/mem/structures.inc" lnext2: call Setup_paging - call Go64 jmp lnext3 %include "boot/loader/mem/management.inc" diff --git a/boot/loader/mem/management.inc b/boot/loader/mem/management.inc index 48ff4cc..3634666 100644 --- a/boot/loader/mem/management.inc +++ b/boot/loader/mem/management.inc @@ -57,8 +57,6 @@ Setup_paging: ; Enable long mode and paging ; ; ---------------------------------------------------------------------------- ; Go64: - pusha - ;; Registering paging mov eax, PML4_table mov cr3, eax ; Load PML4 to cr3 @@ -80,10 +78,5 @@ Go64: ; | ; `------ Paging bit mov cr0, eax - jmp .end - nop - nop -.end: - popa ret diff --git a/boot/loader/mem/structures.inc b/boot/loader/mem/structures.inc index 4947b9d..31e98b4 100644 --- a/boot/loader/mem/structures.inc +++ b/boot/loader/mem/structures.inc @@ -26,7 +26,7 @@ [BITS 32] ;; GDT WITH DOC -ALIGN 4096 +ALIGN 4 GDT64: NULL_SELECTOR: ;; null selector within 64 bits dw GDT_LENGTH ; limit of GDT @@ -104,7 +104,7 @@ GDT64: GDT_LENGTH: ;; EMPTY PAGE TABLES (identity of the first 1GiB) -ALIGN 4096 +ALIGN 4 PML4_table: resb 4096 PDP_table: diff --git a/build/obj/boot/loader.bin b/build/obj/boot/loader.bin index 1b1f118..faf3109 100644 Binary files a/build/obj/boot/loader.bin and b/build/obj/boot/loader.bin differ