aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/arch/arm/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'roms/u-boot/arch/arm/Kconfig')
-rw-r--r--roms/u-boot/arch/arm/Kconfig2051
1 files changed, 2051 insertions, 0 deletions
diff --git a/roms/u-boot/arch/arm/Kconfig b/roms/u-boot/arch/arm/Kconfig
new file mode 100644
index 000000000..0448787b8
--- /dev/null
+++ b/roms/u-boot/arch/arm/Kconfig
@@ -0,0 +1,2051 @@
+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 4K aligned address. This logic relies on the relocation
+ information that is embedded in the binary to support U-Boot
+ relocating itself to the top-of-RAM later during execution.
+
+config INIT_SP_RELATIVE
+ bool "Specify the early stack pointer relative to the .bss section"
+ default n if ARCH_QEMU
+ default y if POSITION_INDEPENDENT
+ help
+ U-Boot typically uses a hard-coded value for the stack pointer
+ before relocation. Enable this option to instead calculate the
+ initial SP at run-time. This is useful to avoid hard-coding addresses
+ into U-Boot, so that it can be loaded and executed at arbitrary
+ addresses and thus avoid using arbitrary addresses at runtime.
+
+ If this option is enabled, the early stack pointer is set to
+ &_bss_start with a offset value added. The offset is specified by
+ SYS_INIT_SP_BSS_OFFSET.
+
+config SYS_INIT_SP_BSS_OFFSET
+ int "Early stack offset from the .bss base address"
+ depends on INIT_SP_RELATIVE
+ default 524288
+ help
+ 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 to the Linux kernel image header.
+endif
+endif
+
+config GIC_V3_ITS
+ bool "ARM GICV3 ITS"
+ select REGMAP
+ select SYSCON
+ select IRQ
+ help
+ ARM GICV3 Interrupt translation service (ITS).
+ Basic support for programming locality specific peripheral
+ interrupts (LPI) configuration tables and enable LPI tables.
+ LPI configuration table can be used by u-boot or Linux.
+ ARM GICV3 has limitation, once the LPI table is enabled, LPI
+ configuration table can not be re-programmed, unless GICV3 reset.
+
+config STATIC_RELA
+ bool
+ default y if ARM64
+
+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_ICACHE_OFF
+ bool "Do not enable icache"
+ default n
+ help
+ Do not enable instruction cache in U-Boot.
+
+config SPL_SYS_ICACHE_OFF
+ bool "Do not enable icache in SPL"
+ depends on SPL
+ default SYS_ICACHE_OFF
+ help
+ Do not enable instruction cache in SPL.
+
+config SYS_DCACHE_OFF
+ bool "Do not enable dcache"
+ default n
+ help
+ Do not enable data cache in U-Boot.
+
+config SPL_SYS_DCACHE_OFF
+ bool "Do not enable dcache in SPL"
+ depends on SPL
+ default SYS_DCACHE_OFF
+ help
+ Do not enable data cache in SPL.
+
+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 via 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_THUMB2
+ select HAS_VBAR
+ select SYS_CACHE_SHIFT_6
+ imply SYS_ARM_MMU
+
+config CPU_V7M
+ bool
+ select HAS_THUMB2
+ select SYS_ARM_MPU
+ select SYS_CACHE_SHIFT_5
+ select SYS_THUMB_BUILD
+ select THUMB2_KERNEL
+
+config CPU_V7R
+ bool
+ select HAS_THUMB2
+ select SYS_ARM_CACHE_CP15
+ select SYS_ARM_MPU
+ select SYS_CACHE_SHIFT_6
+
+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
+
+choice
+ prompt "Select the ARM data write cache policy"
+ default SYS_ARM_CACHE_WRITETHROUGH if TARGET_BCMCYGNUS || \
+ CPU_PXA || RZA1
+ default SYS_ARM_CACHE_WRITEBACK
+
+config SYS_ARM_CACHE_WRITEBACK
+ bool "Write-back (WB)"
+ help
+ A write updates the cache only and marks the cache line as dirty.
+ External memory is updated only when the line is evicted or explicitly
+ cleaned.
+
+config SYS_ARM_CACHE_WRITETHROUGH
+ bool "Write-through (WT)"
+ help
+ A write updates both the cache and the external memory system.
+ This does not mark the cache line as dirty.
+
+config SYS_ARM_CACHE_WRITEALLOC
+ bool "Write allocation (WA)"
+ help
+ A cache line is allocated on a write miss. This means that executing a
+ store instruction on the processor might cause a burst read to occur.
+ There is a linefill to obtain the data for the cache line, before the
+ write is performed.
+endchoice
+
+config ARCH_CPU_INIT
+ bool "Enable ARCH_CPU_INIT"
+ help
+ Some architectures require a call to arch_cpu_init().
+ Say Y here to enable it
+
+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 mandatory 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 && SPL
+ 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 TPL_SYS_THUMB_BUILD
+ bool "Build TPL using the Thumb instruction set"
+ default y if SYS_THUMB_BUILD
+ depends on TPL && !ARM64
+ help
+ Use this flag to build TPL 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 does 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 an 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 && SPL
+ help
+ Enable the generation of an optimized version of memcpy.
+ Such an implementation may be faster under some conditions
+ but may increase the binary size.
+
+config TPL_USE_ARCH_MEMCPY
+ bool "Use an assembly optimized implementation of memcpy for TPL"
+ default y if USE_ARCH_MEMCPY
+ depends on !ARM64 && TPL
+ help
+ Enable the generation of an optimized version of memcpy.
+ Such an 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 an 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 && SPL
+ help
+ Enable the generation of an optimized version of memset.
+ Such an implementation may be faster under some conditions
+ but may increase the binary size.
+
+config TPL_USE_ARCH_MEMSET
+ bool "Use an assembly optimized implementation of memset for TPL"
+ default y if USE_ARCH_MEMSET
+ depends on !ARM64 && TPL
+ help
+ Enable the generation of an optimized version of memset.
+ Such an implementation may be faster under some conditions
+ but may increase the binary size.
+
+config ARM64_SUPPORT_AARCH32
+ bool "ARM64 system support AArch32 execution state"
+ depends on ARM64
+ default y if !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
+ select SPL_SEPARATE_BSS if SPL
+
+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
+ select SPL_DM_SPI if SPL
+ imply CMD_SAVES
+ help
+ Support for TI's DaVinci platform.
+
+config ARCH_KIRKWOOD
+ bool "Marvell Kirkwood"
+ select ARCH_MISC_INIT
+ select BOARD_EARLY_INIT_F
+ select CPU_ARM926EJS
+
+config ARCH_MVEBU
+ bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
+ select DM
+ select DM_ETH
+ select DM_SERIAL
+ select DM_SPI
+ select DM_SPI_FLASH
+ select SPL_DM_SPI if SPL
+ select SPL_DM_SPI_FLASH if SPL
+ select OF_CONTROL
+ select OF_SEPARATE
+ select SPI
+ imply CMD_DM
+
+config ARCH_ORION5X
+ bool "Marvell Orion"
+ select CPU_ARM926EJS
+
+config TARGET_SPEAR300
+ bool "Support spear300"
+ select BOARD_EARLY_INIT_F
+ select CPU_ARM926EJS
+ select PL011_SERIAL
+ imply CMD_SAVES
+
+config TARGET_SPEAR310
+ bool "Support spear310"
+ select BOARD_EARLY_INIT_F
+ select CPU_ARM926EJS
+ select PL011_SERIAL
+ imply CMD_SAVES
+
+config TARGET_SPEAR320
+ bool "Support spear320"
+ select BOARD_EARLY_INIT_F
+ select CPU_ARM926EJS
+ select PL011_SERIAL
+ imply CMD_SAVES
+
+config TARGET_SPEAR600
+ bool "Support spear600"
+ select BOARD_EARLY_INIT_F
+ select CPU_ARM926EJS
+ select PL011_SERIAL
+ imply CMD_SAVES
+
+config TARGET_STV0991
+ bool "Support stv0991"
+ select CPU_V7A
+ select DM
+ select DM_SERIAL
+ select DM_SPI
+ select DM_SPI_FLASH
+ select PL01X_SERIAL
+ select SPI
+ select SPI_FLASH
+ imply CMD_DM
+
+config TARGET_X600
+ bool "Support x600"
+ select BOARD_LATE_INIT
+ select CPU_ARM926EJS
+ select PL011_SERIAL
+ select SUPPORT_SPL
+
+config TARGET_FLEA3
+ bool "Support flea3"
+ select CPU_ARM1136
+
+config ARCH_BCM283X
+ bool "Broadcom BCM283X family"
+ select DM
+ select DM_GPIO
+ select DM_SERIAL
+ select OF_CONTROL
+ select PL01X_SERIAL
+ select SERIAL_SEARCH_ALL
+ imply CMD_DM
+ imply FAT_WRITE
+
+config ARCH_BCM63158
+ bool "Broadcom BCM63158 family"
+ select DM
+ select OF_CONTROL
+ imply CMD_DM
+
+config ARCH_BCM68360
+ bool "Broadcom BCM68360 family"
+ select DM
+ select OF_CONTROL
+ imply CMD_DM
+
+config ARCH_BCM6858
+ bool "Broadcom BCM6858 family"
+ select DM
+ select OF_CONTROL
+ imply CMD_DM
+
+config ARCH_BCMSTB
+ bool "Broadcom BCM7XXX family"
+ select CPU_V7A
+ select DM
+ select OF_CONTROL
+ select OF_PRIOR_STAGE
+ imply CMD_DM
+ help
+ This enables support for Broadcom ARM-based set-top box
+ chipsets, including the 7445 family of chips.
+
+config TARGET_BCMCYGNUS
+ bool "Support bcmcygnus"
+ select CPU_V7A
+ imply BCM_SF2_ETH
+ imply BCM_SF2_ETH_GMAC
+ imply CMD_HASH
+ imply CRC32_VERIFY
+ imply FAT_WRITE
+ imply HASH_VERIFY
+ imply NETDEVICES
+
+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 TARGET_BCMNS3
+ bool "Support Broadcom NS3"
+ select ARM64
+ select BOARD_LATE_INIT
+ help
+ Support for Broadcom Northstar 3 SoCs. NS3 is a octo-core 64-bit
+ ARMv8 Cortex-A72 processors targeting a broad range of networking
+ applications.
+
+config ARCH_EXYNOS
+ bool "Samsung EXYNOS"
+ select DM
+ select DM_GPIO
+ select DM_I2C
+ select DM_KEYBOARD
+ select DM_SERIAL
+ select DM_SPI
+ select DM_SPI_FLASH
+ select SPI
+ imply SYS_THUMB_BUILD
+ imply CMD_DM
+ imply FAT_WRITE
+
+config ARCH_S5PC1XX
+ bool "Samsung S5PC1XX"
+ select CPU_V7A
+ select DM
+ select DM_GPIO
+ select DM_I2C
+ select DM_SERIAL
+ imply CMD_DM
+
+config ARCH_HIGHBANK
+ bool "Calxeda Highbank"
+ select CPU_V7A
+ select PL01X_SERIAL
+ select DM
+ select DM_SERIAL
+ select OF_CONTROL
+ select OF_BOARD
+ select CLK
+ select CLK_CCF
+ select AHCI
+ select DM_ETH
+ select PHYS_64BIT
+
+config ARCH_INTEGRATOR
+ bool "ARM Ltd. Integrator family"
+ select DM
+ select DM_SERIAL
+ select PL01X_SERIAL
+ imply CMD_DM
+
+config ARCH_IPQ40XX
+ bool "Qualcomm IPQ40xx SoCs"
+ select CPU_V7A
+ select DM
+ select DM_GPIO
+ select DM_SERIAL
+ select DM_RESET
+ select MSM_SMEM
+ select PINCTRL
+ select CLK
+ select SMEM
+ select OF_CONTROL
+ imply CMD_DM
+
+config ARCH_KEYSTONE
+ bool "TI Keystone"
+ select CMD_POWEROFF
+ select CPU_V7A
+ select SUPPORT_SPL
+ select SYS_ARCH_TIMER
+ select SYS_THUMB_BUILD
+ imply CMD_MTDPARTS
+ imply CMD_SAVES
+ imply FIT
+
+config ARCH_K3
+ bool "Texas Instruments' K3 Architecture"
+ select SPL
+ select SUPPORT_SPL
+ select FIT
+
+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 TI_SYSC if DM && OF_CONTROL
+ imply FIT
+
+config ARCH_MESON
+ bool "Amlogic Meson"
+ imply DISTRO_DEFAULTS
+ imply DM_RNG
+ 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_MEDIATEK
+ bool "MediaTek SoCs"
+ select DM
+ select OF_CONTROL
+ select SPL_DM if SPL
+ select SPL_LIBCOMMON_SUPPORT if SPL
+ select SPL_LIBGENERIC_SUPPORT if SPL
+ select SPL_OF_CONTROL if SPL
+ select SUPPORT_SPL
+ help
+ Support for the MediaTek SoCs family developed by MediaTek Inc.
+ Please refer to doc/README.mediatek for more information.
+
+config ARCH_LPC32XX
+ bool "NXP LPC32xx platform"
+ select CPU_ARM926EJS
+ select DM
+ select DM_GPIO
+ select DM_SERIAL
+ select SPL_DM if SPL
+ select SUPPORT_SPL
+ imply CMD_DM
+
+config ARCH_IMX8
+ bool "NXP i.MX8 platform"
+ select ARM64
+ select DM
+ select OF_CONTROL
+ select ENABLE_ARM_SOC_BOOT0_HOOK
+
+config ARCH_IMX8M
+ bool "NXP i.MX8M platform"
+ select ARM64
+ select SYS_FSL_HAS_SEC if IMX_HAB
+ select SYS_FSL_SEC_COMPAT_4
+ select SYS_FSL_SEC_LE
+ select DM
+ select SUPPORT_SPL
+ imply CMD_DM
+
+config ARCH_IMXRT
+ bool "NXP i.MXRT platform"
+ select CPU_V7M
+ select DM
+ select DM_SERIAL
+ select SUPPORT_SPL
+ imply CMD_DM
+
+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 SYS_FSL_HAS_SEC if IMX_HAB
+ select SYS_FSL_SEC_COMPAT_4
+ select SYS_FSL_SEC_LE
+ select ROM_UNIFIED_SECTIONS
+ imply MXC_GPIO
+ imply SYS_THUMB_BUILD
+
+config ARCH_MX7
+ bool "Freescale MX7"
+ select ARCH_MISC_INIT
+ select CPU_V7A
+ select SYS_FSL_HAS_SEC if IMX_HAB
+ select SYS_FSL_SEC_COMPAT_4
+ select SYS_FSL_SEC_LE
+ imply BOARD_EARLY_INIT_F
+ imply MXC_GPIO
+ imply SYS_THUMB_BUILD
+
+config ARCH_MX6
+ bool "Freescale MX6"
+ select CPU_V7A
+ select SYS_FSL_HAS_SEC
+ select SYS_FSL_SEC_COMPAT_4
+ select SYS_FSL_SEC_LE
+ imply MXC_GPIO
+ imply SYS_THUMB_BUILD
+
+if ARCH_MX6
+config SPL_LDSCRIPT
+ default "arch/arm/mach-omap2/u-boot-spl.lds"
+endif
+
+config ARCH_MX5
+ bool "Freescale MX5"
+ select BOARD_EARLY_INIT_F
+ select CPU_V7A
+ imply MXC_GPIO
+
+config ARCH_NEXELL
+ bool "Nexell S5P4418/S5P6818 SoC"
+ select ENABLE_ARM_SOC_BOOT0_HOOK
+ select DM
+
+config ARCH_OWL
+ bool "Actions Semi OWL SoCs"
+ select DM
+ select DM_ETH
+ select DM_SERIAL
+ select OWL_SERIAL
+ select CLK
+ select CLK_OWL
+ select OF_CONTROL
+ select SYS_RELOC_GD_ENV_ADDR
+ imply CMD_DM
+
+config ARCH_QEMU
+ bool "QEMU Virtual Platform"
+ select DM
+ select DM_SERIAL
+ select OF_CONTROL
+ select PL01X_SERIAL
+ imply CMD_DM
+ imply DM_RNG
+ imply DM_RTC
+ imply RTC_PL031
+
+config ARCH_RMOBILE
+ bool "Renesas ARM SoCs"
+ select DM
+ select DM_SERIAL
+ imply BOARD_EARLY_INIT_F
+ imply CMD_DM
+ imply FAT_WRITE
+ imply SYS_THUMB_BUILD
+ imply ARCH_MISC_INIT if DISPLAY_CPUINFO
+
+config ARCH_SNAPDRAGON
+ bool "Qualcomm Snapdragon SoCs"
+ select ARM64
+ select DM
+ select DM_GPIO
+ select DM_SERIAL
+ select MSM_SMEM
+ select OF_CONTROL
+ select OF_SEPARATE
+ select SMEM
+ select SPMI
+ imply CMD_DM
+
+config ARCH_SOCFPGA
+ bool "Altera SOCFPGA family"
+ select ARCH_EARLY_INIT_R
+ select ARCH_MISC_INIT if !TARGET_SOCFPGA_ARRIA10
+ select ARM64 if TARGET_SOCFPGA_SOC64
+ 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_DM_SERIAL
+ select SPL_LIBCOMMON_SUPPORT
+ select SPL_LIBGENERIC_SUPPORT
+ select SPL_NAND_SUPPORT if SPL_NAND_DENALI
+ select SPL_OF_CONTROL
+ select SPL_SEPARATE_BSS if TARGET_SOCFPGA_SOC64
+ select SPL_SERIAL_SUPPORT
+ select SPL_SYSRESET
+ select SPL_WATCHDOG_SUPPORT
+ select SUPPORT_SPL
+ select SYS_NS16550
+ select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
+ select SYSRESET
+ select SYSRESET_SOCFPGA if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
+ select SYSRESET_SOCFPGA_SOC64 if TARGET_SOCFPGA_SOC64
+ imply CMD_DM
+ imply CMD_MTDPARTS
+ imply CRC32_VERIFY
+ imply DM_SPI
+ imply DM_SPI_FLASH
+ imply FAT_WRITE
+ imply SPL
+ imply SPL_DM
+ imply SPL_DM_SPI
+ imply SPL_DM_SPI_FLASH
+ imply SPL_LIBDISK_SUPPORT
+ imply SPL_MMC_SUPPORT
+ imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
+ imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
+ imply SPL_SPI_FLASH_SUPPORT
+ imply SPL_SPI_SUPPORT
+ imply L2X0_CACHE
+
+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 CLK
+ select DM
+ select DM_ETH
+ select DM_GPIO
+ select DM_KEYBOARD
+ select DM_MMC if MMC
+ select DM_SCSI if SCSI
+ 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 SPL_SYS_THUMB_BUILD if !ARM64
+ select SUNXI_GPIO
+ select SYS_NS16550
+ select SYS_THUMB_BUILD if !ARM64
+ select USB if DISTRO_DEFAULTS
+ select USB_KEYBOARD if DISTRO_DEFAULTS
+ select USB_STORAGE if DISTRO_DEFAULTS
+ select SPL_USE_TINY_PRINTF
+ select USE_PREBOOT
+ select SYS_RELOC_GD_ENV_ADDR
+ imply BOARD_LATE_INIT
+ imply CMD_DM
+ imply CMD_GPT
+ imply CMD_UBI if MTD_RAW_NAND
+ imply DISTRO_DEFAULTS
+ imply FAT_WRITE
+ imply FIT
+ imply OF_LIBFDT_OVERLAY
+ imply PRE_CONSOLE_BUFFER
+ imply SPL_GPIO_SUPPORT
+ imply SPL_LIBCOMMON_SUPPORT
+ imply SPL_LIBGENERIC_SUPPORT
+ imply SPL_MMC_SUPPORT if MMC
+ imply SPL_POWER_SUPPORT
+ imply SPL_SERIAL_SUPPORT
+ imply USB_GADGET
+
+config ARCH_U8500
+ bool "ST-Ericsson U8500 Series"
+ select CPU_V7A
+ select DM
+ select DM_GPIO
+ select DM_MMC if MMC
+ select DM_SERIAL
+ select DM_USB if USB
+ select OF_CONTROL
+ select SYSRESET
+ select TIMER
+ imply ARM_PL180_MMCI
+ imply DM_RTC
+ imply NOMADIK_MTU_TIMER
+ imply PL01X_SERIAL
+ imply RTC_PL031
+ imply SYSRESET_SYSCON
+
+config ARCH_VERSAL
+ bool "Support Xilinx Versal Platform"
+ select ARM64
+ select CLK
+ select DM
+ select DM_ETH if NET
+ select DM_MMC if MMC
+ select DM_SERIAL
+ select OF_CONTROL
+ imply BOARD_LATE_INIT
+ imply ENV_VARS_UBOOT_RUNTIME_CONFIG
+
+config ARCH_VF610
+ bool "Freescale Vybrid"
+ select CPU_V7A
+ select SYS_FSL_ERRATUM_ESDHC111
+ imply CMD_MTDPARTS
+ imply MTD_RAW_NAND
+
+config ARCH_ZYNQ
+ bool "Xilinx Zynq based platform"
+ select CLK
+ select CLK_ZYNQ
+ select CPU_V7A
+ select DM
+ select DM_ETH if NET
+ select DM_MMC if MMC
+ select DM_SERIAL
+ select DM_SPI
+ select DM_SPI_FLASH
+ select DM_USB if USB
+ select OF_CONTROL
+ select SPI
+ select SPL_BOARD_INIT if SPL
+ select SPL_CLK if SPL
+ select SPL_DM if SPL
+ select SPL_DM_SPI if SPL
+ select SPL_DM_SPI_FLASH if SPL
+ select SPL_OF_CONTROL if SPL
+ select SPL_SEPARATE_BSS if SPL
+ select SUPPORT_SPL
+ imply ARCH_EARLY_INIT_R
+ imply BOARD_LATE_INIT
+ imply CMD_CLK
+ imply CMD_DM
+ imply CMD_SPL
+ imply ENV_VARS_UBOOT_RUNTIME_CONFIG
+ imply FAT_WRITE
+
+config ARCH_ZYNQMP_R5
+ bool "Xilinx ZynqMP R5 based platform"
+ select CLK
+ select CPU_V7R
+ select DM
+ select DM_ETH if NET
+ select DM_MMC if MMC
+ select DM_SERIAL
+ select OF_CONTROL
+ imply CMD_DM
+ imply DM_USB_GADGET
+
+config ARCH_ZYNQMP
+ bool "Xilinx ZynqMP based platform"
+ select ARM64
+ select CLK
+ select DM
+ select DM_ETH if NET
+ select DM_MAILBOX
+ select DM_MMC if MMC
+ select DM_SERIAL
+ select DM_SPI if SPI
+ select DM_SPI_FLASH if DM_SPI
+ select DM_USB if USB
+ select FIRMWARE
+ select OF_CONTROL
+ select SPL_BOARD_INIT if SPL
+ select SPL_CLK if SPL
+ select SPL_DM if SPL
+ select SPL_DM_SPI if SPI && SPL_DM
+ select SPL_DM_SPI_FLASH if SPL_DM_SPI
+ select SPL_DM_MAILBOX if SPL
+ select SPL_FIRMWARE if SPL
+ select SPL_SEPARATE_BSS if SPL
+ select SUPPORT_SPL
+ select ZYNQMP_IPI
+ imply BOARD_LATE_INIT
+ imply CMD_DM
+ imply ENV_VARS_UBOOT_RUNTIME_CONFIG
+ imply FAT_WRITE
+ imply MP
+ imply DM_USB_GADGET
+
+config ARCH_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 PL01X_SERIAL
+ select SEMIHOSTING
+
+config TARGET_VEXPRESS64_JUNO
+ bool "Support Versatile Express Juno Development Platform"
+ select ARM64
+ select PL01X_SERIAL
+ select DM
+ select OF_CONTROL
+ select OF_BOARD
+ select CLK
+ select DM_SERIAL
+ select ARM_PSCI_FW
+ select PSCI_RESET
+ select DM_ETH
+ select BLK
+ select USB
+ select DM_USB
+
+config TARGET_TOTAL_COMPUTE
+ bool "Support Total Compute Platform"
+ select ARM64
+ select PL01X_SERIAL
+ select DM
+ select DM_SERIAL
+ select DM_MMC
+ select DM_GPIO
+
+config TARGET_LS2080A_EMU
+ bool "Support ls2080a_emu"
+ select ARCH_LS2080A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select FSL_DDR_SYNC_REFRESH
+ 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_LS1088AQDS
+ bool "Support ls1088aqds"
+ select ARCH_LS1088A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ select SUPPORT_SPL
+ select FSL_DDR_INTERACTIVE if !SD_BOOT
+ 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 ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ select SUPPORT_SPL
+ imply SCSI
+ imply SCSI_AHCI
+ select FSL_DDR_BIST
+ select FSL_DDR_INTERACTIVE if !SPL
+ 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 ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ select SUPPORT_SPL
+ select FSL_DDR_BIST
+ select FSL_DDR_INTERACTIVE if !SPL
+ 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
+ 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_LX2160ARDB
+ bool "Support lx2160ardb"
+ select ARCH_LX2160A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ help
+ Support for NXP LX2160ARDB platform.
+ The lx2160ardb (LX2160A Reference design board (RDB)
+ is a high-performance development platform that supports the
+ QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
+
+config TARGET_LX2160AQDS
+ bool "Support lx2160aqds"
+ select ARCH_LX2160A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ help
+ Support for NXP LX2160AQDS platform.
+ The lx2160aqds (LX2160A QorIQ Development System (QDS)
+ is a high-performance development platform that supports the
+ QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
+
+config TARGET_LX2162AQDS
+ bool "Support lx2162aqds"
+ select ARCH_LX2162A
+ select ARCH_MISC_INIT
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ help
+ Support for NXP LX2162AQDS platform.
+ The lx2162aqds support is based on LX2160A 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
+ imply CMD_DM
+ help
+ Support for HiKey 96boards platform. It features a HI6220
+ SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
+
+config TARGET_HIKEY960
+ bool "Support HiKey960 96boards Consumer Edition Platform"
+ select ARM64
+ select DM
+ select DM_SERIAL
+ select OF_CONTROL
+ select PL01X_SERIAL
+ imply CMD_DM
+ help
+ Support for HiKey960 96boards platform. It features a HI3660
+ SoC, with 4xA73 CPU, 4xA53 CPU, MALI-G71 GPU, and 3GB RAM.
+
+config TARGET_POPLAR
+ bool "Support Poplar 96boards Enterprise Edition Platform"
+ select ARM64
+ select DM
+ select DM_SERIAL
+ select DM_USB
+ select OF_CONTROL
+ select PL01X_SERIAL
+ imply CMD_DM
+ 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 ARCH_SUPPORT_TFABOOT
+ 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 ARCH_SUPPORT_TFABOOT
+ 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 ARCH_SUPPORT_TFABOOT
+ 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 ARM64
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ 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
+ select ARCH_SUPPORT_TFABOOT
+ 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_LS1028AQDS
+ bool "Support ls1028aqds"
+ select ARCH_LS1028A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ help
+ Support for Freescale LS1028AQDS platform
+ The LS1028A Development System (QDS) is a high-performance
+ development platform that supports the QorIQ LS1028A
+ Layerscape Architecture processor.
+
+config TARGET_LS1028ARDB
+ bool "Support ls1028ardb"
+ select ARCH_LS1028A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ help
+ Support for Freescale LS1028ARDB platform
+ The LS1028A Development System (RDB) is a high-performance
+ development platform that supports the QorIQ LS1028A
+ Layerscape Architecture processor.
+
+config TARGET_LS1088ARDB
+ bool "Support ls1088ardb"
+ select ARCH_LS1088A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ select SUPPORT_SPL
+ select FSL_DDR_INTERACTIVE if !SD_BOOT
+ 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 ARCH_LS1021A
+ select ARCH_SUPPORT_PSCI
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select CPU_V7A
+ select CPU_V7_HAS_NONSEC
+ select CPU_V7_HAS_VIRT
+ select LS1_DEEP_SLEEP
+ select SUPPORT_SPL
+ select SYS_FSL_DDR
+ select FSL_DDR_INTERACTIVE
+ select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
+ select SPI_FLASH_DATAFLASH if FSL_DSPI || FSL_QSPI
+ imply SCSI
+
+config TARGET_LS1021ATWR
+ bool "Support ls1021atwr"
+ select ARCH_LS1021A
+ select ARCH_SUPPORT_PSCI
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select CPU_V7A
+ select CPU_V7_HAS_NONSEC
+ select CPU_V7_HAS_VIRT
+ select LS1_DEEP_SLEEP
+ select SUPPORT_SPL
+ select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
+ imply SCSI
+
+config TARGET_PG_WCOM_SELI8
+ bool "Support Hitachi-Powergrids SELI8 service unit card"
+ select ARCH_LS1021A
+ select ARCH_SUPPORT_PSCI
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select CPU_V7A
+ select CPU_V7_HAS_NONSEC
+ select CPU_V7_HAS_VIRT
+ select SYS_FSL_DDR
+ select FSL_DDR_INTERACTIVE
+ select VENDOR_KM
+ imply SCSI
+ help
+ Support for Hitachi-Powergrids SELI8 service unit card.
+ SELI8 is a QorIQ LS1021a based service unit card used
+ in XMC20 and FOX615 product families.
+
+config TARGET_PG_WCOM_EXPU1
+ bool "Support Hitachi-Powergrids EXPU1 service unit card"
+ select ARCH_LS1021A
+ select ARCH_SUPPORT_PSCI
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select CPU_V7A
+ select CPU_V7_HAS_NONSEC
+ select CPU_V7_HAS_VIRT
+ select SYS_FSL_DDR
+ select FSL_DDR_INTERACTIVE
+ select VENDOR_KM
+ imply SCSI
+ help
+ Support for Hitachi-Powergrids EXPU1 service unit card.
+ EXPU1 is a QorIQ LS1021a based service unit card used
+ in XMC20 and FOX615 product families.
+
+config TARGET_LS1021ATSN
+ bool "Support ls1021atsn"
+ select ARCH_LS1021A
+ select ARCH_SUPPORT_PSCI
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select CPU_V7A
+ select CPU_V7_HAS_NONSEC
+ select CPU_V7_HAS_VIRT
+ select LS1_DEEP_SLEEP
+ select SUPPORT_SPL
+ imply SCSI
+
+config TARGET_LS1021AIOT
+ bool "Support ls1021aiot"
+ select ARCH_LS1021A
+ select ARCH_SUPPORT_PSCI
+ select BOARD_LATE_INIT
+ select CPU_V7A
+ select CPU_V7_HAS_NONSEC
+ select CPU_V7_HAS_VIRT
+ select SUPPORT_SPL
+ select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
+ 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 ARCH_SUPPORT_TFABOOT
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select SUPPORT_SPL
+ select FSL_DDR_INTERACTIVE if !SPL
+ select FSL_DSPI if !SPL_NO_DSPI
+ select DM_SPI_FLASH if FSL_DSPI
+ imply SCSI
+ imply SCSI_AHCI
+ help
+ Support for Freescale LS1043AQDS platform.
+
+config TARGET_LS1043ARDB
+ bool "Support ls1043ardb"
+ select ARCH_LS1043A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select SUPPORT_SPL
+ select FSL_DSPI if !SPL_NO_DSPI
+ select DM_SPI_FLASH if FSL_DSPI
+ help
+ Support for Freescale LS1043ARDB platform.
+
+config TARGET_LS1046AQDS
+ bool "Support ls1046aqds"
+ select ARCH_LS1046A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select DM_SPI_FLASH if DM_SPI
+ select SUPPORT_SPL
+ select FSL_DDR_BIST if !SPL
+ select FSL_DDR_INTERACTIVE if !SPL
+ select FSL_DDR_INTERACTIVE if !SPL
+ 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 ARCH_SUPPORT_TFABOOT
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select DM_SPI_FLASH if DM_SPI
+ select POWER_MC34VR500
+ select SUPPORT_SPL
+ select FSL_DDR_BIST
+ select FSL_DDR_INTERACTIVE if !SPL
+ 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_LS1046AFRWY
+ bool "Support ls1046afrwy"
+ select ARCH_LS1046A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select ARCH_SUPPORT_TFABOOT
+ select BOARD_EARLY_INIT_F
+ select BOARD_LATE_INIT
+ select DM_SPI_FLASH if DM_SPI
+ imply SCSI
+ help
+ Support for Freescale LS1046AFRWY platform.
+ The LS1046A Freeway Board (FRWY) is a high-performance
+ development platform that supports the QorIQ LS1046A
+ Layerscape Architecture processor.
+
+config TARGET_SL28
+ bool "Support sl28"
+ select ARCH_LS1028A
+ select ARM64
+ select ARMV8_MULTIENTRY
+ select SUPPORT_SPL
+ select BINMAN
+ select DM
+ select DM_GPIO
+ select DM_I2C
+ select DM_MMC
+ select DM_SPI_FLASH
+ select DM_ETH
+ select DM_MDIO
+ select DM_PCI
+ select DM_RNG
+ select DM_RTC
+ select DM_SCSI
+ select DM_SERIAL
+ select DM_SPI
+ select DM_USB
+ select SPL_DM if SPL
+ select SPL_DM_SPI if SPL
+ select SPL_DM_SPI_FLASH if SPL
+ select SPL_DM_I2C if SPL
+ select SPL_DM_MMC if SPL
+ select SPL_DM_SERIAL if SPL
+ help
+ Support for Kontron SMARC-sAL28 board.
+
+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_ETH
+ select DM_GPIO
+ select DM_I2C
+ select DM_MMC
+ select DM_MTD
+ 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 CMD_DM
+ 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 ARCH_STM32
+ bool "Support STMicroelectronics STM32 MCU with cortex M"
+ select CPU_V7M
+ select DM
+ select DM_SERIAL
+ imply CMD_DM
+
+config ARCH_STI
+ bool "Support STMicrolectronics SoCs"
+ select BLK
+ select CPU_V7A
+ select DM
+ select DM_MMC
+ select DM_RESET
+ select DM_SERIAL
+ imply CMD_DM
+ 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 ARCH_SUPPORT_TFABOOT
+ select BOARD_LATE_INIT
+ select CLK
+ select DM
+ select DM_GPIO
+ select DM_RESET
+ select DM_SERIAL
+ select MISC
+ select OF_CONTROL
+ select OF_LIBFDT
+ select OF_SYSTEM_SETUP
+ select PINCTRL
+ select REGMAP
+ select SUPPORT_SPL
+ select SYSCON
+ select SYSRESET
+ select SYS_THUMB_BUILD
+ imply SPL_SYSRESET
+ imply CMD_DM
+ imply CMD_POWEROFF
+ imply OF_LIBFDT_OVERLAY
+ imply ENV_VARS_UBOOT_RUNTIME_CONFIG
+ imply USE_PREBOOT
+ help
+ Support for STM32MP SoC family developed by STMicroelectronics,
+ MPUs based on ARM cortex A core
+ U-BOOT is running in DDR, loaded by the First Stage BootLoader (FSBL).
+ FSBL can be TF-A: Trusted Firmware for Cortex A, for trusted boot
+ chain.
+ SPL is the unsecure FSBL for the basic boot chain.
+
+config ARCH_ROCKCHIP
+ bool "Support Rockchip SoCs"
+ select BLK
+ select BINMAN if SPL_OPTEE
+ select DM
+ select DM_GPIO
+ select DM_I2C
+ select DM_MMC
+ select DM_PWM
+ select DM_REGULATOR
+ select DM_SERIAL
+ select DM_SPI
+ select DM_SPI_FLASH
+ select DM_USB if USB
+ select ENABLE_ARM_SOC_BOOT0_HOOK
+ select OF_CONTROL
+ select SPI
+ select SPL_DM if SPL
+ select SPL_DM_SPI if SPL
+ select SPL_DM_SPI_FLASH if SPL
+ select SYS_MALLOC_F
+ select SYS_THUMB_BUILD if !ARM64
+ imply ADC
+ imply CMD_DM
+ imply DEBUG_UART_BOARD_INIT
+ imply DISTRO_DEFAULTS
+ imply FAT_WRITE
+ imply SARADC_ROCKCHIP
+ imply SPL_SYSRESET
+ imply SPL_SYS_MALLOC_SIMPLE
+ imply SYS_NS16550
+ imply TPL_SYSRESET
+ imply USB_FUNCTION_FASTBOOT
+
+config ARCH_OCTEONTX
+ bool "Support OcteonTX SoCs"
+ select CLK
+ select DM
+ select ARM64
+ select OF_CONTROL
+ select OF_LIVE
+ select BOARD_LATE_INIT
+ select SYS_CACHE_SHIFT_7
+
+config ARCH_OCTEONTX2
+ bool "Support OcteonTX2 SoCs"
+ select CLK
+ select DM
+ select ARM64
+ select OF_CONTROL
+ select OF_LIVE
+ select BOARD_LATE_INIT
+ select SYS_CACHE_SHIFT_7
+
+config TARGET_THUNDERX_88XX
+ bool "Support ThunderX 88xx"
+ select ARM64
+ select OF_CONTROL
+ select PL01X_SERIAL
+ select SYS_CACHE_SHIFT_7
+
+config ARCH_ASPEED
+ bool "Support Aspeed SoCs"
+ select DM
+ select OF_CONTROL
+ imply CMD_DM
+
+config TARGET_DURIAN
+ bool "Support Phytium Durian Platform"
+ select ARM64
+ help
+ Support for durian platform.
+ It has 2GB Sdram, uart and pcie.
+
+config TARGET_PRESIDIO_ASIC
+ bool "Support Cortina Presidio ASIC Platform"
+ select ARM64
+
+config TARGET_XENGUEST_ARM64
+ bool "Xen guest ARM64"
+ select ARM64
+ select XEN
+ select OF_CONTROL
+ select LINUX_KERNEL_IMAGE_HEADER
+ select XEN_SERIAL
+ select SSCANF
+endchoice
+
+config ARCH_SUPPORT_TFABOOT
+ bool
+
+config TFABOOT
+ bool "Support for booting from TF-A"
+ depends on ARCH_SUPPORT_TFABOOT
+ default n
+ help
+ Some platforms support the setup of secure registers (for instance
+ for CPU errata handling) or provide secure services like PSCI.
+ Those services could also be provided by other firmware parts
+ like TF-A (Trusted Firmware for Cortex-A), in which case U-Boot
+ does not need to (and cannot) execute this code.
+ Enabling this option will make a U-Boot binary that is relying
+ on other firmware layers to provide secure functionality.
+
+config TI_SECURE_DEVICE
+ bool "HS Device Type Support"
+ depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
+ 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.
+
+if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
+config ISW_ENTRY_ADDR
+ hex "Address in memory or XIP address of bootloader entry point"
+ default 0x402F4000 if AM43XX
+ default 0x402F0400 if AM33XX
+ default 0x40301350 if OMAP54XX
+ help
+ After any reset, the boot ROM searches the boot media for a valid
+ boot image. For non-XIP devices, the ROM then copies the image into
+ internal memory. For all boot modes, after the ROM processes the
+ boot image it eventually computes the entry point address depending
+ on the device type (secure/non-secure), boot media (xip/non-xip) and
+ image headers.
+endif
+
+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-ipq40xx/Kconfig"
+
+source "arch/arm/mach-k3/Kconfig"
+
+source "arch/arm/mach-keystone/Kconfig"
+
+source "arch/arm/mach-kirkwood/Kconfig"
+
+source "arch/arm/mach-lpc32xx/Kconfig"
+
+source "arch/arm/mach-mvebu/Kconfig"
+
+source "arch/arm/mach-octeontx/Kconfig"
+
+source "arch/arm/mach-octeontx2/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/imx8/Kconfig"
+
+source "arch/arm/mach-imx/imx8m/Kconfig"
+
+source "arch/arm/mach-imx/imxrt/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-mediatek/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-u8500/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/Kconfig"
+
+source "arch/arm/mach-versal/Kconfig"
+
+source "arch/arm/mach-zynqmp-r5/Kconfig"
+
+source "arch/arm/cpu/armv7/Kconfig"
+
+source "arch/arm/cpu/armv8/Kconfig"
+
+source "arch/arm/mach-imx/Kconfig"
+
+source "arch/arm/mach-nexell/Kconfig"
+
+source "board/armltd/total_compute/Kconfig"
+
+source "board/bosch/shc/Kconfig"
+source "board/bosch/guardian/Kconfig"
+source "board/CarMediaLab/flea3/Kconfig"
+source "board/Marvell/aspenite/Kconfig"
+source "board/Marvell/gplugd/Kconfig"
+source "board/Marvell/octeontx/Kconfig"
+source "board/Marvell/octeontx2/Kconfig"
+source "board/armltd/vexpress64/Kconfig"
+source "board/cortina/presidio-asic/Kconfig"
+source "board/broadcom/bcm963158/Kconfig"
+source "board/broadcom/bcm968360bg/Kconfig"
+source "board/broadcom/bcm968580xref/Kconfig"
+source "board/broadcom/bcmns3/Kconfig"
+source "board/cavium/thunderx/Kconfig"
+source "board/cirrus/edb93xx/Kconfig"
+source "board/eets/pdu001/Kconfig"
+source "board/emulation/qemu-arm/Kconfig"
+source "board/freescale/ls2080aqds/Kconfig"
+source "board/freescale/ls2080ardb/Kconfig"
+source "board/freescale/ls1088a/Kconfig"
+source "board/freescale/ls1028a/Kconfig"
+source "board/freescale/ls1021aqds/Kconfig"
+source "board/freescale/ls1043aqds/Kconfig"
+source "board/freescale/ls1021atwr/Kconfig"
+source "board/freescale/ls1021atsn/Kconfig"
+source "board/freescale/ls1021aiot/Kconfig"
+source "board/freescale/ls1046aqds/Kconfig"
+source "board/freescale/ls1043ardb/Kconfig"
+source "board/freescale/ls1046ardb/Kconfig"
+source "board/freescale/ls1046afrwy/Kconfig"
+source "board/freescale/ls1012aqds/Kconfig"
+source "board/freescale/ls1012ardb/Kconfig"
+source "board/freescale/ls1012afrdm/Kconfig"
+source "board/freescale/lx2160a/Kconfig"
+source "board/grinn/chiliboard/Kconfig"
+source "board/hisilicon/hikey/Kconfig"
+source "board/hisilicon/hikey960/Kconfig"
+source "board/hisilicon/poplar/Kconfig"
+source "board/isee/igep003x/Kconfig"
+source "board/kontron/sl28/Kconfig"
+source "board/myir/mys_6ulx/Kconfig"
+source "board/seeed/npi_imx6ull/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/toradex/colibri_pxa270/Kconfig"
+source "board/variscite/dart_6ul/Kconfig"
+source "board/vscom/baltos/Kconfig"
+source "board/phytium/durian/Kconfig"
+source "board/xen/xenguest_arm64/Kconfig"
+source "board/keymile/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