diff --git a/src/console/console.c b/src/console/console.c
index e0e505c..9b1c255 100644
--- a/src/console/console.c
+++ b/src/console/console.c
@@ -27,57 +27,29 @@
 
 void console_hw_init(void)
 {
-#if CONFIG_CONSOLE_SERIAL
-	uart_init();
-#endif
-#if CONFIG_CONSOLE_NE2K
-	ne2k_init(CONFIG_CONSOLE_NE2K_IO_PORT);
-#endif
-#if CONFIG_CONSOLE_CBMEM && !defined(__BOOT_BLOCK__) && (CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__))
-	cbmemc_init();
-#endif
-#if CONFIG_SPKMODEM
-	spkmodem_init();
-#endif
-#if CONFIG_CONSOLE_USB && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__))
-	usbdebug_init();
-#endif
-#if CONFIG_CONSOLE_QEMU_DEBUGCON
-	qemu_debugcon_init();
-#endif
+	__cbmemc_init();
+	__spkmodem_init();
+	__qemu_debugcon_init();
+
+	__uart_init();
+	__ne2k_init();
+	__usbdebug_init();
 }
 
 void console_tx_byte(unsigned char byte)
 {
-#if CONFIG_CONSOLE_SERIAL
-	uart_tx_byte(byte);
-#endif
-#if CONFIG_CONSOLE_USB && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__))
-	usb_tx_byte(0, byte);
-#endif
-#if CONFIG_CONSOLE_NE2K
-	ne2k_append_data_byte(byte, CONFIG_CONSOLE_NE2K_IO_PORT);
-#endif
-#if CONFIG_CONSOLE_CBMEM && !defined(__BOOT_BLOCK__) && (CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__))
-	cbmemc_tx_byte(byte);
-#endif
-#if CONFIG_SPKMODEM
-	spkmodem_tx_byte(byte);
-#endif
-#if CONFIG_CONSOLE_QEMU_DEBUGCON
-	qemu_debugcon_tx_byte(byte);
-#endif
+	__cbmemc_tx_byte(byte);
+	__spkmodem_tx_byte(byte);
+	__qemu_debugcon_tx_byte(byte);
+
+	__uart_tx_byte(byte);
+	__ne2k_tx_byte(byte);
+	__usb_tx_byte(byte);
 }
 
 void console_tx_flush(void)
 {
-#if CONFIG_CONSOLE_SERIAL
-	uart_tx_flush();
-#endif
-#if CONFIG_CONSOLE_NE2K
-	ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT);
-#endif
-#if CONFIG_CONSOLE_USB && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__))
-	usb_tx_flush(0);
-#endif
+	__uart_tx_flush();
+	__ne2k_tx_flush();
+	__usb_tx_flush();
 }
diff --git a/src/include/console/cbmem_console.h b/src/include/console/cbmem_console.h
index 4f4a54f..e7c6357 100644
--- a/src/include/console/cbmem_console.h
+++ b/src/include/console/cbmem_console.h
@@ -19,14 +19,27 @@
 #ifndef _CONSOLE_CBMEM_CONSOLE_H_
 #define _CONSOLE_CBMEM_CONSOLE_H_
 
-#if CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__)
+#include <rules.h>
+#include <stdint.h>
+
 void cbmemc_init(void);
-void cbmemc_reinit(void);
 void cbmemc_tx_byte(unsigned char data);
+
+#if CONFIG_CONSOLE_CBMEM
+void cbmemc_reinit(void);
 #else
-#define cbmemc_init()
-#define cbmemc_reinit()
-#define cbmemc_tx_byte(x)
+static inline void cbmemc_reinit(void) {}
+#endif
+
+#define __CBMEM_CONSOLE_ENABLE__	CONFIG_CONSOLE_CBMEM && \
+	((ENV_ROMSTAGE && CONFIG_EARLY_CBMEM_INIT) || ENV_RAMSTAGE)
+
+#if __CBMEM_CONSOLE_ENABLE__
+static inline void __cbmemc_init(void)	{ cbmemc_init(); }
+static inline void __cbmemc_tx_byte(u8 data)	{ cbmemc_tx_byte(data); }
+#else
+static inline void __cbmemc_init(void)	{}
+static inline void __cbmemc_tx_byte(u8 data)	{}
 #endif
 
 #endif
diff --git a/src/include/console/console.h b/src/include/console/console.h
index a15f608..78426b2 100644
--- a/src/include/console/console.h
+++ b/src/include/console/console.h
@@ -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 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
+#define __CONSOLE_ENABLE__ \
+	((ENV_BOOTBLOCK && CONFIG_BOOTBLOCK_CONSOLE) || \
+	 (ENV_ROMSTAGE && CONFIG_EARLY_CONSOLE) || \
+	 ENV_RAMSTAGE || (ENV_SMM && CONFIG_DEBUG_SMI))
 
-/* 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
-
+#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) {};
diff --git a/src/include/console/ne2k.h b/src/include/console/ne2k.h
index cb3c1ec..16cecb5 100644
--- a/src/include/console/ne2k.h
+++ b/src/include/console/ne2k.h
@@ -19,6 +19,10 @@
 
 #ifndef _NE2K_H__
 #define _NE2K_H__
+
+#include <rules.h>
+#include <stdint.h>
+
 void ne2k_append_data(unsigned char *d, int len, unsigned int base);
 int ne2k_init(unsigned int eth_nic_base);
 void ne2k_transmit(unsigned int eth_nic_base);
@@ -26,4 +30,15 @@
 #ifndef __ROMCC__
 #define ne2k_append_data_byte(d, base) ne2k_append_data(&d, 1, base)
 #endif
+
+#if CONFIG_CONSOLE_NE2K && (ENV_ROMSTAGE || ENV_RAMSTAGE)
+static inline void __ne2k_init(void)		{ ne2k_init(CONFIG_CONSOLE_NE2K_IO_PORT); }
+static inline void __ne2k_tx_byte(u8 data)	{ ne2k_append_data_byte(data, CONFIG_CONSOLE_NE2K_IO_PORT); }
+static inline void __ne2k_tx_flush(void)	{ ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT); }
+#else
+static inline void __ne2k_init(void)		{}
+static inline void __ne2k_tx_byte(u8 data)	{}
+static inline void __ne2k_tx_flush(void)	{}
+#endif
+
 #endif /* _NE2K_H */
