[coreboot] New patch to review for coreboot: 6093b8a CBMEM: always initialize early if the board supports it

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Thu Feb 28 01:19:40 CET 2013


Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2551

-gerrit

commit 6093b8a9b4feab5ae5e7f7d735d8b8a04732b659
Author: Stefan Reinauer <stefan.reinauer at coreboot.org>
Date:   Thu Feb 28 01:18:29 2013 +0100

    CBMEM: always initialize early if the board supports it
    
    This allows to drop some special cases in romstage.c
    
    Change-Id: I53fdfcd1bb6ec21a5280afa07a40e3f0cba11c5d
    Signed-off-by: Stefan Reinauer <reinauer at google.com>
---
 src/Kconfig                                 | 7 ++++---
 src/mainboard/emulation/qemu-x86/Kconfig    | 1 +
 src/mainboard/emulation/qemu-x86/romstage.c | 5 -----
 src/mainboard/google/butterfly/Kconfig      | 1 +
 src/mainboard/google/butterfly/romstage.c   | 5 -----
 src/mainboard/google/link/Kconfig           | 1 +
 src/mainboard/google/link/romstage.c        | 5 -----
 src/mainboard/google/parrot/Kconfig         | 1 +
 src/mainboard/google/parrot/romstage.c      | 5 -----
 src/mainboard/intel/emeraldlake2/Kconfig    | 1 +
 src/mainboard/intel/emeraldlake2/romstage.c | 5 -----
 src/mainboard/samsung/lumpy/Kconfig         | 1 +
 src/mainboard/samsung/lumpy/romstage.c      | 5 -----
 src/mainboard/samsung/stumpy/Kconfig        | 1 +
 src/mainboard/samsung/stumpy/romstage.c     | 5 -----
 15 files changed, 11 insertions(+), 38 deletions(-)

diff --git a/src/Kconfig b/src/Kconfig
index 4dbc23e..5d1fbf2 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -162,12 +162,13 @@ config INCLUDE_CONFIG_FILE
 	    (empty)                        0x8e480    null         3610440
 
 config EARLY_CBMEM_INIT
-	bool "Initialize CBMEM while in ROM stage"
+	bool
 	default n
 	help
 	  Make coreboot initialize the cbmem structures while running in ROM
-	  stage. This could be useful when the ROM stage wants to communicate
-	  some, for instance, execution timestamps.
+	  stage. This is useful when the ROM stage wants to communicate
+	  some, for instance, execution timestamps. It needs support in
+	  romstage.c and should be enabled by the board's Kconfig.
 
 config COLLECT_TIMESTAMPS
 	bool "Create a table of timestamps collected during boot"
diff --git a/src/mainboard/emulation/qemu-x86/Kconfig b/src/mainboard/emulation/qemu-x86/Kconfig
index c171309..bf21acd 100644
--- a/src/mainboard/emulation/qemu-x86/Kconfig
+++ b/src/mainboard/emulation/qemu-x86/Kconfig
@@ -10,6 +10,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 	select HAVE_ACPI_TABLES
 	select HAVE_ACPI_RESUME
 	select BOARD_ROMSIZE_KB_256
+	select EARLY_CBMEM_INIT
 
 config MAINBOARD_DIR
 	string
diff --git a/src/mainboard/emulation/qemu-x86/romstage.c b/src/mainboard/emulation/qemu-x86/romstage.c
index be14db9..5e6f4e5 100644
--- a/src/mainboard/emulation/qemu-x86/romstage.c
+++ b/src/mainboard/emulation/qemu-x86/romstage.c
@@ -49,12 +49,7 @@ void main(unsigned long bist)
 	//print_pci_devices();
 	//dump_pci_devices();
 
-#if CONFIG_EARLY_CBMEM_INIT
 	cbmem_was_initted = !cbmem_initialize();
-#else
-	cbmem_was_initted = cbmem_reinit((uint64_t) (get_top_of_ram()
-						     - HIGH_MEMORY_SIZE));
-#endif
 #if CONFIG_COLLECT_TIMESTAMPS
 	timestamp_init(rdtsc());
 	timestamp_add_now(TS_START_ROMSTAGE);
