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:
Kyösti Mälkki
2014-02-26 15:19:04 +02:00
parent e8792be223
commit f339086265
8 changed files with 120 additions and 67 deletions

View File

@ -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) {};