]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - arch/arm/Kconfig
Merge branch 'master' of git://www.denx.de/git/u-boot-imx
[people/ms/u-boot.git] / arch / arm / Kconfig
index 49bc9d83756c645bbe10d55f5340ebb8712455a4..42f93b4670d2f29f99635d82c14f26da92bc0095 100644 (file)
@@ -19,6 +19,75 @@ config HAS_VBAR
 config HAS_THUMB2
        bool
 
 config HAS_THUMB2
        bool
 
+# If set, the workarounds for these ARM errata are applied early during U-Boot
+# startup. Note that in general these options force the workarounds to be
+# applied; no CPU-type/version detection exists, unlike the similar options in
+# the Linux kernel. Do not set these options unless they apply!  Also note that
+# the following can be machine specific errata. These do have ability to
+# provide rudimentary version and machine specific checks, but expect no
+# product checks:
+# CONFIG_ARM_ERRATA_430973
+# CONFIG_ARM_ERRATA_454179
+# CONFIG_ARM_ERRATA_621766
+# CONFIG_ARM_ERRATA_798870
+# CONFIG_ARM_ERRATA_801819
+config ARM_ERRATA_430973
+       bool
+
+config ARM_ERRATA_454179
+       bool
+
+config ARM_ERRATA_621766
+       bool
+
+config ARM_ERRATA_716044
+       bool
+
+config ARM_ERRATA_725233
+       bool
+
+config ARM_ERRATA_742230
+       bool
+
+config ARM_ERRATA_743622
+       bool
+
+config ARM_ERRATA_751472
+       bool
+
+config ARM_ERRATA_761320
+       bool
+
+config ARM_ERRATA_773022
+       bool
+
+config ARM_ERRATA_774769
+       bool
+
+config ARM_ERRATA_794072
+       bool
+
+config ARM_ERRATA_798870
+       bool
+
+config ARM_ERRATA_801819
+       bool
+
+config ARM_ERRATA_826974
+       bool
+
+config ARM_ERRATA_828024
+       bool
+
+config ARM_ERRATA_829520
+       bool
+
+config ARM_ERRATA_833069
+       bool
+
+config ARM_ERRATA_833471
+       bool
+
 config CPU_ARM720T
        bool
        select SYS_CACHE_SHIFT_5
 config CPU_ARM720T
        bool
        select SYS_CACHE_SHIFT_5
@@ -112,6 +181,25 @@ config SEMIHOSTING
          the hosted environment to call out to the emulator to
          retrieve files from the host machine.
 
          the hosted environment to call out to the emulator to
          retrieve files from the host machine.
 
+config SYS_THUMB_BUILD
+       bool "Build U-Boot using the Thumb instruction set"
+       depends on !ARM64
+       help
+          Use this flag to build U-Boot using the Thumb instruction set for
+          ARM architectures. Thumb instruction set provides better code
+          density. For ARM architectures that support Thumb2 this flag will
+          result in Thumb2 code generated by GCC.
+
+config SPL_SYS_THUMB_BUILD
+       bool "Build SPL using the Thumb instruction set"
+       default y if SYS_THUMB_BUILD
+       depends on !ARM64
+       help
+          Use this flag to build SPL using the Thumb instruction set for
+          ARM architectures. Thumb instruction set provides better code
+          density. For ARM architectures that support Thumb2 this flag will
+          result in Thumb2 code generated by GCC.
+
 config SYS_L2CACHE_OFF
        bool "L2cache off"
        help
 config SYS_L2CACHE_OFF
        bool "L2cache off"
        help
@@ -126,6 +214,51 @@ config ENABLE_ARM_SOC_BOOT0_HOOK
          ARM_SOC_BOOT0_HOOK which contains the required assembler
          preprocessor code.
 
          ARM_SOC_BOOT0_HOOK which contains the required assembler
          preprocessor code.
 
+config ARM_CORTEX_CPU_IS_UP
+       bool
+       default n
+
+config USE_ARCH_MEMCPY
+       bool "Use an assembly optimized implementation of memcpy"
+       default y
+       depends on !ARM64
+       help
+         Enable the generation of an optimized version of memcpy.
+         Such implementation may be faster under some conditions
+         but may increase the binary size.
+
+config SPL_USE_ARCH_MEMCPY
+       bool "Use an assembly optimized implementation of memcpy"
+       default y if USE_ARCH_MEMCPY
+       depends on !ARM64
+       help
+         Enable the generation of an optimized version of memcpy.
+         Such implementation may be faster under some conditions
+         but may increase the binary size.
+
+config USE_ARCH_MEMSET
+       bool "Use an assembly optimized implementation of memset"
+       default y
+       depends on !ARM64
+       help
+         Enable the generation of an optimized version of memset.
+         Such implementation may be faster under some conditions
+         but may increase the binary size.
+
+config SPL_USE_ARCH_MEMSET
+       bool "Use an assembly optimized implementation of memset"
+       default y if USE_ARCH_MEMSET
+       depends on !ARM64
+       help
+         Enable the generation of an optimized version of memset.
+         Such implementation may be faster under some conditions
+         but may increase the binary size.
+
+config ARCH_OMAP2
+       bool
+       select CPU_V7
+       select SUPPORT_SPL
+
 config ARM64_SUPPORT_AARCH32
        bool "ARM64 system support AArch32 execution state"
        default y if ARM64 && !TARGET_THUNDERX_88XX
 config ARM64_SUPPORT_AARCH32
        bool "ARM64 system support AArch32 execution state"
        default y if ARM64 && !TARGET_THUNDERX_88XX
