summaryrefslogtreecommitdiff
path: root/src/mainboard/amd
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/amd')
-rw-r--r--src/mainboard/amd/quartet/auto.c6
-rw-r--r--src/mainboard/amd/quartet/failover.c6
-rw-r--r--src/mainboard/amd/serenade/auto.c6
-rw-r--r--src/mainboard/amd/serenade/failover.c6
-rw-r--r--src/mainboard/amd/solo/auto.c7
-rw-r--r--src/mainboard/amd/solo/failover.c6
6 files changed, 28 insertions, 9 deletions
diff --git a/src/mainboard/amd/quartet/auto.c b/src/mainboard/amd/quartet/auto.c
index 5a6f195f75..638d09b861 100644
--- a/src/mainboard/amd/quartet/auto.c
+++ b/src/mainboard/amd/quartet/auto.c
@@ -209,18 +209,20 @@ static void main(unsigned long bist)
};
int needs_reset;
+ unsigned nodeid;
if (bist == 0) {
/* Skip this if there was a built in self test failure */
amd_early_mtrr_init();
enable_lapic();
init_timer();
+ nodeid = lapicid() & 0xf;
/* Has this cpu already booted? */
- if (cpu_init_detected()) {
+ if (cpu_init_detected(nodeid)) {
asm volatile ("jmp __cpu_reset");
}
- distinguish_cpu_resets();
+ distinguish_cpu_resets(nodeid);
if (!boot_cpu()) {
stop_this_cpu();
diff --git a/src/mainboard/amd/quartet/failover.c b/src/mainboard/amd/quartet/failover.c
index e351cae83d..139862c767 100644
--- a/src/mainboard/amd/quartet/failover.c
+++ b/src/mainboard/amd/quartet/failover.c
@@ -13,11 +13,15 @@
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 {
diff --git a/src/mainboard/amd/serenade/auto.c b/src/mainboard/amd/serenade/auto.c
index fb595f7acd..9a9de15b49 100644
--- a/src/mainboard/amd/serenade/auto.c
+++ b/src/mainboard/amd/serenade/auto.c
@@ -161,17 +161,19 @@ static void main(unsigned long bist)
};
int needs_reset;
+ unsigned nodeid;
if (bist == 0) {
/* Skip this if there was a built in self test failure */
amd_early_mtrr_init();
enable_lapic();
init_timer();
+ nodeid = lapicid() & 0xf;
/* Has this cpu already booted? */
- if (cpu_init_detected()) {
+ if (cpu_init_detected(nodeid)) {
asm volatile ("jmp __cpu_reset");
}
- distinguish_cpu_resets();
+ distinguish_cpu_resets(nodeid);
if (!boot_cpu()) {
stop_this_cpu();
}
diff --git a/src/mainboard/amd/serenade/failover.c b/src/mainboard/amd/serenade/failover.c
index e351cae83d..139862c767 100644
--- a/src/mainboard/amd/serenade/failover.c
+++ b/src/mainboard/amd/serenade/failover.c
@@ -13,11 +13,15 @@
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 {
diff --git a/src/mainboard/amd/solo/auto.c b/src/mainboard/amd/solo/auto.c
index aa3da9be28..fff604dc35 100644
--- a/src/mainboard/amd/solo/auto.c
+++ b/src/mainboard/amd/solo/auto.c
@@ -108,6 +108,7 @@ static void main(unsigned long bist)
};
int needs_reset;
+ unsigned nodeid;
if (bist == 0) {
/* Skip this if there was a built in self test failure */
@@ -115,12 +116,14 @@ static void main(unsigned long bist)
enable_lapic();
init_timer();
+
+ nodeid = lapicid() & 0xf;
- if (cpu_init_detected()) {
+ if (cpu_init_detected(nodeid)) {
asm volatile ("jmp __cpu_reset");
}
- distinguish_cpu_resets();
+ distinguish_cpu_resets(nodeid);
if (!boot_cpu()) {
/* This LinuxBIOS image is built for UP only */
diff --git a/src/mainboard/amd/solo/failover.c b/src/mainboard/amd/solo/failover.c
index e351cae83d..139862c767 100644
--- a/src/mainboard/amd/solo/failover.c
+++ b/src/mainboard/amd/solo/failover.c
@@ -13,11 +13,15 @@
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 {