Yes, that takes care of the problem as well.

Bruce

>>> On 3/9/2010 at 10:13 PM, Kevin O'Connor <kevin@koconnor.net> wrote:

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);