@@ -143,14 +276,6 @@ config TARGET_EDB93XX
        bool "Support edb93xx"
        select CPU_ARM920T
 
        bool "Support edb93xx"
        select CPU_ARM920T
 
-config TARGET_VCMA9
-       bool "Support VCMA9"
-       select CPU_ARM920T
-
-config TARGET_SMDK2410
-       bool "Support smdk2410"
-       select CPU_ARM920T
-
 config TARGET_ASPENITE
        bool "Support aspenite"
        select CPU_ARM926EJS
 config TARGET_ASPENITE
        bool "Support aspenite"
        select CPU_ARM926EJS
@@ -168,6 +293,8 @@ config ARCH_DAVINCI
 config KIRKWOOD
        bool "Marvell Kirkwood"
        select CPU_ARM926EJS
 config KIRKWOOD
        bool "Marvell Kirkwood"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
+       select ARCH_MISC_INIT
 
 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)"
@@ -191,10 +318,13 @@ config TARGET_WORK_92105
 
 config TARGET_MX25PDK
        bool "Support mx25pdk"
 
 config TARGET_MX25PDK
        bool "Support mx25pdk"
+       select BOARD_LATE_INIT
        select CPU_ARM926EJS
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_ZMX25
        bool "Support zmx25"
 
 config TARGET_ZMX25
        bool "Support zmx25"
+       select BOARD_LATE_INIT
        select CPU_ARM926EJS
 
 config TARGET_APF27
        select CPU_ARM926EJS
 
 config TARGET_APF27
@@ -221,16 +351,19 @@ config TARGET_MX23EVK
        bool "Support mx23evk"
        select CPU_ARM926EJS
        select SUPPORT_SPL
        bool "Support mx23evk"
        select CPU_ARM926EJS
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX28EVK
        bool "Support mx28evk"
        select CPU_ARM926EJS
        select SUPPORT_SPL
 
 config TARGET_MX28EVK
        bool "Support mx28evk"
        select CPU_ARM926EJS
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX23_OLINUXINO
        bool "Support mx23_olinuxino"
        select CPU_ARM926EJS
        select SUPPORT_SPL
 
 config TARGET_MX23_OLINUXINO
        bool "Support mx23_olinuxino"
        select CPU_ARM926EJS
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
 
 config TARGET_BG0900
        bool "Support bg0900"
 
 config TARGET_BG0900
        bool "Support bg0900"
@@ -254,18 +387,22 @@ config ORION5X
 config TARGET_SPEAR300
        bool "Support spear300"
        select CPU_ARM926EJS
 config TARGET_SPEAR300
        bool "Support spear300"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_SPEAR310
        bool "Support spear310"
        select CPU_ARM926EJS
 
 config TARGET_SPEAR310
        bool "Support spear310"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_SPEAR320
        bool "Support spear320"
        select CPU_ARM926EJS
 
 config TARGET_SPEAR320
        bool "Support spear320"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_SPEAR600
        bool "Support spear600"
        select CPU_ARM926EJS
 
 config TARGET_SPEAR600
        bool "Support spear600"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_STV0991
        bool "Support stv0991"
 
 config TARGET_STV0991
        bool "Support stv0991"
@@ -278,21 +415,32 @@ config TARGET_STV0991
 
 config TARGET_X600
        bool "Support x600"
 
 config TARGET_X600
        bool "Support x600"
+       select BOARD_LATE_INIT
        select CPU_ARM926EJS
        select SUPPORT_SPL
 
 config TARGET_IMX31_PHYCORE
        select CPU_ARM926EJS
        select SUPPORT_SPL
 
 config TARGET_IMX31_PHYCORE
-       bool "Support imx31_phycore"
+       bool "Support imx31_phycore_eet"
        select CPU_ARM1136
        select CPU_ARM1136
+       select BOARD_EARLY_INIT_F
+
+config TARGET_IMX31_PHYCORE_EET
+       bool "Support imx31_phycore_eet"
+       select BOARD_LATE_INIT
+       select CPU_ARM1136
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX31ADS
        bool "Support mx31ads"
        select CPU_ARM1136
 
 config TARGET_MX31ADS
        bool "Support mx31ads"
        select CPU_ARM1136
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX31PDK
        bool "Support mx31pdk"
 
 config TARGET_MX31PDK
        bool "Support mx31pdk"
