diff options
-rw-r--r-- | src/console/Kconfig | 10 | ||||
-rw-r--r-- | src/console/init.c | 4 | ||||
-rw-r--r-- | src/include/console/console.h | 12 |
3 files changed, 24 insertions, 2 deletions
diff --git a/src/console/Kconfig b/src/console/Kconfig index 0421f6ba4c..e30edc929d 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 422315ad2a..78c568f96e 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; diff --git a/src/include/console/console.h b/src/include/console/console.h index aa935e4579..1ecf89c288 100644 --- a/src/include/console/console.h +++ b/src/include/console/console.h @@ -64,6 +64,18 @@ void do_putchar(unsigned char byte); #define printk(LEVEL, fmt, args...) \ do { do_printk(LEVEL, fmt, ##args); } while (0) +#if IS_ENABLED(CONFIG_CONSOLE_OVERRIDE_LOGLEVEL) +/* + * This function should be implemented at mainboard level. + * The returned value will _replace_ the loglevel value; + */ +int get_console_loglevel(void); +#else +static inline int get_console_loglevel(void) +{ + return CONFIG_DEFAULT_CONSOLE_LOGLEVEL; +} +#endif #else static inline void console_init(void) {} static inline int console_log_level(int msg_level) { return 0; } |