diff --git a/src/include/console/qemu_debugcon.h b/src/include/console/qemu_debugcon.h
index 63b1455..257ae58 100644
--- a/src/include/console/qemu_debugcon.h
+++ b/src/include/console/qemu_debugcon.h
@@ -1,7 +1,18 @@
 #ifndef _QEMU_DEBUGCON_H_
 #define _QEMU_DEBUGCON_H_
 
+#include <rules.h>
+#include <stdint.h>
+
 void qemu_debugcon_init(void);
 void qemu_debugcon_tx_byte(unsigned char data);
 
+#if CONFIG_CONSOLE_QEMU_DEBUGCON && (ENV_ROMSTAGE || ENV_RAMSTAGE)
+static inline void __qemu_debugcon_init(void)	{ qemu_debugcon_init(); }
+static inline void __qemu_debugcon_tx_byte(u8 data)	{ qemu_debugcon_tx_byte(data); }
+#else
+static inline void __qemu_debugcon_init(void)	{}
+static inline void __qemu_debugcon_tx_byte(u8 data)	{}
+#endif
+
 #endif
diff --git a/src/include/console/spkmodem.h b/src/include/console/spkmodem.h
index 450dbe8..dfd21d4 100644
--- a/src/include/console/spkmodem.h
+++ b/src/include/console/spkmodem.h
@@ -1,7 +1,18 @@
 #ifndef SPKMODEM_H
 #define SPKMODEM_H 1
 
+#include <rules.h>
+#include <stdint.h>
+
 void spkmodem_init(void);
 void spkmodem_tx_byte(unsigned char c);
 
+#if CONFIG_SPKMODEM && (ENV_ROMSTAGE || ENV_RAMSTAGE)
+static inline void __spkmodem_init(void)		{ spkmodem_init(); }
+static inline void __spkmodem_tx_byte(u8 data)	{ spkmodem_tx_byte(data); }
+#else
+static inline void __spkmodem_init(void)		{}
+static inline void __spkmodem_tx_byte(u8 data)	{}
+#endif
+
 #endif
diff --git a/src/include/console/uart.h b/src/include/console/uart.h
index 4551408..5866ca4 100644
--- a/src/include/console/uart.h
+++ b/src/include/console/uart.h
@@ -20,6 +20,7 @@
 #ifndef CONSOLE_UART_H
 #define CONSOLE_UART_H
 
+#include <rules.h>
 #include <stdint.h>
 
 /* Return the clock frequency UART uses as reference clock for
@@ -51,8 +52,23 @@
 {
 	return (void *)uart_platform_base(idx);
 }
-#endif
 
 void oxford_remap(unsigned int new_base);
 
+#define __CONSOLE_SERIAL_ENABLE__	CONFIG_CONSOLE_SERIAL && \
+	(ENV_BOOTBLOCK || ENV_ROMSTAGE || ENV_RAMSTAGE || \
+	(ENV_SMM && CONFIG_DEBUG_SMI))
+
+#if __CONSOLE_SERIAL_ENABLE__
+static inline void __uart_init(void)		{ uart_init(); }
+static inline void __uart_tx_byte(u8 data)	{ uart_tx_byte(data); }
+static inline void __uart_tx_flush(void)	{ uart_tx_flush(); }
+#else
+static inline void __uart_init(void)		{}
+static inline void __uart_tx_byte(u8 data)	{}
+static inline void __uart_tx_flush(void)	{}
+#endif
+
+#endif /* __ROMCC__ */
+
 #endif /* CONSOLE_UART_H */
diff --git a/src/include/console/usb.h b/src/include/console/usb.h
index 9591135..57ea4eb 100644
--- a/src/include/console/usb.h
+++ b/src/include/console/usb.h
@@ -21,6 +21,9 @@
 #ifndef _CONSOLE_USB_H_
 #define _CONSOLE_USB_H_
 
+#include <rules.h>
+#include <stdint.h>
+
 int usbdebug_init(void);
 
 void usb_tx_byte(int idx, unsigned char data);
@@ -28,4 +31,17 @@
 unsigned char usb_rx_byte(int idx);
 int usb_can_rx_byte(int idx);
 
+#define __CONSOLE_USB_ENABLE__	CONFIG_CONSOLE_USB && \
+	((ENV_ROMSTAGE && CONFIG_USBDEBUG_IN_ROMSTAGE) || ENV_RAMSTAGE)
+
+#if __CONSOLE_USB_ENABLE__
+static inline void __usbdebug_init(void)	{ usbdebug_init(); }
+static inline void __usb_tx_byte(u8 data)	{ usb_tx_byte(0, data); }
+static inline void __usb_tx_flush(void)	{ usb_tx_flush(0); }
+#else
+static inline void __usbdebug_init(void)	{}
+static inline void __usb_tx_byte(u8 data)	{}
+static inline void __usb_tx_flush(void)	{}
+#endif
+
 #endif /* _CONSOLE_USB_H_ */
