console: Refactor uart8250/NE2K

Do this for symmetry with romstage_console.c.

Change-Id: If17acfc3da07b1dbefa87162c3c7168deb7b354a
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/5330
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
Kyösti Mälkki 2014-01-28 11:34:38 +02:00 committed by Patrick Georgi
parent 77f43e9b43
commit dbc7bd9dce
3 changed files with 21 additions and 20 deletions

View File

@ -41,6 +41,16 @@ static void __console_tx_byte(unsigned char byte)
#endif #endif
} }
static 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
}
static void __console_tx_nibble(unsigned nibble) static void __console_tx_nibble(unsigned nibble)
{ {
unsigned char digit; unsigned char digit;
@ -54,13 +64,8 @@ static void __console_tx_nibble(unsigned nibble)
static void __console_tx_char(int loglevel, unsigned char byte) static void __console_tx_char(int loglevel, unsigned char byte)
{ {
if (console_log_level(loglevel)) { if (console_log_level(loglevel)) {
#if CONFIG_CONSOLE_SERIAL __console_tx_byte(byte);
uart_tx_byte(byte); __console_tx_flush();
#endif
#if CONFIG_CONSOLE_NE2K
ne2k_append_data_byte(byte, CONFIG_CONSOLE_NE2K_IO_PORT);
ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT);
#endif
} }
} }
@ -69,10 +74,8 @@ static void __console_tx_hex8(int loglevel, unsigned char value)
if (console_log_level(loglevel)) { if (console_log_level(loglevel)) {
__console_tx_nibble((value >> 4U) & 0x0fU); __console_tx_nibble((value >> 4U) & 0x0fU);
__console_tx_nibble(value & 0x0fU); __console_tx_nibble(value & 0x0fU);
__console_tx_flush();
} }
#if CONFIG_CONSOLE_NE2K
ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT);
#endif
} }
static void __console_tx_hex16(int loglevel, unsigned short value) static void __console_tx_hex16(int loglevel, unsigned short value)
@ -82,10 +85,8 @@ static void __console_tx_hex16(int loglevel, unsigned short value)
__console_tx_nibble((value >> 8U) & 0x0fU); __console_tx_nibble((value >> 8U) & 0x0fU);
__console_tx_nibble((value >> 4U) & 0x0fU); __console_tx_nibble((value >> 4U) & 0x0fU);
__console_tx_nibble(value & 0x0fU); __console_tx_nibble(value & 0x0fU);
__console_tx_flush();
} }
#if CONFIG_CONSOLE_NE2K
ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT);
#endif
} }
static void __console_tx_hex32(int loglevel, unsigned int value) static void __console_tx_hex32(int loglevel, unsigned int value)
@ -99,10 +100,8 @@ static void __console_tx_hex32(int loglevel, unsigned int value)
__console_tx_nibble((value >> 8U) & 0x0fU); __console_tx_nibble((value >> 8U) & 0x0fU);
__console_tx_nibble((value >> 4U) & 0x0fU); __console_tx_nibble((value >> 4U) & 0x0fU);
__console_tx_nibble(value & 0x0fU); __console_tx_nibble(value & 0x0fU);
__console_tx_flush();
} }
#if CONFIG_CONSOLE_NE2K
ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT);
#endif
} }
static void __console_tx_string(int loglevel, const char *str) static void __console_tx_string(int loglevel, const char *str)
@ -114,9 +113,7 @@ static void __console_tx_string(int loglevel, const char *str)
__console_tx_byte('\r'); __console_tx_byte('\r');
__console_tx_byte(ch); __console_tx_byte(ch);
} }
#if CONFIG_CONSOLE_NE2K __console_tx_flush();
ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT);
#endif
} }
} }

View File

@ -33,7 +33,7 @@ void console_tx_byte(unsigned char byte)
usb_tx_byte(0, byte); usb_tx_byte(0, byte);
#endif #endif
#if CONFIG_CONSOLE_NE2K #if CONFIG_CONSOLE_NE2K
ne2k_append_data(&byte, 1, CONFIG_CONSOLE_NE2K_IO_PORT); ne2k_append_data_byte(byte, CONFIG_CONSOLE_NE2K_IO_PORT);
#endif #endif
#if CONFIG_CONSOLE_CBMEM && (CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__)) #if CONFIG_CONSOLE_CBMEM && (CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__))
cbmemc_tx_byte(byte); cbmemc_tx_byte(byte);

View File

@ -22,4 +22,8 @@
void ne2k_append_data(unsigned char *d, int len, unsigned int base); void ne2k_append_data(unsigned char *d, int len, unsigned int base);
int ne2k_init(unsigned int eth_nic_base); int ne2k_init(unsigned int eth_nic_base);
void ne2k_transmit(unsigned int eth_nic_base); void ne2k_transmit(unsigned int eth_nic_base);
#ifndef __ROMCC__
#define ne2k_append_data_byte(d, base) ne2k_append_data(&d, 1, base)
#endif
#endif /* _NE2K_H */ #endif /* _NE2K_H */