+       select BOARD_LATE_INIT
        select CPU_ARM1136
        select SUPPORT_SPL
        select CPU_ARM1136
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
 
 config TARGET_WOODBURN
        bool "Support woodburn"
 
 config TARGET_WOODBURN
        bool "Support woodburn"
@@ -309,6 +457,7 @@ config TARGET_FLEA3
 
 config TARGET_MX35PDK
        bool "Support mx35pdk"
 
 config TARGET_MX35PDK
        bool "Support mx35pdk"
+       select BOARD_LATE_INIT
        select CPU_ARM1136
 
 config ARCH_BCM283X
        select CPU_ARM1136
 
 config ARCH_BCM283X
@@ -316,6 +465,7 @@ config ARCH_BCM283X
        select DM
        select DM_SERIAL
        select DM_GPIO
        select DM
        select DM_SERIAL
        select DM_GPIO
+       select OF_CONTROL
 
 config TARGET_VEXPRESS_CA15_TC2
        bool "Support vexpress_ca15_tc2"
 
 config TARGET_VEXPRESS_CA15_TC2
        bool "Support vexpress_ca15_tc2"
@@ -333,71 +483,69 @@ config TARGET_VEXPRESS_CA9X4
 
 config TARGET_BRXRE1
        bool "Support BRXRE1"
 
 config TARGET_BRXRE1
        bool "Support BRXRE1"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
 
 config TARGET_BRPPT1
        bool "Support BRPPT1"
 
 config TARGET_BRPPT1
        bool "Support BRPPT1"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
 
 config TARGET_DRACO
        bool "Support draco"
 
 config TARGET_DRACO
        bool "Support draco"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_THUBAN
        bool "Support thuban"
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_THUBAN
        bool "Support thuban"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_RASTABAN
        bool "Support rastaban"
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_RASTABAN
        bool "Support rastaban"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_ETAMIN
        bool "Support etamin"
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_ETAMIN
        bool "Support etamin"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_PXM2
        bool "Support pxm2"
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_PXM2
        bool "Support pxm2"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_RUT
        bool "Support rut"
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_RUT
        bool "Support rut"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_TI814X_EVM
        bool "Support ti814x_evm"
        select DM
        select DM_SERIAL
        select DM_GPIO
 
 config TARGET_TI814X_EVM
        bool "Support ti814x_evm"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
 
 config TARGET_TI816X_EVM
        bool "Support ti816x_evm"
 
 config TARGET_TI816X_EVM
        bool "Support ti816x_evm"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
 
 config TARGET_BCM23550_W1D
        bool "Support bcm23550_w1d"
 
 config TARGET_BCM23550_W1D
        bool "Support bcm23550_w1d"
@@ -415,9 +563,18 @@ config TARGET_BCMNSP
        bool "Support bcmnsp"
        select CPU_V7
 
        bool "Support bcmnsp"
        select CPU_V7
 
+config TARGET_BCMNS2
+       bool "Support Broadcom Northstar2"
+       select ARM64
+       help
+         Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
+         ARMv8 Cortex-A57 processors targeting a broad range of networking
+         applications
+
 config ARCH_EXYNOS
        bool "Samsung EXYNOS"
        select DM
 config ARCH_EXYNOS
        bool "Samsung EXYNOS"
        select DM
+       select DM_I2C
        select DM_SPI_FLASH
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select DM_SERIAL
        select DM_SPI
@@ -430,6 +587,7 @@ config ARCH_S5PC1XX
        select DM
        select DM_SERIAL
        select DM_GPIO
        select DM
        select DM_SERIAL
        select DM_GPIO
+       select DM_I2C
 
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
 
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
@@ -444,6 +602,7 @@ config ARCH_KEYSTONE
        bool "TI Keystone"
        select CPU_V7
        select SUPPORT_SPL
        bool "TI Keystone"
        select CPU_V7
        select SUPPORT_SPL
+       select SYS_THUMB_BUILD
        select CMD_POWEROFF
 
 config ARCH_MESON
        select CMD_POWEROFF
 
 config ARCH_MESON
@@ -453,64 +612,135 @@ config ARCH_MESON
          targeted at media players and tablet computers. We currently
          support the S905 (GXBaby) 64-bit SoC.
 
          targeted at media players and tablet computers. We currently
          support the S905 (GXBaby) 64-bit SoC.
 
+config ARCH_MX7ULP
+        bool "NXP MX7ULP"
+        select CPU_V7
+       select ROM_UNIFIED_SECTIONS
+
 config ARCH_MX7
        bool "Freescale MX7"
        select CPU_V7
 config ARCH_MX7
        bool "Freescale MX7"
        select CPU_V7
+       select SYS_FSL_HAS_SEC if SECURE_BOOT
+       select SYS_FSL_SEC_COMPAT_4
+       select SYS_FSL_SEC_LE
+       select BOARD_EARLY_INIT_F
+       select ARCH_MISC_INIT
 
 config ARCH_MX6
        bool "Freescale MX6"
        select CPU_V7
 
 config ARCH_MX6
        bool "Freescale MX6"
        select CPU_V7
