Attention is currently required from: Nico Huber. Hello Nico Huber,
I'd like you to do a code review. Please visit
https://review.coreboot.org/c/coreboot/+/56665
to review the following change.
Change subject: console/hw-debug_sink: Update for fast/slow console distinction ......................................................................
console/hw-debug_sink: Update for fast/slow console distinction
Change-Id: I9ac110c7b812f912f0f87cbe4aa218d4a78e6aaf Signed-off-by: Nico Huber nico.huber@secunet.com --- M src/console/hw-debug_sink.adb 1 file changed, 28 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/65/56665/1
diff --git a/src/console/hw-debug_sink.adb b/src/console/hw-debug_sink.adb index f30b73f..6a2889d 100644 --- a/src/console/hw-debug_sink.adb +++ b/src/console/hw-debug_sink.adb @@ -1,7 +1,9 @@ -- SPDX-License-Identifier: GPL-2.0-only
with Interfaces.C; +with CB.Config;
+use CB; use type Interfaces.C.int;
package body HW.Debug_Sink is @@ -13,21 +15,43 @@
Msg_Level_BIOS_DEBUG : constant := 7;
+ CONSOLE_LOG_FAST : constant := 1; + CONSOLE_LOG_ALL : constant := 2; + + procedure cbmemc_tx_byte (chr : Interfaces.C.char); + pragma Import (C, cbmemc_tx_byte, "cbmemc_tx_byte"); + procedure console_tx_byte (chr : Interfaces.C.char); pragma Import (C, console_tx_byte, "console_tx_byte");
- procedure Put (Item : String) is + procedure Put (Item : String) + is + console_log : constant Interfaces.C.int := + console_log_level (Msg_Level_BIOS_DEBUG); begin - if console_log_level (Msg_Level_BIOS_DEBUG) /= 0 then + if console_log = CONSOLE_LOG_FAST then + if Config.CONSOLE_CBMEM then + for Idx in Item'Range loop + cbmemc_tx_byte (Interfaces.C.To_C (Item (Idx))); + end loop; + end if; + elsif console_log = CONSOLE_LOG_ALL then for Idx in Item'Range loop console_tx_byte (Interfaces.C.To_C (Item (Idx))); end loop; end if; end Put;
- procedure Put_Char (Item : Character) is + procedure Put_Char (Item : Character) + is + console_log : constant Interfaces.C.int := + console_log_level (Msg_Level_BIOS_DEBUG); begin - if console_log_level (Msg_Level_BIOS_DEBUG) /= 0 then + if console_log = CONSOLE_LOG_FAST then + if Config.CONSOLE_CBMEM then + cbmemc_tx_byte (Interfaces.C.To_C (Item)); + end if; + elsif console_log = CONSOLE_LOG_ALL then console_tx_byte (Interfaces.C.To_C (Item)); end if; end Put_Char;