summaryrefslogtreecommitdiff
path: root/i386/i386/mp_desc.c
diff options
context:
space:
mode:
Diffstat (limited to 'i386/i386/mp_desc.c')
-rw-r--r--i386/i386/mp_desc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/i386/i386/mp_desc.c b/i386/i386/mp_desc.c
index 10caeb19..aad81014 100644
--- a/i386/i386/mp_desc.c
+++ b/i386/i386/mp_desc.c
@@ -566,6 +566,9 @@ start_other_cpus(void)
/*TODO: Copy the routine in a physical page */
memcpy((void*)phystokv(AP_BOOT_ADDR), (void*) &apboot, (uint32_t)&apbootend - (uint32_t)&apboot);
+ //update BSP machine_slot and apic2kernel
+ machine_slot[0].apic_id = apic_id;
+ apic2kernel[apic_id] = 0;
//Reserve memory for cpu stack
if (!init_alloc_aligned(STACK_SIZE*(ncpu-1), &stack_start))
@@ -592,7 +595,6 @@ start_other_cpus(void)
}
}
-
/* Get rid of the temporary direct mapping and flush it out of the TLB. */
for (i = 0 ; i < nb_direct_value; i++){
kernel_page_dir[lin2pdenum_cont(INIT_VM_MIN_KERNEL_ADDRESS) + i] = 0;