Revert "Revert "LONG MODE MULTIBOOT WORKS gsp!""
This reverts commit ff2841c0ad894030a34f3a3db19bb55e68271083.
This commit is contained in:
parent
9f2ebed70a
commit
3f0f789b1d
|
@ -108,6 +108,7 @@ lnext:
|
|||
%include "boot/loader/mem/structures.inc"
|
||||
lnext2:
|
||||
call Setup_paging
|
||||
call Go64
|
||||
jmp lnext3
|
||||
%include "boot/loader/mem/management.inc"
|
||||
|
||||
|
|
|
@ -57,6 +57,8 @@ Setup_paging:
|
|||
; Enable long mode and paging ;
|
||||
; ---------------------------------------------------------------------------- ;
|
||||
Go64:
|
||||
pusha
|
||||
|
||||
;; Registering paging
|
||||
mov eax, PML4_table
|
||||
mov cr3, eax ; Load PML4 to cr3
|
||||
|
@ -78,5 +80,10 @@ Go64:
|
|||
; |
|
||||
; `------ Paging bit
|
||||
mov cr0, eax
|
||||
jmp .end
|
||||
nop
|
||||
nop
|
||||
.end:
|
||||
|
||||
popa
|
||||
ret
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
[BITS 32]
|
||||
|
||||
;; GDT WITH DOC
|
||||
ALIGN 4
|
||||
ALIGN 4096
|
||||
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 4
|
||||
ALIGN 4096
|
||||
PML4_table:
|
||||
resb 4096
|
||||
PDP_table:
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue