]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sunxi: Introduce common symbol for H6 like SoCs
authorJernej Skrabec <jernej.skrabec@siol.net>
Mon, 11 Jan 2021 20:11:34 +0000 (21:11 +0100)
committerAndre Przywara <andre.przywara@arm.com>
Mon, 25 Jan 2021 21:52:00 +0000 (21:52 +0000)
It turns out that there are at least 2 other SoCs which have basically
the same memory map, similar clocks and other features as H6. It's very
likely that we'll see more such SoCs in the future. In order to ease
porting to new SoCs and lower ifdef clutter, introduce common symbol for
them.

Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
arch/arm/include/asm/arch-sunxi/boot0.h
arch/arm/include/asm/arch-sunxi/clock.h
arch/arm/include/asm/arch-sunxi/cpu.h
arch/arm/include/asm/arch-sunxi/timer.h
arch/arm/mach-sunxi/Kconfig
arch/arm/mach-sunxi/Makefile
arch/arm/mach-sunxi/board.c
arch/arm/mach-sunxi/rmr_switch.S
common/spl/Kconfig
include/configs/sun50i.h

index 46d0f0666c2b480e787814003cfbbb57b0103180..e8e8e38f0556bd99d97ee54ddb4fc06cfe7b2d46 100644 (file)
@@ -39,7 +39,7 @@
        .word   0xf57ff06f      // isb     sy
        .word   0xe320f003      // wfi
        .word   0xeafffffd      // b       @wfi
-#ifndef CONFIG_MACH_SUN50I_H6
+#ifndef CONFIG_SUN50I_GEN_H6
        .word   0x017000a0      // writeable RVBAR mapping address
 #else
        .word   0x09010040      // writeable RVBAR mapping address
index 5994130e6b543cf92615eae63e70916cb9915774..cbbe5c7a1e68539c9403a66f892ab9b8824d7490 100644 (file)
@@ -16,7 +16,7 @@
 /* clock control module regs definition */
 #if defined(CONFIG_MACH_SUN8I_A83T)
 #include <asm/arch/clock_sun8i_a83t.h>
-#elif defined(CONFIG_MACH_SUN50I_H6)
+#elif defined(CONFIG_SUN50I_GEN_H6)
 #include <asm/arch/clock_sun50i_h6.h>
 #elif defined(CONFIG_MACH_SUN6I) || defined(CONFIG_MACH_SUN8I) || \
       defined(CONFIG_MACH_SUN50I)
index 8b57d24e2f0c8fe8a7575a1d82bae3eacb7d16d4..b08f2023748c9877e3ed7255f84116859215dae6 100644 (file)
@@ -8,7 +8,7 @@
 
 #if defined(CONFIG_MACH_SUN9I)
 #include <asm/arch/cpu_sun9i.h>
-#elif defined(CONFIG_MACH_SUN50I_H6)
+#elif defined(CONFIG_SUN50I_GEN_H6)
 #include <asm/arch/cpu_sun50i_h6.h>
 #else
 #include <asm/arch/cpu_sun4i.h>
