aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/arch/arm/include/arch/early_variables.h1
-rw-r--r--src/arch/x86/include/arch/early_variables.h2
-rw-r--r--src/arch/x86/init/romstage.ld14
-rw-r--r--src/console/Kconfig10
-rw-r--r--src/lib/cbmem_console.c5
5 files changed, 15 insertions, 17 deletions
diff --git a/src/arch/arm/include/arch/early_variables.h b/src/arch/arm/include/arch/early_variables.h
index 041d0ae7a..5b58baa27 100644
--- a/src/arch/arm/include/arch/early_variables.h
+++ b/src/arch/arm/include/arch/early_variables.h
@@ -21,7 +21,6 @@
#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 ea1a133ae..80e82d640 100644
--- a/src/arch/x86/include/arch/early_variables.h
+++ b/src/arch/x86/include/arch/early_variables.h
@@ -26,10 +26,8 @@ asm(".previous");
asm(".section .car.cbmem_console,\"w\",@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 5458cfc23..d6eb5111e 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);
- /* 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
+ _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
* statically checked because the cache-as-ram region usage is
* cpu/chipset dependent. */
- *(.car.cbmem_console);
- _car_data_end = .;
+ preram_cbmem_console = .;
}
- _bogus = ASSERT((SIZEOF(.car.data) <= CONFIG_DCACHE_RAM_SIZE), "Cache as RAM area is too full");
+ _bogus = ASSERT((SIZEOF(.car.data) + CONFIG_CONSOLE_PRERAM_BUFFER_SIZE <= CONFIG_DCACHE_RAM_SIZE), "Cache as RAM area is too full");
}
diff --git a/src/console/Kconfig b/src/console/Kconfig
index 472ac5c8d..619af56ba 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_CAR_BUFFER_SIZE
+config CONSOLE_PRERAM_BUFFER_SIZE
depends on CONSOLE_CBMEM
- hex "Room allocated for console output in Cache as RAM"
+ hex "Room allocated for console output before RAM is initialized"
default 0xc00
help
Console is used before RAM is initialized. This is the room reserved
- 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.
+ 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.
config CONSOLE_QEMU_DEBUGCON
bool "QEMU debug console output"
diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c
index 9d5419a18..b5b75f3ee 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.
*/
-static struct cbmem_console car_cbmem_console CAR_CBMEM;
+extern struct cbmem_console preram_cbmem_console;
#else
@@ -86,7 +86,8 @@ static inline void init_console_ptr(void *storage, u32 total_space)
void cbmemc_init(void)
{
#ifdef __PRE_RAM__
- init_console_ptr(&car_cbmem_console, CONFIG_CONSOLE_CAR_BUFFER_SIZE);
+ init_console_ptr(&preram_cbmem_console,
+ CONFIG_CONSOLE_PRERAM_BUFFER_SIZE);
#else
/*
* Initializing before CBMEM is available, use static buffer to store