rockchip: rk3399: spl: convert to using BOOT_DEVICE_BOOTROM
authorPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Mon, 11 Sep 2017 10:48:12 +0000 (12:48 +0200)
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Sat, 30 Sep 2017 22:33:32 +0000 (00:33 +0200)
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

index 34061564478d165742f3f1abc719f017e77e7014..1c39d9b04b54a470b2ea3360287262878d41aa74 100644 (file)
@@ -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>
 
 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);