From faa98c7c5af2cc1224b77526f0106f26af86ad63 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Mon, 22 Jul 2019 19:59:41 +0800 Subject: [PATCH] rockchip: rk3399: move chromebook bob specific flow to its board file Add a board_early_init_f() in board_init_f() and move the board specific init code into its own board file. Signed-off-by: Kever Yang --- .../arm/include/asm/arch-rockchip/sys_proto.h | 4 ---- arch/arm/mach-rockchip/rk3399-board-spl.c | 20 ++++++------------ board/google/gru/gru.c | 21 +++++++++++++++++++ 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/arch/arm/include/asm/arch-rockchip/sys_proto.h b/arch/arm/include/asm/arch-rockchip/sys_proto.h index 905c774c15..de5a8f11a9 100644 --- a/arch/arm/include/asm/arch-rockchip/sys_proto.h +++ b/arch/arm/include/asm/arch-rockchip/sys_proto.h @@ -6,8 +6,4 @@ #ifndef _ASM_ARCH_SYS_PROTO_H #define _ASM_ARCH_SYS_PROTO_H - -/* provided to defeat compiler optimisation in board_init_f() */ -void gru_dummy_function(int i); - #endif /* _ASM_ARCH_SYS_PROTO_H */ diff --git a/arch/arm/mach-rockchip/rk3399-board-spl.c b/arch/arm/mach-rockchip/rk3399-board-spl.c index e6325274c3..cb481c58ec 100644 --- a/arch/arm/mach-rockchip/rk3399-board-spl.c +++ b/arch/arm/mach-rockchip/rk3399-board-spl.c @@ -57,6 +57,11 @@ __weak void rockchip_stimer_init(void) { } +__weak int board_early_init_f(void) +{ + return 0; +} + __weak int arch_cpu_init(void) { return 0; @@ -70,20 +75,6 @@ void board_init_f(ulong dummy) #ifdef CONFIG_DEBUG_UART debug_uart_init(); -# ifdef CONFIG_TARGET_CHROMEBOOK_BOB - int sum, i; - - /* - * Add a delay and ensure that the compiler does not optimise this out. - * This is needed since the power rails tail a while to turn on, and - * we get garbage serial output otherwise. - */ - sum = 0; - for (i = 0; i < 150000; i++) - sum += i; - gru_dummy_function(sum); -#endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ - /* * Debug UART can be used from here if required: * @@ -95,6 +86,7 @@ void board_init_f(ulong dummy) debug("U-Boot SPL board init\n"); #endif + board_early_init_f(); arch_cpu_init(); ret = spl_early_init(); diff --git a/board/google/gru/gru.c b/board/google/gru/gru.c index b116b1a549..c2895e1267 100644 --- a/board/google/gru/gru.c +++ b/board/google/gru/gru.c @@ -10,7 +10,28 @@ int board_init(void) return 0; } +#ifdef CONFIG_SPL_BUILD /* provided to defeat compiler optimisation in board_init_f() */ void gru_dummy_function(int i) { } + +int board_early_init_f(void) +{ +# ifdef CONFIG_TARGET_CHROMEBOOK_BOB + int sum, i; + + /* + * Add a delay and ensure that the compiler does not optimise this out. + * This is needed since the power rails tail a while to turn on, and + * we get garbage serial output otherwise. + */ + sum = 0; + for (i = 0; i < 150000; i++) + sum += i; + gru_dummy_function(sum); +#endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ + + return 0; +} +#endif