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 <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/26832
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Nico Huber 2018-06-04 15:10:54 +02:00 committed by Martin Roth
parent 5ce400178a
commit 4a00ccc748
1 changed files with 8 additions and 14 deletions

View File

@ -19,14 +19,19 @@ use type Interfaces.C.int;
package body HW.Debug_Sink is 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); procedure console_tx_byte (chr : Interfaces.C.char);
pragma Import (C, console_tx_byte, "console_tx_byte"); pragma Import (C, console_tx_byte, "console_tx_byte");
procedure Put (Item : String) is procedure Put (Item : String) is
begin begin
if Sink_Enabled then if console_log_level (Msg_Level_BIOS_DEBUG) /= 0 then
for Idx in Item'Range loop for Idx in Item'Range loop
console_tx_byte (Interfaces.C.To_C (Item (Idx))); console_tx_byte (Interfaces.C.To_C (Item (Idx)));
end loop; end loop;
@ -35,7 +40,7 @@ package body HW.Debug_Sink is
procedure Put_Char (Item : Character) is procedure Put_Char (Item : Character) is
begin begin
if Sink_Enabled then if console_log_level (Msg_Level_BIOS_DEBUG) /= 0 then
console_tx_byte (Interfaces.C.To_C (Item)); console_tx_byte (Interfaces.C.To_C (Item));
end if; end if;
end Put_Char; end Put_Char;
@ -45,15 +50,4 @@ package body HW.Debug_Sink is
Put_Char (Character'Val (16#0a#)); Put_Char (Character'Val (16#0a#));
end New_Line; 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; end HW.Debug_Sink;