+       select SYS_FSL_HAS_SEC if SECURE_BOOT
+       select SYS_FSL_SEC_COMPAT_4
+       select SYS_FSL_SEC_LE
+       select SYS_THUMB_BUILD if SPL
 
 config ARCH_MX5
        bool "Freescale MX5"
        select CPU_V7
 
 config ARCH_MX5
        bool "Freescale MX5"
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config TARGET_M53EVK
        bool "Support m53evk"
        select CPU_V7
        select SUPPORT_SPL
 
 config TARGET_M53EVK
        bool "Support m53evk"
        select CPU_V7
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX51EVK
        bool "Support mx51evk"
 
 config TARGET_MX51EVK
        bool "Support mx51evk"
+       select BOARD_LATE_INIT
        select CPU_V7
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX53ARD
        bool "Support mx53ard"
        select CPU_V7
 
 config TARGET_MX53ARD
        bool "Support mx53ard"
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX53EVK
        bool "Support mx53evk"
 
 config TARGET_MX53EVK
        bool "Support mx53evk"
+       select BOARD_LATE_INIT
        select CPU_V7
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX53LOCO
        bool "Support mx53loco"
 
 config TARGET_MX53LOCO
        bool "Support mx53loco"
+       select BOARD_LATE_INIT
        select CPU_V7
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX53SMD
        bool "Support mx53smd"
        select CPU_V7
 
 config TARGET_MX53SMD
        bool "Support mx53smd"
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config OMAP34XX
        bool "OMAP34XX SoC"
 
 config OMAP34XX
        bool "OMAP34XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select ARM_ERRATA_430973
+       select ARM_ERRATA_454179
+       select ARM_ERRATA_621766
+       select ARM_ERRATA_725233
        select USE_TINY_PRINTF
        select USE_TINY_PRINTF
+       imply SPL_EXT_SUPPORT
+       imply SPL_FAT_SUPPORT
+       imply SPL_GPIO_SUPPORT
+       imply SPL_I2C_SUPPORT
+       imply SPL_LIBCOMMON_SUPPORT
+       imply SPL_LIBDISK_SUPPORT
+       imply SPL_LIBGENERIC_SUPPORT
+       imply SPL_MMC_SUPPORT
+       imply SPL_NAND_SUPPORT
+       imply SPL_POWER_SUPPORT
+       imply SPL_SERIAL_SUPPORT
+       imply SYS_THUMB_BUILD
 
 config OMAP44XX
        bool "OMAP44XX SoC"
 
 config OMAP44XX
        bool "OMAP44XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
        select USE_TINY_PRINTF
        select USE_TINY_PRINTF
+       imply SPL_DISPLAY_PRINT
+       imply SPL_EXT_SUPPORT
+       imply SPL_FAT_SUPPORT
+       imply SPL_GPIO_SUPPORT
+       imply SPL_I2C_SUPPORT
+       imply SPL_LIBCOMMON_SUPPORT
+       imply SPL_LIBDISK_SUPPORT
+       imply SPL_LIBGENERIC_SUPPORT
+       imply SPL_MMC_SUPPORT
+       imply SPL_NAND_SUPPORT
+       imply SPL_POWER_SUPPORT
+       imply SPL_SERIAL_SUPPORT
+       imply SYS_THUMB_BUILD
 
 config OMAP54XX
        bool "OMAP54XX SoC"
 
 config OMAP54XX
        bool "OMAP54XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select ARM_ERRATA_798870
+       select SYS_THUMB_BUILD
+       imply SPL_DISPLAY_PRINT
+       imply SPL_ENV_SUPPORT
+       imply SPL_EXT_SUPPORT
+       imply SPL_FAT_SUPPORT
+       imply SPL_GPIO_SUPPORT
+       imply SPL_I2C_SUPPORT
+       imply SPL_LIBCOMMON_SUPPORT
+       imply SPL_LIBDISK_SUPPORT
+       imply SPL_LIBGENERIC_SUPPORT
+       imply SPL_MMC_SUPPORT
+       imply SPL_NAND_SUPPORT
+       imply SPL_POWER_SUPPORT
+       imply SPL_SERIAL_SUPPORT
 
 config AM43XX
        bool "AM43XX SoC"
 
 config AM43XX
        bool "AM43XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       imply SPL_DM
+       imply SPL_DM_SEQ_ALIAS
+       imply SPL_OF_CONTROL
+       imply SPL_OF_TRANSLATE
+       imply SPL_SEPARATE_BSS
+       imply SPL_SYS_MALLOC_SIMPLE
+       imply SYS_THUMB_BUILD
        help
          Support for AM43xx SOC from Texas Instruments.
          The AM43xx high performance SOC features a Cortex-A9
        help
          Support for AM43xx SOC from Texas Instruments.
          The AM43xx high performance SOC features a Cortex-A9
