On Tue, Mar 09, 2010 at 08:36:11PM -0700, Bruce Rogers wrote:
> The gcc 4.5 compiler is optimizing out some code used to bring up
> auxillary processors. Adding volatile to the auxillary processor
> jump trampoline memory references gets the bios able to boot with
> -smp >1 again.
Thanks. Does the following alternate patch work?
--- a/src/smp.c
+++ b/src/smp.c
@@ -103,6 +103,7 @@ smp_probe(void)
}
// broadcast SIPI
+ barrier();
writel(APIC_ICR_LOW, 0x000C4500);
u32 sipi_vector = BUILD_AP_BOOT_ADDR >> 12;
writel(APIC_ICR_LOW, 0x000C4600 | sipi_vector);