Merge tag 'v2021.10-rc4' into next
[platform/kernel/u-boot.git] / arch / arm / Kconfig
index 25f4362..f0fd57f 100644 (file)
@@ -9,9 +9,9 @@ config ARM64
        select PHYS_64BIT
        select SYS_CACHE_SHIFT_6
 
        select PHYS_64BIT
        select SYS_CACHE_SHIFT_6
 
-if ARM64
 config POSITION_INDEPENDENT
        bool "Generate position-independent pre-relocation code"
 config POSITION_INDEPENDENT
        bool "Generate position-independent pre-relocation code"
+       depends on ARM64 || CPU_V7A
        help
          U-Boot expects to be linked to a specific hard-coded address, and to
          be loaded to and run from that address. This option lifts that
        help
          U-Boot expects to be linked to a specific hard-coded address, and to
          be loaded to and run from that address. This option lifts that
@@ -22,6 +22,7 @@ config POSITION_INDEPENDENT
 
 config INIT_SP_RELATIVE
        bool "Specify the early stack pointer relative to the .bss section"
 
 config INIT_SP_RELATIVE
        bool "Specify the early stack pointer relative to the .bss section"
+       depends on ARM64
        default n if ARCH_QEMU
        default y if POSITION_INDEPENDENT
        help
        default n if ARCH_QEMU
        default y if POSITION_INDEPENDENT
        help
@@ -37,6 +38,7 @@ config INIT_SP_RELATIVE
 
 config SYS_INIT_SP_BSS_OFFSET
        int "Early stack offset from the .bss base address"
 
 config SYS_INIT_SP_BSS_OFFSET
        int "Early stack offset from the .bss base address"
+       depends on ARM64
        depends on INIT_SP_RELATIVE
        default 524288
        help
        depends on INIT_SP_RELATIVE
        default 524288
        help
@@ -46,6 +48,7 @@ config SYS_INIT_SP_BSS_OFFSET
          do not overlap any appended DTB.
 
 config LINUX_KERNEL_IMAGE_HEADER
          do not overlap any appended DTB.
 
 config LINUX_KERNEL_IMAGE_HEADER
+       depends on ARM64
        bool
        help
          Place a Linux kernel image header at the start of the U-Boot binary.
        bool
        help
          Place a Linux kernel image header at the start of the U-Boot binary.
@@ -54,19 +57,24 @@ config LINUX_KERNEL_IMAGE_HEADER
          image header reports the amount of memory (BSS and similar) that
          U-Boot needs to use, but which isn't part of the binary.
 
          image header reports the amount of memory (BSS and similar) that
          U-Boot needs to use, but which isn't part of the binary.
 
-if LINUX_KERNEL_IMAGE_HEADER
 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
+       depends on LINUX_KERNEL_IMAGE_HEADER
        hex
        help
          The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
          TEXT_OFFSET value written to the Linux kernel image header.
        hex
        help
          The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
          TEXT_OFFSET value written to the Linux kernel image header.
-endif
-endif
+
+config GICV2
+       bool
+
+config GICV3
+       bool
 
 config GIC_V3_ITS
        bool "ARM GICV3 ITS"
        select REGMAP
        select SYSCON
 
 config GIC_V3_ITS
        bool "ARM GICV3 ITS"
        select REGMAP
        select SYSCON
+       select IRQ
        help
          ARM GICV3 Interrupt translation service (ITS).
          Basic support for programming locality specific peripheral
        help
          ARM GICV3 Interrupt translation service (ITS).
          Basic support for programming locality specific peripheral
@@ -89,6 +97,9 @@ config HAS_VBAR
 config HAS_THUMB2
        bool
 
 config HAS_THUMB2
        bool
 
+config GPIO_EXTRA_HEADER
+       bool
+
 # Used for compatibility with asm files copied from the kernel
 config ARM_ASM_UNIFIED
        bool
 # Used for compatibility with asm files copied from the kernel
 config ARM_ASM_UNIFIED
        bool
@@ -100,7 +111,6 @@ config THUMB2_KERNEL
 
 config SYS_ICACHE_OFF
        bool "Do not enable icache"
 
 config SYS_ICACHE_OFF
        bool "Do not enable icache"
-       default n
        help
          Do not enable instruction cache in U-Boot.
 
        help
          Do not enable instruction cache in U-Boot.
 
@@ -113,7 +123,6 @@ config SPL_SYS_ICACHE_OFF
 
 config SYS_DCACHE_OFF
        bool "Do not enable dcache"
 
 config SYS_DCACHE_OFF
        bool "Do not enable dcache"
-       default n
        help
          Do not enable data cache in U-Boot.
 
        help
          Do not enable data cache in U-Boot.
 
@@ -328,25 +337,10 @@ config SYS_ARM_ARCH
        default 4 if CPU_SA1100
        default 8 if ARM64
 
        default 4 if CPU_SA1100
        default 8 if ARM64
 
-config SYS_CACHE_SHIFT_5
-       bool
-
-config SYS_CACHE_SHIFT_6
-       bool
-
-config SYS_CACHE_SHIFT_7
-       bool
-
-config SYS_CACHELINE_SIZE
-       int
-       default 128 if SYS_CACHE_SHIFT_7
-       default 64 if SYS_CACHE_SHIFT_6
-       default 32 if SYS_CACHE_SHIFT_5
-
 choice
        prompt "Select the ARM data write cache policy"
        default SYS_ARM_CACHE_WRITETHROUGH if TARGET_BCMCYGNUS || \
 choice
        prompt "Select the ARM data write cache policy"
        default SYS_ARM_CACHE_WRITETHROUGH if TARGET_BCMCYGNUS || \
-                                             TARGET_BCMNSP || CPU_PXA || RZA1
+                                             CPU_PXA || RZA1
        default SYS_ARM_CACHE_WRITEBACK
 
 config SYS_ARM_CACHE_WRITEBACK
        default SYS_ARM_CACHE_WRITEBACK
 
 config SYS_ARM_CACHE_WRITEBACK
@@ -448,7 +442,6 @@ config ENABLE_ARM_SOC_BOOT0_HOOK
 
 config ARM_CORTEX_CPU_IS_UP
        bool
 
 config ARM_CORTEX_CPU_IS_UP
        bool
-       default n
 
 config USE_ARCH_MEMCPY
        bool "Use an assembly optimized implementation of memcpy"
 
 config USE_ARCH_MEMCPY
        bool "Use an assembly optimized implementation of memcpy"
@@ -517,25 +510,19 @@ choice
 
 config ARCH_AT91
        bool "Atmel AT91"
 
 config ARCH_AT91
        bool "Atmel AT91"
+       select GPIO_EXTRA_HEADER
        select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
        select SPL_SEPARATE_BSS if SPL
 
        select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
        select SPL_SEPARATE_BSS if SPL
 
-config TARGET_EDB93XX
-       bool "Support edb93xx"
-       select CPU_ARM920T
-       select PL010_SERIAL
-
 config TARGET_ASPENITE
        bool "Support aspenite"
        select CPU_ARM926EJS
 config TARGET_ASPENITE
        bool "Support aspenite"
        select CPU_ARM926EJS
-
-config TARGET_GPLUGD
-       bool "Support gplugd"
-       select CPU_ARM926EJS
+       select GPIO_EXTRA_HEADER
 
 config ARCH_DAVINCI
        bool "TI DaVinci"
        select CPU_ARM926EJS
 
 config ARCH_DAVINCI
        bool "TI DaVinci"
        select CPU_ARM926EJS
+       select GPIO_EXTRA_HEADER
        select SPL_DM_SPI if SPL
        imply CMD_SAVES
        help
        select SPL_DM_SPI if SPL
        imply CMD_SAVES
        help
