summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/tyan/s4882/auto.c4
-rw-r--r--src/mainboard/tyan/s4882/failover.c7
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 {