]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - arch/arm/Kconfig
Merge branch 'pmic' of git://git.denx.de/u-boot-mmc
[people/ms/u-boot.git] / arch / arm / Kconfig
index 1e4830a30e0b8f5cb6bb634a5097e300666054cb..0a05662e7cec6b9f212cd1e2b4a7435d4668495d 100644 (file)
@@ -19,6 +19,72 @@ 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_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
@@ -126,6 +192,53 @@ config ENABLE_ARM_SOC_BOOT0_HOOK
          ARM_SOC_BOOT0_HOOK which contains the required assembler
          preprocessor code.
 
+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
+       help
+         This ARM64 system supports AArch32 execution state.
+
 choice
        prompt "Target select"
        default TARGET_HIKEY
@@ -137,14 +250,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
@@ -162,6 +267,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)"
@@ -185,10 +292,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
@@ -215,16 +325,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"
@@ -248,18 +361,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"
@@ -272,21 +389,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"
@@ -303,6 +431,7 @@ config TARGET_FLEA3
 
 config TARGET_MX35PDK
        bool "Support mx35pdk"
+       select BOARD_LATE_INIT
        select CPU_ARM1136
 
 config ARCH_BCM283X
@@ -310,6 +439,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"
@@ -327,159 +457,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
-
-config TARGET_CM_T335
-       bool "Support cm_t335"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_PEPPER
-       bool "Support pepper"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_AM335X_IGEP0033
-       bool "Support am335x_igep0033"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_PCM051
-       bool "Support pcm051"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
+       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 DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_PENGWYN
-       bool "Support pengwyn"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_AM335X_BALTOS
-       bool "Support am335x_baltos"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_AM335X_EVM
-       bool "Support am335x_evm"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select BOARD_LATE_INIT
        select DM
        select DM_SERIAL
        select DM_GPIO
-       select TI_I2C_BOARD_DETECT
-
-config TARGET_AM335X_SHC
-       bool "Support am335x based shc board from bosch"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_AM335X_SL50
-       bool "Support am335x_sl50"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_GPIO
-       select DM_SERIAL
-
-config TARGET_BAV335X
-       bool "Support bav335x"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       help
-         The BAV335x OEM Network Processor integrates all the functions of an
-         embedded network computer in a small, easy to use SODIMM module which
-         incorporates the popular Texas Instruments Sitara 32bit ARM Coretex-A8
-         processor, with fast DDR3 512MB SDRAM, 4GB of embedded MMC and a Gigabit
-         ethernet with simple connection to external connectors.
-
-         For more information, visit: http://birdland.com/oem
 
 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"
@@ -500,6 +540,7 @@ config TARGET_BCMNSP
 config ARCH_EXYNOS
        bool "Samsung EXYNOS"
        select DM
+       select DM_I2C
        select DM_SPI_FLASH
        select DM_SERIAL
        select DM_SPI
@@ -512,6 +553,7 @@ config ARCH_S5PC1XX
        select DM
        select DM_SERIAL
        select DM_GPIO
+       select DM_I2C
 
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
@@ -538,61 +580,115 @@ config ARCH_MESON
 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
 
 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 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
 
 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
 
 config OMAP54XX
        bool "OMAP54XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
+       select ARM_ERRATA_798870
+       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
        help
          Support for AM43xx SOC from Texas Instruments.
          The AM43xx high performance SOC features a Cortex-A9
@@ -600,14 +696,26 @@ config AM43XX
          protocols, dual camera support, optional 3D graphics
          and an optional customer programmable secure boot.
 
+config AM33XX
+       bool "AM33XX SoC"
+       select ARCH_OMAP2
+       help
+         Support for AM335x SOC from Texas Instruments.
+         The AM335x high performance SOC features a Cortex-A8
+         ARM core, a dual core PRU-ICSS for industrial Ethernet
+         protocols, optional 3D graphics and an optional customer
+         programmable secure boot.
+
 config ARCH_RMOBILE
        bool "Renesas ARM SoCs"
        select DM
        select DM_SERIAL
+       select BOARD_EARLY_INIT_F
 
 config TARGET_S32V234EVB
        bool "Support s32v234evb"
        select ARM64
