summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2014-11-28 10:13:03 +0200
committerKyösti Mälkki <kyosti.malkki@gmail.com>2014-12-16 20:41:02 +0100
commit71b214553c952e790219864767ba7882c9aaae1f (patch)
treef9168f6214f9ab33afc28d116dddf07c68717c58
parent13a845acb3aee15dad1b4d66027731baba659e0e (diff)
downloadcoreboot-71b214553c952e790219864767ba7882c9aaae1f.tar.xz
CBMEM console: Fix boards with BROKEN_CAR_MIGRATE
There is no need to call cbmemc_reinit() exclusively in romstage, that is done as part of the CAR migration of cbmem_recovery(). CBMEM console for romstage remains disabled for boards flagged with BROKEN_CAR_MIGRATE, but with this change it is possible to have it for ramstage. Change-Id: I48c4afcd847d0d5f8864d23c0786935341e3f752 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/7592 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Martin Roth <gaumless@gmail.com>
-rw-r--r--src/include/console/cbmem_console.h2
-rw-r--r--src/lib/cbmem.c2
-rw-r--r--src/lib/cbmem_console.c5
-rw-r--r--src/lib/dynamic_cbmem.c2
-rw-r--r--src/mainboard/intel/cougar_canyon2/romstage.c4
-rw-r--r--src/soc/intel/fsp_baytrail/romstage/romstage.c4
-rw-r--r--src/southbridge/intel/fsp_rangeley/romstage.c4
7 files changed, 6 insertions, 17 deletions
diff --git a/src/include/console/cbmem_console.h b/src/include/console/cbmem_console.h
index e7c6357ae4..36d132c892 100644
--- a/src/include/console/cbmem_console.h
+++ b/src/include/console/cbmem_console.h
@@ -32,7 +32,7 @@ static inline void cbmemc_reinit(void) {}
#endif
#define __CBMEM_CONSOLE_ENABLE__ CONFIG_CONSOLE_CBMEM && \
- ((ENV_ROMSTAGE && CONFIG_EARLY_CBMEM_INIT) || ENV_RAMSTAGE)
+ ((ENV_ROMSTAGE && !CONFIG_BROKEN_CAR_MIGRATE) || ENV_RAMSTAGE)
#if __CBMEM_CONSOLE_ENABLE__
static inline void __cbmemc_init(void) { cbmemc_init(); }
diff --git a/src/lib/cbmem.c b/src/lib/cbmem.c
index b0e73e2f31..0b24ad2af9 100644
--- a/src/lib/cbmem.c
+++ b/src/lib/cbmem.c
@@ -256,9 +256,7 @@ static void init_cbmem_post_device(void *unused)
#else
cbmem_recovery(0);
#endif
-#if CONFIG_CONSOLE_CBMEM
cbmemc_reinit();
-#endif
}
BOOT_STATE_INIT_ENTRIES(cbmem_bscb) = {
diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c
index b5b75f3ee6..997bb7d9b2 100644
--- a/src/lib/cbmem_console.c
+++ b/src/lib/cbmem_console.c
@@ -188,6 +188,11 @@ void cbmemc_reinit(void)
{
struct cbmem_console *cbm_cons_p = NULL;
+#ifdef __PRE_RAM__
+ if (IS_ENABLED(CONFIG_BROKEN_CAR_MIGRATE))
+ return;
+#endif
+
#ifndef __PRE_RAM__
cbm_cons_p = cbmem_find(CBMEM_ID_CONSOLE);
#endif
diff --git a/src/lib/dynamic_cbmem.c b/src/lib/dynamic_cbmem.c
index 3dc50770a7..5eddbcaf18 100644
--- a/src/lib/dynamic_cbmem.c
+++ b/src/lib/dynamic_cbmem.c
@@ -426,9 +426,7 @@ void *cbmem_entry_start(const struct cbmem_entry *entry)
static void init_cbmem_pre_device(void *unused)
{
cbmem_initialize();
-#if CONFIG_CONSOLE_CBMEM
cbmemc_reinit();
-#endif /* CONFIG_CONSOLE_CBMEM */
}
BOOT_STATE_INIT_ENTRIES(cbmem_bscb) = {
diff --git a/src/mainboard/intel/cougar_canyon2/romstage.c b/src/mainboard/intel/cougar_canyon2/romstage.c
index 6b4c1195fe..6580ab9708 100644
--- a/src/mainboard/intel/cougar_canyon2/romstage.c
+++ b/src/mainboard/intel/cougar_canyon2/romstage.c
@@ -342,10 +342,6 @@ void romstage_main_continue(EFI_STATUS status, VOID *HobListPtr) {
timestamp_add(TS_AFTER_INITRAM, after_initram_time);
timestamp_add_now(TS_END_ROMSTAGE);
#endif
-#if CONFIG_CONSOLE_CBMEM
- /* Keep this the last thing this function does. */
- cbmemc_reinit();
-#endif
/* Load the ramstage. */
copy_and_run();
diff --git a/src/soc/intel/fsp_baytrail/romstage/romstage.c b/src/soc/intel/fsp_baytrail/romstage/romstage.c
index 259ecdc679..2619c96f62 100644
--- a/src/soc/intel/fsp_baytrail/romstage/romstage.c
+++ b/src/soc/intel/fsp_baytrail/romstage/romstage.c
@@ -279,10 +279,6 @@ void romstage_main_continue(EFI_STATUS status, void *hob_list_ptr) {
timestamp_add_now(TS_END_ROMSTAGE);
#endif
-#if IS_ENABLED(CONFIG_CONSOLE_CBMEM)
- printk(BIOS_DEBUG, "cbmemc_reinit\n");
- cbmemc_reinit();
-#endif
post_code(0x4f);
/* Load the ramstage. */
diff --git a/src/southbridge/intel/fsp_rangeley/romstage.c b/src/southbridge/intel/fsp_rangeley/romstage.c
index fd8b3b20b0..6c5751e272 100644
--- a/src/southbridge/intel/fsp_rangeley/romstage.c
+++ b/src/southbridge/intel/fsp_rangeley/romstage.c
@@ -136,10 +136,6 @@ void romstage_main_continue(EFI_STATUS status, void *hob_list_ptr) {
timestamp_add_now(TS_END_ROMSTAGE);
#endif
-#if IS_ENABLED(CONFIG_CONSOLE_CBMEM)
- printk(BIOS_DEBUG, "cbmemc_reinit\n");
- cbmemc_reinit();
-#endif
post_code(0x4f);
/* Load the ramstage. */