aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2017-05-16 13:54:18 -0700
committerJulius Werner <jwerner@chromium.org>2017-05-18 19:49:43 +0200
commitd906bb68c3be218046d257c6870c9636e0e198cf (patch)
treee798a73a4a6690cf253f7f6530c5a7c75da1ce8d
parent57e15e609e090ac7ec02b570d653b64cf12e4f88 (diff)
cbmem_console: Improve 'cbmem -1' behavior for truncated pre-CBMEM logs
The 'cbmem -1' flag that cuts off console output before the last boot will ignore content from earlier stages if it was truncated due to lack of pre-CBMEM console space. This patch makes the "log truncated" message more specific and adds it as an additional cut-off marker to 'cbmem -1' to counteract that problem. Also raise the log level of the coreboot banner one step to BIOS_NOTICE to make it more likely to be included in the output for 'cbmem -1' to find. (I believe NOTICE is reasonable but I wouldn't want to go as far as WARN which should be reserved for actual problems. Of course this is not ideal, but then again, our whole log-level system really isn't... it would be better if we could make it always print a banner to the CBMEM console without affecting the UART at the same time, but that would require a larger amount of work.) Change-Id: I58288593dfa757e14f4a9da4ffa7e27b0b66feb9 Reported-by: https://ticket.coreboot.org/issues/117 Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/19720 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/console/init.c2
-rw-r--r--src/lib/cbmem_console.c4
-rw-r--r--util/cbmem/cbmem.c5
3 files changed, 7 insertions, 4 deletions
diff --git a/src/console/init.c b/src/console/init.c
index 91d6492e4d..1029e6b14f 100644
--- a/src/console/init.c
+++ b/src/console/init.c
@@ -71,6 +71,6 @@ asmlinkage void console_init(void)
console_hw_init();
- printk(BIOS_INFO, "\n\ncoreboot-%s%s %s " ENV_STRING " starting...\n",
+ printk(BIOS_NOTICE, "\n\ncoreboot-%s%s %s " ENV_STRING " starting...\n",
coreboot_version, coreboot_extra_version, coreboot_build);
}
diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c
index eb0cc93ee4..b0008b1d9c 100644
--- a/src/lib/cbmem_console.c
+++ b/src/lib/cbmem_console.c
@@ -156,8 +156,8 @@ static void copy_console_buffer(struct cbmem_console *src_cons_p)
return;
if (src_cons_p->cursor & OVERFLOW) {
- const char overflow_warning[] = "\n*** Pre-CBMEM console "
- "overflowed, log truncated ***\n";
+ const char overflow_warning[] = "\n*** Pre-CBMEM " ENV_STRING
+ " console overflowed, log truncated! ***\n";
for (c = 0; c < sizeof(overflow_warning) - 1; c++)
cbmemc_tx_byte(overflow_warning[c]);
for (c = src_cons_p->cursor & CURSOR_MASK;
diff --git a/util/cbmem/cbmem.c b/util/cbmem/cbmem.c
index 48a1bc963d..daa7b566ca 100644
--- a/util/cbmem/cbmem.c
+++ b/util/cbmem/cbmem.c
@@ -670,9 +670,12 @@ static void dump_console(int one_boot_only)
cursor = 0;
if (one_boot_only) {
#define BANNER_REGEX(stage) "\n\ncoreboot-[^\n]* " stage " starting\\.\\.\\.\n"
+#define OVERFLOW_REGEX(stage) "\n*** Pre-CBMEM " stage " console overflowed"
const char *regex[] = { BANNER_REGEX("bootblock"),
BANNER_REGEX("romstage"),
- BANNER_REGEX("ramstage")};
+ OVERFLOW_REGEX("romstage"),
+ BANNER_REGEX("ramstage"),
+ OVERFLOW_REGEX("ramstage") };
int i;
for (i = 0; !cursor && i < ARRAY_SIZE(regex); i++) {