summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/intel/haswell/Makefile.inc1
-rw-r--r--src/cpu/intel/haswell/haswell.h17
-rw-r--r--src/cpu/intel/haswell/romstage.c31
3 files changed, 3 insertions, 46 deletions
diff --git a/src/cpu/intel/haswell/Makefile.inc b/src/cpu/intel/haswell/Makefile.inc
index a0c892a561..bbd98da10b 100644
--- a/src/cpu/intel/haswell/Makefile.inc
+++ b/src/cpu/intel/haswell/Makefile.inc
@@ -2,6 +2,7 @@ ramstage-y += haswell_init.c
ramstage-y += tsc_freq.c
romstage-y += romstage.c
romstage-y += tsc_freq.c
+romstage-y += ../car/romstage.c
ramstage-y += acpi.c
ramstage-$(CONFIG_CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM) += stage_cache.c
diff --git a/src/cpu/intel/haswell/haswell.h b/src/cpu/intel/haswell/haswell.h
index 23efe6c443..8498c1ac75 100644
--- a/src/cpu/intel/haswell/haswell.h
+++ b/src/cpu/intel/haswell/haswell.h
@@ -163,24 +163,7 @@ struct romstage_params {
unsigned long bist;
void (*copy_spd)(struct pei_data *);
};
-void mainboard_romstage_entry(unsigned long bist);
void romstage_common(const struct romstage_params *params);
-/* romstage_main is called from the cache-as-ram assembly file. The return
- * value is the stack value to be used for romstage once cache-as-ram is
- * torn down. The following values are pushed onto the stack to setup the
- * MTRRs:
- * +0: Number of MTRRs
- * +4: MTRR base 0 31:0
- * +8: MTRR base 0 63:32
- * +12: MTRR mask 0 31:0
- * +16: MTRR mask 0 63:32
- * +20: MTRR base 1 31:0
- * +24: MTRR base 1 63:32
- * +28: MTRR mask 1 31:0
- * +32: MTRR mask 1 63:32
- * ...
- */
-asmlinkage void *romstage_main(unsigned long bist);
#endif
#ifdef __SMM__
diff --git a/src/cpu/intel/haswell/romstage.c b/src/cpu/intel/haswell/romstage.c
index ab9fd591be..0e91daee50 100644
--- a/src/cpu/intel/haswell/romstage.c
+++ b/src/cpu/intel/haswell/romstage.c
@@ -43,6 +43,7 @@
#include "southbridge/intel/lynxpoint/pch.h"
#include "southbridge/intel/lynxpoint/me.h"
#include <security/tpm/tspi.h>
+#include <cpu/intel/romstage.h>
static inline void reset_system(void)
{
@@ -55,7 +56,7 @@ static inline void reset_system(void)
/* platform_enter_postcar() determines the stack to use after
* cache-as-ram is torn down as well as the MTRR settings to use,
* and continues execution in postcar stage. */
-static void platform_enter_postcar(void)
+void platform_enter_postcar(void)
{
struct postcar_frame pcf;
uintptr_t top_of_ram;
@@ -80,34 +81,6 @@ static void platform_enter_postcar(void)
run_postcar_phase(&pcf);
}
-asmlinkage void *romstage_main(unsigned long bist)
-{
- int i;
- const int num_guards = 4;
- const u32 stack_guard = 0xdeadbeef;
- u32 *stack_base = (void *)(CONFIG_DCACHE_RAM_BASE +
- CONFIG_DCACHE_RAM_SIZE -
- CONFIG_DCACHE_RAM_ROMSTAGE_STACK_SIZE);
-
- printk(BIOS_DEBUG, "Setting up stack guards.\n");
- for (i = 0; i < num_guards; i++)
- stack_base[i] = stack_guard;
-
- mainboard_romstage_entry(bist);
-
- /* Check the stack. */
- for (i = 0; i < num_guards; i++) {
- if (stack_base[i] == stack_guard)
- continue;
- printk(BIOS_DEBUG, "Smashed stack detected in romstage!\n");
- }
-
- platform_enter_postcar();
-
- /* We do not return here */
- return NULL;
-}
-
void romstage_common(const struct romstage_params *params)
{
int boot_mode;