Convert CONFIG_BOARD_EARLY_INIT_F to Kconfig
[platform/kernel/u-boot.git] / arch / arm / Kconfig
index e63309a..82cff06 100644 (file)
@@ -126,6 +126,53 @@ 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 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
 choice
        prompt "Target select"
        default TARGET_HIKEY
@@ -137,14 +184,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
@@ -162,11 +201,10 @@ config ARCH_DAVINCI
 config KIRKWOOD
        bool "Marvell Kirkwood"
        select CPU_ARM926EJS
 config KIRKWOOD
        bool "Marvell Kirkwood"
        select CPU_ARM926EJS
+       select BOARD_EARLY_INIT_F
 
 config ARCH_MVEBU
 
 config ARCH_MVEBU
-       bool "Marvell MVEBU family (Armada XP/375/38x)"
-       select CPU_V7
-       select SUPPORT_SPL
+       bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
        select OF_CONTROL
        select OF_SEPARATE
        select DM
        select OF_CONTROL
        select OF_SEPARATE
        select DM
@@ -174,10 +212,6 @@ config ARCH_MVEBU
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
-       select SPL_DM
-       select SPL_DM_SEQ_ALIAS
-       select SPL_OF_CONTROL
-       select SPL_SIMPLE_BUS
 
 config TARGET_DEVKIT3250
        bool "Support devkit3250"
 
 config TARGET_DEVKIT3250
        bool "Support devkit3250"
@@ -191,10 +225,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 +258,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 +294,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 +322,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 +364,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 +372,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,159 +390,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
-
-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"
 
 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 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 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 ARCH_OMAP2
+       select BOARD_LATE_INIT
        select DM
        select DM_SERIAL
        select DM_GPIO
 
        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"
 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"
@@ -506,6 +473,7 @@ config TARGET_BCMNSP
 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
@@ -518,6 +486,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"
@@ -544,61 +513,74 @@ config ARCH_MESON
 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
 
 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
 
 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 USE_TINY_PRINTF
 
 config OMAP44XX
        bool "OMAP44XX SoC"
        select USE_TINY_PRINTF
 
 config OMAP44XX
        bool "OMAP44XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
        select USE_TINY_PRINTF
 
 config OMAP54XX
        bool "OMAP54XX SoC"
        select USE_TINY_PRINTF
 
 config OMAP54XX
        bool "OMAP54XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
+       select ARCH_OMAP2
 
 config AM43XX
        bool "AM43XX SoC"
 
 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
        help
          Support for AM43xx SOC from Texas Instruments.
          The AM43xx high performance SOC features a Cortex-A9
@@ -606,14 +588,26 @@ config AM43XX
          protocols, dual camera support, optional 3D graphics
          and an optional customer programmable secure boot.
 
          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
 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
 
 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"
@@ -634,52 +628,73 @@ 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
 
 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 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_VF610TWR
        bool "Support vf610twr"
        select CPU_V7
+       select SYS_FSL_ERRATUM_ESDHC111
 
 config TARGET_COLIBRI_VF
        bool "Support Colibri VF50/61"
 
 config TARGET_COLIBRI_VF
        bool "Support Colibri VF50/61"
+       select BOARD_LATE_INIT
        select CPU_V7
        select CPU_V7
+       select SYS_FSL_ERRATUM_ESDHC111
 
 config TARGET_PCM052
        bool "Support pcm-052"
        select CPU_V7
 
 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"
 
 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
@@ -700,6 +715,7 @@ config ARCH_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
@@ -735,6 +751,7 @@ config TARGET_VEXPRESS64_JUNO
 
 config TARGET_LS2080A_EMU
        bool "Support ls2080a_emu"
 
 config TARGET_LS2080A_EMU
        bool "Support ls2080a_emu"
+       select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
        help
        select ARM64
        select ARMV8_MULTIENTRY
        help
@@ -745,6 +762,7 @@ config TARGET_LS2080A_EMU
 
 config TARGET_LS2080A_SIMU
        bool "Support ls2080a_simu"
 
 config TARGET_LS2080A_SIMU
        bool "Support ls2080a_simu"
+       select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
        help
        select ARM64
        select ARMV8_MULTIENTRY
        help
@@ -755,8 +773,10 @@ config TARGET_LS2080A_SIMU
 
 config TARGET_LS2080AQDS
        bool "Support ls2080aqds"
 
 config TARGET_LS2080AQDS
        bool "Support ls2080aqds"
+       select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
        help
          Support for Freescale LS2080AQDS platform
        select SUPPORT_SPL
        help
          Support for Freescale LS2080AQDS platform
@@ -766,8 +786,10 @@ config TARGET_LS2080AQDS
 
 config TARGET_LS2080ARDB
        bool "Support ls2080ardb"
 
 config TARGET_LS2080ARDB
        bool "Support ls2080ardb"
+       select ARCH_LS2080A
        select ARM64
        select ARMV8_MULTIENTRY
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
        help
          Support for Freescale LS2080ARDB platform.
        select SUPPORT_SPL
        help
          Support for Freescale LS2080ARDB platform.
