menu "ARM architecture"
	depends on ARM

config SYS_ARCH
	default "arm"

config ARM64
	bool
	select PHYS_64BIT
	select SYS_CACHE_SHIFT_6

if ARM64
config POSITION_INDEPENDENT
	bool "Generate position-independent pre-relocation code"
	help
	  U-Boot expects to be linked to a specific hard-coded address, and to
	  be loaded to and run from that address. This option lifts that
	  restriction, thus allowing the code to be loaded to and executed
	  from almost any address. This logic relies on the relocation
	  information that is embedded into the binary to support U-Boot
	  relocating itself to the top-of-RAM later during execution.

config SYS_INIT_SP_BSS_OFFSET
	int
	help
	  U-Boot typically uses a hard-coded value for the stack pointer
	  before relocation. Define this option to instead calculate the
	  initial SP at run-time. This is useful to avoid hard-coding addresses
	  into U-Boot, so that can be loaded and executed at arbitrary
	  addresses and thus avoid using arbitrary addresses at runtime. This
	  option's value is the offset added to &_bss_start in order to
	  calculate the stack pointer. This offset should be large enough so
	  that the early malloc region, global data (gd), and early stack usage
	  do not overlap any appended DTB.

config LINUX_KERNEL_IMAGE_HEADER
	bool
	help
	  Place a Linux kernel image header at the start of the U-Boot binary.
	  The format of the header is described in the Linux kernel source at
	  Documentation/arm64/booting.txt. This feature is useful since the
	  image header reports the amount of memory (BSS and similar) that
	  U-Boot needs to use, but which isn't part of the binary.

if LINUX_KERNEL_IMAGE_HEADER
config LNX_KRNL_IMG_TEXT_OFFSET_BASE
	hex
	help
	  The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
	  TEXT_OFFSET value written in to the Linux kernel image header.
endif
endif

config STATIC_RELA
	bool
	default y if ARM64 && !POSITION_INDEPENDENT

config DMA_ADDR_T_64BIT
	bool
	default y if ARM64

config HAS_VBAR
	bool

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

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
# 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_CORTEX_A8_CVE_2017_5715
# CONFIG_ARM_CORTEX_A15_CVE_2017_5715

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_845369
       bool

config ARM_ERRATA_852421
	bool

config ARM_ERRATA_852423
	bool

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_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
	default "arm920t" if CPU_ARM920T
	default "arm926ejs" if CPU_ARM926EJS
	default "arm946es" if CPU_ARM946ES
	default "arm1136" if CPU_ARM1136
	default "arm1176" if CPU_ARM1176
	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
	default "armv8" if ARM64

config SYS_ARM_ARCH
	int
	default 4 if CPU_ARM720T
	default 4 if CPU_ARM920T
	default 5 if CPU_ARM926EJS
	default 5 if CPU_ARM946ES
	default 6 if CPU_ARM1136
	default 6 if CPU_ARM1176
	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

config SYS_CACHE_SHIFT_5
	bool

config SYS_CACHE_SHIFT_6
	bool

config SYS_CACHE_SHIFT_7
	bool

config SYS_CACHELINE_SIZE
	int
	default 128 if SYS_CACHE_SHIFT_7
	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_V7A || 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
	  In emulated environments, semihosting is a way for
	  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
	  If SoC does not support L2CACHE or one do not want to enable
	  L2CACHE, choose this option.

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 file included as
	  <asm/arch/boot0.h> which contains the required assembler 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 && !TARGET_SMARTWEB

config TARGET_EDB93XX
	bool "Support edb93xx"
	select CPU_ARM920T
	select PL010_SERIAL

config TARGET_ASPENITE
	bool "Support aspenite"
	select CPU_ARM926EJS

config TARGET_GPLUGD
	bool "Support gplugd"
	select CPU_ARM926EJS

config ARCH_DAVINCI
	bool "TI DaVinci"
	select CPU_ARM926EJS
	imply CMD_SAVES
	help
	  Support for TI's DaVinci platform.

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)"
	select OF_CONTROL
	select OF_SEPARATE
	select DM
	select DM_ETH
	select DM_SERIAL
	select DM_SPI
	select DM_SPI_FLASH
	select SPI

config TARGET_DEVKIT3250
	bool "Support devkit3250"
	select CPU_ARM926EJS
	select SUPPORT_SPL

config TARGET_WORK_92105
	bool "Support work_92105"
	select CPU_ARM926EJS
	select SUPPORT_SPL

config TARGET_APF27
	bool "Support apf27"
	select CPU_ARM926EJS
	select SUPPORT_SPL

config ORION5X
	bool "Marvell Orion"
	select CPU_ARM926EJS

