Fix: Fixing Linker and bootloader errors.
This commit is contained in:
parent
1934e66796
commit
babc45f96b
19
boot.asm
19
boot.asm
@ -13,25 +13,26 @@ section .text
|
||||
[bits 32]
|
||||
_start:
|
||||
mov esp, kernel_stack_top
|
||||
cli ; Clear interrupts
|
||||
|
||||
; Load the gdt_ptr
|
||||
lgdt [gdt_ptr]
|
||||
|
||||
mov cr3, pml4_table
|
||||
|
||||
mov rax, cr4
|
||||
or rax, 0x20 ; Enable PAE
|
||||
mov cr4, rax
|
||||
mov eax, cr4
|
||||
or eax, 0x20 ; Enable PAE
|
||||
mov cr4, eax
|
||||
|
||||
mov ecx, 0xC0000080 ; IA32_EFER MSR
|
||||
rdmsr
|
||||
or rax, 0x00000100 ; Set LME (Long Mode Enable) bit
|
||||
or eax, 0x00000100 ; Set LME (Long Mode Enable) bit
|
||||
wrmsr
|
||||
|
||||
; Enable long mode
|
||||
mov rax, cr0
|
||||
or rax, 0x80000000 ; Set the Long Mode Enable (LME) bit
|
||||
mov cr0, rax
|
||||
mov eax, cr0
|
||||
or eax, 0x80000000 ; Set the Long Mode Enable (LME) bit
|
||||
mov cr0, eax
|
||||
|
||||
; Jump to 64-bit code Segment
|
||||
jmp 0x08:long_mode_start
|
||||
@ -49,8 +50,8 @@ gdt_ptr:
|
||||
gdt_start: ; Start of the actual GDT entries
|
||||
; Entry 0: Null Descriptor
|
||||
dq 0x0000000000000000
|
||||
; Entry 1: 64-bit Code Segment Descriptor
|
||||
; Entry 2: 64-bit Data Segment Descriptor
|
||||
dq 0x00AF9A000000FFFF
|
||||
dq 0x00AF92000000FFFF
|
||||
gdt_end:
|
||||
|
||||
pml4_table:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user