On the system without IMCR, I/O APIC is enabled when it is first accessed.
Before I/O APIC is enabled, LAPIC should be initialized.
lapic_config();
+ /* Initialize BSP's local APIC */
+ lapic_init(TRUE);
+
if (apic_io_enable)
ioapic_config();
}
+ /* Finalize PIC */
+ MachIntrABI.finalize();
+
/* start each Application Processor */
start_all_aps(boot_addr);
}
POSTCODE(START_ALL_APS_POST);
- /* Initialize BSP's local APIC */
- lapic_init(TRUE);
-
- /* Finalize PIC */
- MachIntrABI.finalize();
-
/* install the AP 1st level boot code */
install_ap_tramp(boot_addr);
lapic_config();
+ /* Initialize BSP's local APIC */
+ lapic_init(TRUE);
+
if (apic_io_enable)
ioapic_config();
}
+ /* Finalize PIC */
+ MachIntrABI.finalize();
+
/* start each Application Processor */
start_all_aps(boot_addr);
}
POSTCODE(START_ALL_APS_POST);
- /* Initialize BSP's local APIC */
- lapic_init(TRUE);
-
- /* Finalize PIC */
- MachIntrABI.finalize();
-
/* install the AP 1st level boot code */
pmap_kenter(va, boot_address);
cpu_invlpg((void *)va); /* JG XXX */