config TARGET_SPEAR300
	bool "Support spear300"
	select CPU_ARM926EJS
	select BOARD_EARLY_INIT_F
	imply CMD_SAVES
	select PL011_SERIAL

config TARGET_SPEAR310
	bool "Support spear310"
	select CPU_ARM926EJS
	select BOARD_EARLY_INIT_F
	imply CMD_SAVES
	select PL011_SERIAL

config TARGET_SPEAR320
	bool "Support spear320"
	select CPU_ARM926EJS
	select BOARD_EARLY_INIT_F
	imply CMD_SAVES
	select PL011_SERIAL

config TARGET_SPEAR600
	bool "Support spear600"
	select CPU_ARM926EJS
	select BOARD_EARLY_INIT_F
	imply CMD_SAVES
	select PL011_SERIAL

config TARGET_STV0991
	bool "Support stv0991"
	select CPU_V7A
	select DM
	select DM_SERIAL
	select DM_SPI
	select DM_SPI_FLASH
	select SPI
	select SPI_FLASH
	select PL01X_SERIAL

config TARGET_X600
	bool "Support x600"
	select BOARD_LATE_INIT
	select CPU_ARM926EJS
	select SUPPORT_SPL
	select PL011_SERIAL

config TARGET_WOODBURN
	bool "Support woodburn"
	select CPU_ARM1136

config TARGET_WOODBURN_SD
	bool "Support woodburn_sd"
	select CPU_ARM1136
	select SUPPORT_SPL

config TARGET_FLEA3
	bool "Support flea3"
	select CPU_ARM1136

config TARGET_MX35PDK
	bool "Support mx35pdk"
	select BOARD_LATE_INIT
	select CPU_ARM1136

config ARCH_BCM283X
	bool "Broadcom BCM283X family"
	select DM
	select DM_SERIAL
	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_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_V7A
	select PL011_SERIAL

config TARGET_VEXPRESS_CA9X4
	bool "Support vexpress_ca9x4"
	select CPU_V7A
	select PL011_SERIAL

config TARGET_BCM23550_W1D
	bool "Support bcm23550_w1d"
	select CPU_V7A
	imply CRC32_VERIFY
	imply FAT_WRITE

config TARGET_BCM28155_AP
	bool "Support bcm28155_ap"
	select CPU_V7A
	imply CRC32_VERIFY
	imply FAT_WRITE

config TARGET_BCMCYGNUS
	bool "Support bcmcygnus"
	select CPU_V7A
	imply CRC32_VERIFY
	imply CMD_HASH
	imply FAT_WRITE
	imply HASH_VERIFY
	imply NETDEVICES
	imply BCM_SF2_ETH
	imply BCM_SF2_ETH_GMAC

config TARGET_BCMNSP
	bool "Support bcmnsp"
	select CPU_V7A

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
	select SPI
	imply FAT_WRITE

config ARCH_S5PC1XX
	bool "Samsung S5PC1XX"
	select CPU_V7A
	select DM
	select DM_SERIAL
	select DM_GPIO
	select DM_I2C

config ARCH_HIGHBANK
	bool "Calxeda Highbank"
	select CPU_V7A
	select PL011_SERIAL

config ARCH_INTEGRATOR
	bool "ARM Ltd. Integrator family"
	select DM
	select DM_SERIAL
	select PL01X_SERIAL

config ARCH_KEYSTONE
	bool "TI Keystone"
	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_V7A
	select SPL_BOARD_INIT if SPL
	select SPL_STACK_R if SPL
	select SUPPORT_SPL
	imply FIT

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_V7A
	select ROM_UNIFIED_SECTIONS
	imply MXC_GPIO

config ARCH_MX7
	bool "Freescale MX7"
	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_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
        default "arch/arm/mach-omap2/u-boot-spl.lds"
endif

config ARCH_MX5
	bool "Freescale MX5"
	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"
	select DM
	select DM_SERIAL
	select OF_CONTROL
	select PL01X_SERIAL

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"
	select ARM64
	select DM
	select DM_GPIO
	select DM_SERIAL
	select SPMI
	select OF_CONTROL
	select OF_SEPARATE
	select SMEM
	select MSM_SMEM

config ARCH_SOCFPGA
	bool "Altera SOCFPGA family"
	select ARCH_EARLY_INIT_R
	select ARCH_MISC_INIT
	select CPU_V7A if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
	select DM
	select DM_SERIAL
	select ENABLE_ARM_SOC_BOOT0_HOOK if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
	select OF_CONTROL
	select SPL_DM_RESET if DM_RESET
	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 if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
	select ARM64 if TARGET_SOCFPGA_STRATIX10
	imply CMD_MTDPARTS
	imply CRC32_VERIFY
	imply DM_SPI
	imply DM_SPI_FLASH
	imply FAT_WRITE
	imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
	select SPL_SEPARATE_BSS if TARGET_SOCFPGA_STRATIX10