@@ -520,8 +750,8 @@ config AM43XX
 
 config AM33XX
        bool "AM33XX SoC"
 
 config AM33XX
        bool "AM33XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       imply SYS_THUMB_BUILD
        help
          Support for AM335x SOC from Texas Instruments.
          The AM335x high performance SOC features a Cortex-A8
        help
          Support for AM335x SOC from Texas Instruments.
          The AM335x high performance SOC features a Cortex-A8
@@ -533,10 +763,13 @@ config ARCH_RMOBILE
        bool "Renesas ARM SoCs"
        select DM
        select DM_SERIAL
        bool "Renesas ARM SoCs"
        select DM
        select DM_SERIAL
+       select BOARD_EARLY_INIT_F
+       imply SYS_THUMB_BUILD
 
 config TARGET_S32V234EVB
        bool "Support s32v234evb"
        select ARM64
 
 config TARGET_S32V234EVB
        bool "Support s32v234evb"
        select ARM64
+       select SYS_FSL_ERRATUM_ESDHC111
 
 config ARCH_SNAPDRAGON
        bool "Qualcomm Snapdragon SoCs"
 
 config ARCH_SNAPDRAGON
        bool "Qualcomm Snapdragon SoCs"
@@ -557,56 +790,57 @@ config ARCH_SOCFPGA
        select DM
        select DM_SPI_FLASH
        select DM_SPI
        select DM
        select DM_SPI_FLASH
        select DM_SPI
+       select ENABLE_ARM_SOC_BOOT0_HOOK
+       select ARCH_EARLY_INIT_R
+       select ARCH_MISC_INIT
+       select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
+       select SYS_THUMB_BUILD
 
 config TARGET_CM_T43
        bool "Support cm_t43"
 
 config TARGET_CM_T43
        bool "Support cm_t43"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
 
 config ARCH_SUNXI
        bool "Support sunxi (Allwinner) SoCs"
        select CMD_GPIO
        select CMD_MMC if MMC
 
 config ARCH_SUNXI
        bool "Support sunxi (Allwinner) SoCs"
        select CMD_GPIO
        select CMD_MMC if MMC
-       select CMD_USB
+       select CMD_USB if DISTRO_DEFAULTS
        select DM
        select DM_ETH
        select DM_GPIO
        select DM_KEYBOARD
        select DM_SERIAL
        select DM
        select DM_ETH
        select DM_GPIO
        select DM_KEYBOARD
        select DM_SERIAL
-       select DM_USB
+       select DM_USB if DISTRO_DEFAULTS
        select OF_BOARD_SETUP
        select OF_CONTROL
        select OF_SEPARATE
        select SPL_STACK_R if SUPPORT_SPL
        select SPL_SYS_MALLOC_SIMPLE if SUPPORT_SPL
        select SYS_NS16550
        select OF_BOARD_SETUP
        select OF_CONTROL
        select OF_SEPARATE
        select SPL_STACK_R if SUPPORT_SPL
        select SPL_SYS_MALLOC_SIMPLE if SUPPORT_SPL
        select SYS_NS16550
-       select USB
-       select USB_STORAGE
-       select USB_KEYBOARD
+       select SPL_SYS_THUMB_BUILD if !ARM64
+       select USB if DISTRO_DEFAULTS
+       select USB_STORAGE if DISTRO_DEFAULTS
+       select USB_KEYBOARD if DISTRO_DEFAULTS
        select USE_TINY_PRINTF
 
        select USE_TINY_PRINTF
 
+config TARGET_TS4600
+       bool "Support TS4600"
+       select CPU_ARM926EJS
+       select SUPPORT_SPL
+
 config TARGET_TS4800
        bool "Support TS4800"
        select CPU_V7
 config TARGET_TS4800
        bool "Support TS4800"
        select CPU_V7
+       select SYS_FSL_ERRATUM_ESDHC_A001
 
 
-config TARGET_VF610TWR
-       bool "Support vf610twr"
-       select CPU_V7
-
-config TARGET_COLIBRI_VF
-       bool "Support Colibri VF50/61"
-       select CPU_V7
-
-config TARGET_PCM052
-       bool "Support pcm-052"
-       select CPU_V7
-
-config TARGET_BK4R1
-       bool "Support BK4r1"
+config ARCH_VF610
+       bool "Freescale Vybrid"
        select CPU_V7
        select CPU_V7
+       select SYS_FSL_ERRATUM_ESDHC111
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq Platform"
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq Platform"
+       select BOARD_LATE_INIT
        select CPU_V7
        select SUPPORT_SPL
        select OF_CONTROL
        select CPU_V7
        select SUPPORT_SPL
        select OF_CONTROL
@@ -623,10 +857,14 @@ config ARCH_ZYNQ
        select SPL_SEPARATE_BSS if SPL
        select DM_USB if USB
        select BLK
        select SPL_SEPARATE_BSS if SPL
        select DM_USB if USB
        select BLK
+       select CLK
+       select SPL_CLK
+       select CLK_ZYNQ
 
 config ARCH_ZYNQMP
        bool "Support Xilinx ZynqMP Platform"
        select ARM64
 
 config ARCH_ZYNQMP
        bool "Support Xilinx ZynqMP Platform"
        select ARM64