@@ -546,6 +533,7 @@ config ARCH_KIRKWOOD
        select ARCH_MISC_INIT
        select BOARD_EARLY_INIT_F
        select CPU_ARM926EJS
        select ARCH_MISC_INIT
        select BOARD_EARLY_INIT_F
        select CPU_ARM926EJS
+       select GPIO_EXTRA_HEADER
 
 config ARCH_MVEBU
        bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
 
 config ARCH_MVEBU
        bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
@@ -554,6 +542,7 @@ config ARCH_MVEBU
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
+       select GPIO_EXTRA_HEADER
        select SPL_DM_SPI if SPL
        select SPL_DM_SPI_FLASH if SPL
        select OF_CONTROL
        select SPL_DM_SPI if SPL
        select SPL_DM_SPI_FLASH if SPL
        select OF_CONTROL
@@ -564,34 +553,7 @@ config ARCH_MVEBU
 config ARCH_ORION5X
        bool "Marvell Orion"
        select CPU_ARM926EJS
 config ARCH_ORION5X
        bool "Marvell Orion"
        select CPU_ARM926EJS
-
-config TARGET_SPEAR300
-       bool "Support spear300"
-       select BOARD_EARLY_INIT_F
-       select CPU_ARM926EJS
-       select PL011_SERIAL
-       imply CMD_SAVES
-
-config TARGET_SPEAR310
-       bool "Support spear310"
-       select BOARD_EARLY_INIT_F
-       select CPU_ARM926EJS
-       select PL011_SERIAL
-       imply CMD_SAVES
-
-config TARGET_SPEAR320
-       bool "Support spear320"
-       select BOARD_EARLY_INIT_F
-       select CPU_ARM926EJS
-       select PL011_SERIAL
-       imply CMD_SAVES
-
-config TARGET_SPEAR600
-       bool "Support spear600"
-       select BOARD_EARLY_INIT_F
-       select CPU_ARM926EJS
-       select PL011_SERIAL
-       imply CMD_SAVES
+       select GPIO_EXTRA_HEADER
 
 config TARGET_STV0991
        bool "Support stv0991"
 
 config TARGET_STV0991
        bool "Support stv0991"
@@ -600,27 +562,23 @@ config TARGET_STV0991
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
+       select GPIO_EXTRA_HEADER
        select PL01X_SERIAL
        select SPI
        select SPI_FLASH
        imply CMD_DM
 
        select PL01X_SERIAL
        select SPI
        select SPI_FLASH
        imply CMD_DM
 
-config TARGET_X600
-       bool "Support x600"
-       select BOARD_LATE_INIT
-       select CPU_ARM926EJS
-       select PL011_SERIAL
-       select SUPPORT_SPL
-
 config TARGET_FLEA3
        bool "Support flea3"
        select CPU_ARM1136
 config TARGET_FLEA3
        bool "Support flea3"
        select CPU_ARM1136
+       select GPIO_EXTRA_HEADER
 
 config ARCH_BCM283X
        bool "Broadcom BCM283X family"
        select DM
        select DM_GPIO
        select DM_SERIAL
 
 config ARCH_BCM283X
        bool "Broadcom BCM283X family"
        select DM
        select DM_GPIO
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select PL01X_SERIAL
        select SERIAL_SEARCH_ALL
        select OF_CONTROL
        select PL01X_SERIAL
        select SERIAL_SEARCH_ALL
@@ -645,17 +603,11 @@ config ARCH_BCM6858
        select OF_CONTROL
        imply CMD_DM
 
        select OF_CONTROL
        imply CMD_DM
 
-config TARGET_VEXPRESS_CA15_TC2
-       bool "Support vexpress_ca15_tc2"
-       select CPU_V7A
-       select CPU_V7_HAS_NONSEC
-       select CPU_V7_HAS_VIRT
-       select PL011_SERIAL
-
 config ARCH_BCMSTB
        bool "Broadcom BCM7XXX family"
        select CPU_V7A
        select DM
 config ARCH_BCMSTB
        bool "Broadcom BCM7XXX family"
        select CPU_V7A
        select DM
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select OF_PRIOR_STAGE
        imply CMD_DM
        select OF_CONTROL
        select OF_PRIOR_STAGE
        imply CMD_DM
@@ -663,31 +615,10 @@ config ARCH_BCMSTB
          This enables support for Broadcom ARM-based set-top box
          chipsets, including the 7445 family of chips.
 
          This enables support for Broadcom ARM-based set-top box
          chipsets, including the 7445 family of chips.
 
-config TARGET_VEXPRESS_CA5X2
-       bool "Support vexpress_ca5x2"
-       select CPU_V7A
-       select PL011_SERIAL
-
-config TARGET_VEXPRESS_CA9X4
-       bool "Support vexpress_ca9x4"
-       select CPU_V7A
-       select PL011_SERIAL
-
-config TARGET_BCM23550_W1D
-       bool "Support bcm23550_w1d"
-       select CPU_V7A
-       imply CRC32_VERIFY
-       imply FAT_WRITE
-
-config TARGET_BCM28155_AP
-       bool "Support bcm28155_ap"
-       select CPU_V7A
-       imply CRC32_VERIFY
-       imply FAT_WRITE
-
 config TARGET_BCMCYGNUS
        bool "Support bcmcygnus"
        select CPU_V7A
 config TARGET_BCMCYGNUS
        bool "Support bcmcygnus"
        select CPU_V7A
+       select GPIO_EXTRA_HEADER
        imply BCM_SF2_ETH
        imply BCM_SF2_ETH_GMAC
        imply CMD_HASH
        imply BCM_SF2_ETH
        imply BCM_SF2_ETH_GMAC
        imply CMD_HASH
@@ -696,13 +627,10 @@ config TARGET_BCMCYGNUS
        imply HASH_VERIFY
        imply NETDEVICES
 
        imply HASH_VERIFY
        imply NETDEVICES
 
-config TARGET_BCMNSP
-       bool "Support bcmnsp"
-       select CPU_V7A
-
 config TARGET_BCMNS2
        bool "Support Broadcom Northstar2"
        select ARM64
 config TARGET_BCMNS2
        bool "Support Broadcom Northstar2"
        select ARM64
+       select GPIO_EXTRA_HEADER
        help
          Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
          ARMv8 Cortex-A57 processors targeting a broad range of networking
        help
          Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
          ARMv8 Cortex-A57 processors targeting a broad range of networking
@@ -722,11 +650,13 @@ config ARCH_EXYNOS
        select DM
        select DM_GPIO
        select DM_I2C
        select DM
        select DM_GPIO
        select DM_I2C
+       select DM_ETH
        select DM_KEYBOARD
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select SPI
        select DM_KEYBOARD
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select SPI
+       select GPIO_EXTRA_HEADER
        imply SYS_THUMB_BUILD
        imply CMD_DM
        imply FAT_WRITE
        imply SYS_THUMB_BUILD
        imply CMD_DM
        imply FAT_WRITE
@@ -738,17 +668,28 @@ config ARCH_S5PC1XX
        select DM_GPIO
        select DM_I2C
        select DM_SERIAL
        select DM_GPIO
        select DM_I2C
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        imply CMD_DM
 
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
        select CPU_V7A
        imply CMD_DM
 
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
        select CPU_V7A
-       select PL011_SERIAL
+       select PL01X_SERIAL
+       select DM
+       select DM_SERIAL
+       select OF_CONTROL
+       select OF_BOARD
+       select CLK
+       select CLK_CCF
+       select AHCI
+       select DM_ETH
+       select PHYS_64BIT
 
 config ARCH_INTEGRATOR
        bool "ARM Ltd. Integrator family"
        select DM
        select DM_SERIAL
 
 config ARCH_INTEGRATOR
        bool "ARM Ltd. Integrator family"
        select DM
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        select PL01X_SERIAL
        imply CMD_DM
 
        select PL01X_SERIAL
        imply CMD_DM
 
@@ -759,6 +700,7 @@ config ARCH_IPQ40XX
        select DM_GPIO
        select DM_SERIAL
        select DM_RESET
        select DM_GPIO
        select DM_SERIAL
        select DM_RESET
+       select GPIO_EXTRA_HEADER
        select MSM_SMEM
        select PINCTRL
        select CLK
        select MSM_SMEM
        select PINCTRL
        select CLK
@@ -770,6 +712,8 @@ config ARCH_KEYSTONE
        bool "TI Keystone"
        select CMD_POWEROFF
        select CPU_V7A
        bool "TI Keystone"
        select CMD_POWEROFF
        select CPU_V7A
+       select DDR_SPD
+       select GPIO_EXTRA_HEADER
        select SUPPORT_SPL
        select SYS_ARCH_TIMER
        select SYS_THUMB_BUILD
        select SUPPORT_SPL
        select SYS_ARCH_TIMER
        select SYS_THUMB_BUILD
@@ -786,6 +730,7 @@ config ARCH_K3
 config ARCH_OMAP2PLUS
        bool "TI OMAP2+"
        select CPU_V7A
 config ARCH_OMAP2PLUS
        bool "TI OMAP2+"
        select CPU_V7A
+       select GPIO_EXTRA_HEADER
        select SPL_BOARD_INIT if SPL
        select SPL_STACK_R if SPL
        select SUPPORT_SPL
        select SPL_BOARD_INIT if SPL
        select SPL_STACK_R if SPL
        select SUPPORT_SPL
@@ -794,6 +739,7 @@ config ARCH_OMAP2PLUS
 
 config ARCH_MESON
        bool "Amlogic Meson"
 
 config ARCH_MESON
        bool "Amlogic Meson"
+       select GPIO_EXTRA_HEADER
        imply DISTRO_DEFAULTS
        imply DM_RNG
        help
        imply DISTRO_DEFAULTS
        imply DM_RNG
        help
@@ -804,6 +750,7 @@ config ARCH_MESON
 config ARCH_MEDIATEK
        bool "MediaTek SoCs"
        select DM
 config ARCH_MEDIATEK
        bool "MediaTek SoCs"
        select DM
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select SPL_DM if SPL
        select SPL_LIBCOMMON_SUPPORT if SPL
        select OF_CONTROL
        select SPL_DM if SPL
        select SPL_LIBCOMMON_SUPPORT if SPL
@@ -820,6 +767,7 @@ config ARCH_LPC32XX
        select DM
        select DM_GPIO
        select DM_SERIAL
        select DM
        select DM_GPIO
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        select SPL_DM if SPL
        select SUPPORT_SPL
        imply CMD_DM
        select SPL_DM if SPL
        select SUPPORT_SPL
        imply CMD_DM
@@ -828,17 +776,32 @@ config ARCH_IMX8
        bool "NXP i.MX8 platform"
        select ARM64
        select DM
        bool "NXP i.MX8 platform"
        select ARM64
        select DM
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        select OF_CONTROL
        select ENABLE_ARM_SOC_BOOT0_HOOK
 
 config ARCH_IMX8M
        bool "NXP i.MX8M platform"
        select ARM64
        select OF_CONTROL
        select ENABLE_ARM_SOC_BOOT0_HOOK
 
 config ARCH_IMX8M
        bool "NXP i.MX8M platform"
        select ARM64
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
        select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
+       select SYS_I2C_MXC
+       select DM
+       select SUPPORT_SPL
+       imply CMD_DM
+
+config ARCH_IMX8ULP
+       bool "NXP i.MX8ULP platform"
+       select ARM64
        select DM
        select DM
+       select MACH_IMX
+       select OF_CONTROL
        select SUPPORT_SPL
        select SUPPORT_SPL
+       select GPIO_EXTRA_HEADER
        imply CMD_DM
 
 config ARCH_IMXRT
        imply CMD_DM
 
 config ARCH_IMXRT
@@ -846,33 +809,45 @@ config ARCH_IMXRT
        select CPU_V7M
        select DM
        select DM_SERIAL
        select CPU_V7M
        select DM
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        select SUPPORT_SPL
        imply CMD_DM
 
 config ARCH_MX23
        bool "NXP i.MX23 family"
        select CPU_ARM926EJS
        select SUPPORT_SPL
        imply CMD_DM
 
 config ARCH_MX23
        bool "NXP i.MX23 family"
        select CPU_ARM926EJS
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        select PL011_SERIAL
        select SUPPORT_SPL
 
 config ARCH_MX25
        bool "NXP MX25"
        select CPU_ARM926EJS
        select PL011_SERIAL
        select SUPPORT_SPL
 
 config ARCH_MX25
        bool "NXP MX25"
        select CPU_ARM926EJS
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        imply MXC_GPIO
 
 config ARCH_MX28
        bool "NXP i.MX28 family"
        select CPU_ARM926EJS
        imply MXC_GPIO
 
 config ARCH_MX28
        bool "NXP i.MX28 family"
        select CPU_ARM926EJS
+       select GPIO_EXTRA_HEADER
        select PL011_SERIAL
        select PL011_SERIAL
+       select MACH_IMX
        select SUPPORT_SPL
 
 config ARCH_MX31
        bool "NXP i.MX31 family"
        select CPU_ARM1136
        select SUPPORT_SPL
 
 config ARCH_MX31
        bool "NXP i.MX31 family"
        select CPU_ARM1136
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
 
 config ARCH_MX7ULP
        bool "NXP MX7ULP"
        select CPU_V7A
 
 config ARCH_MX7ULP
        bool "NXP MX7ULP"
        select CPU_V7A
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
        select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
@@ -884,6 +859,8 @@ config ARCH_MX7
        bool "Freescale MX7"
        select ARCH_MISC_INIT
        select CPU_V7A
        bool "Freescale MX7"
        select ARCH_MISC_INIT
        select CPU_V7A
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
        select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
@@ -894,6 +871,8 @@ config ARCH_MX7
 config ARCH_MX6
        bool "Freescale MX6"
        select CPU_V7A
 config ARCH_MX6
        bool "Freescale MX6"
        select CPU_V7A
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        select SYS_FSL_HAS_SEC
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
        select SYS_FSL_HAS_SEC
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
@@ -909,18 +888,22 @@ config ARCH_MX5
        bool "Freescale MX5"
        select BOARD_EARLY_INIT_F
        select CPU_V7A
        bool "Freescale MX5"
        select BOARD_EARLY_INIT_F
        select CPU_V7A
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        imply MXC_GPIO
 
 config ARCH_NEXELL
        bool "Nexell S5P4418/S5P6818 SoC"
        select ENABLE_ARM_SOC_BOOT0_HOOK
        select DM
        imply MXC_GPIO
 
 config ARCH_NEXELL
        bool "Nexell S5P4418/S5P6818 SoC"
        select ENABLE_ARM_SOC_BOOT0_HOOK
        select DM
+       select GPIO_EXTRA_HEADER
 
 config ARCH_OWL
        bool "Actions Semi OWL SoCs"
        select DM
        select DM_ETH
        select DM_SERIAL
 
 config ARCH_OWL
        bool "Actions Semi OWL SoCs"
        select DM
        select DM_ETH
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        select OWL_SERIAL
        select CLK
        select CLK_OWL
        select OWL_SERIAL
        select CLK
        select CLK_OWL
@@ -943,23 +926,20 @@ config ARCH_RMOBILE
        bool "Renesas ARM SoCs"
        select DM
        select DM_SERIAL
        bool "Renesas ARM SoCs"
        select DM
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        imply BOARD_EARLY_INIT_F
        imply CMD_DM
        imply FAT_WRITE
        imply SYS_THUMB_BUILD
        imply ARCH_MISC_INIT if DISPLAY_CPUINFO
 
        imply BOARD_EARLY_INIT_F
        imply CMD_DM
        imply FAT_WRITE
        imply SYS_THUMB_BUILD
        imply ARCH_MISC_INIT if DISPLAY_CPUINFO
 
