]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - arch/arm/Kconfig
configs: Migrate RBTREE, LZO, CMD_MTDPARTS, CMD_UBI and CMD_UBIFS
[people/ms/u-boot.git] / arch / arm / Kconfig
index 1e4830a30e0b8f5cb6bb634a5097e300666054cb..ad2f29165c6cbdff2d42248073b4884969ad7783 100644 (file)
@@ -19,6 +19,90 @@ config HAS_VBAR
 config HAS_THUMB2
        bool
 
+# Used for compatibility with asm files copied from the kernel
+config ARM_ASM_UNIFIED
+       bool
+       default y
+
+# Used for compatibility with asm files copied from the kernel
+config THUMB2_KERNEL
+       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 ARM_ERRATA_852421
+       bool
+
+config ARM_ERRATA_852423
+       bool
+
 config CPU_ARM720T
        bool
        select SYS_CACHE_SHIFT_5
@@ -53,6 +137,7 @@ config CPU_V7
 config CPU_V7M
        bool
        select HAS_THUMB2
+       select THUMB2_KERNEL
        select SYS_CACHE_SHIFT_5
 
 config CPU_PXA
@@ -105,6 +190,15 @@ config SYS_CACHELINE_SIZE
        default 64 if SYS_CACHE_SHIFT_6
        default 32 if SYS_CACHE_SHIFT_5
 
+config ARM_SMCCC
+       bool "Support for ARM SMC Calling Convention (SMCCC)"
+       depends on CPU_V7 || ARM64
+       select ARM_PSCI_FW
+       help
+         Say Y here if you want to enable ARM SMC Calling Convention.
+         This should be enabled if U-Boot needs to communicate with system
+         firmware (for example, PSCI) according to SMCCC.
+
 config SEMIHOSTING
        bool "support boot from semihosting"
        help
@@ -112,6 +206,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,25 +239,64 @@ 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 for SPL"
+       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 for SPL"
+       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 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
 
 config ARCH_AT91
        bool "Atmel AT91"
+       select SPL_BOARD_INIT if SPL
 
 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 +314,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 +339,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 +372,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 +408,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 +436,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 +478,7 @@ config TARGET_FLEA3
 
 config TARGET_MX35PDK
        bool "Support mx35pdk"
+       select BOARD_LATE_INIT
        select CPU_ARM1136
 
 config ARCH_BCM283X
@@ -310,6 +486,8 @@ config ARCH_BCM283X
        select DM
        select DM_SERIAL
        select DM_GPIO
+       select OF_CONTROL
+       imply FAT_WRITE
 
 config TARGET_VEXPRESS_CA15_TC2
        bool "Support vexpress_ca15_tc2"
@@ -325,186 +503,48 @@ config TARGET_VEXPRESS_CA9X4
        bool "Support vexpress_ca9x4"
        select CPU_V7
 
-config TARGET_BRXRE1
-       bool "Support BRXRE1"
-       select CPU_V7
-       select SUPPORT_SPL
-
-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
-
-config TARGET_DRACO
-       bool "Support draco"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_THUBAN
-       bool "Support thuban"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_RASTABAN
-       bool "Support rastaban"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_ETAMIN
-       bool "Support etamin"
-       select CPU_V7
-       select SUPPORT_SPL
-       select DM
-       select DM_SERIAL
-       select DM_GPIO
-
-config TARGET_PXM2
-       bool "Support pxm2"
-       select CPU_V7
-       select SUPPORT_SPL
-       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 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
-
-config TARGET_TI816X_EVM
-       bool "Support ti816x_evm"
-       select CPU_V7
-       select SUPPORT_SPL
-
 config TARGET_BCM23550_W1D
        bool "Support bcm23550_w1d"
        select CPU_V7
+       imply CRC32_VERIFY
+       imply FAT_WRITE
 
 config TARGET_BCM28155_AP
        bool "Support bcm28155_ap"
        select CPU_V7
+       imply CRC32_VERIFY
+       imply FAT_WRITE
 
 config TARGET_BCMCYGNUS
        bool "Support bcmcygnus"
        select CPU_V7
