From 4a00ccc74810b7761a046cf125ddf6855f7f7064 Mon Sep 17 00:00:00 2001 From: Nico Huber Date: Mon, 4 Jun 2018 15:10:54 +0200 Subject: [PATCH] console/hw-debug_sink: Do not cache state of log level As we suppress output now before console_init() is done, the log level read at start of ramstage is always -1. Change-Id: Ia078d647c47aaa41ca9f2df9cf8506148ef86538 Signed-off-by: Nico Huber Reviewed-on: https://review.coreboot.org/26832 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Paul Menzel --- src/console/hw-debug_sink.adb | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/console/hw-debug_sink.adb b/src/console/hw-debug_sink.adb index 5a165562dc..4331b87549 100644 --- a/src/console/hw-debug_sink.adb +++ b/src/console/hw-debug_sink.adb @@ -19,14 +19,19 @@ use type Interfaces.C.int; package body HW.Debug_Sink is - Sink_Enabled : Boolean; + function console_log_level + (msg_level : Interfaces.C.int) + return Interfaces.C.int; + pragma Import (C, console_log_level, "console_log_level"); + + Msg_Level_BIOS_DEBUG : constant := 7; procedure console_tx_byte (chr : Interfaces.C.char); pragma Import (C, console_tx_byte, "console_tx_byte"); procedure Put (Item : String) is begin - if Sink_Enabled then + if console_log_level (Msg_Level_BIOS_DEBUG) /= 0 then for Idx in Item'Range loop console_tx_byte (Interfaces.C.To_C (Item (Idx))); end loop; @@ -35,7 +40,7 @@ package body HW.Debug_Sink is procedure Put_Char (Item : Character) is begin - if Sink_Enabled then + if console_log_level (Msg_Level_BIOS_DEBUG) /= 0 then console_tx_byte (Interfaces.C.To_C (Item)); end if; end Put_Char; @@ -45,15 +50,4 @@ package body HW.Debug_Sink is Put_Char (Character'Val (16#0a#)); end New_Line; - ---------------------------------------------------------------------------- - - function console_log_level - (msg_level : Interfaces.C.int) - return Interfaces.C.int; - pragma Import (C, console_log_level, "console_log_level"); - - Msg_Level_BIOS_DEBUG : constant := 7; - -begin - Sink_Enabled := console_log_level (Msg_Level_BIOS_DEBUG) /= 0; end HW.Debug_Sink;