Rev 271 | Rev 280 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 271 | Rev 279 | ||
---|---|---|---|
Line 50... | Line 50... | ||
50 | movw %ax, %ss # initialize stack segment register |
50 | movw %ax, %ss # initialize stack segment register |
51 | movl $BOOTSTRAP_OFFSET - 0x400, %esp # initialize stack pointer |
51 | movl $BOOTSTRAP_OFFSET - 0x400, %esp # initialize stack pointer |
52 | 52 | ||
53 | call memmap_arch_init |
53 | call memmap_arch_init |
54 | 54 | ||
55 | lgdt bsp_bootstrap_gdtr # initialize Global Descriptor Table register |
55 | lgdt real_bootstrap_gdtr # initialize Global Descriptor Table register |
56 | 56 | ||
57 | movl %cr0, %eax |
57 | movl %cr0, %eax |
58 | orl $0x1, %eax |
58 | orl $0x1, %eax |
59 | movl %eax, %cr0 # switch to protected mode |
59 | movl %eax, %cr0 # switch to protected mode |
60 | 60 | ||
Line 91... | Line 91... | ||
91 | movl $BOOTSTRAP_OFFSET + BOOT_OFFSET, %edi |
91 | movl $BOOTSTRAP_OFFSET + BOOT_OFFSET, %edi |
92 | movl $_hardcoded_kernel_size, %ecx |
92 | movl $_hardcoded_kernel_size, %ecx |
93 | cld |
93 | cld |
94 | rep movsb |
94 | rep movsb |
95 | 95 | ||
96 | jmp protected |
96 | call main_bsp # never returns |
- | 97 | ||
- | 98 | cli |
|
- | 99 | hlt |
|
97 | 100 | ||
98 | multiboot_image_start: |
101 | multiboot_image_start: |
99 | movl BOOTSTRAP_OFFSET - 0x400, %esp # initialize stack pointer |
102 | movl $BOOTSTRAP_OFFSET - 0x400, %esp # initialize stack pointer |
100 | 103 | ||
101 | lgdt gdtr # initialize Global Descriptor Table register |
104 | lgdt protected_bootstrap_gdtr - 0x80000000 # initialize Global Descriptor Table register |
102 | 105 | ||
103 | movw $KDATA, %ax |
106 | movw $KDATA, %ax |
104 | movw %ax, %es |
107 | movw %ax, %es |
105 | movw %ax, %gs |
108 | movw %ax, %gs |
106 | movw %ax, %fs |
109 | movw %ax, %fs |
107 | movw %ax, %ds # kernel data + stack |
110 | movw %ax, %ds # kernel data + stack |
108 | movw %ax, %ss |
111 | movw %ax, %ss |
109 | 112 | ||
110 | jmpl $KTEXT, $multiboot_meeting_point |
113 | jmpl $KTEXT, $multiboot_meeting_point + BOOT_OFFSET |
111 | multiboot_meeting_point: |
114 | multiboot_meeting_point: |
112 | 115 | ||
113 | call map_kernel # map kernel and turn paging on |
116 | call map_kernel # map kernel and turn paging on |
114 | 117 | ||
115 | protected: |
- | |
116 | call main_bsp # never returns |
118 | call main_bsp - BOOT_OFFSET # never returns |
117 | 119 | ||
118 | cli |
120 | cli |
119 | hlt |
121 | hlt |
120 | 122 | ||
121 | .global map_kernel |
123 | .global map_kernel |