index 6f138d04b806495d2af17d641b02efa9a71bab08..bb5626d893bb0798e8949261cf626c7a6e05c397 100644 (file)
@@ -76,7 +76,7 @@ struct sunxi_timer_reg {
        struct sunxi_tgp tgp[4];
        u8 res5[8];
        u32 cpu_cfg;
-#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
+#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_SUN50I_GEN_H6)
        u8 res3[16];
        struct sunxi_wdog wdog[5];      /* We have 5 watchdogs */
 #endif
index 11e644519271c5fc553f10d95332d26867ea6928..36b142588fa67bb8e76bf344ee080736122ca4a4 100644 (file)
@@ -82,7 +82,7 @@ config SUN8I_RSB
 config SUNXI_SRAM_ADDRESS
        hex
        default 0x10000 if MACH_SUN9I || MACH_SUN50I || MACH_SUN50I_H5
-       default 0x20000 if MACH_SUN50I_H6
+       default 0x20000 if SUN50I_GEN_H6
        default 0x0
        ---help---
        Older Allwinner SoCs have their mask boot ROM mapped just below 4GB,
@@ -108,6 +108,15 @@ config SUNXI_GEN_SUN6I
        separate ahb reset control registers, custom pmic bus, new style
        watchdog, etc.
 
+config SUN50I_GEN_H6
+       bool
+       select FIT
+       select SPL_LOAD_FIT
+       select SUPPORT_SPL
+       ---help---
+       Select this for sunxi SoCs which have H6 like peripherals, clocks
+       and memory map.
+
 config SUNXI_DRAM_DW
        bool
        ---help---
@@ -302,11 +311,9 @@ config MACH_SUN50I_H5
 config MACH_SUN50I_H6
        bool "sun50i (Allwinner H6)"
        select ARM64
-       select SUPPORT_SPL
-       select FIT
        select PHY_SUN4I_USB
-       select SPL_LOAD_FIT
        select DRAM_SUN50I_H6
+       select SUN50I_GEN_H6
 
 endchoice
 
@@ -756,7 +763,7 @@ config VIDEO_SUNXI
        depends on !MACH_SUN8I_V3S
        depends on !MACH_SUN9I
        depends on !MACH_SUN50I
-       depends on !MACH_SUN50I_H6
+       depends on !SUN50I_GEN_H6
        select VIDEO
        imply VIDEO_DT_SIMPLEFB
        default y
@@ -989,7 +996,7 @@ config SPL_STACK_R_ADDR
        default 0x4fe00000 if MACH_SUN8I
        default 0x2fe00000 if MACH_SUN9I
        default 0x4fe00000 if MACH_SUN50I
-       default 0x4fe00000 if MACH_SUN50I_H6
+       default 0x4fe00000 if SUN50I_GEN_H6
 
 config SPL_SPI_SUNXI
        bool "Support for SPI Flash on Allwinner SoCs in SPL"
index d129f334798bb9e504516012055385088d6f8afa..b8aca43d6630e7dd2fb0c617cbb3b582c283141d 100644 (file)
@@ -26,7 +26,7 @@ else
 obj-$(CONFIG_MACH_SUN8I)       += clock_sun6i.o
 endif
 obj-$(CONFIG_MACH_SUN9I)       += clock_sun9i.o gtbus_sun9i.o
-obj-$(CONFIG_MACH_SUN50I_H6)   += clock_sun50i_h6.o
+obj-$(CONFIG_SUN50I_GEN_H6)    += clock_sun50i_h6.o
 
 ifdef CONFIG_SPL_BUILD
 obj-$(CONFIG_DRAM_SUN4I)       += dram_sun4i.o
index f40fccd8f8b9ed05bad0eb7b09114d2e235e9201..7a8b303f233cd6369a470562207e4f46b6a94035 100644 (file)
@@ -144,7 +144,7 @@ static int gpio_init(void)
 #error Unsupported console port number. Please fix pin mux settings in board.c
 #endif
 
-#ifdef CONFIG_MACH_SUN50I_H6
+#ifdef CONFIG_SUN50I_GEN_H6
        /* Update PIO power bias configuration by copy hardware detected value */
        val = readl(SUNXI_PIO_BASE + SUN50I_H6_GPIO_POW_MOD_VAL);
        writel(val, SUNXI_PIO_BASE + SUN50I_H6_GPIO_POW_MOD_SEL);
@@ -329,7 +329,7 @@ void reset_cpu(ulong addr)
                /* sun5i sometimes gets stuck without this */
                writel(WDT_MODE_RESET_EN | WDT_MODE_EN, &wdog->mode);
        }
-#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
+#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_SUN50I_GEN_H6)
 #if defined(CONFIG_MACH_SUN50I_H6)
        /* WDOG is broken for some H6 rev. use the R_WDOG instead */
        static const struct sunxi_wdog *wdog =
index fafd306f95b11e242ea156c33636039c2fad761a..33e55d496865a6d07d567c8d9f3911861d347d1e 100644 (file)
@@ -30,7 +30,7 @@
 
 .text
 
-#ifndef CONFIG_MACH_SUN50I_H6
+#ifndef CONFIG_SUN50I_GEN_H6
        ldr     r1, =0x017000a0         @ MMIO mapped RVBAR[0] register
 #else
        ldr     r1, =0x09010040         @ MMIO mapped RVBAR[0] register
index 7561335bfd8482544dee19c1c1d1d14dc860e481..0479bc9c213a8851c00ca1769cd69d2f28c62ab2 100644 (file)
@@ -159,7 +159,7 @@ config SPL_TEXT_BASE
        hex "SPL Text Base"
        default ISW_ENTRY_ADDR if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
        default 0x10060 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN9I
-       default 0x20060 if MACH_SUN50I_H6
+       default 0x20060 if SUN50I_GEN_H6
        default 0x00060 if ARCH_SUNXI
        default 0xfffc0000 if ARCH_ZYNQMP
        default 0x0
@@ -468,7 +468,7 @@ config SPL_SHA512_SUPPORT
 config SPL_FIT_IMAGE_TINY
        bool "Remove functionality from SPL FIT loading to reduce size"
        depends on SPL_FIT
-       default y if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6
+       default y if MACH_SUN50I || MACH_SUN50I_H5 || SUN50I_GEN_H6
        default y if ARCH_IMX8M
        help
          Enable this to reduce the size of the FIT image loading code
index e050a5299f3b98689938d1f5b71bc4c44fff9e0d..bc2e3a3d00881a45163359c7d130a679bb72b924 100644 (file)
@@ -10,7 +10,7 @@
  * A64 specific configuration
  */
 
-#ifndef CONFIG_MACH_SUN50I_H6
+#ifndef CONFIG_SUN50I_GEN_H6
 #define GICD_BASE              0x1c81000
 #define GICC_BASE              0x1c82000
 #else