Kyösti Mälkki (kyosti.malkki@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5341
-gerrit
commit 5b1b310077bb3d8363b3a07d36c46cb95a0008d2 Author: Kyösti Mälkki kyosti.malkki@gmail.com Date: Sat Jan 25 14:35:24 2014 +0200
console: Centralized enable
Change-Id: I2489e7731d07ca7d5dd2ea8b6501c73f05d6edd8 Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com --- src/console/console.c | 62 ++++++++++--------------------------- src/include/console/cbmem_console.h | 20 +++++++++--- src/include/console/ne2k.h | 14 +++++++++ src/include/console/qemu_debugcon.h | 10 ++++++ src/include/console/spkmodem.h | 10 ++++++ src/include/console/uart.h | 15 ++++++++- src/include/console/usb.h | 15 +++++++++ 7 files changed, 96 insertions(+), 50 deletions(-)
diff --git a/src/console/console.c b/src/console/console.c index f66cd3f..cd72596 100644 --- a/src/console/console.c +++ b/src/console/console.c @@ -27,59 +27,31 @@
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(); }
void console_tx_nibble(unsigned nibble) diff --git a/src/include/console/cbmem_console.h b/src/include/console/cbmem_console.h index 69332aa..dccd46b 100644 --- a/src/include/console/cbmem_console.h +++ b/src/include/console/cbmem_console.h @@ -19,14 +19,26 @@ #ifndef _CONSOLE_CBMEM_CONSOLE_H_ #define _CONSOLE_CBMEM_CONSOLE_H_
-#if CONFIG_CACHE_AS_RAM || !defined(__PRE_RAM__) +#include <console/streams.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) +#endif + +#define __CBMEM_CONSOLE_ENABLE__ CONFIG_CONSOLE_CBMEM && \ + (ENV_ROMSTAGE && CONFIG_EARLY_CBMEM_INIT || ENV_RAMSTAGE) + +#if __CBMEM_CONSOLE_ENABLE__ +#define __cbmemc_init() cbmemc_init() +#define __cbmemc_tx_byte(x) cbmemc_tx_byte(x) +#else +#define __cbmemc_init() +#define __cbmemc_tx_byte(x) #endif
#endif diff --git a/src/include/console/ne2k.h b/src/include/console/ne2k.h index cb3c1ec..539b5c0 100644 --- a/src/include/console/ne2k.h +++ b/src/include/console/ne2k.h @@ -19,6 +19,9 @@
#ifndef _NE2K_H__ #define _NE2K_H__ + +#include <console/streams.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 +29,15 @@ void ne2k_transmit(unsigned int eth_nic_base); #ifndef __ROMCC__ #define ne2k_append_data_byte(d, base) ne2k_append_data(&d, 1, base) #endif + +#if CONFIG_CONSOLE_NE2K && (ENV_ROMSTAGE || ENV_RAMSTAGE) +#define __ne2k_init() ne2k_init(CONFIG_CONSOLE_NE2K_IO_PORT) +#define __ne2k_tx_byte(x) ne2k_append_data_byte(x, CONFIG_CONSOLE_NE2K_IO_PORT) +#define __ne2k_tx_flush() ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT) +#else +#define __ne2k_init() +#define __ne2k_tx_byte(x) +#define __ne2k_tx_flush() +#endif + #endif /* _NE2K_H */ diff --git a/src/include/console/qemu_debugcon.h b/src/include/console/qemu_debugcon.h index 63b1455..da6bc3c 100644 --- a/src/include/console/qemu_debugcon.h +++ b/src/include/console/qemu_debugcon.h @@ -1,7 +1,17 @@ #ifndef _QEMU_DEBUGCON_H_ #define _QEMU_DEBUGCON_H_
+#include <console/streams.h> + void qemu_debugcon_init(void); void qemu_debugcon_tx_byte(unsigned char data);
+#if CONFIG_CONSOLE_QEMU_DEBUGCON && (ENV_ROMSTAGE || ENV_RAMSTAGE) +#define __qemu_debugcon_init qemu_debugcon_init() +#define __qemu_debugcon_tx_byte(x) qemu_debugcon_tx_byte(x) +#else +#define __qemu_debugcon_init() +#define __qemu_debugcon_tx_byte(x) +#endif + #endif diff --git a/src/include/console/spkmodem.h b/src/include/console/spkmodem.h index 450dbe8..879a60a 100644 --- a/src/include/console/spkmodem.h +++ b/src/include/console/spkmodem.h @@ -1,7 +1,17 @@ #ifndef SPKMODEM_H #define SPKMODEM_H 1
+#include <console/streams.h> + void spkmodem_init(void); void spkmodem_tx_byte(unsigned char c);
+#if CONFIG_SPKMODEM && (ENV_ROMSTAGE || ENV_RAMSTAGE) +#define __spkmodem_init() spkmodem_init() +#define __spkmodem_tx_byte(x) spkmodem_tx_byte(x) +#else +#define __spkmodem_init() +#define __spkmodem_tx_byte(x) +#endif + #endif diff --git a/src/include/console/uart.h b/src/include/console/uart.h index 48d4309..566791a 100644 --- a/src/include/console/uart.h +++ b/src/include/console/uart.h @@ -20,7 +20,7 @@ #ifndef CONSOLE_UART_H #define CONSOLE_UART_H
-#include <stdint.h> +#include <console/streams.h>
/* Return the clock frequency UART uses as reference clock for * baudrate generator. */ @@ -48,4 +48,17 @@ unsigned int uart_platform_base(int idx);
void oxford_remap(unsigned int new_base);
+#define __CONSOLE_SERIAL_ENABLE__ CONFIG_CONSOLE_SERIAL && \ + (ENV_ROMSTAGE || ENV_RAMSTAGE || ENV_SMM && CONFIG_DEBUG_SMI) + +#if __CONSOLE_SERIAL_ENABLE__ +#define __uart_init() uart_init() +#define __uart_tx_byte(x) uart_tx_byte(x); +#define __uart_tx_flush() uart_tx_flush() +#else +#define __uart_init() +#define __uart_tx_byte(x) +#define __uart_tx_flush() +#endif + #endif /* CONSOLE_UART_H */ diff --git a/src/include/console/usb.h b/src/include/console/usb.h index 9591135..31059cb 100644 --- a/src/include/console/usb.h +++ b/src/include/console/usb.h @@ -21,6 +21,8 @@ #ifndef _CONSOLE_USB_H_ #define _CONSOLE_USB_H_
+#include <console/streams.h> + int usbdebug_init(void);
void usb_tx_byte(int idx, unsigned char data); @@ -28,4 +30,17 @@ void usb_tx_flush(int idx); 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__ +#define __usbdebug_init() usbdebug_init() +#define __usb_tx_byte(x) usb_tx_byte(0, x) +#define __usb_tx_flush() usb_tx_flush(0) +#else +#define __usbdebug_init() +#define __usb_tx_byte(x) +#define __usb_tx_flush() +#endif + #endif /* _CONSOLE_USB_H_ */