]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/Kconfig
board: arm: Add support for Broadcom BCM7445
[u-boot] / arch / arm / Kconfig
index 30a6f6dc538a9d3886b1b0aadae5ae2902b2f519..4fbb424037bc9ad3aae37080ffc151836781a0f2 100644 (file)
@@ -74,6 +74,28 @@ config ARM_ASM_UNIFIED
 config THUMB2_KERNEL
        bool
 
+config SYS_ARM_CACHE_CP15
+       bool "CP15 based cache enabling support"
+       help
+         Select this if your processor suports enabling caches by using
+         CP15 registers.
+
+config SYS_ARM_MMU
+       bool "MMU-based Paged Memory Management Support"
+       select SYS_ARM_CACHE_CP15
+       help
+         Select if you want MMU-based virtualised addressing space
+         support by paged memory management.
+
+config SYS_ARM_MPU
+       bool 'Use the ARM v7 PMSA Compliant MPU'
+       help
+         Some ARM systems without an MMU have instead a Memory Protection
+         Unit (MPU) that defines the type and permissions for regions of
+         memory.
+         If your CPU has an MPU then you should choose 'y' here unless you
+         know that you do not want to use the MPU.
+
 # 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
@@ -86,6 +108,9 @@ config THUMB2_KERNEL
 # CONFIG_ARM_ERRATA_621766
 # CONFIG_ARM_ERRATA_798870
 # CONFIG_ARM_ERRATA_801819
+# CONFIG_ARM_CORTEX_A8_CVE_2017_5715
+# CONFIG_ARM_CORTEX_A15_CVE_2017_5715
+
 config ARM_ERRATA_430973
        bool
 
@@ -155,50 +180,74 @@ config ARM_ERRATA_852423
 config ARM_ERRATA_855873
        bool
 
+config ARM_CORTEX_A8_CVE_2017_5715
+       bool
+
+config ARM_CORTEX_A15_CVE_2017_5715
+       bool
+
 config CPU_ARM720T
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM920T
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM926EJS
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM946ES
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM1136
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_ARM1176
        bool
        select HAS_VBAR
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
-config CPU_V7
+config CPU_V7A
        bool
        select HAS_VBAR
        select HAS_THUMB2
        select SYS_CACHE_SHIFT_6
+       imply SYS_ARM_MMU
 
 config CPU_V7M
        bool
        select HAS_THUMB2
        select THUMB2_KERNEL
        select SYS_CACHE_SHIFT_5
+       select SYS_ARM_MPU
+       select SYS_THUMB_BUILD
+
+config CPU_V7R
+       bool
+       select HAS_THUMB2
+       select SYS_CACHE_SHIFT_6
+       select SYS_ARM_MPU
+       select SYS_ARM_CACHE_CP15
 
 config CPU_PXA
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config CPU_SA1100
        bool
        select SYS_CACHE_SHIFT_5
+       imply SYS_ARM_MMU
 
 config SYS_CPU
        default "arm720t" if CPU_ARM720T
@@ -207,7 +256,8 @@ config SYS_CPU
        default "arm946es" if CPU_ARM946ES
        default "arm1136" if CPU_ARM1136
        default "arm1176" if CPU_ARM1176
-       default "armv7" if CPU_V7
+       default "armv7" if CPU_V7A
+       default "armv7" if CPU_V7R
        default "armv7m" if CPU_V7M
        default "pxa" if CPU_PXA
        default "sa1100" if CPU_SA1100
@@ -221,8 +271,9 @@ config SYS_ARM_ARCH
        default 5 if CPU_ARM946ES
        default 6 if CPU_ARM1136
        default 6 if CPU_ARM1176
-       default 7 if CPU_V7
+       default 7 if CPU_V7A
        default 7 if CPU_V7M
+       default 7 if CPU_V7R
        default 5 if CPU_PXA
        default 4 if CPU_SA1100
        default 8 if ARM64
@@ -242,9 +293,19 @@ config SYS_CACHELINE_SIZE
        default 64 if SYS_CACHE_SHIFT_6
        default 32 if SYS_CACHE_SHIFT_5
 
