aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/arima/hdama/failover.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/arima/hdama/failover.c')
-rw-r--r--src/mainboard/arima/hdama/failover.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/mainboard/arima/hdama/failover.c b/src/mainboard/arima/hdama/failover.c
index f5b1812288..139862c767 100644
--- a/src/mainboard/arima/hdama/failover.c
+++ b/src/mainboard/arima/hdama/failover.c
@@ -9,20 +9,23 @@
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
#include "northbridge/amd/amdk8/early_ht.c"
#include "cpu/x86/lapic/boot_cpu.c"
-#include "cpu/x86/mtrr/earlymtrr.c"
#include "northbridge/amd/amdk8/reset_test.c"
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 (early_mtrr_init_detected()) {
+ if (cpu_init_detected(nodeid)) {
if (last_boot_normal()) {
goto normal_image;
} else {
- goto fallback_image;
+ goto cpu_reset;
}
}
/* Is this a secondary cpu? */
@@ -59,6 +62,12 @@ static unsigned long main(unsigned long bist)
: "a" (bist) /* inputs */
: /* clobbers */
);
+ cpu_reset:
+ asm volatile ("jmp __cpu_reset"
+ : /* outputs */
+ : "a"(bist) /* inputs */
+ : /* clobbers */
+ );
fallback_image:
return bist;
}