This commit is contained in:
Adrien Bourmault 2019-03-05 19:11:35 +01:00
parent d609c9d890
commit 70b5c0690e
3 changed files with 23 additions and 2 deletions

View File

@ -84,7 +84,7 @@ make_disk:
@echo ${CL2}[make_disk]${CL} OK${CL3} @echo ${CL2}[make_disk]${CL} OK${CL3}
testloader: loader testloader: loader
@qemu-system-x86_64 -hda build/bin/disk.img -d cpu_reset,guest_errors,pcall -s -S -enable-kvm 2> qemu.log & @qemu-system-x86_64 -hda build/bin/disk.img -d cpu_reset,guest_errors,pcall,int -s -S -enable-kvm 2> qemu.log &
@ndisasm $(OBJDIR)/boot/loader.bin -b 32 > loader_dism.asm @ndisasm $(OBJDIR)/boot/loader.bin -b 32 > loader_dism.asm

View File

@ -86,7 +86,28 @@ main:
call Is64Bits call Is64Bits
call Setup_paging call Setup_paging
call Go64
;; Registering paging
mov eax, PML4_table
mov cr3, eax ; Load PML4 to cr3
mov eax, cr4
or eax, 1 << 5
mov cr4, eax ; Enable PAE
;; Activate long mode
mov ecx, 0xC0000080 ; address of MSR
rdmsr ; read MSR
or eax, 1 << 8 ; LME = 1. (Long Mode Enable)
wrmsr ; write MSR
;; Enable paging
mov eax, cr0
or eax, 1 << 31 ; make MSR bit 31 (PG = Paging) to 1 :
; |1|000000000000000000000000000000
; |
; `------ Paging bit
mov cr0, eax
mov dword [0xb8000], 0x2f4b2f4f mov dword [0xb8000], 0x2f4b2f4f
ret ret

Binary file not shown.