stuff
This commit is contained in:
parent
d609c9d890
commit
70b5c0690e
2
Makefile
2
Makefile
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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.
Loading…
Reference in New Issue