[coreboot-gerrit] New patch to review for coreboot: ce7b6b4 CBMEM: Restrict CAR_GLOBALs to boards with EARLY_CBMEM_INIT

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Sun Oct 13 14:48:59 CEST 2013


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/3969

-gerrit

commit ce7b6b4f1433a23ae0a551efa63964e6ef86f1f3
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Sat Oct 12 00:22:57 2013 +0300

    CBMEM: Restrict CAR_GLOBALs to boards with EARLY_CBMEM_INIT
    
    The mechanisms behind CAR_GLOBALs migration only work correctly when
    romstage succesfully makes the cbmem_initialize() call.
    
    Dummy get_top_of_ram() is removed from romstage to fail already at
    build-time for cases where cbmem_initialize() could not complete.
    
    Change-Id: I359820fb196ef187b9aa2e8a3e8f658a0550f237
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
 src/Kconfig               |  1 +
 src/arch/x86/boot/cbmem.c | 12 ++++++------
 src/cpu/x86/Makefile.inc  |  2 +-
 src/lib/Makefile.inc      |  7 ++-----
 4 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/src/Kconfig b/src/Kconfig
index 127887c..4af8002 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -182,6 +182,7 @@ config EARLY_CBMEM_INIT
 config DYNAMIC_CBMEM
 	bool "The CBMEM space is dynamically grown."
 	default n
+	select EARLY_CBMEM_INIT
 	help
 	  Instead of reserving a static amount of CBMEM space the CBMEM
 	  area grows dynamically.  CBMEM can be used both in romstage (after
diff --git a/src/arch/x86/boot/cbmem.c b/src/arch/x86/boot/cbmem.c
index 58ccbca..d8b2e56 100644
--- a/src/arch/x86/boot/cbmem.c
+++ b/src/arch/x86/boot/cbmem.c
@@ -18,12 +18,6 @@
 #include <console/console.h>
 #include <cbmem.h>
 
-unsigned long __attribute__((weak)) get_top_of_ram(void)
-{
-	printk(BIOS_WARNING, "WARNING: you need to define get_top_of_ram() for your chipset\n");
-	return 0;
-}
-
 #if !CONFIG_DYNAMIC_CBMEM
 void get_cbmem_table(uint64_t *base, uint64_t *size)
 {
@@ -54,4 +48,10 @@ void set_top_of_ram(uint64_t ramtop)
 	backup_top_of_ram(ramtop);
 	cbmem_late_set_table(ramtop - HIGH_MEMORY_SIZE, HIGH_MEMORY_SIZE);
 }
+
+unsigned long __attribute__((weak)) get_top_of_ram(void)
+{
+	printk(BIOS_WARNING, "WARNING: you need to define get_top_of_ram() for your chipset\n");
+	return 0;
+}
 #endif
diff --git a/src/cpu/x86/Makefile.inc b/src/cpu/x86/Makefile.inc
index 311dcc1..584004d 100644
--- a/src/cpu/x86/Makefile.inc
+++ b/src/cpu/x86/Makefile.inc
@@ -1 +1 @@
-romstage-$(CONFIG_CACHE_AS_RAM) += car.c
+romstage-$(CONFIG_EARLY_CBMEM_INIT) += car.c
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index 44b5ebd..6110b88 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -50,16 +50,12 @@ romstage-$(CONFIG_CONSOLE_SERIAL8250MEM) += uart8250mem.c
 romstage-$(CONFIG_CONSOLE_NE2K) += ne2k.c
 romstage-$(CONFIG_SPKMODEM) += spkmodem.c
 
-ifeq ($(CONFIG_CACHE_AS_RAM),y)
+ifeq ($(CONFIG_EARLY_CBMEM_INIT),y)
 romstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c
 romstage-$(CONFIG_CONSOLE_CBMEM) += cbmem_console.c
 romstage-$(CONFIG_USBDEBUG) += usbdebug.c
 endif
 
-ifneq ($(CONFIG_DYNAMIC_CBMEM),y)
-romstage-$(CONFIG_EARLY_CBMEM_INIT) += cbmem.c
-endif
-
 romstage-y += compute_ip_checksum.c
 ifneq ($(CONFIG_HAVE_ARCH_MEMMOVE),y)
 romstage-y += memmove.c
@@ -112,6 +108,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_HAVE_ACPI_RESUME) += cbmem.c
 endif # CONFIG_DYNAMIC_CBMEM
 ramstage-y += cbmem_info.c



More information about the coreboot-gerrit mailing list