diff options
author | Julius Werner <jwerner@chromium.org> | 2014-11-25 13:36:17 -0800 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2015-04-13 17:21:23 +0200 |
commit | df5bf2b7961cc470cb8704cf52d74ed7d6ebe776 (patch) | |
tree | a79b5c7f5b9d68d54c0572ae9ab066c3a894b424 | |
parent | f1e321001d5954096f06f9a43138219a9a46536e (diff) |
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: I3da8b0e4bd609f33cedd934ce51cb20b1190024b
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: caabda8fc1ddb4805d86fd9a0d5d2f3cf738bfaf
Original-Change-Id: Ia56c0599a15f966d087ca39181bfe23abd262e72
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/231942
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/9604
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
-rw-r--r-- | src/mainboard/google/veyron_jerry/bootblock.c | 10 | ||||
-rw-r--r-- | src/mainboard/google/veyron_mighty/bootblock.c | 10 | ||||
-rw-r--r-- | src/mainboard/google/veyron_pinky/bootblock.c | 10 | ||||
-rw-r--r-- | 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 <arch/io.h> +#include <assert.h> #include <bootblock_common.h> #include <delay.h> #include <soc/clock.h> @@ -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 <arch/io.h> +#include <assert.h> #include <bootblock_common.h> #include <delay.h> #include <soc/clock.h> @@ -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 <arch/io.h> +#include <assert.h> #include <bootblock_common.h> #include <delay.h> #include <soc/clock.h> @@ -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 84a17c2e22..4a5b0d269f 100644 --- a/src/soc/rockchip/rk3288/bootblock.c +++ b/src/soc/rockchip/rk3288/bootblock.c @@ -31,17 +31,6 @@ static void bootblock_soc_init(void) { rk3288_init_timer(); - if (IS_ENABLED(CONFIG_DRIVERS_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(); |