+config SYS_ARCH_TIMER
+       bool "ARM Generic Timer support"
+       depends on CPU_V7A || ARM64
+       default y if ARM64
+       help
+         The ARM Generic Timer (aka arch-timer) provides an architected
+         interface to a timer source on an SoC.
+         It is mandantory for ARMv8 implementation and widely available
+         on ARMv7 systems.
+
 config ARM_SMCCC
        bool "Support for ARM SMC Calling Convention (SMCCC)"
-       depends on CPU_V7 || ARM64
+       depends on CPU_V7A || ARM64
        select ARM_PSCI_FW
        help
          Say Y here if you want to enable ARM SMC Calling Convention.
@@ -287,9 +348,8 @@ config ENABLE_ARM_SOC_BOOT0_HOOK
        bool "prepare BOOT0 header"
        help
          If the SoC's BOOT0 requires a header area filled with (magic)
-         values, then choose this option, and create a define called
-         ARM_SOC_BOOT0_HOOK which contains the required assembler
-         preprocessor code.
+         values, then choose this option, and create a file included as
+         <asm/arch/boot0.h> which contains the required assembler code.
 
 config ARM_CORTEX_CPU_IS_UP
        bool
@@ -343,7 +403,7 @@ choice
 
 config ARCH_AT91
        bool "Atmel AT91"
-       select SPL_BOARD_INIT if SPL
+       select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
 
 config TARGET_EDB93XX
        bool "Support edb93xx"
@@ -380,6 +440,7 @@ config ARCH_MVEBU
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
+       select SPI
 
 config TARGET_DEVKIT3250
        bool "Support devkit3250"
@@ -396,63 +457,6 @@ config TARGET_APF27
        select CPU_ARM926EJS
        select SUPPORT_SPL
 
-config TARGET_APX4DEVKIT
-       bool "Support apx4devkit"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select PL011_SERIAL
-
-config TARGET_XFI3
-       bool "Support xfi3"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select PL011_SERIAL
-
-config TARGET_M28EVK
-       bool "Support m28evk"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select PL011_SERIAL
-
-config TARGET_MX23EVK
-       bool "Support mx23evk"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select BOARD_EARLY_INIT_F
-       select PL011_SERIAL
-
-config TARGET_MX28EVK
-       bool "Support mx28evk"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select BOARD_EARLY_INIT_F
-       select PL011_SERIAL
-
-config TARGET_MX23_OLINUXINO
-       bool "Support mx23_olinuxino"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select BOARD_EARLY_INIT_F
-       select PL011_SERIAL
-
-config TARGET_BG0900
-       bool "Support bg0900"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select PL011_SERIAL
-
-config TARGET_SANSA_FUZE_PLUS
-       bool "Support sansa_fuze_plus"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select PL011_SERIAL
-
-config TARGET_SC_SPS_1
-       bool "Support sc_sps_1"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select PL011_SERIAL
-
 config ORION5X
        bool "Marvell Orion"
        select CPU_ARM926EJS
@@ -487,11 +491,12 @@ config TARGET_SPEAR600
 
 config TARGET_STV0991
        bool "Support stv0991"
-       select CPU_V7
+       select CPU_V7A
        select DM
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
+       select SPI
        select SPI_FLASH
        select PL01X_SERIAL
 
@@ -502,29 +507,6 @@ config TARGET_X600
        select SUPPORT_SPL
        select PL011_SERIAL
 
-config TARGET_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"
        select CPU_ARM1136
@@ -550,40 +532,51 @@ config ARCH_BCM283X
        select DM_GPIO
        select OF_CONTROL
        select PL01X_SERIAL
+       select SERIAL_SEARCH_ALL
        imply FAT_WRITE
 
 config TARGET_VEXPRESS_CA15_TC2
        bool "Support vexpress_ca15_tc2"
-       select CPU_V7
+       select CPU_V7A
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select PL011_SERIAL
 
+config ARCH_BCMSTB
+       bool "Broadcom BCM7XXX family"
+       select CPU_V7A
+       select DM
+       select OF_CONTROL
+       select OF_PRIOR_STAGE
+       help
+         This enables support for Broadcom ARM-based set-top box
+         chipsets, including the 7445 family of chips.
+
 config TARGET_VEXPRESS_CA5X2
        bool "Support vexpress_ca5x2"
