Stefan Reinauer (stefan.reinauer@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@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@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