config ARCH_SUNXI
	bool "Support sunxi (Allwinner) SoCs"
	select BINMAN
	select CMD_GPIO
	select CMD_MMC if MMC
	select CMD_USB if DISTRO_DEFAULTS
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_KEYBOARD
	select DM_SERIAL
	select DM_USB if DISTRO_DEFAULTS
	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
	select SPL_SYS_THUMB_BUILD if !ARM64
	select 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 CMD_GPT
	imply DISTRO_DEFAULTS
	imply FAT_WRITE
	imply OF_LIBFDT_OVERLAY
	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
	imply USB_GADGET

config ARCH_VF610
	bool "Freescale Vybrid"
	select CPU_V7A
	select SYS_FSL_ERRATUM_ESDHC111
	imply CMD_MTDPARTS
	imply NAND

config ARCH_ZYNQ
	bool "Xilinx Zynq based platform"
	select BOARD_LATE_INIT
	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 if NET
	select SPL_DM if SPL
	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 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"
	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 if SPL
	select DM_USB if USB
	imply FAT_WRITE

config TEGRA
	bool "NVIDIA Tegra"
	imply DISTRO_DEFAULTS
	imply FAT_WRITE

config TARGET_VEXPRESS64_AEMV8A
	bool "Support vexpress_aemv8a"
	select ARM64
	select PL01X_SERIAL

config TARGET_VEXPRESS64_BASE_FVP
	bool "Support Versatile Express ARMv8a FVP BASE model"
	select ARM64
	select SEMIHOSTING
	select PL01X_SERIAL

config TARGET_VEXPRESS64_BASE_FVP_DRAM
	bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
	select ARM64
	select PL01X_SERIAL
	help
	  This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
	  the default config to allow the user to load the images directly into
	  DRAM using model parameters rather than by using semi-hosting to load
	  the files from the host filesystem.

config TARGET_VEXPRESS64_JUNO
	bool "Support Versatile Express Juno Development Platform"
	select ARM64
	select PL01X_SERIAL

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
	  development platform that supports the QorIQ LS2080A
	  Layerscape Architecture processor.

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
	  development platform that supports the QorIQ LS2080A
	  Layerscape Architecture processor.

config TARGET_LS1088AQDS
	bool "Support ls1088aqds"
	select ARCH_LS1088A
	select ARM64
	select ARMV8_MULTIENTRY
	select ARCH_MISC_INIT
	select BOARD_LATE_INIT
	select SUPPORT_SPL
	help
	  Support for NXP LS1088AQDS platform
	  The LS1088A Development System (QDS) is a high-performance
	  development platform that supports the QorIQ LS1088A
	  Layerscape Architecture processor.

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
	imply SCSI_AHCI
	help
	  Support for Freescale LS2080AQDS platform
	  The LS2080A Development System (QDS) is a high-performance
	  development platform that supports the QorIQ LS2080A
	  Layerscape Architecture processor.

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
	imply SCSI_AHCI
	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
	select DM
	select DM_GPIO
	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.

config TARGET_POPLAR
	bool "Support Poplar 96boards Enterprise Edition Platform"
	select ARM64
	select DM
	select OF_CONTROL
	select DM_SERIAL
	select DM_USB
	select PL01X_SERIAL
	  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
	  development platform that supports the QorIQ LS1012A
	  Layerscape Architecture processor.

config TARGET_LS1012ARDB
	bool "Support ls1012ardb"
	select ARCH_LS1012A
	select ARM64
	select BOARD_LATE_INIT
	imply SCSI
	imply SCSI_AHCI
	help
	  Support for Freescale LS1012ARDB platform.
	  The LS1012A Reference design board (RDB) is a high-performance
	  development platform that supports the QorIQ LS1012A
	  Layerscape Architecture processor.

config TARGET_LS1012A2G5RDB
	bool "Support ls1012a2g5rdb"
	select ARCH_LS1012A
	select ARM64
	select BOARD_LATE_INIT
	imply SCSI
	help
	  Support for Freescale LS1012A2G5RDB platform.
	  The LS1012A 2G5 Reference design board (RDB) is a high-performance
	  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
	select ARM64
	help
	  Support for Freescale LS1012AFRDM platform.
	  The LS1012A Freedom  board (FRDM) is a high-performance
	  development platform that supports the QorIQ LS1012A
	  Layerscape Architecture processor.

config TARGET_LS1088ARDB
	bool "Support ls1088ardb"
	select ARCH_LS1088A
	select ARM64
	select ARMV8_MULTIENTRY
	select ARCH_MISC_INIT
	select BOARD_LATE_INIT
	select SUPPORT_SPL
	help
	  Support for NXP LS1088ARDB platform.
	  The LS1088A Reference design board (RDB) is a high-performance
	  development platform that supports the QorIQ LS1088A
	  Layerscape Architecture processor.

