uart8250mem: Unify calls with generic UART

NOTE: UART base for SMM continues to be broken, as it does not use
the address resource allocator has assigned.

Change-Id: I79f2ca8427a33a3c719adfe277c24dab79a33ef3
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/5235
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Kyösti Mälkki
2014-02-15 10:19:23 +02:00
parent 4770749edc
commit 2b95da01e6
10 changed files with 104 additions and 126 deletions

View File

@ -101,12 +101,12 @@ void console_init(void)
#if defined(__BOOT_BLOCK__) && CONFIG_BOOTBLOCK_CONSOLE || \
!defined(__BOOT_BLOCK__) && CONFIG_EARLY_CONSOLE
#if CONFIG_DRIVERS_OXFORD_OXPCIE
oxford_init();
#endif
#if CONFIG_CONSOLE_SERIAL
uart_init();
#endif
#if CONFIG_DRIVERS_OXFORD_OXPCIE && CONFIG_CONSOLE_SERIAL8250MEM
oxford_init();
#endif
#if CONFIG_CONSOLE_NE2K
ne2k_init(CONFIG_CONSOLE_NE2K_IO_PORT);
#endif

View File

@ -19,47 +19,30 @@
#include <console/console.h>
#include <console/uart.h>
#include <uart8250.h>
static u32 uart_bar = 0;
void uartmem_init(void)
static void uartmem_init(void)
{
uart_bar = uart_mem_init();
}
u32 uartmem_getbaseaddr(void)
{
return uart_bar;
uart_init();
}
static void uartmem_tx_byte(unsigned char data)
{
if (!uart_bar)
return;
uart8250_mem_tx_byte(uart_bar, data);
uart_tx_byte(data);
}
static void uartmem_tx_flush(void)
{
uart8250_mem_tx_flush(uart_bar);
uart_tx_flush();
}
static unsigned char uartmem_rx_byte(void)
{
if (!uart_bar)
return 0;
return uart8250_mem_rx_byte(uart_bar);
return uart_rx_byte();
}
static int uartmem_tst_byte(void)
{
if (!uart_bar)
return 0;
return uart8250_mem_can_rx_byte(uart_bar);
return uart_can_rx_byte();
}
static const struct console_driver uart8250mem_console __console = {