aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/amd64/lapic.c4
-rw-r--r--sys/arch/amd64/machdep.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/sys/arch/amd64/lapic.c b/sys/arch/amd64/lapic.c
index 792cfa3..53a4fd5 100644
--- a/sys/arch/amd64/lapic.c
+++ b/sys/arch/amd64/lapic.c
@@ -251,10 +251,14 @@ lapic_init(void)
/* Get the current processor, and calibrate LAPIC timer */
cur_cpu = this_cpu();
+ CPU_INFO_LOCK(cur_cpu);
+
lapic_timer_init(&tmr_freq);
cur_cpu->lapic_tmr_freq = tmr_freq;
/* Set the Local APIC ID */
cur_cpu->lapic_id = lapic_get_id();
+
BSP_KINFO("BSP Local APIC ID: %d\n", cur_cpu->lapic_id);
+
}
diff --git a/sys/arch/amd64/machdep.c b/sys/arch/amd64/machdep.c
index 9fd7a12..edff4f2 100644
--- a/sys/arch/amd64/machdep.c
+++ b/sys/arch/amd64/machdep.c
@@ -68,14 +68,15 @@ processor_init(void)
/* Indicates what doesn't need to be init anymore */
static uint8_t init_flags = 0;
+ interrupts_init();
+ gdt_load(&g_gdtr);
+
if (!__TEST(init_flags, INIT_FLAG_IOAPIC)) {
init_flags |= INIT_FLAG_IOAPIC;
ioapic_init();
}
lapic_init(); /* Per core */
- gdt_load(&g_gdtr);
- interrupts_init();
/* Enable spectre mitigation if enabled */
if (try_spectre_mitigate != NULL)