-       select CPU_V7
+       select CPU_V7A
        select PL011_SERIAL
 
 config TARGET_VEXPRESS_CA9X4
        bool "Support vexpress_ca9x4"
-       select CPU_V7
+       select CPU_V7A
        select PL011_SERIAL
 
 config TARGET_BCM23550_W1D
        bool "Support bcm23550_w1d"
-       select CPU_V7
+       select CPU_V7A
        imply CRC32_VERIFY
        imply FAT_WRITE
 
 config TARGET_BCM28155_AP
        bool "Support bcm28155_ap"
-       select CPU_V7
+       select CPU_V7A
        imply CRC32_VERIFY
        imply FAT_WRITE
 
 config TARGET_BCMCYGNUS
        bool "Support bcmcygnus"
-       select CPU_V7
+       select CPU_V7A
        imply CRC32_VERIFY
        imply CMD_HASH
        imply FAT_WRITE
@@ -594,7 +587,7 @@ config TARGET_BCMCYGNUS
 
 config TARGET_BCMNSP
        bool "Support bcmnsp"
-       select CPU_V7
+       select CPU_V7A
 
 config TARGET_BCMNS2
        bool "Support Broadcom Northstar2"
@@ -613,11 +606,12 @@ config ARCH_EXYNOS
        select DM_SPI
        select DM_GPIO
        select DM_KEYBOARD
+       select SPI
        imply FAT_WRITE
 
 config ARCH_S5PC1XX
        bool "Samsung S5PC1XX"
-       select CPU_V7
+       select CPU_V7A
        select DM
        select DM_SERIAL
        select DM_GPIO
@@ -625,7 +619,7 @@ config ARCH_S5PC1XX
 
 config ARCH_HIGHBANK
        bool "Calxeda Highbank"
-       select CPU_V7
+       select CPU_V7A
        select PL011_SERIAL
 
 config ARCH_INTEGRATOR
@@ -636,17 +630,18 @@ config ARCH_INTEGRATOR
 
 config ARCH_KEYSTONE
        bool "TI Keystone"
-       select CPU_V7
+       select CPU_V7A
        select SUPPORT_SPL
        select SYS_THUMB_BUILD
        select CMD_POWEROFF
+       select SYS_ARCH_TIMER
        imply CMD_MTDPARTS
        imply FIT
        imply CMD_SAVES
 
 config ARCH_OMAP2PLUS
        bool "TI OMAP2+"
-       select CPU_V7
+       select CPU_V7A
        select SPL_BOARD_INIT if SPL
        select SPL_STACK_R if SPL
        select SUPPORT_SPL
@@ -654,36 +649,63 @@ config ARCH_OMAP2PLUS
 
 config ARCH_MESON
        bool "Amlogic Meson"
+       imply DISTRO_DEFAULTS
        help
          Support for the Meson SoC family developed by Amlogic Inc.,
          targeted at media players and tablet computers. We currently
          support the S905 (GXBaby) 64-bit SoC.
 
+config ARCH_MX8M
+       bool "NXP i.MX8M platform"
+       select ARM64
+       select DM
+       select SUPPORT_SPL
+
+config ARCH_MX23
+       bool "NXP i.MX23 family"
+       select CPU_ARM926EJS
+       select PL011_SERIAL
+       select SUPPORT_SPL
+
 config ARCH_MX25
        bool "NXP MX25"
        select CPU_ARM926EJS
+       imply MXC_GPIO
+
+config ARCH_MX28
+       bool "NXP i.MX28 family"
+       select CPU_ARM926EJS
+       select PL011_SERIAL
+       select SUPPORT_SPL
+
+config ARCH_MX31
+       bool "NXP i.MX31 family"
+       select CPU_ARM1136
 
 config ARCH_MX7ULP
         bool "NXP MX7ULP"
-        select CPU_V7
+       select CPU_V7A
        select ROM_UNIFIED_SECTIONS
