Message ID | 20190807065627.9601-1-peng.fan@nxp.com |
---|---|
State | Accepted |
Commit | cda789a5b1c049bfc3592dfbba19d261c2c0c6c4 |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot] spl: pass args to board_return_to_bootrom | expand |
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 <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> 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
> Subject: [PATCH] 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> > --- Applied to nxp-imx-8-13, with Kever's tag applied. https://github.com/MrVan/u-boot/tree/nxp-imx-8-13 Regards, Peng.
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
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> --- 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(-)