-config TARGET_S32V234EVB
-       bool "Support s32v234evb"
-       select ARM64
-       select SYS_FSL_ERRATUM_ESDHC111
-
 config ARCH_SNAPDRAGON
        bool "Qualcomm Snapdragon SoCs"
        select ARM64
        select DM
        select DM_GPIO
        select DM_SERIAL
 config ARCH_SNAPDRAGON
        bool "Qualcomm Snapdragon SoCs"
        select ARM64
        select DM
        select DM_GPIO
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        select MSM_SMEM
        select OF_CONTROL
        select OF_SEPARATE
        select MSM_SMEM
        select OF_CONTROL
        select OF_SEPARATE
@@ -975,6 +955,8 @@ config ARCH_SOCFPGA
        select CPU_V7A if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
        select DM
        select DM_SERIAL
        select CPU_V7A if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
        select DM
        select DM_SERIAL
+       select GICV2
+       select GPIO_EXTRA_HEADER
        select ENABLE_ARM_SOC_BOOT0_HOOK if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
        select OF_CONTROL
        select SPL_DM_RESET if DM_RESET
        select ENABLE_ARM_SOC_BOOT0_HOOK if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
        select OF_CONTROL
        select SPL_DM_RESET if DM_RESET
@@ -984,9 +966,9 @@ config ARCH_SOCFPGA
        select SPL_NAND_SUPPORT if SPL_NAND_DENALI
        select SPL_OF_CONTROL
        select SPL_SEPARATE_BSS if TARGET_SOCFPGA_SOC64
        select SPL_NAND_SUPPORT if SPL_NAND_DENALI
        select SPL_OF_CONTROL
        select SPL_SEPARATE_BSS if TARGET_SOCFPGA_SOC64
-       select SPL_SERIAL_SUPPORT
+       select SPL_SERIAL
        select SPL_SYSRESET
        select SPL_SYSRESET
-       select SPL_WATCHDOG_SUPPORT
+       select SPL_WATCHDOG
        select SUPPORT_SPL
        select SYS_NS16550
        select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
        select SUPPORT_SPL
        select SYS_NS16550
        select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
@@ -1004,11 +986,11 @@ config ARCH_SOCFPGA
        imply SPL_DM_SPI
        imply SPL_DM_SPI_FLASH
        imply SPL_LIBDISK_SUPPORT
        imply SPL_DM_SPI
        imply SPL_DM_SPI_FLASH
        imply SPL_LIBDISK_SUPPORT
-       imply SPL_MMC_SUPPORT
+       imply SPL_MMC
        imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
        imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
        imply SPL_SPI_FLASH_SUPPORT
        imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
        imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
        imply SPL_SPI_FLASH_SUPPORT
-       imply SPL_SPI_SUPPORT
+       imply SPL_SPI
        imply L2X0_CACHE
 
 config ARCH_SUNXI
        imply L2X0_CACHE
 
 config ARCH_SUNXI
@@ -1016,7 +998,7 @@ config ARCH_SUNXI
        select BINMAN
        select CMD_GPIO
        select CMD_MMC if MMC
        select BINMAN
        select CMD_GPIO
        select CMD_MMC if MMC
-       select CMD_USB if DISTRO_DEFAULTS
+       select CMD_USB if DISTRO_DEFAULTS && USB_HOST
        select CLK
        select DM
        select DM_ETH
        select CLK
        select DM
        select DM_ETH
@@ -1025,7 +1007,7 @@ config ARCH_SUNXI
        select DM_MMC if MMC
        select DM_SCSI if SCSI
        select DM_SERIAL
        select DM_MMC if MMC
        select DM_SCSI if SCSI
        select DM_SERIAL
-       select DM_USB if DISTRO_DEFAULTS
+       select GPIO_EXTRA_HEADER
        select OF_BOARD_SETUP
        select OF_CONTROL
        select OF_SEPARATE
        select OF_BOARD_SETUP
        select OF_CONTROL
        select OF_SEPARATE
@@ -1037,8 +1019,8 @@ config ARCH_SUNXI
        select SYS_NS16550
        select SYS_THUMB_BUILD if !ARM64
        select USB if DISTRO_DEFAULTS
        select SYS_NS16550
        select SYS_THUMB_BUILD if !ARM64
        select USB if DISTRO_DEFAULTS
-       select USB_KEYBOARD if DISTRO_DEFAULTS
-       select USB_STORAGE if DISTRO_DEFAULTS
+       select USB_KEYBOARD if DISTRO_DEFAULTS && USB_HOST
+       select USB_STORAGE if DISTRO_DEFAULTS && USB_HOST
        select SPL_USE_TINY_PRINTF
        select USE_PREBOOT
        select SYS_RELOC_GD_ENV_ADDR
        select SPL_USE_TINY_PRINTF
        select USE_PREBOOT
        select SYS_RELOC_GD_ENV_ADDR
@@ -1051,12 +1033,12 @@ config ARCH_SUNXI
        imply FIT
        imply OF_LIBFDT_OVERLAY
        imply PRE_CONSOLE_BUFFER
        imply FIT
        imply OF_LIBFDT_OVERLAY
        imply PRE_CONSOLE_BUFFER
-       imply SPL_GPIO_SUPPORT
+       imply SPL_GPIO
        imply SPL_LIBCOMMON_SUPPORT
        imply SPL_LIBGENERIC_SUPPORT
        imply SPL_LIBCOMMON_SUPPORT
        imply SPL_LIBGENERIC_SUPPORT
-       imply SPL_MMC_SUPPORT if MMC
-       imply SPL_POWER_SUPPORT
-       imply SPL_SERIAL_SUPPORT
+       imply SPL_MMC if MMC
+       imply SPL_POWER
+       imply SPL_SERIAL
        imply USB_GADGET
 
 config ARCH_U8500
        imply USB_GADGET
 
 config ARCH_U8500
@@ -1066,15 +1048,22 @@ config ARCH_U8500
        select DM_GPIO
        select DM_MMC if MMC
        select DM_SERIAL
        select DM_GPIO
        select DM_MMC if MMC
        select DM_SERIAL
-       select DM_USB if USB
+       select DM_USB_GADGET if DM_USB
        select OF_CONTROL
        select SYSRESET
        select TIMER
        select OF_CONTROL
        select SYSRESET
        select TIMER
+       imply AB8500_USB_PHY
        imply ARM_PL180_MMCI
        imply ARM_PL180_MMCI
+       imply CLK
+       imply DM_PMIC
        imply DM_RTC
        imply DM_RTC
+       imply NOMADIK_GPIO
        imply NOMADIK_MTU_TIMER
        imply NOMADIK_MTU_TIMER
+       imply PHY
        imply PL01X_SERIAL
        imply PL01X_SERIAL
+       imply PMIC_AB8500
        imply RTC_PL031
        imply RTC_PL031
+       imply SYS_THUMB_BUILD
        imply SYSRESET_SYSCON
 
 config ARCH_VERSAL
        imply SYSRESET_SYSCON
 
 config ARCH_VERSAL
@@ -1085,13 +1074,18 @@ config ARCH_VERSAL
        select DM_ETH if NET
        select DM_MMC if MMC
        select DM_SERIAL
        select DM_ETH if NET
        select DM_MMC if MMC
        select DM_SERIAL
+       select GICV3
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select OF_CONTROL
+       select SOC_DEVICE
        imply BOARD_LATE_INIT
        imply ENV_VARS_UBOOT_RUNTIME_CONFIG
 
 config ARCH_VF610
        bool "Freescale Vybrid"
        select CPU_V7A
        imply BOARD_LATE_INIT
        imply ENV_VARS_UBOOT_RUNTIME_CONFIG
 
 config ARCH_VF610
        bool "Freescale Vybrid"
        select CPU_V7A