+       imply MXC_GPIO
 
 config ARCH_MX7
        bool "Freescale MX7"
-       select CPU_V7
+       select CPU_V7A
        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
+       imply MXC_GPIO
 
 config ARCH_MX6
        bool "Freescale MX6"
-       select CPU_V7
+       select CPU_V7A
        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
+       imply MXC_GPIO
 
 if ARCH_MX6
 config SPL_LDSCRIPT
@@ -692,8 +714,16 @@ endif
 
 config ARCH_MX5
        bool "Freescale MX5"
-       select CPU_V7
+       select CPU_V7A
        select BOARD_EARLY_INIT_F
+       imply MXC_GPIO
+
+config ARCH_OWL
+       bool "Actions Semi OWL SoCs"
+       select ARM64
+       select DM
+       select DM_SERIAL
+       select OF_CONTROL
 
 config ARCH_QEMU
        bool "QEMU Virtual Platform"
@@ -727,21 +757,35 @@ config ARCH_SNAPDRAGON
 
 config ARCH_SOCFPGA
        bool "Altera SOCFPGA family"
-       select CPU_V7
-       select SUPPORT_SPL
-       select OF_CONTROL
-       select SPL_OF_CONTROL
-       select DM
-       select DM_SPI_FLASH
-       select DM_SPI
-       select ENABLE_ARM_SOC_BOOT0_HOOK
        select ARCH_EARLY_INIT_R
        select ARCH_MISC_INIT
-       select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
+       select CPU_V7A
+       select DM
+       select DM_SERIAL
+       select ENABLE_ARM_SOC_BOOT0_HOOK
+       select OF_CONTROL
+       select SPL_LIBCOMMON_SUPPORT
+       select SPL_LIBDISK_SUPPORT
+       select SPL_LIBGENERIC_SUPPORT
+       select SPL_MMC_SUPPORT if DM_MMC
+       select SPL_NAND_SUPPORT if SPL_NAND_DENALI
+       select SPL_OF_CONTROL
+       select SPL_SERIAL_SUPPORT
+       select SPL_DM_SERIAL
+       select SPL_SPI_FLASH_SUPPORT if SPL_SPI_SUPPORT
+       select SPL_SPI_SUPPORT if DM_SPI
+       select SPL_WATCHDOG_SUPPORT
+       select SUPPORT_SPL
+       select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
+       select SYS_NS16550
        select SYS_THUMB_BUILD
        imply CMD_MTDPARTS
        imply CRC32_VERIFY
+       imply DM_SPI
+       imply DM_SPI_FLASH
        imply FAT_WRITE
+       imply HW_WATCHDOG
+       imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
 
 config ARCH_SUNXI
        bool "Support sunxi (Allwinner) SoCs"
@@ -758,6 +802,7 @@ config ARCH_SUNXI
        select OF_BOARD_SETUP
        select OF_CONTROL
        select OF_SEPARATE
+       select SPECIFY_CONSOLE_INDEX
        select SPL_STACK_R if SPL
        select SPL_SYS_MALLOC_SIMPLE if SPL
        select SYS_NS16550
@@ -768,6 +813,7 @@ config ARCH_SUNXI
        select USB_KEYBOARD if DISTRO_DEFAULTS
        select USE_TINY_PRINTF
        imply CMD_GPT
+       imply DISTRO_DEFAULTS
        imply FAT_WRITE
        imply OF_LIBFDT_OVERLAY
        imply PRE_CONSOLE_BUFFER
@@ -780,15 +826,9 @@ config ARCH_SUNXI
        imply SPL_SERIAL_SUPPORT
        imply USB_GADGET
 
-config TARGET_TS4600
-       bool "Support TS4600"
-       select CPU_ARM926EJS
-       select SUPPORT_SPL
-       select PL011_SERIAL
-
 config ARCH_VF610
        bool "Freescale Vybrid"
-       select CPU_V7
+       select CPU_V7A
        select SYS_FSL_ERRATUM_ESDHC111
        imply CMD_MTDPARTS
        imply NAND
@@ -796,28 +836,37 @@ config ARCH_VF610
 config ARCH_ZYNQ
        bool "Xilinx Zynq based platform"
        select BOARD_LATE_INIT