+       imply CRC32_VERIFY
+       imply CMD_HASH
+       imply FAT_WRITE
+       imply HASH_VERIFY
 
 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
        select DM_GPIO
        select DM_KEYBOARD
+       imply FAT_WRITE
 
 config ARCH_S5PC1XX
        bool "Samsung S5PC1XX"
@@ -512,6 +552,7 @@ config ARCH_S5PC1XX
        select DM
        select DM_SERIAL
        select DM_GPIO
+       select DM_I2C
 
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
@@ -526,7 +567,17 @@ config ARCH_KEYSTONE
        bool "TI Keystone"
        select CPU_V7
        select SUPPORT_SPL
+       select SYS_THUMB_BUILD
        select CMD_POWEROFF
+       imply CMD_MTDPARTS
+       imply FIT
+
+config ARCH_OMAP2PLUS
+       bool "TI OMAP2+"
+       select CPU_V7
+       select SPL_BOARD_INIT if SPL
+       select SUPPORT_SPL
+       imply FIT
 
 config ARCH_MESON
        bool "Amlogic Meson"
@@ -535,79 +586,45 @@ 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
-
-config TARGET_M53EVK
-       bool "Support m53evk"
-       select CPU_V7
-       select SUPPORT_SPL
-
-config TARGET_MX51EVK
-       bool "Support mx51evk"
-       select CPU_V7
-
-config TARGET_MX53ARD
-       bool "Support mx53ard"
-       select CPU_V7
-
-config TARGET_MX53EVK
-       bool "Support mx53evk"
-       select CPU_V7
-
-config TARGET_MX53LOCO
-       bool "Support mx53loco"
-       select CPU_V7
-
-config TARGET_MX53SMD
-       bool "Support mx53smd"
-       select CPU_V7
-
-config OMAP34XX
-       bool "OMAP34XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
-       select USE_TINY_PRINTF
-
-config OMAP44XX
-       bool "OMAP44XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
-       select USE_TINY_PRINTF
-
-config OMAP54XX
-       bool "OMAP54XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
-
-config AM43XX
-       bool "AM43XX SoC"
-       select CPU_V7
-       select SUPPORT_SPL
-       help
-         Support for AM43xx SOC from Texas Instruments.
-         The AM43xx high performance SOC features a Cortex-A9
-         ARM core, a quad core PRU-ICSS for industrial Ethernet
-         protocols, dual camera support, optional 3D graphics
-         and an optional customer programmable secure boot.
+       select BOARD_EARLY_INIT_F
 
 config ARCH_RMOBILE
        bool "Renesas ARM SoCs"
        select DM
        select DM_SERIAL
+       select BOARD_EARLY_INIT_F
+       imply FAT_WRITE
+       imply SYS_THUMB_BUILD
 
 config TARGET_S32V234EVB
        bool "Support s32v234evb"
        select ARM64
+       select SYS_FSL_ERRATUM_ESDHC111
 
 config ARCH_SNAPDRAGON
        bool "Qualcomm Snapdragon SoCs"
@@ -628,55 +645,65 @@ config ARCH_SOCFPGA
        select DM
        select DM_SPI_FLASH
        select DM_SPI
-
-config TARGET_CM_T43
-       bool "Support cm_t43"
-       select CPU_V7
-       select SUPPORT_SPL
+       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
+       imply CMD_MTDPARTS
+       imply CRC32_VERIFY
+       imply FAT_WRITE
 
 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 SPL_STACK_R if SPL
+       select SPL_SYS_MALLOC_SIMPLE if 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
+       imply FAT_WRITE
+       imply PRE_CONSOLE_BUFFER
+       imply SPL_GPIO_SUPPORT
+       imply SPL_LIBCOMMON_SUPPORT
+       imply SPL_LIBDISK_SUPPORT
+       imply SPL_LIBGENERIC_SUPPORT
+       imply SPL_MMC_SUPPORT if MMC
+       imply SPL_POWER_SUPPORT
+       imply SPL_SERIAL_SUPPORT
+
+config TARGET_TS4600
+       bool "Support TS4600"
+       select CPU_ARM926EJS
+       select SUPPORT_SPL
 
