From caabda8fc1ddb4805d86fd9a0d5d2f3cf738bfaf Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 25 Nov 2014 13:36:17 -0800 Subject: [PATCH] rk3288: Move UART initialization to bootblock_mainboard_early_init() This patch uses the new bootblock_mainboard_early_init() hook to run the UART pinmuxing on rk3288-based boards before initializing the console. This allows us to get rid of the hacky second console_init() call in bootblock_soc_init(). We can also simplify the pinmux selection a bit since we know that a given board always uses the same UART (still keep an assert around to be sure, though). BRANCH=None BUG=chrome-os-partner:32123 TEST=Booted on Pinky. Change-Id: Ia56c0599a15f966d087ca39181bfe23abd262e72 Signed-off-by: Julius Werner Reviewed-on: https://chromium-review.googlesource.com/231942 Reviewed-by: Aaron Durbin --- src/mainboard/google/veyron_jerry/bootblock.c | 10 ++++++++++ src/mainboard/google/veyron_mighty/bootblock.c | 10 ++++++++++ src/mainboard/google/veyron_pinky/bootblock.c | 10 ++++++++++ src/soc/rockchip/rk3288/bootblock.c | 11 ----------- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/src/mainboard/google/veyron_jerry/bootblock.c b/src/mainboard/google/veyron_jerry/bootblock.c index 30b00e1145..1e46ed025c 100644 --- a/src/mainboard/google/veyron_jerry/bootblock.c +++ b/src/mainboard/google/veyron_jerry/bootblock.c @@ -19,6 +19,7 @@ */ #include +#include #include #include #include @@ -31,6 +32,15 @@ #include "board.h" +void bootblock_mainboard_early_init() +{ + if (IS_ENABLED(CONFIG_CONSOLE_SERIAL_UART)) { + assert(CONFIG_CONSOLE_SERIAL_UART_ADDRESS == UART2_BASE); + writel(IOMUX_UART2, &rk3288_grf->iomux_uart2); + } + +} + void bootblock_mainboard_init(void) { /* Up VDD_CPU (BUCK1) to 1.4V to support max CPU frequency (1.8GHz). */ diff --git a/src/mainboard/google/veyron_mighty/bootblock.c b/src/mainboard/google/veyron_mighty/bootblock.c index 30b00e1145..1e46ed025c 100644 --- a/src/mainboard/google/veyron_mighty/bootblock.c +++ b/src/mainboard/google/veyron_mighty/bootblock.c @@ -19,6 +19,7 @@ */ #include +#include #include #include #include @@ -31,6 +32,15 @@ #include "board.h" +void bootblock_mainboard_early_init() +{ + if (IS_ENABLED(CONFIG_CONSOLE_SERIAL_UART)) { + assert(CONFIG_CONSOLE_SERIAL_UART_ADDRESS == UART2_BASE); + writel(IOMUX_UART2, &rk3288_grf->iomux_uart2); + } + +} + void bootblock_mainboard_init(void) { /* Up VDD_CPU (BUCK1) to 1.4V to support max CPU frequency (1.8GHz). */ diff --git a/src/mainboard/google/veyron_pinky/bootblock.c b/src/mainboard/google/veyron_pinky/bootblock.c index 30b00e1145..1e46ed025c 100644 --- a/src/mainboard/google/veyron_pinky/bootblock.c +++ b/src/mainboard/google/veyron_pinky/bootblock.c @@ -19,6 +19,7 @@ */ #include +#include #include #include #include @@ -31,6 +32,15 @@ #include "board.h" +void bootblock_mainboard_early_init() +{ + if (IS_ENABLED(CONFIG_CONSOLE_SERIAL_UART)) { + assert(CONFIG_CONSOLE_SERIAL_UART_ADDRESS == UART2_BASE); + writel(IOMUX_UART2, &rk3288_grf->iomux_uart2); + } + +} + void bootblock_mainboard_init(void) { /* Up VDD_CPU (BUCK1) to 1.4V to support max CPU frequency (1.8GHz). */ diff --git a/src/soc/rockchip/rk3288/bootblock.c b/src/soc/rockchip/rk3288/bootblock.c index 006af727d1..4c016d97de 100644 --- a/src/soc/rockchip/rk3288/bootblock.c +++ b/src/soc/rockchip/rk3288/bootblock.c @@ -34,17 +34,6 @@ void bootblock_soc_init(void) timestamp_early_init(timestamp_get()); - if (IS_ENABLED(CONFIG_CONSOLE_SERIAL_UART)) { - switch (CONFIG_CONSOLE_SERIAL_UART_ADDRESS) { - case UART2_BASE: - writel(IOMUX_UART2, &rk3288_grf->iomux_uart2); - break; - default: - die("TODO: Handle setup for console UART if needed"); - } - console_init(); - } - rkclk_init(); mmu_init();