diff options
author | Raul E Rangel <rrangel@chromium.org> | 2022-01-11 12:54:36 -0700 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2022-01-17 15:46:35 +0000 |
commit | 80a7f4e7b6abd956ea9e73387b47a2fd0e33f14b (patch) | |
tree | 435fb4be3474d64061739469b735329eece15644 /src/console | |
parent | bf993110b3386deb895b39c86993e8b5bf807ac0 (diff) |
console: Add Kconfig to dump pre-bootblock cbmem contents
Pre-bootblock stages (i.e., VBOOT_STARTS_BEFORE_BOOTBLOCK) might not
have the ability to log to the UART, so their console messages are
inaccessible until the boot processes gets into the payload or OS.
This makes it difficult to debug verstage.
This feature will dump the pre-bootblock CBMEM console immediately
after the bootblock console is initialized. I chose to do this in
console_init instead of bootblock_soc_init because I wanted to have the
pre-bootblock contents dumped before the coreboot bootblock starting
message is printed.
BUG=b:213828947
TEST=Boot guybrush with PSP verstage and verify verstage logs are dumped
to the UART.
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: I363c93ef3ee6c5c303a6a68f88a622e2aa62594c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61012
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/console')
-rw-r--r-- | src/console/Kconfig | 8 | ||||
-rw-r--r-- | src/console/init.c | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/console/Kconfig b/src/console/Kconfig index 4c2e768685..60b27c4594 100644 --- a/src/console/Kconfig +++ b/src/console/Kconfig @@ -255,6 +255,14 @@ config CONSOLE_CBMEM_DUMP_TO_UART serial output in case serial console is disabled and the device resets itself while trying to boot the payload. +config CONSOLE_CBMEM_PRINT_PRE_BOOTBLOCK_CONTENTS + bool + help + Pre-bootblock stages (i.e., VBOOT_STARTS_BEFORE_BOOTBLOCK) might not + have the ability to log to the UART, so their console messages are + inaccessible until the boot processes gets into the payload or OS. + This feature will dump the pre-bootblock CBMEM console immediately + after the bootblock console is initialized. endif config CONSOLE_SPI_FLASH diff --git a/src/console/init.c b/src/console/init.c index eb6b637a6c..4f93997f95 100644 --- a/src/console/init.c +++ b/src/console/init.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include <commonlib/helpers.h> +#include <console/cbmem_console.h> #include <console/console.h> #include <console/uart.h> #include <console/streams.h> @@ -59,6 +60,9 @@ void console_init(void) console_inited = 1; + if (ENV_BOOTBLOCK && CONFIG(CONSOLE_CBMEM_PRINT_PRE_BOOTBLOCK_CONTENTS)) + cbmem_dump_console(); + printk(BIOS_NOTICE, "\n\ncoreboot-%s%s %s " ENV_STRING " starting (log level: %i)...\n", coreboot_version, coreboot_extra_version, coreboot_build, get_log_level()); |