summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/allwinner/a10/uart_console.c23
-rw-r--r--src/cpu/samsung/exynos5250/uart.c21
-rw-r--r--src/cpu/samsung/exynos5420/uart.c21
-rw-r--r--src/cpu/ti/am335x/uart.c21
4 files changed, 59 insertions, 27 deletions
diff --git a/src/cpu/allwinner/a10/uart_console.c b/src/cpu/allwinner/a10/uart_console.c
index aea1189e66..d6b91e763a 100644
--- a/src/cpu/allwinner/a10/uart_console.c
+++ b/src/cpu/allwinner/a10/uart_console.c
@@ -10,6 +10,7 @@
#include <types.h>
#include <console/uart.h>
#include <arch/io.h>
+#include <boot/coreboot_tables.h>
#include <cpu/allwinner/a10/uart.h>
@@ -43,6 +44,11 @@ unsigned int uart_platform_refclk(void)
return 24000000;
}
+unsigned int uart_platform_base(int idx)
+{
+ return (unsigned int)get_console_uart_base_addr();
+}
+
void uart_init(void)
{
void *uart_base = get_console_uart_base_addr();
@@ -63,14 +69,19 @@ void uart_tx_byte(unsigned char data)
a10_uart_tx_blocking(get_console_uart_base_addr(), data);
}
-#if !defined(__PRE_RAM__)
-uint32_t uartmem_getbaseaddr(void)
+void uart_tx_flush(void)
{
- return (uint32_t) get_console_uart_base_addr();
}
-#endif
-void uart_tx_flush(void)
+#ifndef __PRE_RAM__
+void uart_fill_lb(void *data)
{
-}
+ struct lb_serial serial;
+ serial.type = LB_SERIAL_TYPE_MEMORY_MAPPED;
+ serial.baseaddr = uart_platform_base(0);
+ serial.baud = default_baudrate();
+ lb_add_serial(&serial, data);
+ lb_add_console(LB_TAG_CONSOLE_SERIAL8250MEM, data);
+}
+#endif
diff --git a/src/cpu/samsung/exynos5250/uart.c b/src/cpu/samsung/exynos5250/uart.c
index 860d020a92..1dabc093eb 100644
--- a/src/cpu/samsung/exynos5250/uart.c
+++ b/src/cpu/samsung/exynos5250/uart.c
@@ -19,6 +19,7 @@
#include <console/uart.h>
#include <arch/io.h>
+#include <boot/coreboot_tables.h>
#include "uart.h"
#include "clk.h"
#include "cpu.h"
@@ -159,13 +160,6 @@ unsigned int uart_platform_base(int idx)
return CONFIG_CONSOLE_SERIAL_UART_ADDRESS;
}
-#if !defined(__PRE_RAM__)
-uint32_t uartmem_getbaseaddr(void)
-{
- return uart_platform_base(0);
-}
-#endif
-
void uart_init(void)
{
struct s5p_uart *uart = uart_platform_baseptr(0);
@@ -189,3 +183,16 @@ void uart_tx_flush(void)
struct s5p_uart *uart = uart_platform_baseptr(0);
exynos5_uart_tx_flush(uart);
}
+
+#ifndef __PRE_RAM__
+void uart_fill_lb(void *data)
+{
+ struct lb_serial serial;
+ serial.type = LB_SERIAL_TYPE_MEMORY_MAPPED;
+ serial.baseaddr = uart_platform_base(0);
+ serial.baud = default_baudrate();
+ lb_add_serial(&serial, data);
+
+ lb_add_console(LB_TAG_CONSOLE_SERIAL8250MEM, data);
+}
+#endif
diff --git a/src/cpu/samsung/exynos5420/uart.c b/src/cpu/samsung/exynos5420/uart.c
index 82b1265972..290eb35a8d 100644
--- a/src/cpu/samsung/exynos5420/uart.c
+++ b/src/cpu/samsung/exynos5420/uart.c
@@ -19,6 +19,7 @@
#include <console/uart.h>
#include <arch/io.h>
+#include <boot/coreboot_tables.h>
#include "uart.h"
#include "clk.h"
#include "cpu.h"
@@ -151,13 +152,6 @@ unsigned int uart_platform_base(int idx)
return CONFIG_CONSOLE_SERIAL_UART_ADDRESS;
}
-#if !defined(__PRE_RAM__)
-uint32_t uartmem_getbaseaddr(void)
-{
- return uart_platform_base(0);
-}
-#endif
-
void uart_init(void)
{
struct s5p_uart *uart = uart_platform_baseptr(0);
@@ -180,3 +174,16 @@ void uart_tx_flush(void)
{
/* Exynos5250 implements this too. */
}
+
+#ifndef __PRE_RAM__
+void uart_fill_lb(void *data)
+{
+ struct lb_serial serial;
+ serial.type = LB_SERIAL_TYPE_MEMORY_MAPPED;
+ serial.baseaddr = uart_platform_base(0);
+ serial.baud = default_baudrate();
+ lb_add_serial(&serial, data);
+
+ lb_add_console(LB_TAG_CONSOLE_SERIAL8250MEM, data);
+}
+#endif
diff --git a/src/cpu/ti/am335x/uart.c b/src/cpu/ti/am335x/uart.c
index 09bb96ece3..858926bc31 100644
--- a/src/cpu/ti/am335x/uart.c
+++ b/src/cpu/ti/am335x/uart.c
@@ -20,6 +20,7 @@
#include <types.h>
#include <console/uart.h>
#include <arch/io.h>
+#include <boot/coreboot_tables.h>
#include <cpu/ti/am335x/uart.h>
#define EFR_ENHANCED_EN (1 << 4)
@@ -156,13 +157,6 @@ unsigned int uart_platform_base(int idx)
return CONFIG_CONSOLE_SERIAL_UART_ADDRESS;
}
-#if !defined(__PRE_RAM__)
-uint32_t uartmem_getbaseaddr(void)
-{
- return uart_platform_base(0);
-}
-#endif
-
void uart_init(void)
{
struct am335x_uart *uart = uart_platform_baseptr(0);
@@ -186,3 +180,16 @@ void uart_tx_byte(unsigned char data)
void uart_tx_flush(void)
{
}
+
+#ifndef __PRE_RAM__
+void uart_fill_lb(void *data)
+{
+ struct lb_serial serial;
+ serial.type = LB_SERIAL_TYPE_MEMORY_MAPPED;
+ serial.baseaddr = uart_platform_base(0);
+ serial.baud = default_baudrate();
+ lb_add_serial(&serial, data);
+
+ lb_add_console(LB_TAG_CONSOLE_SERIAL8250MEM, data);
+}
+#endif