nodeid
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1849 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
20a2a57092
commit
3a23863a3a
|
@ -137,23 +137,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();
|
||||||
|
|
||||||
if (cpu_init_detected()) {
|
nodeid = lapicid() & 0xf;
|
||||||
#if 1
|
if (cpu_init_detected(nodeid)) {
|
||||||
asm volatile ("jmp __cpu_reset");
|
asm volatile ("jmp __cpu_reset");
|
||||||
#else
|
|
||||||
/* cpu reset also reset the memtroller ????
|
|
||||||
need soft_reset to reset all except keep HT link freq and width */
|
|
||||||
distinguish_cpu_resets();
|
|
||||||
soft2_reset();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
distinguish_cpu_resets();
|
distinguish_cpu_resets(nodeid);
|
||||||
if (!boot_cpu()) {
|
if (!boot_cpu()) {
|
||||||
stop_this_cpu();
|
stop_this_cpu();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,14 @@
|
||||||
|
|
||||||
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();
|
||||||
|
|
||||||
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* 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 {
|
||||||
|
|
|
@ -165,24 +165,20 @@ 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;
|
||||||
|
|
||||||
if (cpu_init_detected()) {
|
if (cpu_init_detected(nodeid)) {
|
||||||
#if 1
|
|
||||||
asm volatile ("jmp __cpu_reset");
|
asm volatile ("jmp __cpu_reset");
|
||||||
#else
|
|
||||||
/* cpu reset also reset the memtroller ????
|
|
||||||
need soft_reset to reset all except keep HT link freq and width */
|
|
||||||
distinguish_cpu_resets();
|
|
||||||
soft2_reset();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
distinguish_cpu_resets();
|
distinguish_cpu_resets(nodeid);
|
||||||
if (!boot_cpu()) {
|
if (!boot_cpu()) {
|
||||||
stop_this_cpu();
|
stop_this_cpu();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,14 @@
|
||||||
|
|
||||||
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();
|
||||||
|
|
||||||
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* 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 {
|
||||||
|
|
|
@ -160,24 +160,20 @@ static void main(unsigned long bist)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
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;
|
||||||
|
|
||||||
if (cpu_init_detected()) {
|
if (cpu_init_detected(nodeid)) {
|
||||||
#if 1
|
|
||||||
asm volatile ("jmp __cpu_reset");
|
asm volatile ("jmp __cpu_reset");
|
||||||
#else
|
|
||||||
/* cpu reset also reset the memtroller ????
|
|
||||||
need soft_reset to reset all except keep HT link freq and width */
|
|
||||||
distinguish_cpu_resets();
|
|
||||||
soft2_reset();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
distinguish_cpu_resets();
|
distinguish_cpu_resets(nodeid);
|
||||||
if (!boot_cpu()) {
|
if (!boot_cpu()) {
|
||||||
stop_this_cpu();
|
stop_this_cpu();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,15 @@
|
||||||
|
|
||||||
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();
|
||||||
|
|
||||||
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* 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 {
|
||||||
|
|
|
@ -161,23 +161,20 @@ static void main(unsigned long bist)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
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();
|
||||||
|
|
||||||
if (cpu_init_detected()) {
|
nodeid = lapicid() & 0xf;
|
||||||
#if 1
|
|
||||||
|
if (cpu_init_detected(nodeid)) {
|
||||||
asm volatile ("jmp __cpu_reset");
|
asm volatile ("jmp __cpu_reset");
|
||||||
#else
|
|
||||||
/* cpu reset also reset the memtroller ????
|
|
||||||
need soft_reset to reset all except keep HT link freq and width */
|
|
||||||
distinguish_cpu_resets();
|
|
||||||
soft2_reset();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
distinguish_cpu_resets();
|
distinguish_cpu_resets(nodeid);
|
||||||
if (!boot_cpu()) {
|
if (!boot_cpu()) {
|
||||||
stop_this_cpu();
|
stop_this_cpu();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,14 @@
|
||||||
|
|
||||||
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();
|
||||||
|
|
||||||
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* 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 {
|
||||||
|
|
|
@ -167,6 +167,7 @@ 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 */
|
||||||
|
@ -174,17 +175,12 @@ static void main(unsigned long bist)
|
||||||
enable_lapic();
|
enable_lapic();
|
||||||
init_timer();
|
init_timer();
|
||||||
|
|
||||||
if (cpu_init_detected()) {
|
nodeid = lapicid() & 0xf;
|
||||||
#if 1
|
|
||||||
|
if (cpu_init_detected(nodeid)) {
|
||||||
asm volatile ("jmp __cpu_reset");
|
asm volatile ("jmp __cpu_reset");
|
||||||
#else
|
|
||||||
/* cpu reset also reset the memtroller ????
|
|
||||||
need soft_reset to reset all except keep HT link freq and width */
|
|
||||||
distinguish_cpu_resets();
|
|
||||||
soft2_reset();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
distinguish_cpu_resets();
|
distinguish_cpu_resets(nodeid);
|
||||||
if (!boot_cpu()) {
|
if (!boot_cpu()) {
|
||||||
stop_this_cpu();
|
stop_this_cpu();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,14 @@
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
/* Make cerain my local apic is useable */
|
unsigned nodeid;
|
||||||
enable_lapic();
|
/* Make cerain my local apic is useable */
|
||||||
|
enable_lapic();
|
||||||
|
|
||||||
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* 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 {
|
||||||
|
|
|
@ -178,30 +178,20 @@ 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;
|
||||||
|
|
||||||
if (cpu_init_detected()) {
|
if (cpu_init_detected(nodeid)) {
|
||||||
#if 1
|
|
||||||
asm volatile ("jmp __cpu_reset");
|
asm volatile ("jmp __cpu_reset");
|
||||||
#else
|
|
||||||
/* cpu reset also reset the memtroller ????
|
|
||||||
need soft_reset to reset all except keep HT link freq and width */
|
|
||||||
/* So we don't need to
|
|
||||||
1. jmp to __cpu_reset
|
|
||||||
2. jmp to __main to copy ROM to ram (It costs some time)
|
|
||||||
3. call hardwaremain(), it will according to boot_complete to issue hard_reset in southbridge.
|
|
||||||
(Actually it is soft2_reset(); --- without call hard_reset, the memory is corrupted.
|
|
||||||
We will call soft2_reset directly to spare time in 1 and 2 and 3.2
|
|
||||||
*/
|
|
||||||
distinguish_cpu_resets();
|
|
||||||
soft2_reset();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
distinguish_cpu_resets();
|
distinguish_cpu_resets(nodeid);
|
||||||
if (!boot_cpu()) {
|
if (!boot_cpu()) {
|
||||||
stop_this_cpu();
|
stop_this_cpu();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,14 @@
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
/* Make cerain my local apic is useable */
|
unsigned nodeid;
|
||||||
enable_lapic();
|
/* Make cerain my local apic is useable */
|
||||||
|
enable_lapic();
|
||||||
|
|
||||||
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* 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 {
|
||||||
|
|
|
@ -228,6 +228,7 @@ static void main(unsigned long bist)
|
||||||
};
|
};
|
||||||
int i;
|
int i;
|
||||||
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 */
|
||||||
|
@ -235,17 +236,12 @@ static void main(unsigned long bist)
|
||||||
enable_lapic();
|
enable_lapic();
|
||||||
init_timer();
|
init_timer();
|
||||||
|
|
||||||
if (cpu_init_detected()) {
|
nodeid = lapicid() & 0xf;
|
||||||
#if 1
|
|
||||||
|
if (cpu_init_detected(nodeid)) {
|
||||||
asm volatile ("jmp __cpu_reset");
|
asm volatile ("jmp __cpu_reset");
|
||||||
#else
|
|
||||||
/* cpu reset also reset the memtroller ????
|
|
||||||
need soft_reset to reset all except keep HT link freq and width */
|
|
||||||
distinguish_cpu_resets();
|
|
||||||
soft2_reset();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
distinguish_cpu_resets();
|
distinguish_cpu_resets(nodeid);
|
||||||
if (!boot_cpu()) {
|
if (!boot_cpu()) {
|
||||||
stop_this_cpu();
|
stop_this_cpu();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,14 @@
|
||||||
|
|
||||||
static unsigned long main(unsigned long bist)
|
static unsigned long main(unsigned long bist)
|
||||||
{
|
{
|
||||||
/* Make cerain my local apic is useable */
|
unsigned nodeid;
|
||||||
enable_lapic();
|
/* Make cerain my local apic is useable */
|
||||||
|
enable_lapic();
|
||||||
|
|
||||||
|
nodeid = lapicid() & 0xf;
|
||||||
|
|
||||||
/* 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 {
|
||||||
|
|
Loading…
Reference in New Issue