+       select BOARD_LATE_INIT
        select DM
        select OF_CONTROL
        select DM_SERIAL
        select DM
        select OF_CONTROL
        select DM_SERIAL
@@ -665,6 +903,7 @@ config TARGET_LS2080A_EMU
        select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_MISC_INIT
        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
@@ -676,6 +915,7 @@ config TARGET_LS2080A_SIMU
        select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_MISC_INIT
        help
          Support for Freescale LS2080A_SIMU platform
          The LS2080A Development System (QDS) is a pre silicon
        help
          Support for Freescale LS2080A_SIMU platform
          The LS2080A Development System (QDS) is a pre silicon
@@ -687,7 +927,9 @@ config TARGET_LS2080AQDS
        select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
        select SUPPORT_SPL
+       select ARCH_MISC_INIT
        help
          Support for Freescale LS2080AQDS platform
          The LS2080A Development System (QDS) is a high-performance
        help
          Support for Freescale LS2080AQDS platform
          The LS2080A Development System (QDS) is a high-performance
@@ -699,7 +941,9 @@ config TARGET_LS2080ARDB
        select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
        select SUPPORT_SPL
+       select ARCH_MISC_INIT
        help
          Support for Freescale LS2080ARDB platform.
          The LS2080A Reference design board (RDB) is a high-performance
        help
          Support for Freescale LS2080ARDB platform.
          The LS2080A Reference design board (RDB) is a high-performance
@@ -721,6 +965,7 @@ config TARGET_LS1012AQDS
        bool "Support ls1012aqds"
        select ARCH_LS1012A
        select ARM64
        bool "Support ls1012aqds"
        select ARCH_LS1012A
        select ARM64
+       select BOARD_LATE_INIT
        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
@@ -731,6 +976,7 @@ config TARGET_LS1012ARDB
        bool "Support ls1012ardb"
        select ARCH_LS1012A
        select ARM64
        bool "Support ls1012ardb"
        select ARCH_LS1012A
        select ARM64
+       select BOARD_LATE_INIT
        help
          Support for Freescale LS1012ARDB platform.
          The LS1012A Reference design board (RDB) is a high-performance
        help
          Support for Freescale LS1012ARDB platform.
          The LS1012A Reference design board (RDB) is a high-performance
@@ -749,6 +995,7 @@ config TARGET_LS1012AFRDM
 
 config TARGET_LS1021AQDS
        bool "Support ls1021aqds"
 
 config TARGET_LS1021AQDS
        bool "Support ls1021aqds"
+       select BOARD_LATE_INIT
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
@@ -756,9 +1003,12 @@ config TARGET_LS1021AQDS
        select ARCH_LS1021A
        select ARCH_SUPPORT_PSCI
        select LS1_DEEP_SLEEP
        select ARCH_LS1021A
        select ARCH_SUPPORT_PSCI
        select LS1_DEEP_SLEEP
+       select SYS_FSL_DDR
+       select BOARD_EARLY_INIT_F
 
 config TARGET_LS1021ATWR
        bool "Support ls1021atwr"
 
 config TARGET_LS1021ATWR
        bool "Support ls1021atwr"
+       select BOARD_LATE_INIT
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
@@ -766,9 +1016,11 @@ config TARGET_LS1021ATWR
        select ARCH_LS1021A
        select ARCH_SUPPORT_PSCI
        select LS1_DEEP_SLEEP
        select ARCH_LS1021A
        select ARCH_SUPPORT_PSCI
        select LS1_DEEP_SLEEP
+       select BOARD_EARLY_INIT_F
 
 config TARGET_LS1021AIOT
        bool "Support ls1021aiot"
 
 config TARGET_LS1021AIOT
        bool "Support ls1021aiot"
+       select BOARD_LATE_INIT
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
@@ -786,7 +1038,9 @@ config TARGET_LS1043AQDS
        select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
        help
          Support for Freescale LS1043AQDS platform.
 
        help
          Support for Freescale LS1043AQDS platform.
 
@@ -795,7 +1049,9 @@ config TARGET_LS1043ARDB
        select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
        help
          Support for Freescale LS1043ARDB platform.
 
        help
          Support for Freescale LS1043ARDB platform.
 
@@ -804,8 +1060,10 @@ config TARGET_LS1046AQDS
        select ARCH_LS1046A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_LS1046A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
        select DM_SPI_FLASH if DM_SPI
        select SUPPORT_SPL
        select DM_SPI_FLASH if DM_SPI
+       select BOARD_EARLY_INIT_F
        help
          Support for Freescale LS1046AQDS platform.
          The LS1046A Development System (QDS) is a high-performance
        help
          Support for Freescale LS1046AQDS platform.
          The LS1046A Development System (QDS) is a high-performance
@@ -817,8 +1075,11 @@ config TARGET_LS1046ARDB
        select ARCH_LS1046A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_LS1046A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
        select DM_SPI_FLASH if DM_SPI
        select SUPPORT_SPL
        select DM_SPI_FLASH if DM_SPI
