spl: pass args to board_return_to_bootrom

Pass spl_image and bootdev to board_return_bootrom.
i.MX8MN needs the args to let ROM to load images

Cc: Simon Glass <sjg@chromium.org>
Cc: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Cc: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
Peng Fan 2019-08-07 06:40:53 +00:00 committed by Stefano Babic
parent 8c247bbe23
commit cda789a5b1
5 changed files with 18 additions and 7 deletions

View File

@ -277,7 +277,8 @@ void board_init_f(ulong dummy)
* BootROM code right after having initialized a few components like the DRAM). * BootROM code right after having initialized a few components like the DRAM).
* The following function is called from SPL common code (board_init_r). * 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 * 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;" "bl back_to_bootrom;"
#endif #endif
); );
return 0;
} }

View File

@ -14,9 +14,12 @@
DECLARE_GLOBAL_DATA_PTR; 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); back_to_bootrom(BROM_BOOT_NEXTSTAGE);
return 0;
} }
__weak const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = { __weak const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {

View File

@ -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); back_to_bootrom(BROM_BOOT_NEXTSTAGE);
return 0;
} }
u32 spl_boot_device(void) u32 spl_boot_device(void)

View File

@ -6,8 +6,10 @@
#include <common.h> #include <common.h>
#include <spl.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, 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 * the ROM), it will implement board_return_to_bootrom() and
* should not return from it. * should not return from it.
*/ */
board_return_to_bootrom(); return board_return_to_bootrom(spl_image, bootdev);
return false;
} }
SPL_LOAD_IMAGE_METHOD("BOOTROM", 0, BOOT_DEVICE_BOOTROM, spl_return_to_bootrom); SPL_LOAD_IMAGE_METHOD("BOOTROM", 0, BOOT_DEVICE_BOOTROM, spl_return_to_bootrom);

View File

@ -387,7 +387,8 @@ void spl_invoke_opensbi(struct spl_image_info *spl_image);
* stage wants to return to the ROM code to continue booting, boards * stage wants to return to the ROM code to continue booting, boards
* can implement 'board_return_to_bootrom'. * 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 * board_spl_fit_post_load - allow process images after loading finished