[PATCH v3 2/4] sunxi: binman: Move BL31 and SCP firmware addresses to Kconfig

Andre Przywara andre.przywara at arm.com
Fri Dec 8 01:33:48 CET 2023


On Tue, 31 Oct 2023 00:17:39 -0500
Samuel Holland <samuel at sholland.org> wrote:

Hi Samuel,

> This is easier to read than the #ifdef staircase, provides better
> visibility into the memory map (alongside the other Kconfig
> definitions), and allows these addresses to be reused from code.

This is indeed much nicer, and simplifies adding more SoCs.
I checked that the addresses are the same:

> Reviewed-by: Simon Glass <sjg at chromium.org>
> Signed-off-by: Samuel Holland <samuel at sholland.org>

Reviewed-by: Andre Przywara <andre.przywara at arm.com>

Cheers,
Andre

> ---
> 
> (no changes since v2)
> 
> Changes in v2:
>  - New patch for v2, split from the .dtsi changes
> 
>  arch/arm/dts/sunxi-u-boot.dtsi | 24 +++++++-----------------
>  arch/arm/mach-sunxi/Kconfig    | 17 +++++++++++++++++
>  2 files changed, 24 insertions(+), 17 deletions(-)
> 
> diff --git a/arch/arm/dts/sunxi-u-boot.dtsi b/arch/arm/dts/sunxi-u-boot.dtsi
> index a0c8abb7033..7a8764e463b 100644
> --- a/arch/arm/dts/sunxi-u-boot.dtsi
> +++ b/arch/arm/dts/sunxi-u-boot.dtsi
> @@ -1,15 +1,5 @@
>  #include <config.h>
>  
> -#ifdef CONFIG_MACH_SUN50I_H6
> -#define BL31_ADDR 0x104000
> -#define  SCP_ADDR 0x114000
> -#elif defined(CONFIG_MACH_SUN50I_H616)
> -#define BL31_ADDR 0x40000000
> -#else
> -#define BL31_ADDR  0x44000
> -#define  SCP_ADDR  0x50000
> -#endif
> -
>  / {
>  	aliases {
>  		mmc0 = &mmc0;
> @@ -69,8 +59,8 @@
>  					os = "arm-trusted-firmware";
>  					arch = "arm64";
>  					compression = "none";
> -					load = <BL31_ADDR>;
> -					entry = <BL31_ADDR>;
> +					load = <CONFIG_SUNXI_BL31_BASE>;
> +					entry = <CONFIG_SUNXI_BL31_BASE>;
>  
>  					atf-bl31 {
>  						filename = "bl31.bin";
> @@ -78,13 +68,13 @@
>  					};
>  				};
>  
> -#ifdef SCP_ADDR
> +#if CONFIG_SUNXI_SCP_BASE
>  				scp {
>  					description = "SCP firmware";
>  					type = "firmware";
>  					arch = "or1k";
>  					compression = "none";
> -					load = <SCP_ADDR>;
> +					load = <CONFIG_SUNXI_SCP_BASE>;
>  
>  					scp {
>  						filename = "scp.bin";
> @@ -106,10 +96,10 @@
>  				@config-SEQ {
>  					description = "NAME";
>  					firmware = "atf";
> -#ifndef SCP_ADDR
> -					loadables = "uboot";
> -#else
> +#if CONFIG_SUNXI_SCP_BASE
>  					loadables = "scp", "uboot";
> +#else
> +					loadables = "uboot";
>  #endif
>  					fdt = "fdt-SEQ";
>  				};
> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> index a10e4c06b6a..b0fbda0aa09 100644
> --- a/arch/arm/mach-sunxi/Kconfig
> +++ b/arch/arm/mach-sunxi/Kconfig
> @@ -155,6 +155,23 @@ config SUNXI_RVBAR_ALTERNATIVE
>  	for all other SoCs, so the content of the SRAM_VER_REG becomes
>  	irrelevant there, and we can use the same code.
>  
> +config SUNXI_BL31_BASE
> +	hex
> +	default 0x00044000 if MACH_SUN50I || MACH_SUN50I_H5
> +	default 0x00104000 if MACH_SUN50I_H6
> +	default 0x40000000 if MACH_SUN50I_H616
> +	default 0x0
> +	help
> +	  Address where BL31 (TF-A) is loaded, or zero if BL31 is not used.
> +
> +config SUNXI_SCP_BASE
> +	hex
> +	default 0x00050000 if MACH_SUN50I || MACH_SUN50I_H5
> +	default 0x00114000 if MACH_SUN50I_H6
> +	default 0x0
> +	help
> +	  Address where SCP firmware is loaded, or zero if it is not used.
> +
>  config SUNXI_A64_TIMER_ERRATUM
>  	bool
>  



More information about the U-Boot mailing list