Revision: linuxbios@linuxbios.org--devel/freebios--devel--2.0--patch-58

Creator:  Li-Ta Lo <ollie@lanl.gov>

auto.c and failover.c

convert mainboard auto.c and failover.c to post DOM era


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1976 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
arch import user (historical) 2005-07-06 18:17:28 +00:00
parent a4b26d77e2
commit b9a0e03a68
6 changed files with 23 additions and 9 deletions

View File

@ -158,17 +158,19 @@ static void main(unsigned long bist)
}; };
int needs_reset; int needs_reset;
unsigned nodeid;
if (bist == 0) { if (bist == 0) {
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
amd_early_mtrr_init(); amd_early_mtrr_init();
enable_lapic(); enable_lapic();
init_timer(); init_timer();
/* Has this cpu already booted? */ /* Has this cpu already booted? */
if (cpu_init_detected()) { if (cpu_init_detected(nodeid)) {
asm volatile ("jmp __cpu_reset"); asm volatile ("jmp __cpu_reset");
} }
distinguish_cpu_resets(); distinguish_cpu_resets(nodeid);
if (!boot_cpu()) { if (!boot_cpu()) {
stop_this_cpu(); stop_this_cpu();
} }

View File

@ -13,11 +13,13 @@
static unsigned long main(unsigned long bist) static unsigned long main(unsigned long bist)
{ {
unsigned nodeid;
/* Make cerain my local apic is useable */ /* Make cerain my local apic is useable */
enable_lapic(); enable_lapic();
/* Is this a cpu only reset? */ /* Is this a cpu only reset? */
if (cpu_init_detected()) { if (cpu_init_detected(nodeid)) {
if (last_boot_normal()) { if (last_boot_normal()) {
goto normal_image; goto normal_image;
} else { } else {

View File

@ -160,16 +160,18 @@ static void main(unsigned long bist)
}; };
int needs_reset; int needs_reset;
unsigned nodeid;
if (bist == 0) { if (bist == 0) {
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
amd_early_mtrr_init(); amd_early_mtrr_init();
enable_lapic(); enable_lapic();
init_timer(); init_timer();
/* Has this cpu already booted? */ /* Has this cpu already booted? */
if (cpu_init_detected()) { if (cpu_init_detected(nodeid)) {
asm volatile ("jmp __cpu_reset"); asm volatile ("jmp __cpu_reset");
} }
distinguish_cpu_resets(); distinguish_cpu_resets(nodeid);
if (!boot_cpu()) { if (!boot_cpu()) {
stop_this_cpu(); stop_this_cpu();
} }

View File

@ -13,11 +13,13 @@
static unsigned long main(unsigned long bist) static unsigned long main(unsigned long bist)
{ {
unsigned nodeid;
/* Make cerain my local apic is useable */ /* Make cerain my local apic is useable */
enable_lapic(); enable_lapic();
/* Is this a cpu only reset? */ /* Is this a cpu only reset? */
if (cpu_init_detected()) { if (cpu_init_detected(nodeid)) {
if (last_boot_normal()) { if (last_boot_normal()) {
goto normal_image; goto normal_image;
} else { } else {

View File

@ -153,16 +153,21 @@ static void main(unsigned long bist)
}; };
int needs_reset; int needs_reset;
unsigned nodeid;
if (bist == 0) { if (bist == 0) {
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
amd_early_mtrr_init(); amd_early_mtrr_init();
enable_lapic(); enable_lapic();
init_timer(); init_timer();
nodeid = lapicid() & 0xf;
/* Has this cpu already booted? */ /* Has this cpu already booted? */
if (cpu_init_detected()) { if (cpu_init_detected(nodeid)) {
asm volatile ("jmp __cpu_reset"); asm volatile ("jmp __cpu_reset");
} }
distinguish_cpu_resets(); distinguish_cpu_resets(nodeid);
if (!boot_cpu()) { if (!boot_cpu()) {
stop_this_cpu(); stop_this_cpu();
} }

View File

@ -13,11 +13,12 @@
static unsigned long main(unsigned long bist) static unsigned long main(unsigned long bist)
{ {
unsigned nodeid;
/* Make cerain my local apic is useable */ /* Make cerain my local apic is useable */
enable_lapic(); enable_lapic();
/* Is this a cpu only reset? */ /* Is this a cpu only reset? */
if (cpu_init_detected()) { if (cpu_init_detected(nodeid)) {
if (last_boot_normal()) { if (last_boot_normal()) {
goto normal_image; goto normal_image;
} else { } else {