diff options
| author | Chloe M. <chloe@aptel.org> | 2026-09-03 01:22:45 +0000 |
|---|---|---|
| committer | Chloe M. <chloe@aptel.org> | 2026-09-03 02:49:49 +0000 |
| commit | e758e02f0781e45f91674aeb5c2259ce4add3b88 (patch) | |
| tree | e6ea80f93bbad0f93b6c859d126f144af12ad32f /boot/amd64/generic/biosboot/biosboot.S | |
initial commitmain
Signed-off-by: Chloe M. <chloe@aptel.org>
Diffstat (limited to 'boot/amd64/generic/biosboot/biosboot.S')
| -rw-r--r-- | boot/amd64/generic/biosboot/biosboot.S | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/boot/amd64/generic/biosboot/biosboot.S b/boot/amd64/generic/biosboot/biosboot.S new file mode 100644 index 0000000..bf2b004 --- /dev/null +++ b/boot/amd64/generic/biosboot/biosboot.S @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2026, Apollo Telephone Laboratories. + * Provided under the BSD-3 clause. + */ + + .text + .code16 + .globl _start +_start: + cli + xor %ax, %ax + mov %ax, %ds + mov %ax, %es + mov %ax, %ss + + lgdt gdtr + mov %cr0, %eax + or $1, %eax + mov %eax, %cr0 + ljmp $0x08,$1f + + .code32 +1: mov $0x10, %ax + mov %ax, %es + mov %ax, %ss + mov %ax, %fs + mov %ax, %gs + mov %ax, %ds + jmp c_thunk + +gdt: +.null: + .quad 0 +.code: + .word 0xFFFF + .word 0x0000 + .byte 0x00 + .byte 0b10011010 + .byte 0b11001111 + .byte 0x00 +.data: + .word 0xFFFF + .word 0x0000 + .byte 0x00 + .byte 0b10010010 + .byte 0b11001111 + .byte 0x00 +gdtr: + .word . - gdt - 1 + .long gdt + +/* Fall-through : everything above this */ +c_thunk: + nop |