-       select CPU_V7
+       select CPU_V7A
        select SUPPORT_SPL
        select OF_CONTROL
        select SPL_BOARD_INIT if SPL
+       select BOARD_EARLY_INIT_F if WDT
        select SPL_OF_CONTROL if SPL
        select DM
-       select DM_ETH
-       select DM_GPIO
+       select DM_ETH if NET
        select SPL_DM if SPL
-       select DM_MMC
+       select DM_MMC if MMC
        select DM_SPI
        select DM_SERIAL
        select DM_SPI_FLASH
        select SPL_SEPARATE_BSS if SPL
        select DM_USB if USB
-       select BLK
        select CLK
-       select SPL_CLK
+       select SPL_CLK if SPL
        select CLK_ZYNQ
+       select SPI
        imply CMD_CLK
        imply FAT_WRITE
        imply CMD_SPL
+       imply ARCH_EARLY_INIT_R
+
+config ARCH_ZYNQMP_R5
+       bool "Xilinx ZynqMP R5 based platform"
+       select CPU_V7R
+       select OF_CONTROL
+       select DM
+       select DM_SERIAL
+       select CLK
 
 config ARCH_ZYNQMP
        bool "Xilinx ZynqMP based platform"
@@ -835,6 +884,7 @@ config ARCH_ZYNQMP
 
 config TEGRA
        bool "NVIDIA Tegra"
+       imply DISTRO_DEFAULTS
        imply FAT_WRITE
 
 config TARGET_VEXPRESS64_AEMV8A
@@ -955,6 +1005,7 @@ config TARGET_HIKEY
        select DM_SERIAL
        select OF_CONTROL
        select PL01X_SERIAL
+       select SPECIFY_CONSOLE_INDEX
          help
          Support for HiKey 96boards platform. It features a HI6220
          SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
@@ -1009,6 +1060,19 @@ config TARGET_LS1012A2G5RDB
          development platform that supports the QorIQ LS1012A
          Layerscape Architecture processor.
 
+config TARGET_LS1012AFRWY
+       bool "Support ls1012afrwy"
+       select ARCH_LS1012A
+       select BOARD_LATE_INIT
+       select ARM64
+       imply SCSI
+       imply SCSI_AHCI
+       help
+        Support for Freescale LS1012AFRWY platform.
+        The LS1012A FRWY board (FRWY) is a high-performance
+        development platform that supports the QorIQ LS1012A
+        Layerscape Architecture processor.
+
 config TARGET_LS1012AFRDM
        bool "Support ls1012afrdm"
        select ARCH_LS1012A
@@ -1036,7 +1100,7 @@ config TARGET_LS1088ARDB
 config TARGET_LS1021AQDS
        bool "Support ls1021aqds"
        select BOARD_LATE_INIT
-       select CPU_V7
+       select CPU_V7A
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
@@ -1050,7 +1114,7 @@ config TARGET_LS1021AQDS
 config TARGET_LS1021ATWR
        bool "Support ls1021atwr"
        select BOARD_LATE_INIT
-       select CPU_V7
+       select CPU_V7A
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
@@ -1063,7 +1127,7 @@ config TARGET_LS1021ATWR
 config TARGET_LS1021AIOT
        bool "Support ls1021aiot"
        select BOARD_LATE_INIT
-       select CPU_V7
+       select CPU_V7A
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select SUPPORT_SPL
@@ -1171,7 +1235,7 @@ config ARCH_UNIPHIER
          (formerly, System LSI Business Division of Panasonic Corporation)
 
 config STM32
-       bool "Support STM32"
+       bool "Support STMicroelectronics STM32 MCU with cortex M"
        select CPU_V7M
        select DM
        select DM_SERIAL
@@ -1179,7 +1243,7 @@ config STM32
 
 config ARCH_STI
        bool "Support STMicrolectronics SoCs"
-       select CPU_V7
+       select CPU_V7A
        select DM
        select DM_SERIAL
        select BLK
@@ -1189,6 +1253,30 @@ config ARCH_STI
          Support for STMicroelectronics STiH407/10 SoC family.
          This SoC is used on Linaro 96Board STiH410-B2260
 