+       select SYS_FSL_ERRATUM_ESDHC111
 
 config ARCH_SNAPDRAGON
        bool "Qualcomm Snapdragon SoCs"
@@ -628,52 +736,75 @@ 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
 
 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 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
+       select SYS_FSL_ERRATUM_ESDHC111
 
 config TARGET_COLIBRI_VF
        bool "Support Colibri VF50/61"
+       select BOARD_LATE_INIT
        select CPU_V7
+       select SYS_FSL_ERRATUM_ESDHC111
 
 config TARGET_PCM052
        bool "Support pcm-052"
        select CPU_V7
+       select SYS_FSL_ERRATUM_ESDHC111
+       select SYS_FSL_ERRATUM_ESDHC135
+       select SYS_FSL_ERRATUM_ESDHC_A001
+
+config TARGET_BK4R1
+       bool "Support BK4r1"
+       select CPU_V7
+       select SYS_FSL_ERRATUM_ESDHC111
+       select SYS_FSL_ERRATUM_ESDHC135
+       select SYS_FSL_ERRATUM_ESDHC_A001
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq Platform"
+       select BOARD_LATE_INIT
        select CPU_V7
        select SUPPORT_SPL
        select OF_CONTROL
@@ -694,6 +825,7 @@ config ARCH_ZYNQ
 config ARCH_ZYNQMP
        bool "Support Xilinx ZynqMP Platform"
        select ARM64
+       select BOARD_LATE_INIT
        select DM
        select OF_CONTROL
        select DM_SERIAL
@@ -729,8 +861,10 @@ config TARGET_VEXPRESS64_JUNO
 
 config TARGET_LS2080A_EMU
        bool "Support 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
@@ -739,8 +873,10 @@ config TARGET_LS2080A_EMU
 
 config TARGET_LS2080A_SIMU
        bool "Support 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
@@ -749,9 +885,12 @@ config TARGET_LS2080A_SIMU
 
 config TARGET_LS2080AQDS
        bool "Support 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
@@ -760,9 +899,12 @@ config TARGET_LS2080AQDS
 
 config TARGET_LS2080ARDB
        bool "Support 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
@@ -784,6 +926,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
@@ -794,6 +937,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
@@ -812,26 +956,52 @@ 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
        select SUPPORT_SPL
        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
        select SUPPORT_SPL
        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
+       select SUPPORT_SPL
+       select ARCH_LS1021A
+       select ARCH_SUPPORT_PSCI
+       help
+         Support for Freescale LS1021AIOT platform.
+         The LS1021A Freescale board (IOT) is a high-performance
+         development platform that supports the QorIQ LS1021A
+         Layerscape Architecture processor.
 
 config TARGET_LS1043AQDS
        bool "Support 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.
 
@@ -840,7 +1010,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.
 
@@ -849,8 +1021,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
@@ -862,8 +1036,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
@@ -884,23 +1061,23 @@ 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
        select DM_I2C
        select DM_MMC
+       select DM_RESET
        select DM_SERIAL
        select DM_USB
        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.
@@ -928,6 +1105,8 @@ config ARCH_ROCKCHIP
        select DM_SPI
        select DM_SPI_FLASH
        select DM_USB if USB
+       select DM_PWM
+       select DM_REGULATOR
 
 config TARGET_THUNDERX_88XX
        bool "Support ThunderX 88xx"
@@ -935,8 +1114,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"
@@ -963,7 +1149,7 @@ 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"
 
@@ -1024,6 +1210,7 @@ source "board/freescale/ls2080ardb/Kconfig"
 source "board/freescale/ls1021aqds/Kconfig"
 source "board/freescale/ls1043aqds/Kconfig"
 source "board/freescale/ls1021atwr/Kconfig"
+source "board/freescale/ls1021aiot/Kconfig"
 source "board/freescale/ls1046aqds/Kconfig"
 source "board/freescale/ls1043ardb/Kconfig"
 source "board/freescale/ls1046ardb/Kconfig"
@@ -1043,17 +1230,16 @@ source "board/freescale/mx53loco/Kconfig"
 source "board/freescale/mx53smd/Kconfig"
 source "board/freescale/s32v234evb/Kconfig"
 source "board/freescale/vf610twr/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"
@@ -1077,6 +1263,7 @@ 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"