From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kever Yang Date: Wed, 10 Jul 2019 14:23:21 +0800 Subject: [U-Boot] [PATCH V2 41/51] spl: pass args to board_return_to_bootrom In-Reply-To: <20190708015333.20411-42-peng.fan@nxp.com> References: <20190708015333.20411-1-peng.fan@nxp.com> <20190708015333.20411-42-peng.fan@nxp.com> Message-ID: <6827769e-b5b7-ec21-ff57-3ba4cf5dfdde@rock-chips.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: u-boot@lists.denx.de Hi Peng, On 2019/7/8 上午9: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 > Cc: Philipp Tomsich > Cc: Kever Yang > Signed-off-by: Peng Fan Reviewed-by: Kever Yang Thanks, - Kever > --- > arch/arm/mach-rockchip/rk3288-board-tpl.c | 5 ++++- > arch/arm/mach-rockchip/rk3368-board-tpl.c | 5 ++++- > arch/arm/mach-rockchip/rk3399-board-spl.c | 5 ++++- > arch/arm/mach-rockchip/rk3399-board-tpl.c | 5 ++++- > common/spl/spl_bootrom.c | 7 ++++--- > include/spl.h | 3 ++- > 6 files changed, 22 insertions(+), 8 deletions(-) > > diff --git a/arch/arm/mach-rockchip/rk3288-board-tpl.c b/arch/arm/mach-rockchip/rk3288-board-tpl.c > index 787129bbae..8d04b248c3 100644 > --- a/arch/arm/mach-rockchip/rk3288-board-tpl.c > +++ b/arch/arm/mach-rockchip/rk3288-board-tpl.c > @@ -53,9 +53,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/arch/arm/mach-rockchip/rk3368-board-tpl.c b/arch/arm/mach-rockchip/rk3368-board-tpl.c > index dc65a021c8..a407818efd 100644 > --- a/arch/arm/mach-rockchip/rk3368-board-tpl.c > +++ b/arch/arm/mach-rockchip/rk3368-board-tpl.c > @@ -112,9 +112,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/arch/arm/mach-rockchip/rk3399-board-spl.c b/arch/arm/mach-rockchip/rk3399-board-spl.c > index 890d80025f..5957152159 100644 > --- a/arch/arm/mach-rockchip/rk3399-board-spl.c > +++ b/arch/arm/mach-rockchip/rk3399-board-spl.c > @@ -23,9 +23,12 @@ > #include > #include > > -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; > } > > static const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = { > diff --git a/arch/arm/mach-rockchip/rk3399-board-tpl.c b/arch/arm/mach-rockchip/rk3399-board-tpl.c > index 4a301249b4..2b2ba24aac 100644 > --- a/arch/arm/mach-rockchip/rk3399-board-tpl.c > +++ b/arch/arm/mach-rockchip/rk3399-board-tpl.c > @@ -64,9 +64,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 > #include > > -__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 a9aaef345f..abcb6d8013 100644 > --- a/include/spl.h > +++ b/include/spl.h > @@ -356,7 +356,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