[coreboot-gerrit] Patch set updated for coreboot: 56adf95 CBMEM: Always build for x86 romstage

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Sun Dec 21 08:57:32 CET 2014


Kyösti Mälkki (kyosti.malkki at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7877

-gerrit

commit 56adf95d1e7003c36530380ab990614aac9d5ee8
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Fri Dec 19 09:19:29 2014 +0200

    CBMEM: Always build for x86 romstage
    
    Always build CBMEM for romstage, even for boards that will not use it.
    We further restrict car_migrate_variables() runs to non-ROMCC boards without
    BROKEN_CAR_MIGRATE.
    
    This fixes regression of commit 71b21455 that broke CBMEM console support
    for boards with a combination of !EARLY_CBMEM_INIT && !HAVE_ACPI_RESUME.
    
    Change-Id: Ife91d7baebdc9bd1e086896400059a165d3aa90f
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
 src/Kconfig                                 |  4 +---
 src/arch/x86/boot/Makefile.inc              |  3 +--
 src/arch/x86/include/arch/early_variables.h | 10 ++++++----
 src/cpu/x86/Makefile.inc                    |  3 +--
 src/cpu/x86/car.c                           |  8 +++++++-
 src/lib/Makefile.inc                        |  3 +--
 6 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/src/Kconfig b/src/Kconfig
index 7b52589..25de1b1 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -158,9 +158,7 @@ config EARLY_CBMEM_INIT
 	  romstage.c and should be enabled by the board's Kconfig.
 
 config BROKEN_CAR_MIGRATE
-	bool
-	default y if !EARLY_CBMEM_INIT && HAVE_ACPI_RESUME
-	default n
+	def_bool !EARLY_CBMEM_INIT
 	help
 	  Many boards use CAR_GLOBAL but have no EARLY_CBMEM_INIT and
 	  manage CAR migration on S3 resume path only. Couple boards use
diff --git a/src/arch/x86/boot/Makefile.inc b/src/arch/x86/boot/Makefile.inc
index 9a68d81..9f06b4f 100644
--- a/src/arch/x86/boot/Makefile.inc
+++ b/src/arch/x86/boot/Makefile.inc
@@ -1,8 +1,7 @@
 
 ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32),y)
 
-romstage-$(CONFIG_EARLY_CBMEM_INIT) += cbmem.c
-romstage-$(CONFIG_BROKEN_CAR_MIGRATE) += cbmem.c
+romstage-y += cbmem.c
 
 endif # CONFIG_ARCH_ROMSTAGE_X86_32
 
diff --git a/src/arch/x86/include/arch/early_variables.h b/src/arch/x86/include/arch/early_variables.h
index c850a84..f76c048 100644
--- a/src/arch/x86/include/arch/early_variables.h
+++ b/src/arch/x86/include/arch/early_variables.h
@@ -45,16 +45,18 @@ void *car_get_var_ptr(void *var);
 #define car_set_var(var, val) \
 	do { car_get_var(var) = (val); } while(0)
 
-/* Migrate the CAR variables to memory. */
-void car_migrate_variables(void);
-
 #else
 #define CAR_MIGRATE(migrate_fn_)
 static inline void *car_get_var_ptr(void *var) { return var; }
 #define car_get_var(var) (var)
 #define car_set_var(var, val) do { (var) = (val); } while (0)
-static inline void car_migrate_variables(void) { }
 #endif
 
+#if defined(__PRE_RAM__) && IS_ENABLED(CONFIG_CACHE_AS_RAM)
+/* Migrate the CAR variables to memory. */
+void car_migrate_variables(void);
+#else
+static inline void car_migrate_variables(void) { }
+#endif
 
 #endif
diff --git a/src/cpu/x86/Makefile.inc b/src/cpu/x86/Makefile.inc
index 418b5d7..2347f88 100644
--- a/src/cpu/x86/Makefile.inc
+++ b/src/cpu/x86/Makefile.inc
@@ -1,6 +1,5 @@
 ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32),y)
-romstage-$(CONFIG_EARLY_CBMEM_INIT) += car.c
-romstage-$(CONFIG_BROKEN_CAR_MIGRATE) += car.c
+romstage-$(CONFIG_CACHE_AS_RAM) += car.c
 endif
 
 subdirs-$(CONFIG_PARALLEL_MP) += name
diff --git a/src/cpu/x86/car.c b/src/cpu/x86/car.c
index a7e3842..c9cc6d6 100644
--- a/src/cpu/x86/car.c
+++ b/src/cpu/x86/car.c
@@ -73,7 +73,7 @@ void *car_get_var_ptr(void *var)
 	return &migrated_base[offset];
 }
 
-void car_migrate_variables(void)
+static void do_car_migrate_variables(void)
 {
 	void *migrated_base;
 	car_migration_func_t *migrate_func;
@@ -102,3 +102,9 @@ void car_migrate_variables(void)
 		migrate_func++;
 	}
 }
+
+void car_migrate_variables(void)
+{
+	if (!IS_ENABLED(CONFIG_BROKEN_CAR_MIGRATE))
+		do_car_migrate_variables();
+}
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index 85d4d9c..662dfcc 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -76,8 +76,7 @@ ramstage-y += dynamic_cbmem.c
 romstage-y += dynamic_cbmem.c
 else
 ramstage-y += cbmem.c
-romstage-$(CONFIG_EARLY_CBMEM_INIT) += cbmem.c
-romstage-$(CONFIG_BROKEN_CAR_MIGRATE) += cbmem.c
+romstage-y += cbmem.c
 endif # CONFIG_DYNAMIC_CBMEM
 ramstage-y += cbmem_info.c
 



More information about the coreboot-gerrit mailing list