+       select GPIO_EXTRA_HEADER
+       select MACH_IMX
        select SYS_FSL_ERRATUM_ESDHC111
        imply CMD_MTDPARTS
        imply MTD_RAW_NAND
        select SYS_FSL_ERRATUM_ESDHC111
        imply CMD_MTDPARTS
        imply MTD_RAW_NAND
@@ -1107,7 +1101,7 @@ config ARCH_ZYNQ
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
-       select DM_USB if USB
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select SPI
        select SPL_BOARD_INIT if SPL
        select OF_CONTROL
        select SPI
        select SPL_BOARD_INIT if SPL
@@ -1134,6 +1128,7 @@ config ARCH_ZYNQMP_R5
        select DM_ETH if NET
        select DM_MMC if MMC
        select DM_SERIAL
        select DM_ETH if NET
        select DM_MMC if MMC
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        imply CMD_DM
        imply DM_USB_GADGET
        select OF_CONTROL
        imply CMD_DM
        imply DM_USB_GADGET
@@ -1149,8 +1144,9 @@ config ARCH_ZYNQMP
        select DM_SERIAL
        select DM_SPI if SPI
        select DM_SPI_FLASH if DM_SPI
        select DM_SERIAL
        select DM_SPI if SPI
        select DM_SPI_FLASH if DM_SPI
-       select DM_USB if USB
        select FIRMWARE
        select FIRMWARE
+       select GICV2
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select SPL_BOARD_INIT if SPL
        select SPL_CLK if SPL
        select OF_CONTROL
        select SPL_BOARD_INIT if SPL
        select SPL_CLK if SPL
@@ -1162,6 +1158,7 @@ config ARCH_ZYNQMP
        select SPL_SEPARATE_BSS if SPL
        select SUPPORT_SPL
        select ZYNQMP_IPI
        select SPL_SEPARATE_BSS if SPL
        select SUPPORT_SPL
        select ZYNQMP_IPI
+       select SOC_DEVICE
        imply BOARD_LATE_INIT
        imply CMD_DM
        imply ENV_VARS_UBOOT_RUNTIME_CONFIG
        imply BOARD_LATE_INIT
        imply CMD_DM
        imply ENV_VARS_UBOOT_RUNTIME_CONFIG
@@ -1171,23 +1168,27 @@ config ARCH_ZYNQMP
 
 config ARCH_TEGRA
        bool "NVIDIA Tegra"
 
 config ARCH_TEGRA
        bool "NVIDIA Tegra"
+       select GPIO_EXTRA_HEADER
        imply DISTRO_DEFAULTS
        imply FAT_WRITE
 
 config TARGET_VEXPRESS64_AEMV8A
        bool "Support vexpress_aemv8a"
        select ARM64
        imply DISTRO_DEFAULTS
        imply FAT_WRITE
 
 config TARGET_VEXPRESS64_AEMV8A
        bool "Support vexpress_aemv8a"
        select ARM64
+       select GPIO_EXTRA_HEADER
        select PL01X_SERIAL
 
 config TARGET_VEXPRESS64_BASE_FVP
        bool "Support Versatile Express ARMv8a FVP BASE model"
        select ARM64
        select PL01X_SERIAL
 
 config TARGET_VEXPRESS64_BASE_FVP
        bool "Support Versatile Express ARMv8a FVP BASE model"
        select ARM64
+       select GPIO_EXTRA_HEADER
        select PL01X_SERIAL
        select SEMIHOSTING
 
 config TARGET_VEXPRESS64_JUNO
        bool "Support Versatile Express Juno Development Platform"
        select ARM64
        select PL01X_SERIAL
        select SEMIHOSTING
 
 config TARGET_VEXPRESS64_JUNO
        bool "Support Versatile Express Juno Development Platform"
        select ARM64
+       select GPIO_EXTRA_HEADER
        select PL01X_SERIAL
        select DM
        select OF_CONTROL
        select PL01X_SERIAL
        select DM
        select OF_CONTROL
@@ -1199,7 +1200,6 @@ config TARGET_VEXPRESS64_JUNO
        select DM_ETH
        select BLK
        select USB
        select DM_ETH
        select BLK
        select USB
-       select DM_USB
 
 config TARGET_TOTAL_COMPUTE
        bool "Support Total Compute Platform"
 
 config TARGET_TOTAL_COMPUTE
        bool "Support Total Compute Platform"
@@ -1216,6 +1216,7 @@ config TARGET_LS2080A_EMU
        select ARM64
        select ARMV8_MULTIENTRY
        select FSL_DDR_SYNC_REFRESH
        select ARM64
        select ARMV8_MULTIENTRY
        select FSL_DDR_SYNC_REFRESH
+       select GPIO_EXTRA_HEADER
        help
          Support for Freescale LS2080A_EMU platform.
          The LS2080A Development System (EMULATOR) is a pre-silicon
        help
          Support for Freescale LS2080A_EMU platform.
          The LS2080A Development System (EMULATOR) is a pre-silicon
@@ -1229,6 +1230,7 @@ config TARGET_LS1088AQDS
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        select SUPPORT_SPL
        select FSL_DDR_INTERACTIVE if !SD_BOOT
        help
        select SUPPORT_SPL
        select FSL_DDR_INTERACTIVE if !SD_BOOT
        help
@@ -1244,6 +1246,7 @@ config TARGET_LS2080AQDS
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        select SUPPORT_SPL
        imply SCSI
        imply SCSI_AHCI
        select SUPPORT_SPL
        imply SCSI
        imply SCSI_AHCI
@@ -1265,6 +1268,7 @@ config TARGET_LS2080ARDB
        select SUPPORT_SPL
        select FSL_DDR_BIST
        select FSL_DDR_INTERACTIVE if !SPL
        select SUPPORT_SPL
        select FSL_DDR_BIST
        select FSL_DDR_INTERACTIVE if !SPL
+       select GPIO_EXTRA_HEADER
        imply SCSI
        imply SCSI_AHCI
        help
        imply SCSI
        imply SCSI_AHCI
        help
@@ -1279,6 +1283,7 @@ config TARGET_LS2081ARDB
        select ARM64
        select ARMV8_MULTIENTRY
        select BOARD_LATE_INIT
        select ARM64
        select ARMV8_MULTIENTRY
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        select SUPPORT_SPL
        help
          Support for Freescale LS2081ARDB platform.
        select SUPPORT_SPL
        help
          Support for Freescale LS2081ARDB platform.