+       select POWER_MC34VR500
+       select BOARD_EARLY_INIT_F
        help
          Support for Freescale LS1046ARDB platform.
          The LS1046A Reference Design Board (RDB) is a high-performance
        help
          Support for Freescale LS1046ARDB platform.
          The LS1046A Reference Design Board (RDB) is a high-performance
@@ -839,7 +1100,7 @@ config TARGET_COLIBRI_PXA270
 
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
 
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
-       select BLK
+       select BOARD_LATE_INIT
        select CLK_UNIPHIER
        select DM
        select DM_GPIO
        select CLK_UNIPHIER
        select DM
        select DM_GPIO
@@ -851,12 +1112,11 @@ config ARCH_UNIPHIER
        select OF_CONTROL
        select OF_LIBFDT
        select PINCTRL
        select OF_CONTROL
        select OF_LIBFDT
        select PINCTRL
-       select SPL
-       select SPL_DM
-       select SPL_LIBCOMMON_SUPPORT
-       select SPL_LIBGENERIC_SUPPORT
-       select SPL_OF_CONTROL
-       select SPL_PINCTRL
+       select SPL_DM if SPL
+       select SPL_LIBCOMMON_SUPPORT if SPL
+       select SPL_LIBGENERIC_SUPPORT if SPL
+       select SPL_OF_CONTROL if SPL
+       select SPL_PINCTRL if SPL
        select SUPPORT_SPL
        help
          Support for UniPhier SoC family developed by Socionext Inc.
        select SUPPORT_SPL
        help
          Support for UniPhier SoC family developed by Socionext Inc.
@@ -867,6 +1127,19 @@ config STM32
        select CPU_V7M
        select DM
        select DM_SERIAL
        select CPU_V7M
        select DM
        select DM_SERIAL
+       select SYS_THUMB_BUILD
+
+config ARCH_STI
+       bool "Support STMicrolectronics SoCs"
+       select CPU_V7
+       select DM
+       select DM_SERIAL
+       select BLK
+       select DM_MMC
+       select DM_RESET
+       help
+         Support for STMicroelectronics STiH407/10 SoC family.
+         This SoC is used on Linaro 96Board STiH410-B2260
 
 config ARCH_ROCKCHIP
        bool "Support Rockchip SoCs"
 
 config ARCH_ROCKCHIP
        bool "Support Rockchip SoCs"
@@ -875,6 +1148,7 @@ config ARCH_ROCKCHIP
        select DM
        select SPL_DM if SPL
        select SYS_MALLOC_F
        select DM
        select SPL_DM if SPL
        select SYS_MALLOC_F
+       select SYS_THUMB_BUILD if !ARM64
        select SPL_SYS_MALLOC_SIMPLE if SPL
        select DM_GPIO
        select DM_I2C
        select SPL_SYS_MALLOC_SIMPLE if SPL
        select DM_GPIO
        select DM_I2C
@@ -893,8 +1167,15 @@ config TARGET_THUNDERX_88XX
        select OF_CONTROL
        select SYS_CACHE_SHIFT_7
 
        select OF_CONTROL
        select SYS_CACHE_SHIFT_7
 
+config ARCH_ASPEED
+       bool "Support Aspeed SoCs"
+       select OF_CONTROL
+       select DM
+
 endchoice
 
 endchoice
 
+source "arch/arm/mach-aspeed/Kconfig"
+
 source "arch/arm/mach-at91/Kconfig"
 
 source "arch/arm/mach-bcm283x/Kconfig"
 source "arch/arm/mach-at91/Kconfig"
 
 source "arch/arm/mach-bcm283x/Kconfig"
@@ -915,13 +1196,15 @@ source "arch/arm/mach-mvebu/Kconfig"
 
 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
 
 
 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
 
+source "arch/arm/cpu/armv7/mx7ulp/Kconfig"
+
 source "arch/arm/cpu/armv7/mx7/Kconfig"
 
 source "arch/arm/cpu/armv7/mx6/Kconfig"
 
 source "arch/arm/cpu/armv7/mx5/Kconfig"
 
 source "arch/arm/cpu/armv7/mx7/Kconfig"
 
 source "arch/arm/cpu/armv7/mx6/Kconfig"
 
 source "arch/arm/cpu/armv7/mx5/Kconfig"
 
-source "arch/arm/cpu/armv7/omap-common/Kconfig"
+source "arch/arm/mach-omap2/Kconfig"
 
 source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
 
 
 source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
 
@@ -939,12 +1222,16 @@ source "arch/arm/mach-snapdragon/Kconfig"
 
 source "arch/arm/mach-socfpga/Kconfig"
 
 
 source "arch/arm/mach-socfpga/Kconfig"
 
