aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/boot
diff options
context:
space:
mode:
authorFabian Imhof <fabian.imhof@ost.ch>2025-03-29 14:47:04 +0000
committerFabian Imhof <fabian.imhof@ost.ch>2025-03-29 14:47:04 +0000
commitaba154ad01fc0e1e1274f2582b1493e78daa2559 (patch)
tree15aad40a97406a76e466191ef7afc5ed4ab10006 /arch/x86_64/src/boot
parent98be1b722f17e77880e8c0b0f464a9ba31230fc4 (diff)
downloadteachos-aba154ad01fc0e1e1274f2582b1493e78daa2559.tar.xz
teachos-aba154ad01fc0e1e1274f2582b1493e78daa2559.zip
fix gdt segments, improve idt and trial&error for triple fault
Diffstat (limited to 'arch/x86_64/src/boot')
-rw-r--r--arch/x86_64/src/boot/boot.s11
1 files changed, 1 insertions, 10 deletions
diff --git a/arch/x86_64/src/boot/boot.s b/arch/x86_64/src/boot/boot.s
index 108dbe5..38a8af4 100644
--- a/arch/x86_64/src/boot/boot.s
+++ b/arch/x86_64/src/boot/boot.s
@@ -197,10 +197,8 @@ _start:
call enable_paging
call enable_sse
- cli /* Clears the interrupt flag during the GDT setup */
lgdt (global_descriptor_table_pointer)
jmp $global_descriptor_table_code, $_transition_to_long_mode
- /* The interrupt flag is set in cpp after setting up the GDT */
call halt
@@ -369,14 +367,7 @@ reload_segment_register:
ret
_transition_to_long_mode:
- //call reload_segment_register
-
- xor %rax, %rax
- mov %rax, %ss
- mov %rax, %ds
- mov %rax, %es
- mov %rax, %fs
- mov %rax, %gs
+ call reload_segment_register
movl $0xb8000, (vga_buffer_pointer)