config TARGET_LS1021AQDS
	bool "Support ls1021aqds"
	select BOARD_LATE_INIT
	select CPU_V7A
	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_V7A
	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_V7A
	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.

config TARGET_LS1043ARDB
	bool "Support 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.

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
	imply SCSI
	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
	imply SCSI
	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_ZIPITZ2
	bool "Support zipitz2"
	select CPU_PXA

config TARGET_COLIBRI_PXA270
	bool "Support colibri_pxa270"
	select CPU_PXA

config ARCH_UNIPHIER
	bool "Socionext UniPhier SoCs"
	select BOARD_LATE_INIT
	select DM
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_RESET
	select DM_SERIAL
	select DM_USB
	select OF_BOARD_SETUP
	select OF_CONTROL
	select OF_LIBFDT
	select 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 DISTRO_DEFAULTS
	imply FAT_WRITE
	help
	  Support for UniPhier SoC family developed by Socionext Inc.
	  (formerly, System LSI Business Division of Panasonic Corporation)

config STM32
	bool "Support STMicroelectronics STM32 MCU with cortex M"
	select CPU_V7M
	select DM
	select DM_SERIAL
	select SYS_THUMB_BUILD

config ARCH_STI
	bool "Support STMicrolectronics SoCs"
	select CPU_V7A
	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_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
	select BLK
	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
	select DM_MMC
	select DM_SERIAL
	select DM_SPI
	select DM_SPI_FLASH
	select DM_USB if USB
	select DM_PWM
	select DM_REGULATOR
	select ENABLE_ARM_SOC_BOOT0_HOOK
	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"
	select ARM64
	select OF_CONTROL
	select SYS_CACHE_SHIFT_7
	select PL01X_SERIAL

config ARCH_ASPEED
	bool "Support Aspeed SoCs"
	select OF_CONTROL
	select DM

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"

source "arch/arm/mach-highbank/Kconfig"

source "arch/arm/mach-integrator/Kconfig"

source "arch/arm/mach-keystone/Kconfig"

source "arch/arm/mach-kirkwood/Kconfig"

source "arch/arm/mach-mvebu/Kconfig"

source "arch/arm/cpu/armv7/ls102xa/Kconfig"

source "arch/arm/mach-imx/mx2/Kconfig"

source "arch/arm/mach-imx/mx3/Kconfig"

source "arch/arm/mach-imx/mx5/Kconfig"

source "arch/arm/mach-imx/mx6/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"

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"

source "arch/arm/mach-qemu/Kconfig"

source "arch/arm/mach-rockchip/Kconfig"

source "arch/arm/mach-s5pc1xx/Kconfig"

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-stm32mp/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/mach-zynqmp-r5/Kconfig"

source "arch/arm/cpu/armv7/Kconfig"

source "arch/arm/cpu/armv8/zynqmp/Kconfig"

source "arch/arm/cpu/armv8/Kconfig"

source "arch/arm/mach-imx/Kconfig"

source "board/bosch/shc/Kconfig"
source "board/CarMediaLab/flea3/Kconfig"
source "board/Marvell/aspenite/Kconfig"
source "board/Marvell/gplugd/Kconfig"
source "board/armadeus/apf27/Kconfig"
source "board/armltd/vexpress/Kconfig"
source "board/armltd/vexpress64/Kconfig"
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/eets/pdu001/Kconfig"
source "board/freescale/ls2080a/Kconfig"
source "board/freescale/ls2080aqds/Kconfig"
source "board/freescale/ls2080ardb/Kconfig"
source "board/freescale/ls1088a/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"
source "board/freescale/ls1012aqds/Kconfig"
source "board/freescale/ls1012ardb/Kconfig"
source "board/freescale/ls1012afrdm/Kconfig"
source "board/freescale/mx35pdk/Kconfig"
source "board/freescale/s32v234evb/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/isee/igep003x/Kconfig"
source "board/phytec/pcm051/Kconfig"
source "board/silica/pengwyn/Kconfig"
source "board/spear/spear300/Kconfig"
source "board/spear/spear310/Kconfig"
source "board/spear/spear320/Kconfig"
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/vscom/baltos/Kconfig"
source "board/woodburn/Kconfig"
source "board/work-microwave/work_92105/Kconfig"
source "board/xilinx/Kconfig"
source "board/xilinx/zynq/Kconfig"
source "board/xilinx/zynqmp/Kconfig"
source "board/zipitz2/Kconfig"

source "arch/arm/Kconfig.debug"

endmenu

config SPL_LDSCRIPT
        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


