[SeaBIOS] [PATCH] add volatile to code that gets optimized out

Kevin O'Connor kevin at koconnor.net
Wed Mar 10 06:13:54 CET 2010


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



More information about the SeaBIOS mailing list