/SPARTAN/trunk/arch/ia32/src/smp/smp.c |
---|
144,7 → 144,7 |
memcpy(gdt_new, gdt, GDT_ITEMS*sizeof(struct descriptor)); |
memsetb((__address)(&gdt_new[TSS_DES]), sizeof(struct descriptor), 0); |
ap_bootstrap_gdtr.base = KA2PA((__address) gdt_new); |
real_bootstrap_gdtr.base = KA2PA((__address) gdt_new); |
gdtr.base = (__address) gdt_new; |
if (l_apic_send_init_ipi(ops->cpu_apic_id(i))) { |
/SPARTAN/trunk/arch/ia32/src/smp/ap.S |
---|
50,11 → 50,11 |
xorw %ax, %ax |
movw %ax, %ds |
lgdt ap_bootstrap_gdtr # initialize Global Descriptor Table register |
lgdt real_bootstrap_gdtr # initialize Global Descriptor Table register |
movl %cr0, %eax |
orl $1, %eax |
movl %eax, %cr0 # switch to protected mode |
movl %eax, %cr0 # switch to protected mode |
jmpl $KTEXT, $jump_to_kernel |
jump_to_kernel: |