+config ARCH_STM32MP
+       bool "Support STMicroelectronics STM32MP Socs with cortex A"
+       select ARCH_MISC_INIT
+       select BOARD_LATE_INIT
+       select CLK
+       select DM
+       select DM_GPIO
+       select DM_RESET
+       select DM_SERIAL
+       select OF_CONTROL
+       select OF_LIBFDT
+       select MISC
+       select PINCTRL
+       select REGMAP
+       select SUPPORT_SPL
+       select SYSCON
+       select SYSRESET
+       select SYS_THUMB_BUILD
+       help
+         Support for STM32MP SoC family developed by STMicroelectronics,
+         MPUs based on ARM cortex A core
+         U-BOOT is running in DDR and SPL support is the unsecure First Stage
+         BootLoader (FSBL)
+
 config ARCH_ROCKCHIP
        bool "Support Rockchip SoCs"
        select OF_CONTROL
@@ -1208,14 +1296,15 @@ config ARCH_ROCKCHIP
        select DM_PWM
        select DM_REGULATOR
        select ENABLE_ARM_SOC_BOOT0_HOOK
-       imply CMD_FASTBOOT
-       imply FASTBOOT
+       select SPI
+       imply DISTRO_DEFAULTS
        imply FAT_WRITE
        imply USB_FUNCTION_FASTBOOT
        imply SPL_SYSRESET
        imply TPL_SYSRESET
        imply ADC
        imply SARADC_ROCKCHIP
+       imply SYS_NS16550
 
 config TARGET_THUNDERX_88XX
        bool "Support ThunderX 88xx"
@@ -1231,12 +1320,24 @@ config ARCH_ASPEED
 
 endchoice
 
+config TI_SECURE_DEVICE
+       bool "HS Device Type Support"
+       depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS
+       help
+         If a high secure (HS) device type is being used, this config
+         must be set. This option impacts various aspects of the
+         build system (to create signed boot images that can be
+         authenticated) and the code. See the doc/README.ti-secure
+         file for further details.
+
 source "arch/arm/mach-aspeed/Kconfig"
 
 source "arch/arm/mach-at91/Kconfig"
 
 source "arch/arm/mach-bcm283x/Kconfig"
 
+source "arch/arm/mach-bcmstb/Kconfig"
+
 source "arch/arm/mach-davinci/Kconfig"
 
 source "arch/arm/mach-exynos/Kconfig"
@@ -1255,13 +1356,19 @@ source "arch/arm/cpu/armv7/ls102xa/Kconfig"
 
 source "arch/arm/mach-imx/mx2/Kconfig"
 
-source "arch/arm/mach-imx/mx7ulp/Kconfig"
+source "arch/arm/mach-imx/mx3/Kconfig"
 
-source "arch/arm/mach-imx/mx7/Kconfig"
+source "arch/arm/mach-imx/mx5/Kconfig"
 
 source "arch/arm/mach-imx/mx6/Kconfig"
 
-source "arch/arm/mach-imx/mx5/Kconfig"
+source "arch/arm/mach-imx/mx7/Kconfig"
+
+source "arch/arm/mach-imx/mx7ulp/Kconfig"
+
+source "arch/arm/mach-imx/mx8m/Kconfig"
+
+source "arch/arm/mach-imx/mxs/Kconfig"
 
 source "arch/arm/mach-omap2/Kconfig"
 
@@ -1269,6 +1376,8 @@ source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
 
 source "arch/arm/mach-orion5x/Kconfig"
 
+source "arch/arm/mach-owl/Kconfig"
+
 source "arch/arm/mach-rmobile/Kconfig"
 
 source "arch/arm/mach-meson/Kconfig"
@@ -1287,6 +1396,8 @@ source "arch/arm/mach-sti/Kconfig"
 
 source "arch/arm/mach-stm32/Kconfig"
 
+source "arch/arm/mach-stm32mp/Kconfig"
+
 source "arch/arm/mach-sunxi/Kconfig"
 
 source "arch/arm/mach-tegra/Kconfig"