diff --git a/src/mainboard/google/butterfly/Kconfig b/src/mainboard/google/butterfly/Kconfig
index ea30174..0813042 100644
--- a/src/mainboard/google/butterfly/Kconfig
+++ b/src/mainboard/google/butterfly/Kconfig
@@ -18,6 +18,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 	select GFXUMA
 	select CHROMEOS
 	select EXTERNAL_MRC_BLOB
+	select EARLY_CBMEM_INIT
 
 	# Workaround for EC/KBC IRQ1.
 	select SERIRQ_CONTINUOUS_MODE
diff --git a/src/mainboard/google/butterfly/romstage.c b/src/mainboard/google/butterfly/romstage.c
index 352f8d6..13cd454 100644
--- a/src/mainboard/google/butterfly/romstage.c
+++ b/src/mainboard/google/butterfly/romstage.c
@@ -258,12 +258,7 @@ void main(unsigned long bist)
 	post_code(0x3e);
 
 	MCHBAR16(SSKPD) = 0xCAFE;
-#if CONFIG_EARLY_CBMEM_INIT
 	cbmem_was_initted = !cbmem_initialize();
-#else
-	cbmem_was_initted = cbmem_reinit((uint64_t) (get_top_of_ram()
-						     - HIGH_MEMORY_SIZE));
-#endif
 
 #if CONFIG_HAVE_ACPI_RESUME
 	/* If there is no high memory area, we didn't boot before, so
diff --git a/src/mainboard/google/link/Kconfig b/src/mainboard/google/link/Kconfig
index 57e7728..c171390 100644
--- a/src/mainboard/google/link/Kconfig
+++ b/src/mainboard/google/link/Kconfig
@@ -20,6 +20,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 	select EXTERNAL_MRC_BLOB
 	select SERIRQ_CONTINUOUS_MODE
 	select MAINBOARD_HAS_NATIVE_VGA_INIT
+	select EARLY_CBMEM_INIT
 
 config MAINBOARD_DIR
 	string
diff --git a/src/mainboard/google/link/romstage.c b/src/mainboard/google/link/romstage.c
index b77d939..689d2b5 100644
--- a/src/mainboard/google/link/romstage.c
+++ b/src/mainboard/google/link/romstage.c
@@ -301,12 +301,7 @@ void main(unsigned long bist)
 	post_code(0x3e);
 
 	MCHBAR16(SSKPD) = 0xCAFE;
-#if CONFIG_EARLY_CBMEM_INIT
 	cbmem_was_initted = !cbmem_initialize();
-#else
-	cbmem_was_initted = cbmem_reinit((uint64_t) (get_top_of_ram()
-						     - HIGH_MEMORY_SIZE));
-#endif
 
 #if CONFIG_HAVE_ACPI_RESUME
 	/* If there is no high memory area, we didn't boot before, so
diff --git a/src/mainboard/google/parrot/Kconfig b/src/mainboard/google/parrot/Kconfig
index e141033..96f1b4f 100644
--- a/src/mainboard/google/parrot/Kconfig
+++ b/src/mainboard/google/parrot/Kconfig
@@ -18,6 +18,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 	select GFXUMA
 	select CHROMEOS
 	select EXTERNAL_MRC_BLOB
+	select EARLY_CBMEM_INIT
 
 	# Workaround for EC/KBC IRQ1.
 	select SERIRQ_CONTINUOUS_MODE
diff --git a/src/mainboard/google/parrot/romstage.c b/src/mainboard/google/parrot/romstage.c
index 58c3881..110c398 100644
--- a/src/mainboard/google/parrot/romstage.c
+++ b/src/mainboard/google/parrot/romstage.c
@@ -258,12 +258,7 @@ void main(unsigned long bist)
 	post_code(0x3e);
 
 	MCHBAR16(SSKPD) = 0xCAFE;
-#if CONFIG_EARLY_CBMEM_INIT
 	cbmem_was_initted = !cbmem_initialize();
-#else
-	cbmem_was_initted = cbmem_reinit((uint64_t) (get_top_of_ram()
-						     - HIGH_MEMORY_SIZE));
-#endif
 
 #if CONFIG_HAVE_ACPI_RESUME
 	/* If there is no high memory area, we didn't boot before, so
diff --git a/src/mainboard/intel/emeraldlake2/Kconfig b/src/mainboard/intel/emeraldlake2/Kconfig
index f8abb28..20685f3 100644
--- a/src/mainboard/intel/emeraldlake2/Kconfig
+++ b/src/mainboard/intel/emeraldlake2/Kconfig
@@ -15,6 +15,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 	select GFXUMA
 	#select CHROMEOS
 	select EXTERNAL_MRC_BLOB
+	select EARLY_CBMEM_INIT
 
 config MAINBOARD_DIR
 	string
diff --git a/src/mainboard/intel/emeraldlake2/romstage.c b/src/mainboard/intel/emeraldlake2/romstage.c
index 75e3b0d..4fda2d8 100644
--- a/src/mainboard/intel/emeraldlake2/romstage.c
+++ b/src/mainboard/intel/emeraldlake2/romstage.c
@@ -313,12 +313,7 @@ void main(unsigned long bist)
 	post_code(0x3e);
 
 	MCHBAR16(SSKPD) = 0xCAFE;
-#if CONFIG_EARLY_CBMEM_INIT
 	cbmem_was_initted = !cbmem_initialize();
-#else
-	cbmem_was_initted = cbmem_reinit((uint64_t) (get_top_of_ram()
-						     - HIGH_MEMORY_SIZE));
-#endif
 
 #if CONFIG_HAVE_ACPI_RESUME
 	/* If there is no high memory area, we didn't boot before, so
diff --git a/src/mainboard/samsung/lumpy/Kconfig b/src/mainboard/samsung/lumpy/Kconfig
index bb57d13..a169726 100644
--- a/src/mainboard/samsung/lumpy/Kconfig
+++ b/src/mainboard/samsung/lumpy/Kconfig
@@ -17,6 +17,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 	select SOUTHBRIDGE_INTEL_BD82X6X
 	select SUPERIO_SMSC_MEC1308
 	select DRIVERS_GENERIC_IOAPIC
+	select EARLY_CBMEM_INIT
 
 config MAINBOARD_DIR
 	string
diff --git a/src/mainboard/samsung/lumpy/romstage.c b/src/mainboard/samsung/lumpy/romstage.c
index 9bc193b..67004c7 100644
--- a/src/mainboard/samsung/lumpy/romstage.c
+++ b/src/mainboard/samsung/lumpy/romstage.c
@@ -333,12 +333,7 @@ void main(unsigned long bist)
 
 	MCHBAR16(SSKPD) = 0xCAFE;
 
-#if CONFIG_EARLY_CBMEM_INIT
 	cbmem_was_initted = !cbmem_initialize();
-#else
-	cbmem_was_initted = cbmem_reinit((uint64_t) (get_top_of_ram()
-						     - HIGH_MEMORY_SIZE));
-#endif
 
 #if CONFIG_HAVE_ACPI_RESUME
 	/* If there is no high memory area, we didn't boot before, so
diff --git a/src/mainboard/samsung/stumpy/Kconfig b/src/mainboard/samsung/stumpy/Kconfig
index a4bba5b..fa7d03d 100644
--- a/src/mainboard/samsung/stumpy/Kconfig
+++ b/src/mainboard/samsung/stumpy/Kconfig
@@ -15,6 +15,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 	select NORTHBRIDGE_INTEL_SANDYBRIDGE
 	select SOUTHBRIDGE_INTEL_BD82X6X
 	select SUPERIO_ITE_IT8772F
+	select EARLY_CBMEM_INIT
 
 config MAINBOARD_DIR
 	string
diff --git a/src/mainboard/samsung/stumpy/romstage.c b/src/mainboard/samsung/stumpy/romstage.c
index 5602c63..5fecfef 100644
--- a/src/mainboard/samsung/stumpy/romstage.c
+++ b/src/mainboard/samsung/stumpy/romstage.c
@@ -336,12 +336,7 @@ void main(unsigned long bist)
 	post_code(0x3e);
 
 	MCHBAR16(SSKPD) = 0xCAFE;
-#if CONFIG_EARLY_CBMEM_INIT
 	cbmem_was_initted = !cbmem_initialize();
-#else
-	cbmem_was_initted = cbmem_reinit((uint64_t) (get_top_of_ram()
-						     - HIGH_MEMORY_SIZE));
-#endif
 
 #if CONFIG_HAVE_ACPI_RESUME
 	/* If there is no high memory area, we didn't boot before, so



More information about the coreboot mailing list