diff options
author | Julien Viard de Galbert <jviarddegalbert@online.net> | 2018-02-20 15:01:27 +0100 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2018-02-23 08:44:59 +0000 |
commit | 4ecd42f9b52cd01b659c21f62e5ca2e79f5da4ab (patch) | |
tree | 28e1c06999c26fb71ee46b395fb7750afadb41de /src/console | |
parent | 8f825e0cd02ca25f86b677fba78b565b22798f5d (diff) | |
download | coreboot-4ecd42f9b52cd01b659c21f62e5ca2e79f5da4ab.tar.gz coreboot-4ecd42f9b52cd01b659c21f62e5ca2e79f5da4ab.tar.bz2 coreboot-4ecd42f9b52cd01b659c21f62e5ca2e79f5da4ab.zip |
console: Introduce a way for mainboard to override the loglevel
This change adds a config option to allow mainboard to override
the console loglevel. When the option is set, the platform has
to define the function get_console_loglevel returning a valid
loglevel value.
This allows a mainboard to sample a GPIO to switch the loglevel
value between different environments (qualification vs production)
without re-flashing.
Change-Id: Id6cc72b8fe5c4c50a6f83ce80e6440b078eec6e2
Signed-off-by: Julien Viard de Galbert <jviarddegalbert@online.net>
Reviewed-on: https://review.coreboot.org/23712
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src/console')
-rw-r--r-- | src/console/Kconfig | 10 | ||||
-rw-r--r-- | src/console/init.c | 4 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/console/Kconfig b/src/console/Kconfig index 0421f6ba4c39..e30edc929d8b 100644 --- a/src/console/Kconfig +++ b/src/console/Kconfig @@ -298,6 +298,14 @@ config SPI_CONSOLE This is currently working only in ramstage due to how the spi drivers are written. +config CONSOLE_OVERRIDE_LOGLEVEL + boolean + help + Set to "y" when the platform overrides the loglevel by providing + a get_console_loglevel routine. + +if !CONSOLE_OVERRIDE_LOGLEVEL + choice prompt "Default console log level" default DEFAULT_CONSOLE_LOGLEVEL_8 @@ -355,6 +363,8 @@ config DEFAULT_CONSOLE_LOGLEVEL help Map the log level config names to an integer. +endif + config NO_POST bool "Don't show any POST codes" default n diff --git a/src/console/init.c b/src/console/init.c index 422315ad2a4a..78c568f96ebb 100644 --- a/src/console/init.c +++ b/src/console/init.c @@ -34,7 +34,7 @@ static int console_loglevel = CONFIG_DEFAULT_CONSOLE_LOGLEVEL; static inline int get_log_level(void) { if (CONSOLE_LEVEL_CONST) - return CONFIG_DEFAULT_CONSOLE_LOGLEVEL; + return get_console_loglevel(); return console_loglevel; } @@ -49,7 +49,7 @@ static inline void set_log_level(int new_level) static void init_log_level(void) { - int debug_level = CONFIG_DEFAULT_CONSOLE_LOGLEVEL; + int debug_level = get_console_loglevel(); if (CONSOLE_LEVEL_CONST) return; |