- See Issue Tracker id-13 "lnxi-patch-13".
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2077 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
@@ -19,11 +20,11 @@ static unsigned long main(unsigned long bist)
|
|||||||
enable_lapic();
|
enable_lapic();
|
||||||
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -60,12 +61,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
@@ -19,11 +20,11 @@ static unsigned long main(unsigned long bist)
|
|||||||
enable_lapic();
|
enable_lapic();
|
||||||
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -60,12 +61,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
@@ -21,11 +22,11 @@ static unsigned long main(unsigned long bist)
|
|||||||
nodeid = lapicid() & 0xf;
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -62,12 +63,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
@@ -21,11 +22,11 @@ static unsigned long main(unsigned long bist)
|
|||||||
nodeid = lapicid() & 0xf;
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -62,12 +63,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
@@ -21,11 +22,11 @@ static unsigned long main(unsigned long bist)
|
|||||||
nodeid = lapicid() & 0xf;
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -62,12 +63,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -25,7 +25,7 @@ static unsigned long main(unsigned long bist)
|
|||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -62,12 +62,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
@@ -20,11 +21,11 @@ static unsigned long main(unsigned long bist)
|
|||||||
nodeid = lapicid() & 0xf;
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -61,12 +62,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
@@ -20,11 +21,11 @@ static unsigned long main(unsigned long bist)
|
|||||||
nodeid = lapicid() & 0xf;
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -61,12 +62,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
@@ -19,11 +20,11 @@ static unsigned long main(unsigned long bist)
|
|||||||
|
|
||||||
nodeid=lapicid();
|
nodeid=lapicid();
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -60,12 +61,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
@@ -19,11 +20,11 @@ static unsigned long main(unsigned long bist)
|
|||||||
|
|
||||||
nodeid=lapicid();
|
nodeid=lapicid();
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -60,12 +61,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
#if CONFIG_LOGICAL_CPUS==1
|
||||||
@@ -18,27 +19,15 @@
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
/* Make cerain my local apic is useable */
|
||||||
enable_lapic();
|
enable_lapic();
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
#else
|
|
||||||
nodeid = lapicid();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -75,14 +64,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
#if CONFIG_LOGICAL_CPUS==1
|
||||||
@@ -18,27 +19,15 @@
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
/* Make cerain my local apic is useable */
|
||||||
enable_lapic();
|
enable_lapic();
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
#else
|
|
||||||
nodeid = lapicid();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -74,14 +63,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
#if CONFIG_LOGICAL_CPUS==1
|
||||||
@@ -18,27 +19,15 @@
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
/* Make cerain my local apic is useable */
|
||||||
enable_lapic();
|
enable_lapic();
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
#else
|
|
||||||
nodeid = lapicid();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -75,14 +64,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
#if CONFIG_LOGICAL_CPUS==1
|
||||||
@@ -18,27 +19,15 @@
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
/* Make cerain my local apic is useable */
|
||||||
enable_lapic();
|
enable_lapic();
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
#else
|
|
||||||
nodeid = lapicid();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -74,14 +63,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
#if CONFIG_LOGICAL_CPUS==1
|
||||||
@@ -19,29 +20,13 @@
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
|
||||||
// enable_lapic();
|
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
#else
|
|
||||||
// nodeid = lapicid() & 0xf;
|
|
||||||
nodeid = get_node_id();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -77,14 +62,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -10,6 +10,7 @@
|
|||||||
#include "southbridge/nvidia/ck804/ck804_enable_rom.c"
|
#include "southbridge/nvidia/ck804/ck804_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static void sio_setup(void)
|
static void sio_setup(void)
|
||||||
@@ -42,27 +43,15 @@ static void sio_setup(void)
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
/* Make cerain my local apic is useable */
|
||||||
enable_lapic();
|
enable_lapic();
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected(nodeid)) {
|
||||||
#else
|
|
||||||
nodeid = lapicid();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,15 +91,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
//CPU reset will reset memtroller ???
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
|
@@ -10,6 +10,7 @@
|
|||||||
#include "southbridge/nvidia/ck804/ck804_enable_rom.c"
|
#include "southbridge/nvidia/ck804/ck804_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
static void sio_setup(void)
|
static void sio_setup(void)
|
||||||
@@ -36,27 +37,15 @@ static void sio_setup(void)
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
/* Make cerain my local apic is useable */
|
||||||
enable_lapic();
|
enable_lapic();
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
#else
|
|
||||||
nodeid = lapicid();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,16 +85,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
//CPU reset will reset memtroller ???
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
#include "southbridge/nvidia/ck804/ck804_enable_rom.c"
|
#include "southbridge/nvidia/ck804/ck804_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
#include "superio/smsc/lpc47b397/lpc47b397_early_serial.c"
|
#include "superio/smsc/lpc47b397/lpc47b397_early_serial.c"
|
||||||
@@ -59,27 +60,12 @@ static void sio_setup(void)
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
|
||||||
// enable_lapic();
|
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
#else
|
|
||||||
nodeid = get_node_id();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,16 +105,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
//CPU reset will reset memtroller ???
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
#if CONFIG_LOGICAL_CPUS==1
|
||||||
@@ -18,27 +19,15 @@
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
/* Make cerain my local apic is useable */
|
||||||
enable_lapic();
|
enable_lapic();
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
#else
|
|
||||||
nodeid = lapicid();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -75,14 +64,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
#include "southbridge/amd/amd8111/amd8111_enable_rom.c"
|
||||||
#include "northbridge/amd/amdk8/early_ht.c"
|
#include "northbridge/amd/amdk8/early_ht.c"
|
||||||
#include "cpu/x86/lapic/boot_cpu.c"
|
#include "cpu/x86/lapic/boot_cpu.c"
|
||||||
|
#include "cpu/x86/mtrr/earlymtrr.c"
|
||||||
#include "northbridge/amd/amdk8/reset_test.c"
|
#include "northbridge/amd/amdk8/reset_test.c"
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
#if CONFIG_LOGICAL_CPUS==1
|
||||||
@@ -20,28 +21,13 @@
|
|||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
struct node_core_id id;
|
|
||||||
#else
|
|
||||||
unsigned nodeid;
|
|
||||||
#endif
|
|
||||||
/* Make cerain my local apic is useable */
|
|
||||||
// enable_lapic();
|
|
||||||
|
|
||||||
#if CONFIG_LOGICAL_CPUS==1
|
|
||||||
id = get_node_core_id_x();
|
|
||||||
/* Is this a cpu only reset? */
|
/* Is this a cpu only reset? */
|
||||||
if (cpu_init_detected(id.nodeid)) {
|
if (early_mtrr_init_detected()) {
|
||||||
#else
|
|
||||||
// nodeid = lapicid() & 0xf;
|
|
||||||
nodeid = get_node_id();
|
|
||||||
/* Is this a cpu only reset? */
|
|
||||||
if (cpu_init_detected(nodeid)) {
|
|
||||||
#endif
|
|
||||||
if (last_boot_normal()) {
|
if (last_boot_normal()) {
|
||||||
goto normal_image;
|
goto normal_image;
|
||||||
} else {
|
} else {
|
||||||
goto cpu_reset;
|
goto fallback_image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Is this a secondary cpu? */
|
/* Is this a secondary cpu? */
|
||||||
@@ -77,14 +63,6 @@ static unsigned long main(unsigned long bist)
|
|||||||
: "a" (bist) /* inputs */
|
: "a" (bist) /* inputs */
|
||||||
: /* clobbers */
|
: /* clobbers */
|
||||||
);
|
);
|
||||||
cpu_reset:
|
|
||||||
#if 0
|
|
||||||
asm volatile ("jmp __cpu_reset"
|
|
||||||
: /* outputs */
|
|
||||||
: "a"(bist) /* inputs */
|
|
||||||
: /* clobbers */
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
fallback_image:
|
fallback_image:
|
||||||
return bist;
|
return bist;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user