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 <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/11820 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
parent
b5a20b29b7
commit
079fb3fc29
@ -26,8 +26,10 @@ void cbmemc_init(void);
|
|||||||
void cbmemc_tx_byte(unsigned char data);
|
void cbmemc_tx_byte(unsigned char data);
|
||||||
|
|
||||||
#define __CBMEM_CONSOLE_ENABLE__ CONFIG_CONSOLE_CBMEM && \
|
#define __CBMEM_CONSOLE_ENABLE__ CONFIG_CONSOLE_CBMEM && \
|
||||||
(ENV_RAMSTAGE || (IS_ENABLED(CONFIG_EARLY_CBMEM_INIT) && \
|
(ENV_RAMSTAGE || ENV_VERSTAGE || \
|
||||||
(ENV_ROMSTAGE || (ENV_BOOTBLOCK && CONFIG_BOOTBLOCK_CONSOLE))))
|
(IS_ENABLED(CONFIG_EARLY_CBMEM_INIT) && \
|
||||||
|
(ENV_ROMSTAGE || (ENV_BOOTBLOCK && CONFIG_BOOTBLOCK_CONSOLE)))\
|
||||||
|
)
|
||||||
|
|
||||||
#if __CBMEM_CONSOLE_ENABLE__
|
#if __CBMEM_CONSOLE_ENABLE__
|
||||||
static inline void __cbmemc_init(void) { cbmemc_init(); }
|
static inline void __cbmemc_init(void) { cbmemc_init(); }
|
||||||
|
@ -105,12 +105,28 @@ static inline void init_console_ptr(void *storage, u32 total_space, int flags)
|
|||||||
void cbmemc_init(void)
|
void cbmemc_init(void)
|
||||||
{
|
{
|
||||||
#ifdef __PRE_RAM__
|
#ifdef __PRE_RAM__
|
||||||
int flags = CBMEMC_RESET;
|
int flags = 0;
|
||||||
|
|
||||||
/* Do not clear output from bootblock. */
|
/* If in bootblock always initialize the console first. */
|
||||||
if (ENV_ROMSTAGE && !IS_ENABLED(CONFIG_CACHE_AS_RAM))
|
if (ENV_BOOTBLOCK)
|
||||||
if (IS_ENABLED(CONFIG_BOOTBLOCK_CONSOLE))
|
flags = CBMEMC_RESET;
|
||||||
flags = 0;
|
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,
|
init_console_ptr(_preram_cbmem_console,
|
||||||
_preram_cbmem_console_size, flags);
|
_preram_cbmem_console_size, flags);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user