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

@ -25,28 +25,35 @@ void console_hw_init(void)
__system76_ec_init();
}
void console_tx_byte(unsigned char byte)
void console_interactive_tx_byte(unsigned char byte, void *data_unused)
{
__cbmemc_tx_byte(byte);
__spkmodem_tx_byte(byte);
__qemu_debugcon_tx_byte(byte);
/* Some consoles want newline conversion
* to keep terminals happy.
*/
if (byte == '\n') {
/* Some consoles want newline conversion to keep terminals happy. */
__uart_tx_byte('\r');
__usb_tx_byte('\r');
}
__spkmodem_tx_byte(byte);
__qemu_debugcon_tx_byte(byte);
__uart_tx_byte(byte);
__ne2k_tx_byte(byte);
__usb_tx_byte(byte);
__spiconsole_tx_byte(byte);
__flashconsole_tx_byte(byte);
__system76_ec_tx_byte(byte);
}
void console_stored_tx_byte(unsigned char byte, void *data_unused)
{
__flashconsole_tx_byte(byte);
__cbmemc_tx_byte(byte);
}
void console_tx_byte(unsigned char byte)
{
console_interactive_tx_byte(byte, NULL);
console_stored_tx_byte(byte, NULL);
}
void console_tx_flush(void)
{
__uart_tx_flush();