diff options
author | dzwdz | 2022-07-16 13:33:00 +0200 |
---|---|---|
committer | dzwdz | 2022-07-16 13:33:00 +0200 |
commit | 912d2e3c7eb1baa71dda2c0a28aa5809eaa96f27 (patch) | |
tree | 4e27f3538466d5fd63a311d50916039a7a15a485 /src/kernel/arch/amd64/boot64.s | |
parent | 1eeb66af44ab335888410d716d604e569f20866e (diff) |
amd64: barely boot into kernel code
Diffstat (limited to 'src/kernel/arch/amd64/boot64.s')
-rw-r--r-- | src/kernel/arch/amd64/boot64.s | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/kernel/arch/amd64/boot64.s b/src/kernel/arch/amd64/boot64.s new file mode 100644 index 0000000..1dca0ca --- /dev/null +++ b/src/kernel/arch/amd64/boot64.s @@ -0,0 +1,13 @@ +.global boot64 +boot64: + lgdt (lgdt_arg) // try reloading gdt again + mov $(5 << 3 | 3), %ax // SEG_TSS + ltr %ax + + xchgw %bx, %bx + push %rdi // preserve multiboot struct + call sysenter_setup + pop %rdi + + // multiboot struct in %rdi + jmp kmain_early |