@@ -1297,6 +1408,8 @@ source "arch/arm/cpu/armv7/vf610/Kconfig"
 
 source "arch/arm/mach-zynq/Kconfig"
 
+source "arch/arm/mach-zynqmp-r5/Kconfig"
+
 source "arch/arm/cpu/armv7/Kconfig"
 
 source "arch/arm/cpu/armv8/zynqmp/Kconfig"
@@ -1305,7 +1418,6 @@ source "arch/arm/cpu/armv8/Kconfig"
 
 source "arch/arm/mach-imx/Kconfig"
 
-source "board/aries/m28evk/Kconfig"
 source "board/bosch/shc/Kconfig"
 source "board/CarMediaLab/flea3/Kconfig"
 source "board/Marvell/aspenite/Kconfig"
@@ -1313,7 +1425,6 @@ source "board/Marvell/gplugd/Kconfig"
 source "board/armadeus/apf27/Kconfig"
 source "board/armltd/vexpress/Kconfig"
 source "board/armltd/vexpress64/Kconfig"
-source "board/bluegiga/apx4devkit/Kconfig"
 source "board/broadcom/bcm23550_w1d/Kconfig"
 source "board/broadcom/bcm28155_ap/Kconfig"
 source "board/broadcom/bcmcygnus/Kconfig"
@@ -1321,7 +1432,6 @@ source "board/broadcom/bcmnsp/Kconfig"
 source "board/broadcom/bcmns2/Kconfig"
 source "board/cavium/thunderx/Kconfig"
 source "board/cirrus/edb93xx/Kconfig"
-source "board/creative/xfi3/Kconfig"
 source "board/eets/pdu001/Kconfig"
 source "board/freescale/ls2080a/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
@@ -1337,10 +1447,6 @@ source "board/freescale/ls1046ardb/Kconfig"
 source "board/freescale/ls1012aqds/Kconfig"
 source "board/freescale/ls1012ardb/Kconfig"
 source "board/freescale/ls1012afrdm/Kconfig"
-source "board/freescale/mx23evk/Kconfig"
-source "board/freescale/mx28evk/Kconfig"
-source "board/freescale/mx31ads/Kconfig"
-source "board/freescale/mx31pdk/Kconfig"
 source "board/freescale/mx35pdk/Kconfig"
 source "board/freescale/s32v234evb/Kconfig"
 source "board/gdsys/a38x/Kconfig"
@@ -1349,13 +1455,8 @@ 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/igep003x/Kconfig"
-source "board/olimex/mx23_olinuxino/Kconfig"
 source "board/phytec/pcm051/Kconfig"
-source "board/ppcag/bg0900/Kconfig"
-source "board/sandisk/sansa_fuze_plus/Kconfig"
-source "board/schulercontrol/sc_sps_1/Kconfig"
 source "board/silica/pengwyn/Kconfig"
 source "board/spear/spear300/Kconfig"
 source "board/spear/spear310/Kconfig"
@@ -1364,13 +1465,14 @@ source "board/spear/spear600/Kconfig"
 source "board/spear/x600/Kconfig"
 source "board/st/stv0991/Kconfig"
 source "board/tcl/sl50/Kconfig"
+source "board/ucRobotics/bubblegum_96/Kconfig"
 source "board/birdland/bav335x/Kconfig"
 source "board/timll/devkit3250/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
-source "board/technologic/ts4600/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/work-microwave/work_92105/Kconfig"
+source "board/xilinx/zynqmp/Kconfig"
 source "board/zipitz2/Kconfig"
 
 source "arch/arm/Kconfig.debug"
@@ -1378,7 +1480,7 @@ source "arch/arm/Kconfig.debug"
 endmenu
 
 config SPL_LDSCRIPT
-        default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if TARGET_APX4DEVKIT || TARGET_BG0900 || TARGET_M28EVK || TARGET_MX23_OLINUXINO || TARGET_MX23EVK || TARGET_MX28EVK || TARGET_SANSA_FUZE_PLUS || TARGET_SC_SPS_1 || TARGET_TS4600 || TARGET_XFI3
+        default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
         default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
        default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64