[U-Boot] [PATCH V2 41/51] spl: pass args to board_return_to_bootrom

Kever Yang kever.yang at rock-chips.com
Wed Jul 10 06:23:21 UTC 2019


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 <sjg at chromium.org>
> Cc: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
> Cc: Kever Yang <kever.yang at rock-chips.com>
> Signed-off-by: Peng Fan <peng.fan at nxp.com>


Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

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 <power/regulator.h>
>   #include <dm/pinctrl.h>
>   
> -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 <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 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




More information about the U-Boot mailing list