On 2019/8/7 下午2:40, Peng Fan wrote:
Pass spl_image and bootdev to board_return_bootrom.
i.MX8MN needs the args to let ROM to load images

Cc: Simon Glass <s...@chromium.org>
Cc: Philipp Tomsich <philipp.toms...@theobroma-systems.com>
Cc: Kever Yang <kever.y...@rock-chips.com>
Signed-off-by: Peng Fan <peng....@nxp.com>


Reviewed-by: Kever Yang <kever.y...@rock-chips.com>

Thanks,
- Kever
---

This is to prepare i.MX8MM ROMAPI support, and
This is an updated version for https://patchwork.ozlabs.org/patch/1128834/,
because there are changes in rockchip spl/tpl.

Kever, Philipp
  Please help review again. Thanks.

  arch/arm/cpu/arm926ejs/spear/spl.c | 5 ++++-
  arch/arm/mach-rockchip/spl.c       | 5 ++++-
  arch/arm/mach-rockchip/tpl.c       | 5 ++++-
  common/spl/spl_bootrom.c           | 7 ++++---
  include/spl.h                      | 3 ++-
  5 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/spear/spl.c 
b/arch/arm/cpu/arm926ejs/spear/spl.c
index fc332fb626..a919a455eb 100644
--- a/arch/arm/cpu/arm926ejs/spear/spl.c
+++ b/arch/arm/cpu/arm926ejs/spear/spl.c
@@ -277,7 +277,8 @@ void board_init_f(ulong dummy)
   * BootROM code right after having initialized a few components like the 
DRAM).
   * The following function is called from SPL common code (board_init_r).
   */
-void board_return_to_bootrom(void)
+int board_return_to_bootrom(struct spl_image_info *spl_image,
+                           struct spl_boot_device *bootdev)
  {
        /*
         * Retrieve the BootROM's stack pointer and jump back to the start of
@@ -294,4 +295,6 @@ void board_return_to_bootrom(void)
                      "bl back_to_bootrom;"
  #endif
                      );
+
+       return 0;
  }
diff --git a/arch/arm/mach-rockchip/spl.c b/arch/arm/mach-rockchip/spl.c
index 33137cc5ef..92102b39e7 100644
--- a/arch/arm/mach-rockchip/spl.c
+++ b/arch/arm/mach-rockchip/spl.c
@@ -14,9 +14,12 @@
DECLARE_GLOBAL_DATA_PTR; -void board_return_to_bootrom(void)
+int board_return_to_bootrom(struct spl_image_info *spl_image,
+                           struct spl_boot_device *bootdev)
  {
        back_to_bootrom(BROM_BOOT_NEXTSTAGE);
+
+       return 0;
  }
__weak const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
diff --git a/arch/arm/mach-rockchip/tpl.c b/arch/arm/mach-rockchip/tpl.c
index 55f6e922d0..c3734cb070 100644
--- a/arch/arm/mach-rockchip/tpl.c
+++ b/arch/arm/mach-rockchip/tpl.c
@@ -77,9 +77,12 @@ void board_init_f(ulong dummy)
        }
  }
-void board_return_to_bootrom(void)
+int board_return_to_bootrom(struct spl_image_info *spl_image,
+                           struct spl_boot_device *bootdev)
  {
        back_to_bootrom(BROM_BOOT_NEXTSTAGE);
+
+       return 0;
  }
u32 spl_boot_device(void)
diff --git a/common/spl/spl_bootrom.c b/common/spl/spl_bootrom.c
index 076f5d8d93..0eefd39a51 100644
--- a/common/spl/spl_bootrom.c
+++ b/common/spl/spl_bootrom.c
@@ -6,8 +6,10 @@
  #include <common.h>
  #include <spl.h>
-__weak void board_return_to_bootrom(void)
+__weak int board_return_to_bootrom(struct spl_image_info *spl_image,
+                                  struct spl_boot_device *bootdev)
  {
+       return 0;
  }
static int spl_return_to_bootrom(struct spl_image_info *spl_image,
@@ -19,8 +21,7 @@ static int spl_return_to_bootrom(struct spl_image_info 
*spl_image,
         * the ROM), it will implement board_return_to_bootrom() and
         * should not return from it.
         */
-       board_return_to_bootrom();
-       return false;
+       return board_return_to_bootrom(spl_image, bootdev);
  }
SPL_LOAD_IMAGE_METHOD("BOOTROM", 0, BOOT_DEVICE_BOOTROM, spl_return_to_bootrom);
diff --git a/include/spl.h b/include/spl.h
index a90f971a23..f4a5461b4e 100644
--- a/include/spl.h
+++ b/include/spl.h
@@ -382,7 +382,8 @@ void spl_optee_entry(void *arg0, void *arg1, void *arg2, 
void *arg3);
   * stage wants to return to the ROM code to continue booting, boards
   * can implement 'board_return_to_bootrom'.
   */
-void board_return_to_bootrom(void);
+int board_return_to_bootrom(struct spl_image_info *spl_image,
+                           struct spl_boot_device *bootdev);
/**
   * board_spl_fit_post_load - allow process images after loading finished


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to