49,7 → 49,6 |
.section K_TEXT_START, "ax" |
.code16 |
.global kernel_image_start |
.global multiboot_image_start |
kernel_image_start: |
cli |
xorw %ax,%ax |
96,21 → 95,8 |
|
multiboot_image_start: |
movl $START_STACK, %esp # initialize stack pointer |
|
lgdt protected_bootstrap_gdtr + BOOT_OFFSET # initialize Global Descriptor Table register |
# FIXME TODO |
|
movw $gdtselector(KDATA_DES), %cx |
movw %cx, %es |
movw %cx, %gs |
movw %cx, %fs |
movw %cx, %ds # kernel data + stack |
movw %cx, %ss |
|
jmpl $gdtselector(KTEXT_DES), $multiboot_meeting_point + BOOT_OFFSET |
multiboot_meeting_point: |
|
hlt |
|
# Protected 32-bit. We want to reuse the code-seg descriptor, |
# the Default operand size must not be 1 when entering long mode |
now_in_prot: |
222,8 → 208,3 |
real_bootstrap_gdtr_boot: |
.word gdtselector(GDT_ITEMS) |
.long KA2PA(gdt)-BOOT_OFFSET |
|
.global protected_bootstrap_gdtr |
protected_bootstrap_gdtr: |
.word gdtselector(GDT_ITEMS) |
.long KA2PA(gdt) |