From 079fb3fc293fb0ef6669f45951b4b1ae4a8d449a Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Wed, 7 Oct 2015 15:41:45 -0500 Subject: cbmem console: make verstage first class citizen The conditions in cbmem console for supporting verstage were implicitly utilizing CONFIG_BOOTBLOCK_CONSOLE to handle the cbmem console enablement. Fix it so verstage is a first class citizen for deciding actions pertaining to cbmem console. BUG=chrome-os-partner:44827 BRANCH=None TEST=Built and booted glados using verstage. cbmem console shows verstage output. Change-Id: Iba79efd1c1d4056f1a105a5e10ffc95f3e69b597 Signed-off-by: Aaron Durbin Reviewed-on: http://review.coreboot.org/11820 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- src/lib/cbmem_console.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'src/lib/cbmem_console.c') diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c index 464294cabc..d8fc7a952c 100644 --- a/src/lib/cbmem_console.c +++ b/src/lib/cbmem_console.c @@ -105,12 +105,28 @@ static inline void init_console_ptr(void *storage, u32 total_space, int flags) void cbmemc_init(void) { #ifdef __PRE_RAM__ - int flags = CBMEMC_RESET; + int flags = 0; - /* Do not clear output from bootblock. */ - if (ENV_ROMSTAGE && !IS_ENABLED(CONFIG_CACHE_AS_RAM)) - if (IS_ENABLED(CONFIG_BOOTBLOCK_CONSOLE)) - flags = 0; + /* If in bootblock always initialize the console first. */ + if (ENV_BOOTBLOCK) + flags = CBMEMC_RESET; + else if (ENV_ROMSTAGE) { + /* Initialize console for the first time in romstage when + * there's no prior stage that initialized it first. */ + if (!IS_ENABLED(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK) && + !IS_ENABLED(CONFIG_BOOTBLOCK_CONSOLE)) + flags = CBMEMC_RESET; + } else if (ENV_VERSTAGE) { + /* + * Initialize console for the first time in verstage when + * there is no console in bootblock. Otherwise honor the + * bootblock console when verstage comes right after + * bootblock. + */ + if (IS_ENABLED(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK) && + !IS_ENABLED(CONFIG_BOOTBLOCK_CONSOLE)) + flags = CBMEMC_RESET; + } init_console_ptr(_preram_cbmem_console, _preram_cbmem_console_size, flags); -- cgit v1.2.3