-config TARGET_TS4800
-       bool "Support TS4800"
-       select CPU_V7
-
-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"
+config ARCH_VF610
+       bool "Freescale Vybrid"
        select CPU_V7
+       select SYS_FSL_ERRATUM_ESDHC111
+       imply CMD_MTDPARTS
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq Platform"
+       select BOARD_LATE_INIT
        select CPU_V7
        select SUPPORT_SPL
        select OF_CONTROL
+       select SPL_BOARD_INIT if SPL
        select SPL_OF_CONTROL if SPL
        select DM
        select DM_ETH
@@ -690,20 +717,29 @@ config ARCH_ZYNQ
        select SPL_SEPARATE_BSS if SPL
        select DM_USB if USB
        select BLK
+       select CLK
+       select SPL_CLK
+       select CLK_ZYNQ
+       imply CMD_CLK
+       imply FAT_WRITE
 
 config ARCH_ZYNQMP
        bool "Support Xilinx ZynqMP Platform"
        select ARM64
+       select BOARD_LATE_INIT
        select DM
        select OF_CONTROL
        select DM_SERIAL
        select SUPPORT_SPL
        select CLK
+       select SPL_BOARD_INIT if SPL
        select SPL_CLK
        select DM_USB if USB
+       imply FAT_WRITE
 
 config TEGRA
        bool "NVIDIA Tegra"
+       imply FAT_WRITE
 
 config TARGET_VEXPRESS64_AEMV8A
        bool "Support vexpress_aemv8a"
@@ -729,8 +765,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 +777,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 +789,13 @@ 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
+       imply SCSI
        help
          Support for Freescale LS2080AQDS platform
          The LS2080A Development System (QDS) is a high-performance
@@ -760,15 +804,33 @@ 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
+       imply SCSI
        help
          Support for Freescale LS2080ARDB platform.
          The LS2080A Reference design board (RDB) is a high-performance
          development platform that supports the QorIQ LS2080A
          Layerscape Architecture processor.
 
+config TARGET_LS2081ARDB
+       bool "Support ls2081ardb"
+       select ARCH_LS2080A
+       select ARM64
+       select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
+       select SUPPORT_SPL
+       select ARCH_MISC_INIT
+       help
+         Support for Freescale LS2081ARDB platform.
+         The LS2081A Reference design board (RDB) is a high-performance
+         development platform that supports the QorIQ LS2081A/LS2041A
+         Layerscape Architecture processor.
+
 config TARGET_HIKEY
        bool "Support HiKey 96boards Consumer Edition Platform"
        select ARM64
@@ -780,10 +842,24 @@ config TARGET_HIKEY
          Support for HiKey 96boards platform. It features a HI6220
          SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
 
+config TARGET_POPLAR
+       bool "Support Poplar 96boards Enterprise Edition Platform"
+       select ARM64
+       select DM
+       select OF_CONTROL
+       select DM_SERIAL
+       select DM_USB
+         help
+         Support for Poplar 96boards EE platform. It features a HI3798cv200
+         SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
+         making it capable of running any commercial set-top solution based on
+         Linux or Android.
+
 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 +870,8 @@ config TARGET_LS1012ARDB
        bool "Support ls1012ardb"
        select ARCH_LS1012A
        select ARM64
+       select BOARD_LATE_INIT
+       imply SCSI
        help
          Support for Freescale LS1012ARDB platform.
          The LS1012A Reference design board (RDB) is a high-performance
@@ -812,26 +890,56 @@ 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
+       imply SCSI
 
 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
+       imply SCSI
+
+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
+       imply SCSI
+       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
+       imply SCSI
        help
          Support for Freescale LS1043AQDS platform.
 
@@ -840,7 +948,10 @@ config TARGET_LS1043ARDB
        select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        select SUPPORT_SPL
+       select BOARD_EARLY_INIT_F
+       imply SCSI
        help
          Support for Freescale LS1043ARDB platform.
 
@@ -849,8 +960,11 @@ 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
+       imply SCSI
        help
          Support for Freescale LS1046AQDS platform.
          The LS1046A Development System (QDS) is a high-performance
