aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-sunxi
diff options
context:
space:
mode:
authorJernej Skrabec <jernej.skrabec@siol.net>2021-01-11 21:11:46 +0100
committerAndre Przywara <andre.przywara@arm.com>2021-01-25 21:52:01 +0000
commit8ec293e0639a0706f795ad08bcd3f89f068faf55 (patch)
tree465dbf76a32e2b89398027e2dc1d1ca214770a7e /arch/arm/mach-sunxi
parent0237b3047e2565725b16faa484e39ab254c5d987 (diff)
downloadu-boot-8ec293e0639a0706f795ad08bcd3f89f068faf55.zip
u-boot-8ec293e0639a0706f795ad08bcd3f89f068faf55.tar.gz
u-boot-8ec293e0639a0706f795ad08bcd3f89f068faf55.tar.bz2
sunxi: Add support for H616 SoC
H616 is very similar to H6 so most of the infrastructure can be reused. However, two big differences are that it doesn't have functional SRAM A2 which is usually used for TF-A and it doesn't have ARISC co-processor. It also needs bigger SPL size - 48 KiB. Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Diffstat (limited to 'arch/arm/mach-sunxi')
-rw-r--r--arch/arm/mach-sunxi/Kconfig11
-rw-r--r--arch/arm/mach-sunxi/cpu_info.c2
2 files changed, 12 insertions, 1 deletions
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
index d9924f9..0135575 100644
--- a/arch/arm/mach-sunxi/Kconfig
+++ b/arch/arm/mach-sunxi/Kconfig
@@ -190,9 +190,10 @@ config MACH_SUNXI_H3_H5
select SUPPORT_SPL
# TODO: try out A80's 8GiB DRAM space
+# TODO: H616 supports 4 GiB DRAM space
config SUNXI_DRAM_MAX_SIZE
hex
- default 0xC0000000 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6
+ default 0xC0000000 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6 || MACH_SUN50I_H616
default 0x80000000
choice
@@ -355,6 +356,12 @@ config MACH_SUN50I_H6
select DRAM_SUN50I_H6
select SUN50I_GEN_H6
+config MACH_SUN50I_H616
+ bool "sun50i (Allwinner H616)"
+ select ARM64
+ select DRAM_SUN50I_H616
+ select SUN50I_GEN_H6
+
endchoice
# The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
@@ -591,6 +598,7 @@ config SYS_CLK_FREQ
default 1008000000 if MACH_SUN8I
default 1008000000 if MACH_SUN9I
default 888000000 if MACH_SUN50I_H6
+ default 1008000000 if MACH_SUN50I_H616
config SYS_CONFIG_NAME
default "sun4i" if MACH_SUN4I
@@ -601,6 +609,7 @@ config SYS_CONFIG_NAME
default "sun9i" if MACH_SUN9I
default "sun50i" if MACH_SUN50I
default "sun50i" if MACH_SUN50I_H6
+ default "sun50i" if MACH_SUN50I_H616
config SYS_BOARD
default "sunxi"
diff --git a/arch/arm/mach-sunxi/cpu_info.c b/arch/arm/mach-sunxi/cpu_info.c
index 875e5a1..ba33ef2 100644
--- a/arch/arm/mach-sunxi/cpu_info.c
+++ b/arch/arm/mach-sunxi/cpu_info.c
@@ -99,6 +99,8 @@ int print_cpuinfo(void)
puts("CPU: Allwinner H5 (SUN50I)\n");
#elif defined CONFIG_MACH_SUN50I_H6
puts("CPU: Allwinner H6 (SUN50I)\n");
+#elif defined CONFIG_MACH_SUN50I_H616
+ puts("CPU: Allwinner H616 (SUN50I)\n");
#else
#warning Please update cpu_info.c with correct CPU information
puts("CPU: SUNXI Family\n");