diff mbox series

[U-Boot] rockchip: rk3399: spl: convert to using BOOT_DEVICE_BOOTROM

Message ID 1505126892-32867-1-git-send-email-philipp.tomsich@theobroma-systems.com
State Accepted
Commit cbe18f10e6943db628e779da03dad97a93c627f3
Delegated to: Philipp Tomsich
Headers show
Series [U-Boot] rockchip: rk3399: spl: convert to using BOOT_DEVICE_BOOTROM | expand

Commit Message

Philipp Tomsich Sept. 11, 2017, 10:48 a.m. UTC
Instead of directly calling into the back-to-bootrom code, the RK3399
common SPL implementation now uses BOOT_DEVICE_BOOTROM to trigger a
transfer back into the bootrom.

With this factored out, the spl_board_init function can not be
customised for each RK3399 board.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---

 arch/arm/mach-rockchip/rk3399-board-spl.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

Comments

Simon Glass Sept. 13, 2017, 2:31 a.m. UTC | #1
On 11 September 2017 at 04:48, Philipp Tomsich
<philipp.tomsich@theobroma-systems.com> wrote:
> Instead of directly calling into the back-to-bootrom code, the RK3399
> common SPL implementation now uses BOOT_DEVICE_BOOTROM to trigger a
> transfer back into the bootrom.
>
> With this factored out, the spl_board_init function can not be
> customised for each RK3399 board.
>
> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> ---
>
>  arch/arm/mach-rockchip/rk3399-board-spl.c | 18 +++++++++++++-----
>  1 file changed, 13 insertions(+), 5 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Philipp Tomsich Sept. 27, 2017, 10:41 p.m. UTC | #2
> Instead of directly calling into the back-to-bootrom code, the RK3399
> common SPL implementation now uses BOOT_DEVICE_BOOTROM to trigger a
> transfer back into the bootrom.
> 
> With this factored out, the spl_board_init function can not be
> customised for each RK3399 board.
> 
> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> ---
> 
>  arch/arm/mach-rockchip/rk3399-board-spl.c | 18 +++++++++++++-----
>  1 file changed, 13 insertions(+), 5 deletions(-)
> 

Applied to u-boot-rockchip, thanks!
diff mbox series

Patch

diff --git a/arch/arm/mach-rockchip/rk3399-board-spl.c b/arch/arm/mach-rockchip/rk3399-board-spl.c
index 3406156..1c39d9b 100644
--- a/arch/arm/mach-rockchip/rk3399-board-spl.c
+++ b/arch/arm/mach-rockchip/rk3399-board-spl.c
@@ -1,10 +1,12 @@ 
 /*
  * (C) Copyright 2016 Rockchip Electronics Co., Ltd
+ * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
  *
  * SPDX-License-Identifier:     GPL-2.0+
  */
 
 #include <common.h>
+#include <asm/arch/bootrom.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/grf_rk3399.h>
 #include <asm/arch/hardware.h>
@@ -19,9 +21,19 @@ 
 
 DECLARE_GLOBAL_DATA_PTR;
 
+void board_return_to_bootrom(void)
+{
+	back_to_bootrom();
+}
+
 u32 spl_boot_device(void)
 {
-	return BOOT_DEVICE_MMC1;
+	u32 boot_device = BOOT_DEVICE_MMC1;
+
+	if (CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM))
+		return BOOT_DEVICE_BOOTROM;
+
+	return boot_device;
 }
 
 u32 spl_boot_mode(const u32 boot_device)
@@ -156,10 +168,6 @@  void spl_board_init(void)
 	}
 
 	preloader_console_init();
-#if CONFIG_IS_ENABLED(ROCKCHIP_BACK_TO_BROM)
-	back_to_bootrom();
-#endif
-
 	return;
 err:
 	printf("spl_board_init: Error %d\n", ret);