Rev 798 | Rev 820 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 798 | Rev 807 | ||
|---|---|---|---|
| Line 56... | Line 56... | ||
| 56 | movl $START_STACK, %esp # initialize stack pointer |
56 | movl $START_STACK, %esp # initialize stack pointer |
| 57 | lgdt bootstrap_gdtr # initialize Global Descriptor Table register |
57 | lgdt bootstrap_gdtr # initialize Global Descriptor Table register |
| 58 | 58 | ||
| 59 | movw $gdtselector(KDATA_DES), %cx |
59 | movw $gdtselector(KDATA_DES), %cx |
| 60 | movw %cx, %es |
60 | movw %cx, %es |
| 61 | movw %cx, %gs |
- | |
| 62 | movw %cx, %fs |
- | |
| 63 | movw %cx, %ds # kernel data + stack |
61 | movw %cx, %ds # kernel data + stack |
| 64 | movw %cx, %ss |
62 | movw %cx, %ss |
| - | 63 | # Simics seems to remove hidden part of GS on entering user mode |
|
| - | 64 | # when _visible_ part of GS does not point to user-mode segment |
|
| - | 65 | movw $gdtselector(UDATA_DES), %cx |
|
| - | 66 | movw %cx, %fs |
|
| - | 67 | movw %cx, %gs |
|
| 65 | 68 | ||
| 66 | jmpl $gdtselector(KTEXT32_DES), $multiboot_meeting_point |
69 | jmpl $gdtselector(KTEXT32_DES), $multiboot_meeting_point |
| 67 | multiboot_meeting_point: |
70 | multiboot_meeting_point: |
| 68 | 71 | ||
| 69 | movl %eax, grub_eax # save parameters from GRUB |
72 | movl %eax, grub_eax # save parameters from GRUB |