+source "arch/arm/mach-sti/Kconfig"
+
 source "arch/arm/mach-stm32/Kconfig"
 
 source "arch/arm/mach-tegra/Kconfig"
 
 source "arch/arm/mach-uniphier/Kconfig"
 
 source "arch/arm/mach-stm32/Kconfig"
 
 source "arch/arm/mach-tegra/Kconfig"
 
 source "arch/arm/mach-uniphier/Kconfig"
 
+source "arch/arm/cpu/armv7/vf610/Kconfig"
+
 source "arch/arm/mach-zynq/Kconfig"
 
 source "arch/arm/cpu/armv7/Kconfig"
 source "arch/arm/mach-zynq/Kconfig"
 
 source "arch/arm/cpu/armv7/Kconfig"
@@ -955,6 +1242,8 @@ source "arch/arm/cpu/armv8/Kconfig"
 
 source "arch/arm/imx-common/Kconfig"
 
 
 source "arch/arm/imx-common/Kconfig"
 
+source "board/aries/m28evk/Kconfig"
+source "board/aries/m53evk/Kconfig"
 source "board/bosch/shc/Kconfig"
 source "board/BuR/brxre1/Kconfig"
 source "board/BuR/brppt1/Kconfig"
 source "board/bosch/shc/Kconfig"
 source "board/BuR/brxre1/Kconfig"
 source "board/BuR/brppt1/Kconfig"
@@ -969,13 +1258,12 @@ source "board/broadcom/bcm23550_w1d/Kconfig"
 source "board/broadcom/bcm28155_ap/Kconfig"
 source "board/broadcom/bcmcygnus/Kconfig"
 source "board/broadcom/bcmnsp/Kconfig"
 source "board/broadcom/bcm28155_ap/Kconfig"
 source "board/broadcom/bcmcygnus/Kconfig"
 source "board/broadcom/bcmnsp/Kconfig"
+source "board/broadcom/bcmns2/Kconfig"
 source "board/cavium/thunderx/Kconfig"
 source "board/cirrus/edb93xx/Kconfig"
 source "board/compulab/cm_t335/Kconfig"
 source "board/compulab/cm_t43/Kconfig"
 source "board/creative/xfi3/Kconfig"
 source "board/cavium/thunderx/Kconfig"
 source "board/cirrus/edb93xx/Kconfig"
 source "board/compulab/cm_t335/Kconfig"
 source "board/compulab/cm_t43/Kconfig"
 source "board/creative/xfi3/Kconfig"
-source "board/denx/m28evk/Kconfig"
-source "board/denx/m53evk/Kconfig"
 source "board/freescale/ls2080a/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
 source "board/freescale/ls2080ardb/Kconfig"
 source "board/freescale/ls2080a/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
 source "board/freescale/ls2080ardb/Kconfig"
@@ -1001,18 +1289,16 @@ source "board/freescale/mx53evk/Kconfig"
 source "board/freescale/mx53loco/Kconfig"
 source "board/freescale/mx53smd/Kconfig"
 source "board/freescale/s32v234evb/Kconfig"
 source "board/freescale/mx53loco/Kconfig"
 source "board/freescale/mx53smd/Kconfig"
 source "board/freescale/s32v234evb/Kconfig"
-source "board/freescale/vf610twr/Kconfig"
+source "board/gdsys/a38x/Kconfig"
+source "board/grinn/chiliboard/Kconfig"
 source "board/gumstix/pepper/Kconfig"
 source "board/h2200/Kconfig"
 source "board/hisilicon/hikey/Kconfig"
 source "board/imx31_phycore/Kconfig"
 source "board/isee/igep0033/Kconfig"
 source "board/gumstix/pepper/Kconfig"
 source "board/h2200/Kconfig"
 source "board/hisilicon/hikey/Kconfig"
 source "board/imx31_phycore/Kconfig"
 source "board/isee/igep0033/Kconfig"
-source "board/mpl/vcma9/Kconfig"
 source "board/olimex/mx23_olinuxino/Kconfig"
 source "board/phytec/pcm051/Kconfig"
 source "board/olimex/mx23_olinuxino/Kconfig"
 source "board/phytec/pcm051/Kconfig"
-source "board/phytec/pcm052/Kconfig"
 source "board/ppcag/bg0900/Kconfig"
 source "board/ppcag/bg0900/Kconfig"
-source "board/samsung/smdk2410/Kconfig"
 source "board/sandisk/sansa_fuze_plus/Kconfig"
 source "board/schulercontrol/sc_sps_1/Kconfig"
 source "board/siemens/draco/Kconfig"
 source "board/sandisk/sansa_fuze_plus/Kconfig"
 source "board/schulercontrol/sc_sps_1/Kconfig"
 source "board/siemens/draco/Kconfig"
@@ -1035,7 +1321,7 @@ source "board/ti/ti814x/Kconfig"
 source "board/ti/ti816x/Kconfig"
 source "board/timll/devkit3250/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
 source "board/ti/ti816x/Kconfig"
 source "board/timll/devkit3250/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
-source "board/toradex/colibri_vf/Kconfig"
+source "board/technologic/ts4600/Kconfig"
 source "board/technologic/ts4800/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/technologic/ts4800/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"