]> 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
 
+# 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
@@ -112,6 +181,25 @@ config SEMIHOSTING
          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
@@ -126,6 +214,51 @@ config ENABLE_ARM_SOC_BOOT0_HOOK
          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
@@ -143,14 +276,6 @@ config TARGET_EDB93XX
        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
@@ -168,6 +293,8 @@ config ARCH_DAVINCI
 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)"
@@ -191,10 +318,13 @@ config TARGET_WORK_92105
 
 config TARGET_MX25PDK
        bool "Support mx25pdk"
+       select BOARD_LATE_INIT
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_ZMX25
        bool "Support zmx25"
+       select BOARD_LATE_INIT
        select CPU_ARM926EJS
 
 config TARGET_APF27
@@ -221,16 +351,19 @@ config TARGET_MX23EVK
        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
+       select BOARD_EARLY_INIT_F
 
 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"
@@ -254,18 +387,22 @@ config ORION5X
 config TARGET_SPEAR300
        bool "Support spear300"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_SPEAR310
        bool "Support spear310"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_SPEAR320
        bool "Support spear320"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_SPEAR600
        bool "Support spear600"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config TARGET_STV0991
        bool "Support stv0991"
@@ -278,21 +415,32 @@ config TARGET_STV0991
 
 config TARGET_X600
        bool "Support x600"
+       select BOARD_LATE_INIT
        select CPU_ARM926EJS
        select SUPPORT_SPL
 
 config TARGET_IMX31_PHYCORE
-       bool "Support imx31_phycore"
+       bool "Support imx31_phycore_eet"
        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
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX31PDK
        bool "Support mx31pdk"
+       select BOARD_LATE_INIT
        select CPU_ARM1136
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
 
 config TARGET_WOODBURN
        bool "Support woodburn"
@@ -309,6 +457,7 @@ config TARGET_FLEA3
 
 config TARGET_MX35PDK
        bool "Support mx35pdk"
+       select BOARD_LATE_INIT
        select CPU_ARM1136
 
 config ARCH_BCM283X
@@ -316,6 +465,7 @@ config ARCH_BCM283X
        select DM
        select DM_SERIAL
        select DM_GPIO
+       select OF_CONTROL
 
 config TARGET_VEXPRESS_CA15_TC2
        bool "Support vexpress_ca15_tc2"
@@ -333,71 +483,69 @@ config TARGET_VEXPRESS_CA9X4
 
 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"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
 
 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 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 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 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 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 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 CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
 
 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"
@@ -415,9 +563,18 @@ config TARGET_BCMNSP
        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
+       select DM_I2C
        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_I2C
 
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
@@ -444,6 +602,7 @@ config ARCH_KEYSTONE
        bool "TI Keystone"
        select CPU_V7
        select SUPPORT_SPL
+       select SYS_THUMB_BUILD
        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.
 
+config ARCH_MX7ULP
+        bool "NXP MX7ULP"
+        select CPU_V7
+       select ROM_UNIFIED_SECTIONS
+
 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
+       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
+       select BOARD_EARLY_INIT_F
 
 config TARGET_M53EVK
        bool "Support m53evk"
        select CPU_V7
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX51EVK
        bool "Support mx51evk"
+       select BOARD_LATE_INIT
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX53ARD
        bool "Support mx53ard"
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX53EVK
        bool "Support mx53evk"
+       select BOARD_LATE_INIT
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX53LOCO
        bool "Support mx53loco"
+       select BOARD_LATE_INIT
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 config TARGET_MX53SMD
        bool "Support mx53smd"
        select CPU_V7
+       select BOARD_EARLY_INIT_F
 
 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
+       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"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
        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"
-       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"
-       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
@@ -520,8 +750,8 @@ config AM43XX
 
 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
@@ -533,10 +763,13 @@ config ARCH_RMOBILE
        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
+       select SYS_FSL_ERRATUM_ESDHC111
 
 config ARCH_SNAPDRAGON
        bool "Qualcomm Snapdragon SoCs"
@@ -557,56 +790,57 @@ config ARCH_SOCFPGA
        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"
-       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
-       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_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 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
 
+config TARGET_TS4600
+       bool "Support TS4600"
+       select CPU_ARM926EJS
+       select SUPPORT_SPL
+
 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 SYS_FSL_ERRATUM_ESDHC111
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq Platform"
+       select BOARD_LATE_INIT
        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 CLK
+       select SPL_CLK
+       select CLK_ZYNQ
 
 config ARCH_ZYNQMP
        bool "Support Xilinx ZynqMP Platform"
        select ARM64
+       select BOARD_LATE_INIT
        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_MISC_INIT
        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_MISC_INIT
        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 BOARD_LATE_INIT
        select SUPPORT_SPL
+       select ARCH_MISC_INIT
        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 BOARD_LATE_INIT
        select SUPPORT_SPL
+       select ARCH_MISC_INIT
        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
+       select BOARD_LATE_INIT
        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
+       select BOARD_LATE_INIT
        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"
+       select BOARD_LATE_INIT
        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 SYS_FSL_DDR
+       select BOARD_EARLY_INIT_F
 
 config TARGET_LS1021ATWR
        bool "Support ls1021atwr"
+       select BOARD_LATE_INIT
        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 BOARD_EARLY_INIT_F
 
 config TARGET_LS1021AIOT
        bool "Support ls1021aiot"
+       select BOARD_LATE_INIT
        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 BOARD_LATE_INIT
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
        help
          Support for Freescale LS1043AQDS platform.
 
@@ -795,7 +1049,9 @@ config TARGET_LS1043ARDB
        select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
        help
          Support for Freescale LS1043ARDB platform.
 
@@ -804,8 +1060,10 @@ config TARGET_LS1046AQDS
        select ARCH_LS1046A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        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
@@ -817,8 +1075,11 @@ config TARGET_LS1046ARDB
        select ARCH_LS1046A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        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
@@ -839,7 +1100,7 @@ config TARGET_COLIBRI_PXA270
 
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
-       select BLK
+       select BOARD_LATE_INIT
        select CLK_UNIPHIER
        select DM
        select DM_GPIO
@@ -851,12 +1112,11 @@ config ARCH_UNIPHIER
        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.
@@ -867,6 +1127,19 @@ config STM32
        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"
@@ -875,6 +1148,7 @@ config ARCH_ROCKCHIP
        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
@@ -893,8 +1167,15 @@ config TARGET_THUNDERX_88XX
        select OF_CONTROL
        select SYS_CACHE_SHIFT_7
 
+config ARCH_ASPEED
+       bool "Support Aspeed SoCs"
+       select OF_CONTROL
+       select DM
+
 endchoice
 
+source "arch/arm/mach-aspeed/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/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/omap-common/Kconfig"
+source "arch/arm/mach-omap2/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-sti/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"
@@ -955,6 +1242,8 @@ source "arch/arm/cpu/armv8/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"
@@ -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/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/denx/m28evk/Kconfig"
-source "board/denx/m53evk/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/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/mpl/vcma9/Kconfig"
 source "board/olimex/mx23_olinuxino/Kconfig"
 source "board/phytec/pcm051/Kconfig"
-source "board/phytec/pcm052/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"
@@ -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/toradex/colibri_vf/Kconfig"
+source "board/technologic/ts4600/Kconfig"
 source "board/technologic/ts4800/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"