Drop the need for cpu_reset, it's really just a short cut to stage2.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5393 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer 2010-04-09 13:33:59 +00:00 committed by Stefan Reinauer
parent aa987b23e4
commit d41a0bc532
11 changed files with 48 additions and 11 deletions

View File

@ -0,0 +1,28 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2010 coresystems GmbH
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
static void skip_romstage(void)
{
asm volatile (
"/* set the boot_complete flag */\n"
"movl $0xffffffff, %%ebp\n"
"jmp __main\n"
);
}

View File

@ -5,8 +5,7 @@
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; version 2 of the License.
* (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of

View File

@ -157,6 +157,8 @@ static inline void bmc_foad(void)
/* end IPMI garbage */ /* end IPMI garbage */
#include "arch/i386/lib/stages.c"
static void main(unsigned long bist) static void main(unsigned long bist)
{ {
u8 b; u8 b;
@ -277,7 +279,7 @@ static void main(unsigned long bist)
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
early_mtrr_init(); early_mtrr_init();
if (memory_initialized()) { if (memory_initialized()) {
asm volatile ("jmp __cpu_reset"); skip_romstage();
} }
} }
/* Setup the console */ /* Setup the console */

View File

@ -50,6 +50,7 @@ static inline int spd_read_byte(unsigned device, unsigned address)
#include "northbridge/intel/e7520/raminit.c" #include "northbridge/intel/e7520/raminit.c"
#include "lib/generic_sdram.c" #include "lib/generic_sdram.c"
#include "debug.c" #include "debug.c"
#include "arch/i386/lib/stages.c"
static void main(unsigned long bist) static void main(unsigned long bist)
{ {
@ -75,7 +76,7 @@ static void main(unsigned long bist)
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
early_mtrr_init(); early_mtrr_init();
if (memory_initialized()) { if (memory_initialized()) {
asm volatile ("jmp __cpu_reset"); skip_romstage();
} }
} }
/* Setup the console */ /* Setup the console */

View File

@ -58,6 +58,7 @@ static inline int spd_read_byte(u16 device, u8 address)
#include "northbridge/intel/i3100/raminit.c" #include "northbridge/intel/i3100/raminit.c"
#include "lib/generic_sdram.c" #include "lib/generic_sdram.c"
#include "../jarrell/debug.c" #include "../jarrell/debug.c"
#include "arch/i386/lib/stages.c"
static void main(unsigned long bist) static void main(unsigned long bist)
{ {
@ -79,7 +80,7 @@ static void main(unsigned long bist)
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
early_mtrr_init(); early_mtrr_init();
if (memory_initialized()) { if (memory_initialized()) {
asm volatile ("jmp __cpu_reset"); skip_romstage();
} }
} }
/* Set up the console */ /* Set up the console */

View File

@ -58,6 +58,7 @@ static inline int spd_read_byte(u16 device, u8 address)
#include "northbridge/intel/i3100/raminit_ep80579.c" #include "northbridge/intel/i3100/raminit_ep80579.c"
#include "lib/generic_sdram.c" #include "lib/generic_sdram.c"
#include "../../intel/jarrell/debug.c" #include "../../intel/jarrell/debug.c"
#include "arch/i386/lib/stages.c"
/* #define TRUXTON_DEBUG */ /* #define TRUXTON_DEBUG */
@ -77,7 +78,7 @@ static void main(unsigned long bist)
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
early_mtrr_init(); early_mtrr_init();
if (memory_initialized()) { if (memory_initialized()) {
asm volatile ("jmp __cpu_reset"); skip_romstage();
} }
} }

View File

@ -51,6 +51,7 @@ static inline int spd_read_byte(unsigned device, unsigned address)
#include "northbridge/intel/e7525/raminit.c" #include "northbridge/intel/e7525/raminit.c"
#include "lib/generic_sdram.c" #include "lib/generic_sdram.c"
#include "arch/i386/lib/stages.c"
static void main(unsigned long bist) static void main(unsigned long bist)
{ {
@ -74,7 +75,7 @@ static void main(unsigned long bist)
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
early_mtrr_init(); early_mtrr_init();
if (memory_initialized()) { if (memory_initialized()) {
asm volatile ("jmp __cpu_reset"); skip_romstage();
} }
} }
/* Setup the console */ /* Setup the console */

View File

@ -52,6 +52,7 @@ static inline int spd_read_byte(unsigned device, unsigned address)
#include "northbridge/intel/e7520/raminit.c" #include "northbridge/intel/e7520/raminit.c"
#include "lib/generic_sdram.c" #include "lib/generic_sdram.c"
#include "arch/i386/lib/stages.c"
static void main(unsigned long bist) static void main(unsigned long bist)
{ {
@ -77,7 +78,7 @@ static void main(unsigned long bist)
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
early_mtrr_init(); early_mtrr_init();
if (memory_initialized()) { if (memory_initialized()) {
asm volatile ("jmp __cpu_reset"); skip_romstage();
} }
} }
/* Setup the console */ /* Setup the console */

View File

@ -52,6 +52,7 @@ static inline int spd_read_byte(unsigned device, unsigned address)
#include "northbridge/intel/e7520/raminit.c" #include "northbridge/intel/e7520/raminit.c"
#include "lib/generic_sdram.c" #include "lib/generic_sdram.c"
#include "arch/i386/lib/stages.c"
static void main(unsigned long bist) static void main(unsigned long bist)
{ {
@ -78,7 +79,7 @@ static void main(unsigned long bist)
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
early_mtrr_init(); early_mtrr_init();
if (memory_initialized()) { if (memory_initialized()) {
asm volatile ("jmp __cpu_reset"); skip_romstage();
} }
} }
/* Setup the console */ /* Setup the console */

View File

@ -53,6 +53,7 @@ static inline int spd_read_byte(unsigned device, unsigned address)
#include "northbridge/intel/e7520/raminit.c" #include "northbridge/intel/e7520/raminit.c"
#include "lib/generic_sdram.c" #include "lib/generic_sdram.c"
#include "arch/i386/lib/stages.c"
static void main(unsigned long bist) static void main(unsigned long bist)
{ {
@ -78,7 +79,7 @@ static void main(unsigned long bist)
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
early_mtrr_init(); early_mtrr_init();
if (memory_initialized()) { if (memory_initialized()) {
asm volatile ("jmp __cpu_reset"); skip_romstage();
} }
} }
/* Setup the console */ /* Setup the console */

View File

@ -53,6 +53,7 @@ static inline int spd_read_byte(unsigned device, unsigned address)
#include "northbridge/intel/e7520/raminit.c" #include "northbridge/intel/e7520/raminit.c"
#include "lib/generic_sdram.c" #include "lib/generic_sdram.c"
#include "arch/i386/lib/stages.c"
static void main(unsigned long bist) static void main(unsigned long bist)
{ {
@ -78,7 +79,7 @@ static void main(unsigned long bist)
/* Skip this if there was a built in self test failure */ /* Skip this if there was a built in self test failure */
early_mtrr_init(); early_mtrr_init();
if (memory_initialized()) { if (memory_initialized()) {
asm volatile ("jmp __cpu_reset"); skip_romstage();
} }
} }
/* Setup the console */ /* Setup the console */