[coreboot-gerrit] Patch set updated for coreboot: 0359eda Revert "cbmem console: Locate the preram console with a symbol instead of a section."
Francis Rowe (info@gluglug.org.uk)
gerrit at coreboot.org
Sat Oct 11 00:16:31 CEST 2014
Francis Rowe (info at gluglug.org.uk) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7041
-gerrit
commit 0359eda692561abdefeeddcb09d884900fa3dabf
Author: Francis Rowe <info at gluglug.org.uk>
Date: Fri Oct 10 21:46:36 2014 +0100
Revert "cbmem console: Locate the preram console with a symbol instead of a section."
This reverts commit 35382a6eeb6634c291ffb67a3c4fa7a4601a7328.
X60/X201 were found not to boot at all with this commit. Reverting it fixes boot issue.
Change-Id: Idfe7bd5323e4936441f112f3bb65287f3ec6cd1f
Signed-off-by: Alexander Couzens <lynxis at fe80.eu>
Signed-off-by: Francis Rowe <info at gluglug.org.uk>
---
src/arch/arm/include/arch/early_variables.h | 1 +
src/arch/x86/include/arch/early_variables.h | 2 ++
src/arch/x86/init/romstage.ld | 14 +++++++-------
src/console/Kconfig | 10 +++++-----
src/lib/cbmem_console.c | 5 ++---
5 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/src/arch/arm/include/arch/early_variables.h b/src/arch/arm/include/arch/early_variables.h
index 5b58baa..041d0ae 100644
--- a/src/arch/arm/include/arch/early_variables.h
+++ b/src/arch/arm/include/arch/early_variables.h
@@ -21,6 +21,7 @@
#define ARCH_EARLY_VARIABLES_H
#define CAR_GLOBAL
+#define CAR_CBMEM
#define CAR_MIGRATE(migrate_fn_)
static inline void *car_get_var_ptr(void *var) { return var; }
diff --git a/src/arch/x86/include/arch/early_variables.h b/src/arch/x86/include/arch/early_variables.h
index 80e82d6..ea1a133 100644
--- a/src/arch/x86/include/arch/early_variables.h
+++ b/src/arch/x86/include/arch/early_variables.h
@@ -26,8 +26,10 @@ asm(".previous");
asm(".section .car.cbmem_console,\"w\", at nobits");
asm(".previous");
#define CAR_GLOBAL __attribute__((section(".car.global_data")))
+#define CAR_CBMEM __attribute__((section(".car.cbmem_console")))
#else
#define CAR_GLOBAL
+#define CAR_CBMEM
#endif
#if defined(__PRE_RAM__)
diff --git a/src/arch/x86/init/romstage.ld b/src/arch/x86/init/romstage.ld
index d6eb511..5458cfc 100644
--- a/src/arch/x86/init/romstage.ld
+++ b/src/arch/x86/init/romstage.ld
@@ -55,15 +55,15 @@ SECTIONS
.car.data . (NOLOAD) : {
_car_data_start = .;
*(.car.global_data);
- _car_data_end = .;
- /* The preram cbmem console area comes last to take advantage
- * of a zero-sized array to hold the memconsole contents that
- * grows to a bound of CONFIG_CONSOLE_PRERAM_BUFFER_SIZE.
- * However, collisions within the cache-as-ram region cannot be
+ /* The cbmem_console section comes last to take advantage of
+ * a zero-sized array to hold the memconsole contents that
+ * grows to a bound of CONFIG_CONSOLE_CAR_BUFFER_SIZE. However,
+ * collisions within the cache-as-ram region cannot be
* statically checked because the cache-as-ram region usage is
* cpu/chipset dependent. */
- preram_cbmem_console = .;
+ *(.car.cbmem_console);
+ _car_data_end = .;
}
- _bogus = ASSERT((SIZEOF(.car.data) + CONFIG_CONSOLE_PRERAM_BUFFER_SIZE <= CONFIG_DCACHE_RAM_SIZE), "Cache as RAM area is too full");
+ _bogus = ASSERT((SIZEOF(.car.data) <= CONFIG_DCACHE_RAM_SIZE), "Cache as RAM area is too full");
}
diff --git a/src/console/Kconfig b/src/console/Kconfig
index 619af56..472ac5c 100644
--- a/src/console/Kconfig
+++ b/src/console/Kconfig
@@ -184,15 +184,15 @@ config CONSOLE_CBMEM_BUFFER_SIZE
value (128K or 0x20000 bytes) is large enough to accommodate
even the BIOS_SPEW level.
-config CONSOLE_PRERAM_BUFFER_SIZE
+config CONSOLE_CAR_BUFFER_SIZE
depends on CONSOLE_CBMEM
- hex "Room allocated for console output before RAM is initialized"
+ hex "Room allocated for console output in Cache as RAM"
default 0xc00
help
Console is used before RAM is initialized. This is the room reserved
- in the DCACHE based RAM, SRAM, etc. to keep console output before it
- can be saved in a CBMEM buffer. 3K bytes should be enough even for
- the BIOS_SPEW level.
+ in the DCACHE based RAM to keep console output before it can be
+ saved in a CBMEM buffer. 3K bytes should be enough even for the
+ BIOS_SPEW level.
config CONSOLE_QEMU_DEBUGCON
bool "QEMU debug console output"
diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c
index b5b75f3..9d5419a 100644
--- a/src/lib/cbmem_console.c
+++ b/src/lib/cbmem_console.c
@@ -44,7 +44,7 @@ static struct cbmem_console *cbmem_console_p CAR_GLOBAL;
* the area are defined in the config.
*/
-extern struct cbmem_console preram_cbmem_console;
+static struct cbmem_console car_cbmem_console CAR_CBMEM;
#else
@@ -86,8 +86,7 @@ static inline void init_console_ptr(void *storage, u32 total_space)
void cbmemc_init(void)
{
#ifdef __PRE_RAM__
- init_console_ptr(&preram_cbmem_console,
- CONFIG_CONSOLE_PRERAM_BUFFER_SIZE);
+ init_console_ptr(&car_cbmem_console, CONFIG_CONSOLE_CAR_BUFFER_SIZE);
#else
/*
* Initializing before CBMEM is available, use static buffer to store
More information about the coreboot-gerrit
mailing list