summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/console/Kconfig8
-rw-r--r--src/console/init.c4
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());