@@ -788,7 +810,9 @@ config TARGET_HIKEY
 
 config TARGET_LS1012AQDS
        bool "Support ls1012aqds"
 
 config TARGET_LS1012AQDS
        bool "Support ls1012aqds"
+       select ARCH_LS1012A
        select ARM64
        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
@@ -797,7 +821,9 @@ config TARGET_LS1012AQDS
 
 config TARGET_LS1012ARDB
        bool "Support ls1012ardb"
 
 config TARGET_LS1012ARDB
        bool "Support ls1012ardb"
+       select ARCH_LS1012A
        select ARM64
        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
@@ -806,6 +832,7 @@ config TARGET_LS1012ARDB
 
 config TARGET_LS1012AFRDM
        bool "Support ls1012afrdm"
 
 config TARGET_LS1012AFRDM
        bool "Support ls1012afrdm"
+       select ARCH_LS1012A
        select ARM64
        help
          Support for Freescale LS1012AFRDM platform.
        select ARM64
        help
          Support for Freescale LS1012AFRDM platform.
@@ -815,32 +842,97 @@ 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
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
        select SUPPORT_SPL
+       select ARCH_LS1021A
        select ARCH_SUPPORT_PSCI
        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 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
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
        select SUPPORT_SPL
+       select ARCH_LS1021A
        select ARCH_SUPPORT_PSCI
        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"
 
 config TARGET_LS1043AQDS
        bool "Support ls1043aqds"
+       select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
        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.
 
 config TARGET_LS1043ARDB
        bool "Support ls1043ardb"
        help
          Support for Freescale LS1043AQDS platform.
 
 config TARGET_LS1043ARDB
        bool "Support ls1043ardb"
+       select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
        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.
 
+config TARGET_LS1046AQDS
+       bool "Support 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
+         development platform that supports the QorIQ LS1046A
+         Layerscape Architecture processor.
+
+config TARGET_LS1046ARDB
+       bool "Support 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
+         development platform that supports the QorIQ LS1046A
+         Layerscape Architecture processor.
+
 config TARGET_H2200
        bool "Support h2200"
        select CPU_PXA
 config TARGET_H2200
        bool "Support h2200"
        select CPU_PXA
@@ -855,18 +947,24 @@ config TARGET_COLIBRI_PXA270
 
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
 
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
+       select BOARD_LATE_INIT
        select CLK_UNIPHIER
        select CLK_UNIPHIER
-       select SUPPORT_SPL
-       select SPL
-       select OF_CONTROL
-       select SPL_OF_CONTROL
-       select OF_LIBFDT
        select DM
        select DM
-       select SPL_DM
        select DM_GPIO
        select DM_GPIO
-       select DM_SERIAL
        select DM_I2C
        select DM_MMC
        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_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.
          (formerly, System LSI Business Division of Panasonic Corporation)
        help
          Support for UniPhier SoC family developed by Socionext Inc.
          (formerly, System LSI Business Division of Panasonic Corporation)
@@ -892,6 +990,9 @@ config ARCH_ROCKCHIP
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
+       select DM_USB if USB
+       select DM_PWM
+       select DM_REGULATOR
 
 config TARGET_THUNDERX_88XX
        bool "Support ThunderX 88xx"
 
 config TARGET_THUNDERX_88XX
        bool "Support ThunderX 88xx"
@@ -917,15 +1018,21 @@ source "arch/arm/mach-keystone/Kconfig"
 
 source "arch/arm/mach-kirkwood/Kconfig"
 
 
 source "arch/arm/mach-kirkwood/Kconfig"
 
+source "arch/arm/mach-litesom/Kconfig"
+
 source "arch/arm/mach-mvebu/Kconfig"
 
 source "arch/arm/mach-mvebu/Kconfig"
 
+source "arch/arm/cpu/armv7/ls102xa/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/mach-orion5x/Kconfig"
 
 
 source "arch/arm/mach-orion5x/Kconfig"
 
@@ -984,7 +1091,10 @@ source "board/freescale/ls2080ardb/Kconfig"
 source "board/freescale/ls1021aqds/Kconfig"
 source "board/freescale/ls1043aqds/Kconfig"
 source "board/freescale/ls1021atwr/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/ls1043ardb/Kconfig"
+source "board/freescale/ls1046ardb/Kconfig"
 source "board/freescale/ls1012aqds/Kconfig"
 source "board/freescale/ls1012ardb/Kconfig"
 source "board/freescale/ls1012afrdm/Kconfig"
 source "board/freescale/ls1012aqds/Kconfig"
 source "board/freescale/ls1012ardb/Kconfig"
 source "board/freescale/ls1012afrdm/Kconfig"
@@ -1006,12 +1116,10 @@ source "board/h2200/Kconfig"
 source "board/hisilicon/hikey/Kconfig"
 source "board/imx31_phycore/Kconfig"
 source "board/isee/igep0033/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/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"
 source "board/sandisk/sansa_fuze_plus/Kconfig"
 source "board/schulercontrol/sc_sps_1/Kconfig"
 source "board/siemens/draco/Kconfig"
@@ -1035,6 +1143,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/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"