console: Simplify the enable rules
Consoles on CBMEM and USB have somewhat complex rules and dependencies when they can be active. Use simple variables to test which stage of boot is being built for each console. Change-Id: I2489e7731d07ca7d5dd2ea8b6501c73f05d6edd8 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/5341 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@gmail.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
@ -21,10 +21,10 @@
|
||||
#define CONSOLE_CONSOLE_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <rules.h>
|
||||
#include <console/post_codes.h>
|
||||
|
||||
#ifndef __ROMCC__
|
||||
int console_log_level(int msg_level);
|
||||
void post_code(u8 value);
|
||||
#if CONFIG_CMOS_POST_EXTRA
|
||||
void post_log_extra(u32 value);
|
||||
@ -40,32 +40,31 @@ void post_log_clear(void);
|
||||
void mainboard_post(u8 value);
|
||||
void __attribute__ ((noreturn)) die(const char *msg);
|
||||
|
||||
#if defined(__BOOT_BLOCK__) && !CONFIG_BOOTBLOCK_CONSOLE || \
|
||||
defined(__SMM__) && !CONFIG_DEBUG_SMI || \
|
||||
(defined(__PRE_RAM__) && !defined(__BOOT_BLOCK__)) && !CONFIG_EARLY_CONSOLE
|
||||
|
||||
/* Do nothing. */
|
||||
static inline void printk(int LEVEL, const char *fmt, ...) {}
|
||||
static inline void do_putchar(unsigned char byte) {}
|
||||
static inline void console_init(void) {}
|
||||
|
||||
#else
|
||||
#define __CONSOLE_ENABLE__ \
|
||||
((ENV_BOOTBLOCK && CONFIG_BOOTBLOCK_CONSOLE) || \
|
||||
(ENV_ROMSTAGE && CONFIG_EARLY_CONSOLE) || \
|
||||
ENV_RAMSTAGE || (ENV_SMM && CONFIG_DEBUG_SMI))
|
||||
|
||||
#if __CONSOLE_ENABLE__
|
||||
void console_init(void);
|
||||
int console_log_level(int msg_level);
|
||||
int do_printk(int msg_level, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
|
||||
void do_putchar(unsigned char byte);
|
||||
|
||||
#define printk(LEVEL, fmt, args...) \
|
||||
do { \
|
||||
do_printk(LEVEL, fmt, ##args); \
|
||||
} while(0)
|
||||
#define printk(LEVEL, fmt, args...) \
|
||||
do { do_printk(LEVEL, fmt, ##args); } while(0)
|
||||
|
||||
#else
|
||||
static inline void console_init(void) {}
|
||||
static inline int console_log_level(int msg_level) { return 0; }
|
||||
static inline void printk(int LEVEL, const char *fmt, ...) {}
|
||||
static inline void do_putchar(unsigned char byte) {}
|
||||
#endif
|
||||
|
||||
#if CONFIG_CHROMEOS
|
||||
/* FIXME: Collision of varargs with AMD headers without guard. */
|
||||
#include <console/vtxprintf.h>
|
||||
#if !defined(__PRE_RAM__) || CONFIG_EARLY_CONSOLE
|
||||
#if __CONSOLE_ENABLE__
|
||||
void do_vtxprintf(const char *fmt, va_list args);
|
||||
#else
|
||||
static inline void do_vtxprintf(const char *fmt, va_list args) {};
|
||||
|
Reference in New Issue
Block a user