@@ -862,8 +976,12 @@ 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
+       imply SCSI
        help
          Support for Freescale LS1046ARDB platform.
          The LS1046A Reference Design Board (RDB) is a high-performance
@@ -884,24 +1002,26 @@ 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_BOARD_INIT if SPL
+       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
+       imply FAT_WRITE
        help
          Support for UniPhier SoC family developed by Socionext Inc.
          (formerly, System LSI Business Division of Panasonic Corporation)
@@ -911,6 +1031,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"
@@ -919,6 +1052,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
@@ -928,6 +1062,9 @@ config ARCH_ROCKCHIP
        select DM_SPI
        select DM_SPI_FLASH
        select DM_USB if USB
+       select DM_PWM
+       select DM_REGULATOR
+       imply FAT_WRITE
 
 config TARGET_THUNDERX_88XX
        bool "Support ThunderX 88xx"
@@ -935,8 +1072,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"
@@ -957,13 +1101,15 @@ source "arch/arm/mach-mvebu/Kconfig"
 
 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
 
-source "arch/arm/cpu/armv7/mx7/Kconfig"
+source "arch/arm/mach-imx/mx7ulp/Kconfig"
 
-source "arch/arm/cpu/armv7/mx6/Kconfig"
+source "arch/arm/mach-imx/mx7/Kconfig"
 
-source "arch/arm/cpu/armv7/mx5/Kconfig"
+source "arch/arm/mach-imx/mx6/Kconfig"
 
-source "arch/arm/cpu/armv7/omap-common/Kconfig"
+source "arch/arm/mach-imx/mx5/Kconfig"
+
+source "arch/arm/mach-omap2/Kconfig"
 
 source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
 
@@ -981,12 +1127,18 @@ 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-sunxi/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"
@@ -995,11 +1147,10 @@ source "arch/arm/cpu/armv8/zynqmp/Kconfig"
 
 source "arch/arm/cpu/armv8/Kconfig"
 
-source "arch/arm/imx-common/Kconfig"
+source "arch/arm/mach-imx/Kconfig"
 
+source "board/aries/m28evk/Kconfig"
 source "board/bosch/shc/Kconfig"
-source "board/BuR/brxre1/Kconfig"
-source "board/BuR/brppt1/Kconfig"
 source "board/CarMediaLab/flea3/Kconfig"
 source "board/Marvell/aspenite/Kconfig"
 source "board/Marvell/gplugd/Kconfig"
@@ -1011,19 +1162,17 @@ 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"
 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"
@@ -1036,29 +1185,20 @@ source "board/freescale/mx28evk/Kconfig"
 source "board/freescale/mx31ads/Kconfig"
 source "board/freescale/mx31pdk/Kconfig"
 source "board/freescale/mx35pdk/Kconfig"
-source "board/freescale/mx51evk/Kconfig"
-source "board/freescale/mx53ard/Kconfig"
-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/hisilicon/poplar/Kconfig"
 source "board/imx31_phycore/Kconfig"
-source "board/isee/igep0033/Kconfig"
-source "board/mpl/vcma9/Kconfig"
+source "board/isee/igep003x/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/siemens/pxm2/Kconfig"
-source "board/siemens/rut/Kconfig"
 source "board/silica/pengwyn/Kconfig"
 source "board/spear/spear300/Kconfig"
 source "board/spear/spear310/Kconfig"
@@ -1066,18 +1206,12 @@ source "board/spear/spear320/Kconfig"
 source "board/spear/spear600/Kconfig"
 source "board/spear/x600/Kconfig"
 source "board/st/stv0991/Kconfig"
-source "board/sunxi/Kconfig"
 source "board/syteco/zmx25/Kconfig"
 source "board/tcl/sl50/Kconfig"
-source "board/ti/am335x/Kconfig"
-source "board/ti/am43xx/Kconfig"
 source "board/birdland/bav335x/Kconfig"
-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/ts4800/Kconfig"
+source "board/technologic/ts4600/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/work-microwave/work_92105/Kconfig"