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>
This commit is contained in:
parent
57e15e609e
commit
d906bb68c3
|
@ -71,6 +71,6 @@ asmlinkage void console_init(void)
|
||||||
|
|
||||||
console_hw_init();
|
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);
|
coreboot_version, coreboot_extra_version, coreboot_build);
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,8 +156,8 @@ static void copy_console_buffer(struct cbmem_console *src_cons_p)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (src_cons_p->cursor & OVERFLOW) {
|
if (src_cons_p->cursor & OVERFLOW) {
|
||||||
const char overflow_warning[] = "\n*** Pre-CBMEM console "
|
const char overflow_warning[] = "\n*** Pre-CBMEM " ENV_STRING
|
||||||
"overflowed, log truncated ***\n";
|
" console overflowed, log truncated! ***\n";
|
||||||
for (c = 0; c < sizeof(overflow_warning) - 1; c++)
|
for (c = 0; c < sizeof(overflow_warning) - 1; c++)
|
||||||
cbmemc_tx_byte(overflow_warning[c]);
|
cbmemc_tx_byte(overflow_warning[c]);
|
||||||
for (c = src_cons_p->cursor & CURSOR_MASK;
|
for (c = src_cons_p->cursor & CURSOR_MASK;
|
||||||
|
|
|
@ -670,9 +670,12 @@ static void dump_console(int one_boot_only)
|
||||||
cursor = 0;
|
cursor = 0;
|
||||||
if (one_boot_only) {
|
if (one_boot_only) {
|
||||||
#define BANNER_REGEX(stage) "\n\ncoreboot-[^\n]* " stage " starting\\.\\.\\.\n"
|
#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"),
|
const char *regex[] = { BANNER_REGEX("bootblock"),
|
||||||
BANNER_REGEX("romstage"),
|
BANNER_REGEX("romstage"),
|
||||||
BANNER_REGEX("ramstage")};
|
OVERFLOW_REGEX("romstage"),
|
||||||
|
BANNER_REGEX("ramstage"),
|
||||||
|
OVERFLOW_REGEX("ramstage") };
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; !cursor && i < ARRAY_SIZE(regex); i++) {
|
for (i = 0; !cursor && i < ARRAY_SIZE(regex); i++) {
|
||||||
|
|
Loading…
Reference in New Issue