On Sun, 30 Nov 2025 21:45:10 +0000
Yixun Lan <[email protected]> wrote:

Hi Yixun,

thanks for updating this series, and sorry for the delay in the review.

As for this patch: it should go to the end of the series, since it
already introduces the possibility to select the new SoC, even though
the rest of the code isn't ready yet. And I think we should drop the 
"select SUPPORT_SPL", since it's not really supported, without the DRAM
code. If we rely on FEL to load U-Boot anyway, we can much simpler load
TF-A and U-Boot proper directly, no need for any FIT image.
And thanks for using the SUNXI_GEN_NCAT2 symbol, btw!

One small thing below...

> Add basic support for Allwinner A733 SoC.
> 
> - Include some basic register definitions
> - Introduce a new SUN60I A733 Kconfig option
> - Ssetup RVBAR register properly according to docs
> - Config max DDR size 16GB
> - Config SRAM 0x62000 for TF-A
> 
> Signed-off-by: Yixun Lan <[email protected]>
> 
> ---
> Note, Address for TF-A can be altered to other value, for example,
> moving it to the DDR address space. The only requirement is that
> load and run address should be matched.
> ---
>  arch/arm/mach-sunxi/Kconfig    | 14 ++++++++++++++
>  arch/arm/mach-sunxi/cpu_info.c |  2 ++
>  include/configs/sun60i.h       | 11 +++++++++++
>  3 files changed, 27 insertions(+)
> 
> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> index e979ee4a2cc..e6b4ac3688b 100644
> --- a/arch/arm/mach-sunxi/Kconfig
> +++ b/arch/arm/mach-sunxi/Kconfig
> @@ -215,6 +215,7 @@ config SUNXI_SRAM_ADDRESS
>       hex
>       default 0x10000 if MACH_SUN9I || MACH_SUN50I || MACH_SUN50I_H5
>       default 0x44000 if MACH_SUN55I_A523
> +     default 0x47000 if MACH_SUN60I_A733
>       default 0x20000 if SUN50I_GEN_H6 || SUNXI_GEN_NCAT2
>       default 0x0
>       ---help---
> @@ -228,6 +229,7 @@ config SUNXI_RVBAR_ADDRESS
>       depends on ARM64
>       default 0x08100040 if MACH_SUN50I_A133
>       default 0x08000040 if MACH_SUN55I_A523
> +     default 0x08001004 if MACH_SUN60I_A733
>       default 0x09010040 if SUN50I_GEN_H6
>       default 0x017000a0
>       ---help---
> @@ -257,6 +259,7 @@ config SUNXI_BL31_BASE
>       default 0x40000000 if MACH_SUN50I_H616
>       default 0x00104000 if SUN50I_GEN_H6
>       default 0x00054000 if MACH_SUN55I_A523
> +     default 0x00062000 if MACH_SUN60I_A733
>       default 0x0
>       help
>         Address where BL31 (TF-A) is loaded, or zero if BL31 is not used.
> @@ -339,6 +342,7 @@ config MACH_SUNXI_H3_H5
>  config SUNXI_DRAM_MAX_SIZE
>       hex
>       default 0x100000000 if MACH_SUN50I_H616 || MACH_SUN50I_A133 || 
> MACH_SUN55I_A523
> +     default 0x400000000 if MACH_SUN60I_A733
>       default 0xC0000000 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6
>       default 0x80000000
>  
> @@ -553,6 +557,14 @@ config MACH_SUN55I_A523
>       select SPL_LOAD_FIT if SPL
>       imply OF_UPSTREAM
>  
> +config MACH_SUN60I_A733
> +     bool "sun60i (Allwinner A733)"
> +     select ARM64
> +     select SUNXI_GEN_NCAT2
> +     select FIT
> +     select SPL_LOAD_FIT if SPL
> +     select SUPPORT_SPL
> +
>  endchoice
>  
>  # The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
> @@ -870,6 +882,7 @@ config SYS_CONFIG_NAME
>       default "sun50i" if MACH_SUN50I_H616
>       default "sun50i" if MACH_SUN50I_A133
>       default "sun55i" if MACH_SUN55I_A523
> +     default "sun60i" if MACH_SUN60I_A733
>  
>  config SYS_BOARD
>       default "sunxi"
> @@ -1186,6 +1199,7 @@ config SPL_STACK_R_ADDR
>       default 0x4fe00000 if MACH_SUN50I
>       default 0x4fe00000 if SUN50I_GEN_H6
>       default 0x4fe00000 if SUNXI_GEN_NCAT2
> +     default 0x4fe00000 if MACH_SUN60I_A733

This is not needed, since the same address is already selected by NCAT2.

Cheers,
Andre

>  config SPL_SPI_SUNXI
>       bool "Support for SPI Flash on Allwinner SoCs in SPL"
> diff --git a/arch/arm/mach-sunxi/cpu_info.c b/arch/arm/mach-sunxi/cpu_info.c 
> index c3a51d9956e..f0b33bb9097 100644
> --- a/arch/arm/mach-sunxi/cpu_info.c
> +++ b/arch/arm/mach-sunxi/cpu_info.c
> @@ -108,6 +108,8 @@ int print_cpuinfo(void)
>       puts("CPU:   Allwinner A133 (SUN50I)\n");
>  #elif defined CONFIG_MACH_SUN55I_A523
>       puts("CPU:   Allwinner A523 (SUN55I)\n");
> +#elif defined CONFIG_MACH_SUN60I_A733
> +     puts("CPU:   Allwinner A733 (SUN60I)\n");
>  #else
>  #warning Please update cpu_info.c with correct CPU information
>       puts("CPU:   SUNXI Family\n");
> diff --git a/include/configs/sun60i.h b/include/configs/sun60i.h
> new file mode 100644
> index 00000000000..70649366c1c
> --- /dev/null
> +++ b/include/configs/sun60i.h
> @@ -0,0 +1,11 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Placeholder wrapper to allow addressing Allwinner devices with Cortex-A55
> + * cores separately. Please do not add anything in here.
> + */
> +#ifndef __CONFIG_H
> +#define __CONFIG_H
> +
> +#include <configs/sunxi-common.h>
> +
> +#endif /* __CONFIG_H */
> 

Reply via email to