/SPARTAN/trunk/arch/ia32/src/smp/ap.S |
---|
50,10 → 50,12 |
xorw %ax,%ax |
movw %ax,%ds |
lgdt gdtr |
lgdt gdtr # initialize Global Descriptor Table register |
lidt idtr # initialize Interrupt Descriptor Table register |
movl %cr0,%eax |
orl $1,%eax |
movl %eax,%cr0 |
movl %eax,%cr0 # switch to protected mode |
jmpl $KTEXT,$jump_to_kernel |
jump_to_kernel: |
.code32 |
65,10 → 67,8 |
movl (%eax),%esp |
subl $0x80000000,%esp # KA2PA(ctx.sp) |
lidt idtr |
call map_kernel # map kernel and turn paging on |
call map_kernel |
jmpl $KTEXT,$main_ap |
#endif /* __SMP__ */ |
/SPARTAN/trunk/arch/ia32/src/boot/boot.S |
---|
47,10 → 47,12 |
call memmap_arch_init |
lgdt gdtr |
lgdt gdtr # initialize Global Descriptor Table register |
lidt idtr # initialize Interrupt Descriptor Table register |
movl %cr0,%eax |
orl $0x1,%eax |
movl %eax,%cr0 |
movl %eax,%cr0 # switch to protected mode |
jmpl $8,$meeting_point |
meeting_point: |
.code32 |
62,10 → 64,8 |
movw %ax,%ds # kernel data + stack |
movw %ax,%ss |
lidt idtr |
call map_kernel # map kernel and turn paging on |
call map_kernel |
movl $_hardcoded_ktext_size, hardcoded_ktext_size |
movl $_hardcoded_kdata_size, hardcoded_kdata_size |
movl $_hardcoded_load_address, hardcoded_load_address |
94,7 → 94,7 |
leal page_directory, %eax |
movl %eax, %cr3 |
# turn on paging |
# turn paging on |
movl %cr0, %ebx |
orl $(1<<31), %ebx |
movl %ebx, %cr0 |
/SPARTAN/trunk/arch/ia32/src/mm/frame.c |
---|
34,9 → 34,6 |
#include <print.h> |
/* |
* TODO: use the memory map obtained from BIOS |
*/ |
void frame_arch_init(void) |
{ |
__u8 i; |