aboutsummaryrefslogtreecommitdiff
path: root/core/arch/arm
diff options
context:
space:
mode:
authorJerome Forissier <jerome.forissier@linaro.org>2017-02-17 08:38:22 +0100
committerJerome Forissier <jerome.forissier@linaro.org>2017-03-17 18:23:51 +0100
commit756aea59d99741416e83f788d9788194c13422d2 (patch)
tree11f4cb7c8fc6918b7f220bdf742f2908937276f4 /core/arch/arm
parent0abbda6e29d25e36cc30c373503ee56ab2d22655 (diff)
core: add common implementation for console_putc() and console_flush()
Since most platforms now use the same console_putc() and console_flush(), move them to core/kernel/console.c. Make them __weak so that platforms may still provide their own. The common code expects the platforms to initialize whatever serial device from console_init() and call register_console(). Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Diffstat (limited to 'core/arch/arm')
-rw-r--r--core/arch/arm/plat-d02/main.c17
-rw-r--r--core/arch/arm/plat-hikey/main.c17
-rw-r--r--core/arch/arm/plat-imx/main.c17
-rw-r--r--core/arch/arm/plat-ls/main.c17
-rw-r--r--core/arch/arm/plat-mediatek/main.c17
-rw-r--r--core/arch/arm/plat-rcar/main.c18
-rw-r--r--core/arch/arm/plat-rpi3/main.c18
-rw-r--r--core/arch/arm/plat-sprd/console.c7
-rw-r--r--core/arch/arm/plat-sunxi/console.c15
-rw-r--r--core/arch/arm/plat-ti/console.c17
-rw-r--r--core/arch/arm/plat-vexpress/main.c17
-rw-r--r--core/arch/arm/plat-zynq7k/main.c17
-rw-r--r--core/arch/arm/plat-zynqmp/main.c17
13 files changed, 14 insertions, 197 deletions
diff --git a/core/arch/arm/plat-d02/main.c b/core/arch/arm/plat-d02/main.c
index ec1d574e..2cd339b5 100644
--- a/core/arch/arm/plat-d02/main.c
+++ b/core/arch/arm/plat-d02/main.c
@@ -69,20 +69,5 @@ void console_init(void)
{
hi16xx_uart_init(&console_data, CONSOLE_UART_BASE,
CONSOLE_UART_CLK_IN_HZ, CONSOLE_BAUDRATE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
diff --git a/core/arch/arm/plat-hikey/main.c b/core/arch/arm/plat-hikey/main.c
index 0149e1b5..8d72f388 100644
--- a/core/arch/arm/plat-hikey/main.c
+++ b/core/arch/arm/plat-hikey/main.c
@@ -84,22 +84,7 @@ void console_init(void)
{
pl011_init(&console_data, CONSOLE_UART_BASE, CONSOLE_UART_CLK_IN_HZ,
CONSOLE_BAUDRATE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
vaddr_t nsec_periph_base(paddr_t pa)
diff --git a/core/arch/arm/plat-imx/main.c b/core/arch/arm/plat-imx/main.c
index 816f4e8a..36dc11b4 100644
--- a/core/arch/arm/plat-imx/main.c
+++ b/core/arch/arm/plat-imx/main.c
@@ -131,22 +131,7 @@ void plat_cpu_reset_late(void)
void console_init(void)
{
imx_uart_init(&console_data, CONSOLE_UART_BASE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
void main_init_gic(void)
diff --git a/core/arch/arm/plat-ls/main.c b/core/arch/arm/plat-ls/main.c
index fd0fd540..7f8d523d 100644
--- a/core/arch/arm/plat-ls/main.c
+++ b/core/arch/arm/plat-ls/main.c
@@ -124,22 +124,7 @@ void plat_cpu_reset_late(void)
void console_init(void)
{
ns16550_init(&console_data, CONSOLE_UART_BASE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
void main_init_gic(void)
diff --git a/core/arch/arm/plat-mediatek/main.c b/core/arch/arm/plat-mediatek/main.c
index 2553ae3c..62180fcb 100644
--- a/core/arch/arm/plat-mediatek/main.c
+++ b/core/arch/arm/plat-mediatek/main.c
@@ -66,20 +66,5 @@ void console_init(void)
{
serial8250_uart_init(&console_data, CONSOLE_UART_BASE,
CONSOLE_UART_CLK_IN_HZ, CONSOLE_BAUDRATE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
diff --git a/core/arch/arm/plat-rcar/main.c b/core/arch/arm/plat-rcar/main.c
index f6f38283..6a7e3320 100644
--- a/core/arch/arm/plat-rcar/main.c
+++ b/core/arch/arm/plat-rcar/main.c
@@ -70,21 +70,5 @@ static void main_fiq(void)
void console_init(void)
{
scif_uart_init(&console_data, CONSOLE_UART_BASE);
+ register_serial_console(&console_data.chip);
}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
-}
-
diff --git a/core/arch/arm/plat-rpi3/main.c b/core/arch/arm/plat-rpi3/main.c
index ccfa9642..8a714cb7 100644
--- a/core/arch/arm/plat-rpi3/main.c
+++ b/core/arch/arm/plat-rpi3/main.c
@@ -60,24 +60,10 @@ const struct thread_handlers *generic_boot_get_handlers(void)
{
return &handlers;
}
+
void console_init(void)
{
serial8250_uart_init(&console_data, CONSOLE_UART_BASE,
CONSOLE_UART_CLK_IN_HZ, CONSOLE_BAUDRATE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
diff --git a/core/arch/arm/plat-sprd/console.c b/core/arch/arm/plat-sprd/console.c
index 54771c74..ae56d956 100644
--- a/core/arch/arm/plat-sprd/console.c
+++ b/core/arch/arm/plat-sprd/console.c
@@ -34,6 +34,7 @@ static struct sprd_uart_data console_data __early_bss;
void console_init(void)
{
sprd_uart_init(&console_data, CONSOLE_UART_BASE);
+ register_serial_console(&console_data.chip);
}
void console_putc(int ch)
@@ -43,9 +44,3 @@ void console_putc(int ch)
cons->ops->putc(cons, ch & 0xff);
}
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
-}
diff --git a/core/arch/arm/plat-sunxi/console.c b/core/arch/arm/plat-sunxi/console.c
index 499fcd88..c22bcd14 100644
--- a/core/arch/arm/plat-sunxi/console.c
+++ b/core/arch/arm/plat-sunxi/console.c
@@ -35,18 +35,5 @@ static struct sunxi_uart_data console_data __early_bss;
void console_init(void)
{
sunxi_uart_init(&console_data, CONSOLE_UART_BASE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
diff --git a/core/arch/arm/plat-ti/console.c b/core/arch/arm/plat-ti/console.c
index 34f7a7fa..8f4461bf 100644
--- a/core/arch/arm/plat-ti/console.c
+++ b/core/arch/arm/plat-ti/console.c
@@ -40,20 +40,5 @@ void console_init(void)
{
serial8250_uart_init(&console_data, CONSOLE_UART_BASE,
CONSOLE_UART_CLK_IN_HZ, CONSOLE_BAUDRATE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
diff --git a/core/arch/arm/plat-vexpress/main.c b/core/arch/arm/plat-vexpress/main.c
index 962cf13b..44eef24f 100644
--- a/core/arch/arm/plat-vexpress/main.c
+++ b/core/arch/arm/plat-vexpress/main.c
@@ -121,22 +121,7 @@ void console_init(void)
{
pl011_init(&console_data, CONSOLE_UART_BASE, CONSOLE_UART_CLK_IN_HZ,
CONSOLE_BAUDRATE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
#ifdef IT_CONSOLE_UART
diff --git a/core/arch/arm/plat-zynq7k/main.c b/core/arch/arm/plat-zynq7k/main.c
index 0b29948c..2991b948 100644
--- a/core/arch/arm/plat-zynq7k/main.c
+++ b/core/arch/arm/plat-zynq7k/main.c
@@ -121,22 +121,7 @@ void plat_cpu_reset_late(void)
void console_init(void)
{
cdns_uart_init(&console_data, CONSOLE_UART_BASE, 0, 0);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}
vaddr_t pl310_base(void)
diff --git a/core/arch/arm/plat-zynqmp/main.c b/core/arch/arm/plat-zynqmp/main.c
index 8ae3366a..a00d1ae8 100644
--- a/core/arch/arm/plat-zynqmp/main.c
+++ b/core/arch/arm/plat-zynqmp/main.c
@@ -95,20 +95,5 @@ void console_init(void)
{
cdns_uart_init(&console_data, CONSOLE_UART_BASE,
CONSOLE_UART_CLK_IN_HZ, CONSOLE_BAUDRATE);
-}
-
-void console_putc(int ch)
-{
- struct serial_chip *cons = &console_data.chip;
-
- if (ch == '\n')
- cons->ops->putc(cons, '\r');
- cons->ops->putc(cons, ch);
-}
-
-void console_flush(void)
-{
- struct serial_chip *cons = &console_data.chip;
-
- cons->ops->flush(cons);
+ register_serial_console(&console_data.chip);
}