diff --git a/x86_64/startup-x86_64.asm b/x86_64/startup-x86_64.asm index f5f9bc6a7d032e40187b751d6e25c6b74eef5c7e..3d9b865cb084bd66748c7044b5dec6cdd4532702 100644 --- a/x86_64/startup-x86_64.asm +++ b/x86_64/startup-x86_64.asm @@ -58,9 +58,9 @@ startup_arch: rep stosd xor edi, edi - ;Link first PML4 and third to last PML4 to PDP + ;Link first PML4 and second to last PML4 to PDP mov DWORD [es:edi], 0x71000 | 1 << 1 | 1 - mov DWORD [es:edi + 509*8], 0x71000 | 1 << 1 | 1 + mov DWORD [es:edi + 510*8], 0x71000 | 1 << 1 | 1 add edi, 0x1000 ;Link last PML4 to PML4 mov DWORD [es:edi - 8], 0x70000 | 1 << 1 | 1 @@ -120,8 +120,7 @@ long_mode: mov rsp, 0x0009F000 ;rust init - xor rax, rax - mov eax, [kernel_base + 0x18] + mov rax, [kernel_base + 0x18] jmp rax long_mode_ap: