[PATCH] ARM: rockchip: make ATF installation optional

Sascha Hauer sha at pengutronix.de
Tue Jan 10 06:37:31 PST 2023


On Mon, Jan 09, 2023 at 07:00:24PM +0100, Ahmad Fatoum wrote:
> On RK3399, ATF running as BL31 will disable normal world access to
> some peripherals. To make it easier to develop PBL code that accesses
> these peripherals prior to ATF installation, support running barebox
> proper in EL3, so all of memory can be poked from the barebox shell.
> 
> This is strictly a development feature. Linux on ARM64 is not meant to
> be booted without PSCI, which the secure monitor provides.
> 
> Signed-off-by: Ahmad Fatoum <ahmad at a3f.at>
> ---
>  arch/arm/mach-rockchip/Kconfig            | 13 +++++++++++--
>  arch/arm/mach-rockchip/Makefile           |  2 +-
>  arch/arm/mach-rockchip/include/mach/atf.h |  5 +++++
>  3 files changed, 17 insertions(+), 3 deletions(-)

Applied, thanks

Sascha

> 
> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
> index 1f3ba706ee9f..4ac75ab9475c 100644
> --- a/arch/arm/mach-rockchip/Kconfig
> +++ b/arch/arm/mach-rockchip/Kconfig
> @@ -88,16 +88,25 @@ config MACH_RADXA_ROCK3
>  
>  comment "select board features:"
>  
> +config ARCH_ROCKCHIP_ATF
> +	bool "Build rockchip ATF binaries into barebox"
> +	depends on ARCH_ROCKCHIP_V8
> +	default y
> +	help
> +	  When deselected, barebox proper will run in EL3. This can be
> +	  useful for debugging early startup, but for all other cases,
> +	  say y here.
> +
>  config ARCH_RK3399_OPTEE
>  	bool "Build rk3399 OP-TEE binary into barebox"
> -	depends on ARCH_RK3399
> +	depends on ARCH_ROCKCHIP_ATF && ARCH_RK3399
>  	help
>  	  With this option enabled the RK3399 OP-TEE binary is compiled
>  	  into barebox and started along with the BL31 trusted firmware.
>  
>  config ARCH_RK3568_OPTEE
>  	bool "Build rk3568 OP-TEE binary into barebox"
> -	depends on ARCH_RK3568
> +	depends on ARCH_ROCKCHIP_ATF && ARCH_RK3568
>  	help
>  	  With this option enabled the RK3568 OP-TEE binary is compiled
>  	  into barebox and started along with the BL31 trusted firmware.
> diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
> index a86ee71617c8..2529af7c7e97 100644
> --- a/arch/arm/mach-rockchip/Makefile
> +++ b/arch/arm/mach-rockchip/Makefile
> @@ -1,7 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0-only
>  
>  obj-y += rockchip.o
> -pbl-$(CONFIG_ARCH_ROCKCHIP_V8) += atf.o
> +pbl-$(CONFIG_ARCH_ROCKCHIP_ATF) += atf.o
>  obj-$(CONFIG_ARCH_RK3188) += rk3188.o
>  obj-$(CONFIG_ARCH_RK3288) += rk3288.o
>  obj-pbl-$(CONFIG_ARCH_RK3568) += rk3568.o
> diff --git a/arch/arm/mach-rockchip/include/mach/atf.h b/arch/arm/mach-rockchip/include/mach/atf.h
> index d1bae5a7714f..e5d55af3d74a 100644
> --- a/arch/arm/mach-rockchip/include/mach/atf.h
> +++ b/arch/arm/mach-rockchip/include/mach/atf.h
> @@ -19,8 +19,13 @@
>  #define RK3568_BAREBOX_LOAD_ADDRESS	(RK3568_DRAM_BOTTOM + 1024*1024)
>  
>  #ifndef __ASSEMBLY__
> +#ifdef CONFIG_ARCH_ROCKCHIP_ATF
>  void rk3399_atf_load_bl31(void *fdt);
>  void rk3568_atf_load_bl31(void *fdt);
> +#else
> +static inline void rk3399_atf_load_bl31(void *fdt) { }
> +static inline void rk3568_atf_load_bl31(void *fdt) { }
> +#endif
>  #endif
>  
>  #endif /* __MACH_ATF_H */
> -- 
> 2.38.1
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list