@@ -1293,6 +1298,7 @@ config TARGET_LX2160ARDB
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        help
          Support for NXP LX2160ARDB platform.
          The lx2160ardb (LX2160A Reference design board (RDB)
        help
          Support for NXP LX2160ARDB platform.
          The lx2160ardb (LX2160A Reference design board (RDB)
@@ -1306,6 +1312,7 @@ config TARGET_LX2160AQDS
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        help
          Support for NXP LX2160AQDS platform.
          The lx2160aqds (LX2160A QorIQ Development System (QDS)
        help
          Support for NXP LX2160AQDS platform.
          The lx2160aqds (LX2160A QorIQ Development System (QDS)
@@ -1320,6 +1327,7 @@ config TARGET_LX2162AQDS
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        help
          Support for NXP LX2162AQDS platform.
          The lx2162aqds support is based on LX2160A Layerscape Architecture processor.
        help
          Support for NXP LX2162AQDS platform.
          The lx2162aqds support is based on LX2160A Layerscape Architecture processor.
@@ -1330,6 +1338,7 @@ config TARGET_HIKEY
        select DM
        select DM_GPIO
        select DM_SERIAL
        select DM
        select DM_GPIO
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select PL01X_SERIAL
        select SPECIFY_CONSOLE_INDEX
        select OF_CONTROL
        select PL01X_SERIAL
        select SPECIFY_CONSOLE_INDEX
@@ -1343,6 +1352,7 @@ config TARGET_HIKEY960
        select ARM64
        select DM
        select DM_SERIAL
        select ARM64
        select DM
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select PL01X_SERIAL
        imply CMD_DM
        select OF_CONTROL
        select PL01X_SERIAL
        imply CMD_DM
@@ -1355,7 +1365,7 @@ config TARGET_POPLAR
        select ARM64
        select DM
        select DM_SERIAL
        select ARM64
        select DM
        select DM_SERIAL
-       select DM_USB
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select PL01X_SERIAL
        imply CMD_DM
        select OF_CONTROL
        select PL01X_SERIAL
        imply CMD_DM
@@ -1371,6 +1381,7 @@ config TARGET_LS1012AQDS
        select ARM64
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARM64
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        help
          Support for Freescale LS1012AQDS platform.
          The LS1012A Development System (QDS) is a high-performance
        help
          Support for Freescale LS1012AQDS platform.
          The LS1012A Development System (QDS) is a high-performance
@@ -1383,6 +1394,7 @@ config TARGET_LS1012ARDB
        select ARM64
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARM64
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        imply SCSI
        imply SCSI_AHCI
        help
        imply SCSI
        imply SCSI_AHCI
        help
@@ -1397,6 +1409,7 @@ config TARGET_LS1012A2G5RDB
        select ARM64
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARM64
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        imply SCSI
        help
          Support for Freescale LS1012A2G5RDB platform.
        imply SCSI
        help
          Support for Freescale LS1012A2G5RDB platform.
@@ -1410,6 +1423,7 @@ config TARGET_LS1012AFRWY
        select ARM64
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARM64
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        imply SCSI
        imply SCSI_AHCI
        help
        imply SCSI
        imply SCSI_AHCI
        help
@@ -1423,6 +1437,7 @@ config TARGET_LS1012AFRDM
        select ARCH_LS1012A
        select ARM64
        select ARCH_SUPPORT_TFABOOT
        select ARCH_LS1012A
        select ARM64
        select ARCH_SUPPORT_TFABOOT
+       select GPIO_EXTRA_HEADER
        help
          Support for Freescale LS1012AFRDM platform.
          The LS1012A Freedom  board (FRDM) is a high-performance
        help
          Support for Freescale LS1012AFRDM platform.
          The LS1012A Freedom  board (FRDM) is a high-performance
@@ -1436,6 +1451,7 @@ config TARGET_LS1028AQDS
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        help
          Support for Freescale LS1028AQDS platform
          The LS1028A Development System (QDS) is a high-performance
        help
          Support for Freescale LS1028AQDS platform
          The LS1028A Development System (QDS) is a high-performance
@@ -1449,6 +1465,7 @@ config TARGET_LS1028ARDB
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
+       select GPIO_EXTRA_HEADER
        help
          Support for Freescale LS1028ARDB platform
          The LS1028A Development System (RDB) is a high-performance
        help
          Support for Freescale LS1028ARDB platform
          The LS1028A Development System (RDB) is a high-performance
@@ -1464,6 +1481,7 @@ config TARGET_LS1088ARDB
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select FSL_DDR_INTERACTIVE if !SD_BOOT
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select FSL_DDR_INTERACTIVE if !SD_BOOT
+       select GPIO_EXTRA_HEADER
        help
          Support for NXP LS1088ARDB platform.
          The LS1088A Reference design board (RDB) is a high-performance
        help
          Support for NXP LS1088ARDB platform.
          The LS1088A Reference design board (RDB) is a high-performance
@@ -1484,6 +1502,7 @@ config TARGET_LS1021AQDS
        select SYS_FSL_DDR
        select FSL_DDR_INTERACTIVE
        select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
        select SYS_FSL_DDR
        select FSL_DDR_INTERACTIVE
        select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
+       select GPIO_EXTRA_HEADER
        select SPI_FLASH_DATAFLASH if FSL_DSPI || FSL_QSPI
        imply SCSI
 
        select SPI_FLASH_DATAFLASH if FSL_DSPI || FSL_QSPI
        imply SCSI
 
@@ -1499,7 +1518,45 @@ config TARGET_LS1021ATWR
        select LS1_DEEP_SLEEP
        select SUPPORT_SPL
        select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
        select LS1_DEEP_SLEEP
        select SUPPORT_SPL
        select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
+       select GPIO_EXTRA_HEADER
+       imply SCSI
+
+config TARGET_PG_WCOM_SELI8
+       bool "Support Hitachi-Powergrids SELI8 service unit card"
+       select ARCH_LS1021A
+       select ARCH_SUPPORT_PSCI
+       select BOARD_EARLY_INIT_F
+       select BOARD_LATE_INIT
+       select CPU_V7A
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
+       select SYS_FSL_DDR
+       select FSL_DDR_INTERACTIVE
+       select GPIO_EXTRA_HEADER
+       select VENDOR_KM
        imply SCSI
        imply SCSI
+       help
+        Support for Hitachi-Powergrids SELI8 service unit card.
+        SELI8 is a QorIQ LS1021a based service unit card used
+        in XMC20 and FOX615 product families.
+
+config TARGET_PG_WCOM_EXPU1
+       bool "Support Hitachi-Powergrids EXPU1 service unit card"
+       select ARCH_LS1021A
+       select ARCH_SUPPORT_PSCI
+       select BOARD_EARLY_INIT_F
+       select BOARD_LATE_INIT
+       select CPU_V7A
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
+       select SYS_FSL_DDR
+       select FSL_DDR_INTERACTIVE
+       select VENDOR_KM
+       imply SCSI
+       help
+        Support for Hitachi-Powergrids EXPU1 service unit card.
+        EXPU1 is a QorIQ LS1021a based service unit card used
+        in XMC20 and FOX615 product families.
 
 config TARGET_LS1021ATSN
        bool "Support ls1021atsn"
 
 config TARGET_LS1021ATSN
        bool "Support ls1021atsn"
@@ -1512,6 +1569,7 @@ config TARGET_LS1021ATSN
        select CPU_V7_HAS_VIRT
        select LS1_DEEP_SLEEP
        select SUPPORT_SPL
        select CPU_V7_HAS_VIRT
        select LS1_DEEP_SLEEP
        select SUPPORT_SPL
+       select GPIO_EXTRA_HEADER
        imply SCSI
 
 config TARGET_LS1021AIOT
        imply SCSI
 
 config TARGET_LS1021AIOT
@@ -1524,6 +1582,7 @@ config TARGET_LS1021AIOT
        select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
        select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
        select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
        select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
+       select GPIO_EXTRA_HEADER
        imply SCSI
        help
          Support for Freescale LS1021AIOT platform.
        imply SCSI
        help
          Support for Freescale LS1021AIOT platform.
@@ -1543,6 +1602,7 @@ config TARGET_LS1043AQDS
        select FSL_DDR_INTERACTIVE if !SPL
        select FSL_DSPI if !SPL_NO_DSPI
        select DM_SPI_FLASH if FSL_DSPI
        select FSL_DDR_INTERACTIVE if !SPL
        select FSL_DSPI if !SPL_NO_DSPI
        select DM_SPI_FLASH if FSL_DSPI
+       select GPIO_EXTRA_HEADER
        imply SCSI
        imply SCSI_AHCI
        help
        imply SCSI
        imply SCSI_AHCI
        help
@@ -1559,6 +1619,7 @@ config TARGET_LS1043ARDB
        select SUPPORT_SPL
        select FSL_DSPI if !SPL_NO_DSPI
        select DM_SPI_FLASH if FSL_DSPI
        select SUPPORT_SPL
        select FSL_DSPI if !SPL_NO_DSPI
        select DM_SPI_FLASH if FSL_DSPI
+       select GPIO_EXTRA_HEADER
        help
          Support for Freescale LS1043ARDB platform.
 
        help
          Support for Freescale LS1043ARDB platform.
 
@@ -1575,6 +1636,7 @@ config TARGET_LS1046AQDS
        select FSL_DDR_BIST if !SPL
        select FSL_DDR_INTERACTIVE  if !SPL
        select FSL_DDR_INTERACTIVE if !SPL
        select FSL_DDR_BIST if !SPL
        select FSL_DDR_INTERACTIVE  if !SPL
        select FSL_DDR_INTERACTIVE if !SPL
+       select GPIO_EXTRA_HEADER
        imply SCSI
        help
          Support for Freescale LS1046AQDS platform.
        imply SCSI
        help
          Support for Freescale LS1046AQDS platform.
@@ -1595,6 +1657,7 @@ config TARGET_LS1046ARDB
        select SUPPORT_SPL
        select FSL_DDR_BIST
        select FSL_DDR_INTERACTIVE if !SPL
        select SUPPORT_SPL
        select FSL_DDR_BIST
        select FSL_DDR_INTERACTIVE if !SPL
+       select GPIO_EXTRA_HEADER
        imply SCSI
        help
          Support for Freescale LS1046ARDB platform.
        imply SCSI
        help
          Support for Freescale LS1046ARDB platform.
@@ -1611,6 +1674,7 @@ config TARGET_LS1046AFRWY
        select BOARD_EARLY_INIT_F
        select BOARD_LATE_INIT
        select DM_SPI_FLASH if DM_SPI
        select BOARD_EARLY_INIT_F
        select BOARD_LATE_INIT
        select DM_SPI_FLASH if DM_SPI
+       select GPIO_EXTRA_HEADER
        imply SCSI
        help
          Support for Freescale LS1046AFRWY platform.
        imply SCSI
        help
          Support for Freescale LS1046AFRWY platform.
@@ -1625,12 +1689,33 @@ config TARGET_SL28
        select ARMV8_MULTIENTRY
        select SUPPORT_SPL
        select BINMAN
        select ARMV8_MULTIENTRY
        select SUPPORT_SPL
        select BINMAN
+       select DM
+       select DM_GPIO
+       select DM_I2C
+       select DM_MMC
+       select DM_SPI_FLASH
+       select DM_ETH
+       select DM_MDIO
+       select PCI
+       select DM_RNG
+       select DM_RTC
+       select DM_SCSI
+       select DM_SERIAL
+       select DM_SPI
+       select GPIO_EXTRA_HEADER
+       select SPL_DM if SPL
+       select SPL_DM_SPI if SPL
+       select SPL_DM_SPI_FLASH if SPL
+       select SPL_DM_I2C if SPL
+       select SPL_DM_MMC if SPL
+       select SPL_DM_SERIAL if SPL
        help
          Support for Kontron SMARC-sAL28 board.
 
 config TARGET_COLIBRI_PXA270
        bool "Support colibri_pxa270"
        select CPU_PXA
        help
          Support for Kontron SMARC-sAL28 board.
 
 config TARGET_COLIBRI_PXA270
        bool "Support colibri_pxa270"
        select CPU_PXA
+       select GPIO_EXTRA_HEADER
 
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
 
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
@@ -1643,7 +1728,6 @@ config ARCH_UNIPHIER
        select DM_MTD
        select DM_RESET
        select DM_SERIAL
        select DM_MTD
        select DM_RESET
        select DM_SERIAL
-       select DM_USB
        select OF_BOARD_SETUP
        select OF_CONTROL
        select OF_LIBFDT
        select OF_BOARD_SETUP
        select OF_CONTROL
        select OF_LIBFDT
@@ -1662,11 +1746,25 @@ config ARCH_UNIPHIER
          Support for UniPhier SoC family developed by Socionext Inc.
          (formerly, System LSI Business Division of Panasonic Corporation)
 
          Support for UniPhier SoC family developed by Socionext Inc.
          (formerly, System LSI Business Division of Panasonic Corporation)
 
+config ARCH_SYNQUACER
+       bool "Socionext SynQuacer SoCs"
+       select ARM64
+       select DM
+       select GIC_V3
+       select PSCI_RESET
+       select SYSRESET
+       select SYSRESET_PSCI
+       select OF_CONTROL
+       help
+         Support for SynQuacer SoC family developed by Socionext Inc.
+         This SoC is used on 96boards EE DeveloperBox.
+
 config ARCH_STM32
        bool "Support STMicroelectronics STM32 MCU with cortex M"
        select CPU_V7M
        select DM
        select DM_SERIAL
 config ARCH_STM32
        bool "Support STMicroelectronics STM32 MCU with cortex M"
        select CPU_V7M
        select DM
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        imply CMD_DM
 
 config ARCH_STI
        imply CMD_DM
 
 config ARCH_STI
@@ -1692,6 +1790,7 @@ config ARCH_STM32MP
        select DM_GPIO
        select DM_RESET
        select DM_SERIAL
        select DM_GPIO
        select DM_RESET
        select DM_SERIAL
+       select GPIO_EXTRA_HEADER
        select MISC
        select OF_CONTROL
        select OF_LIBFDT
        select MISC
        select OF_CONTROL
        select OF_LIBFDT
@@ -1719,7 +1818,7 @@ config ARCH_STM32MP
 config ARCH_ROCKCHIP
        bool "Support Rockchip SoCs"
        select BLK
 config ARCH_ROCKCHIP
        bool "Support Rockchip SoCs"
        select BLK
-       select BINMAN if SPL_OPTEE
+       select BINMAN if SPL_OPTEE || (SPL && !ARM64)
        select DM
        select DM_GPIO
        select DM_I2C
        select DM
        select DM_GPIO
        select DM_I2C
@@ -1729,7 +1828,6 @@ config ARCH_ROCKCHIP
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
-       select DM_USB if USB
        select ENABLE_ARM_SOC_BOOT0_HOOK
        select OF_CONTROL
        select SPI
        select ENABLE_ARM_SOC_BOOT0_HOOK
        select OF_CONTROL
        select SPI
@@ -1754,6 +1852,7 @@ config ARCH_OCTEONTX
        bool "Support OcteonTX SoCs"
        select CLK
        select DM
        bool "Support OcteonTX SoCs"
        select CLK
        select DM
+       select GPIO_EXTRA_HEADER
        select ARM64
        select OF_CONTROL
        select OF_LIVE
        select ARM64
        select OF_CONTROL
        select OF_LIVE
@@ -1764,6 +1863,7 @@ config ARCH_OCTEONTX2
        bool "Support OcteonTX2 SoCs"
        select CLK
        select DM
        bool "Support OcteonTX2 SoCs"
        select CLK
        select DM
+       select GPIO_EXTRA_HEADER
        select ARM64
        select OF_CONTROL
        select OF_LIVE
        select ARM64
        select OF_CONTROL
        select OF_LIVE
@@ -1773,6 +1873,7 @@ config ARCH_OCTEONTX2
 config TARGET_THUNDERX_88XX
        bool "Support ThunderX 88xx"
        select ARM64
 config TARGET_THUNDERX_88XX
        bool "Support ThunderX 88xx"
        select ARM64
+       select GPIO_EXTRA_HEADER
        select OF_CONTROL
        select PL01X_SERIAL
        select SYS_CACHE_SHIFT_7
        select OF_CONTROL
        select PL01X_SERIAL
        select SYS_CACHE_SHIFT_7
@@ -1786,6 +1887,7 @@ config ARCH_ASPEED
 config TARGET_DURIAN
        bool "Support Phytium Durian Platform"
        select ARM64
 config TARGET_DURIAN
        bool "Support Phytium Durian Platform"
        select ARM64
+       select GPIO_EXTRA_HEADER
        help
          Support for durian platform.
          It has 2GB Sdram, uart and pcie.
        help
          Support for durian platform.
          It has 2GB Sdram, uart and pcie.
@@ -1793,6 +1895,7 @@ config TARGET_DURIAN
 config TARGET_PRESIDIO_ASIC
        bool "Support Cortina Presidio ASIC Platform"
        select ARM64
 config TARGET_PRESIDIO_ASIC
        bool "Support Cortina Presidio ASIC Platform"
        select ARM64
+       select GICV2
 
 config TARGET_XENGUEST_ARM64
        bool "Xen guest ARM64"
 
 config TARGET_XENGUEST_ARM64
        bool "Xen guest ARM64"
@@ -1804,13 +1907,56 @@ config TARGET_XENGUEST_ARM64
        select SSCANF
 endchoice
 
        select SSCANF
 endchoice
 
+config SUPPORT_PASSING_ATAGS
+       bool "Support pre-devicetree ATAG-based booting"
+       depends on !ARM64
+       imply SETUP_MEMORY_TAGS
+       help
+         Support for booting older Linux kernels, using ATAGs rather than
+         passing a devicetree.  This is option is rarely used, and the
+         semantics are defined at
+         https://www.kernel.org/doc/Documentation/arm/Booting at section 4a.
+
+config SETUP_MEMORY_TAGS
+       bool "Pass memory size information via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config CMDLINE_TAG
+       bool "Pass Linux kernel cmdline via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config INITRD_TAG
+       bool "Pass initrd starting point and size via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config REVISION_TAG
+       bool "Pass system revision via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config SERIAL_TAG
+       bool "Pass system serial number via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config STATIC_MACH_TYPE
+       bool "Statically define the Machine ID number"
+       help
+         When booting via ATAGs, enable this option if we know the correct
+         machine ID number to use at compile time.  Some systems will be
+         passed the number dynamically by whatever loads U-Boot.
+
+config MACH_TYPE
+       int "Machine ID number"
+       depends on STATIC_MACH_TYPE
+       help
+         When booting via ATAGs, the machine type must be passed as a number.
+         For the full list see https://www.arm.linux.org.uk/developer/machines
+
 config ARCH_SUPPORT_TFABOOT
        bool
 
 config TFABOOT
        bool "Support for booting from TF-A"
        depends on ARCH_SUPPORT_TFABOOT
 config ARCH_SUPPORT_TFABOOT
        bool
 
 config TFABOOT
        bool "Support for booting from TF-A"
        depends on ARCH_SUPPORT_TFABOOT
-       default n
        help
          Some platforms support the setup of secure registers (for instance
          for CPU errata handling) or provide secure services like PSCI.
        help
          Some platforms support the setup of secure registers (for instance
          for CPU errata handling) or provide secure services like PSCI.
@@ -1895,6 +2041,8 @@ source "arch/arm/mach-imx/imx8/Kconfig"
 
 source "arch/arm/mach-imx/imx8m/Kconfig"
 
 
 source "arch/arm/mach-imx/imx8m/Kconfig"
 
+source "arch/arm/mach-imx/imx8ulp/Kconfig"
+
 source "arch/arm/mach-imx/imxrt/Kconfig"
 
 source "arch/arm/mach-imx/mxs/Kconfig"
 source "arch/arm/mach-imx/imxrt/Kconfig"
 
 source "arch/arm/mach-imx/mxs/Kconfig"
@@ -1961,23 +2109,15 @@ source "board/bosch/shc/Kconfig"
 source "board/bosch/guardian/Kconfig"
 source "board/CarMediaLab/flea3/Kconfig"
 source "board/Marvell/aspenite/Kconfig"
 source "board/bosch/guardian/Kconfig"
 source "board/CarMediaLab/flea3/Kconfig"
 source "board/Marvell/aspenite/Kconfig"
-source "board/Marvell/gplugd/Kconfig"
 source "board/Marvell/octeontx/Kconfig"
 source "board/Marvell/octeontx2/Kconfig"
 source "board/Marvell/octeontx/Kconfig"
 source "board/Marvell/octeontx2/Kconfig"
-source "board/armltd/vexpress/Kconfig"
 source "board/armltd/vexpress64/Kconfig"
 source "board/cortina/presidio-asic/Kconfig"
 source "board/armltd/vexpress64/Kconfig"
 source "board/cortina/presidio-asic/Kconfig"
-source "board/broadcom/bcm23550_w1d/Kconfig"
-source "board/broadcom/bcm28155_ap/Kconfig"
 source "board/broadcom/bcm963158/Kconfig"
 source "board/broadcom/bcm968360bg/Kconfig"
 source "board/broadcom/bcm968580xref/Kconfig"
 source "board/broadcom/bcm963158/Kconfig"
 source "board/broadcom/bcm968360bg/Kconfig"
 source "board/broadcom/bcm968580xref/Kconfig"
-source "board/broadcom/bcmcygnus/Kconfig"
-source "board/broadcom/bcmnsp/Kconfig"
-source "board/broadcom/bcmns2/Kconfig"
 source "board/broadcom/bcmns3/Kconfig"
 source "board/cavium/thunderx/Kconfig"
 source "board/broadcom/bcmns3/Kconfig"
 source "board/cavium/thunderx/Kconfig"
-source "board/cirrus/edb93xx/Kconfig"
 source "board/eets/pdu001/Kconfig"
 source "board/emulation/qemu-arm/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
 source "board/eets/pdu001/Kconfig"
 source "board/emulation/qemu-arm/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
@@ -1997,7 +2137,6 @@ source "board/freescale/ls1012aqds/Kconfig"
 source "board/freescale/ls1012ardb/Kconfig"
 source "board/freescale/ls1012afrdm/Kconfig"
 source "board/freescale/lx2160a/Kconfig"
 source "board/freescale/ls1012ardb/Kconfig"
 source "board/freescale/ls1012afrdm/Kconfig"
 source "board/freescale/lx2160a/Kconfig"
-source "board/freescale/s32v234evb/Kconfig"
 source "board/grinn/chiliboard/Kconfig"
 source "board/hisilicon/hikey/Kconfig"
 source "board/hisilicon/hikey960/Kconfig"
 source "board/grinn/chiliboard/Kconfig"
 source "board/hisilicon/hikey/Kconfig"
 source "board/hisilicon/hikey960/Kconfig"
@@ -2005,11 +2144,8 @@ source "board/hisilicon/poplar/Kconfig"
 source "board/isee/igep003x/Kconfig"
 source "board/kontron/sl28/Kconfig"
 source "board/myir/mys_6ulx/Kconfig"
 source "board/isee/igep003x/Kconfig"
 source "board/kontron/sl28/Kconfig"
 source "board/myir/mys_6ulx/Kconfig"
-source "board/spear/spear300/Kconfig"
-source "board/spear/spear310/Kconfig"
-source "board/spear/spear320/Kconfig"
-source "board/spear/spear600/Kconfig"
-source "board/spear/x600/Kconfig"
+source "board/seeed/npi_imx6ull/Kconfig"
+source "board/socionext/developerbox/Kconfig"
 source "board/st/stv0991/Kconfig"
 source "board/tcl/sl50/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
 source "board/st/stv0991/Kconfig"
 source "board/tcl/sl50/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
@@ -2017,6 +2153,7 @@ source "board/variscite/dart_6ul/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/phytium/durian/Kconfig"
 source "board/xen/xenguest_arm64/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/phytium/durian/Kconfig"
 source "board/xen/xenguest_arm64/Kconfig"
+source "board/keymile/Kconfig"
 
 source "arch/arm/Kconfig.debug"
 
 
 source "arch/arm/Kconfig.debug"