diff options
Diffstat (limited to 'src/mainboard')
-rw-r--r-- | src/mainboard/tyan/s4882/auto.c | 4 | ||||
-rw-r--r-- | src/mainboard/tyan/s4882/failover.c | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/mainboard/tyan/s4882/auto.c b/src/mainboard/tyan/s4882/auto.c index 95618a3856..e7d46d2187 100644 --- a/src/mainboard/tyan/s4882/auto.c +++ b/src/mainboard/tyan/s4882/auto.c @@ -244,7 +244,9 @@ static void main(unsigned long bist) nodeid = lapicid() & 0xf; #if ENABLE_APIC_EXT_ID == 1 enable_apic_ext_id(nodeid); - lapic_write(LAPIC_ID, ( lapic_read(LAPIC_ID) | (APIC_ID_OFFSET<<24) ) ); // CPU apicid is from 0x10 + if(nodeid != 0) { + lapic_write(LAPIC_ID, ( lapic_read(LAPIC_ID) | (APIC_ID_OFFSET<<24) ) ); // CPU apicid is from 0x10 + } #endif if (cpu_init_detected(nodeid)) { asm volatile ("jmp __cpu_reset"); diff --git a/src/mainboard/tyan/s4882/failover.c b/src/mainboard/tyan/s4882/failover.c index 2f63cc85b7..2c8fb0041b 100644 --- a/src/mainboard/tyan/s4882/failover.c +++ b/src/mainboard/tyan/s4882/failover.c @@ -13,11 +13,16 @@ static unsigned long main(unsigned long bist) { + + unsigned nodeid; + /* Make cerain my local apic is useable */ enable_lapic(); + nodeid = lapicid() & 0xf; + /* Is this a cpu only reset? */ - if (cpu_init_detected()) { + if (cpu_init_detected(nodeid)) { if (last_boot_normal()) { goto normal_image; } else { |