* A conditional in the new MADT code was bypassing the lapic pointer
mapping in certain circumstances, causing the machine to lockup in the
low level boot.
/* post scan cleanup */
mptable_fix();
+
+ /*
+ * lapic not mapped yet (pmap_init is called too late)
+ */
+ lapic = pmap_mapdev_uncacheable(cpu_apic_address,
+ sizeof(struct LAPIC));
} else {
vm_paddr_t madt_paddr;
int bsp_apic_id;
panic("mp_enable: no local apic (madt)!\n");
/*
+ * lapic not mapped yet (pmap_init is called too late)
+ *
* XXX: where is the best place to set lapic?
*/
- lapic = pmap_mapdev_uncacheable(cpu_apic_address, sizeof(struct LAPIC));
+ lapic = pmap_mapdev_uncacheable(cpu_apic_address,
+ sizeof(struct LAPIC));
bsp_apic_id = (lapic->id & 0xff000000) >> 24;
if (madt_pass2(madt_paddr, bsp_apic_id))