console: Add loglevel prefix to interactive consoles

In an attempt to make loglevels more visible (and therefore useful,
hopefully), this patch adds a prefix indicating the log level to every
line sent to an "interactive" console (such as a UART). If the code
contains a `printk(BIOS_DEBUG, "This is a debug message!\n"), it will
now show up as

  [DEBUG]  This is a debug message!

on the UART output.

"Stored" consoles (such as in CBMEM) will get a similar but more
space-efficient feature in a later CL.

Signed-off-by: Julius Werner <jwerner@chromium.org>
Change-Id: Ic83413475400821f8097ef1819a293ee8926bb0b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61306
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
This commit is contained in:
Julius Werner
2022-01-21 15:15:29 -08:00
committed by Felix Held
parent 1ee6e4ab6c
commit 7cd8ba6eda
4 changed files with 70 additions and 9 deletions

View File

@@ -157,4 +157,27 @@
#define BIOS_NEVER 9
/** @} */
#ifndef __ASSEMBLER__
/*
* When printing logs, lines should be printed with the following prefixes in
* front of them according to the BIOS_LOG_PREFIX_PATTERN printf() pattern.
*/
#define BIOS_LOG_PREFIX_PATTERN "[%.5s] "
#define BIOS_LOG_PREFIX_MAX_LEVEL BIOS_SPEW
static const char bios_log_prefix[BIOS_LOG_PREFIX_MAX_LEVEL + 1][5] = {
/* Note: These strings are *not* null-terminated to save space. */
[BIOS_EMERG] = "EMERG",
[BIOS_ALERT] = "ALERT",
[BIOS_CRIT] = "CRIT ",
[BIOS_ERR] = "ERROR",
[BIOS_WARNING] = "WARN ",
[BIOS_NOTICE] = "NOTE ",
[BIOS_INFO] = "INFO ",
[BIOS_DEBUG] = "DEBUG",
[BIOS_SPEW] = "SPEW ",
};
#endif /* __ASSEMBLER__ */
#endif /* LOGLEVEL_H */