spi: apple: Add driver for Apple SPI controller
[platform/kernel/u-boot.git] / arch / arm / Kconfig
1 menu "ARM architecture"
2         depends on ARM
3
4 config SYS_ARCH
5         default "arm"
6
7 config ARM64
8         bool
9         select PHYS_64BIT
10         select SYS_CACHE_SHIFT_6
11
12 config ARM64_CRC32
13         bool "Enable support for CRC32 instruction"
14         depends on ARM64
15         default y
16         help
17           ARMv8 implements dedicated crc32 instruction for crc32 calculation.
18           This is faster than software crc32 calculation. This instruction may
19           not be present on all ARMv8.0, but is always present on ARMv8.1 and
20           newer.
21
22 config POSITION_INDEPENDENT
23         bool "Generate position-independent pre-relocation code"
24         depends on ARM64 || CPU_V7A
25         help
26           U-Boot expects to be linked to a specific hard-coded address, and to
27           be loaded to and run from that address. This option lifts that
28           restriction, thus allowing the code to be loaded to and executed from
29           almost any 4K aligned address. This logic relies on the relocation
30           information that is embedded in the binary to support U-Boot
31           relocating itself to the top-of-RAM later during execution.
32
33 config INIT_SP_RELATIVE
34         bool "Specify the early stack pointer relative to the .bss section"
35         depends on ARM64
36         default n if ARCH_QEMU
37         default y if POSITION_INDEPENDENT
38         help
39           U-Boot typically uses a hard-coded value for the stack pointer
40           before relocation. Enable this option to instead calculate the
41           initial SP at run-time. This is useful to avoid hard-coding addresses
42           into U-Boot, so that it can be loaded and executed at arbitrary
43           addresses and thus avoid using arbitrary addresses at runtime.
44
45           If this option is enabled, the early stack pointer is set to
46           &_bss_start with a offset value added. The offset is specified by
47           SYS_INIT_SP_BSS_OFFSET.
48
49 config SYS_INIT_SP_BSS_OFFSET
50         int "Early stack offset from the .bss base address"
51         depends on ARM64
52         depends on INIT_SP_RELATIVE
53         default 524288
54         help
55           This option's value is the offset added to &_bss_start in order to
56           calculate the stack pointer. This offset should be large enough so
57           that the early malloc region, global data (gd), and early stack usage
58           do not overlap any appended DTB.
59
60 config LINUX_KERNEL_IMAGE_HEADER
61         depends on ARM64
62         bool
63         help
64           Place a Linux kernel image header at the start of the U-Boot binary.
65           The format of the header is described in the Linux kernel source at
66           Documentation/arm64/booting.txt. This feature is useful since the
67           image header reports the amount of memory (BSS and similar) that
68           U-Boot needs to use, but which isn't part of the binary.
69
70 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
71         depends on LINUX_KERNEL_IMAGE_HEADER
72         hex
73         help
74           The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
75           TEXT_OFFSET value written to the Linux kernel image header.
76
77 config GICV2
78         bool
79
80 config GICV3
81         bool
82
83 config GIC_V3_ITS
84         bool "ARM GICV3 ITS"
85         select IRQ
86         help
87           ARM GICV3 Interrupt translation service (ITS).
88           Basic support for programming locality specific peripheral
89           interrupts (LPI) configuration tables and enable LPI tables.
90           LPI configuration table can be used by u-boot or Linux.
91           ARM GICV3 has limitation, once the LPI table is enabled, LPI
92           configuration table can not be re-programmed, unless GICV3 reset.
93
94 config STATIC_RELA
95         bool
96         default y if ARM64
97
98 config DMA_ADDR_T_64BIT
99         bool
100         default y if ARM64
101
102 config HAS_VBAR
103         bool
104
105 config HAS_THUMB2
106         bool
107
108 config GPIO_EXTRA_HEADER
109         bool
110
111 # Used for compatibility with asm files copied from the kernel
112 config ARM_ASM_UNIFIED
113         bool
114         default y
115
116 # Used for compatibility with asm files copied from the kernel
117 config THUMB2_KERNEL
118         bool
119
120 config SYS_ICACHE_OFF
121         bool "Do not enable icache"
122         help
123           Do not enable instruction cache in U-Boot.
124
125 config SPL_SYS_ICACHE_OFF
126         bool "Do not enable icache in SPL"
127         depends on SPL
128         default SYS_ICACHE_OFF
129         help
130           Do not enable instruction cache in SPL.
131
132 config SYS_DCACHE_OFF
133         bool "Do not enable dcache"
134         help
135           Do not enable data cache in U-Boot.
136
137 config SPL_SYS_DCACHE_OFF
138         bool "Do not enable dcache in SPL"
139         depends on SPL
140         default SYS_DCACHE_OFF
141         help
142           Do not enable data cache in SPL.
143
144 config SYS_ARM_CACHE_CP15
145         bool "CP15 based cache enabling support"
146         help
147           Select this if your processor suports enabling caches by using
148           CP15 registers.
149
150 config SYS_ARM_MMU
151         bool "MMU-based Paged Memory Management Support"
152         select SYS_ARM_CACHE_CP15
153         help
154           Select if you want MMU-based virtualised addressing space
155           support via paged memory management.
156
157 config SYS_ARM_MPU
158         bool 'Use the ARM v7 PMSA Compliant MPU'
159         help
160           Some ARM systems without an MMU have instead a Memory Protection
161           Unit (MPU) that defines the type and permissions for regions of
162           memory.
163           If your CPU has an MPU then you should choose 'y' here unless you
164           know that you do not want to use the MPU.
165
166 # If set, the workarounds for these ARM errata are applied early during U-Boot
167 # startup. Note that in general these options force the workarounds to be
168 # applied; no CPU-type/version detection exists, unlike the similar options in
169 # the Linux kernel. Do not set these options unless they apply!  Also note that
170 # the following can be machine-specific errata. These do have ability to
171 # provide rudimentary version and machine-specific checks, but expect no
172 # product checks:
173 # CONFIG_ARM_ERRATA_430973
174 # CONFIG_ARM_ERRATA_454179
175 # CONFIG_ARM_ERRATA_621766
176 # CONFIG_ARM_ERRATA_798870
177 # CONFIG_ARM_ERRATA_801819
178 # CONFIG_ARM_CORTEX_A8_CVE_2017_5715
179 # CONFIG_ARM_CORTEX_A15_CVE_2017_5715
180
181 config ARM_ERRATA_430973
182         bool
183
184 config ARM_ERRATA_454179
185         bool
186
187 config ARM_ERRATA_621766
188         bool
189
190 config ARM_ERRATA_716044
191         bool
192
193 config ARM_ERRATA_725233
194         bool
195
196 config ARM_ERRATA_742230
197         bool
198
199 config ARM_ERRATA_743622
200         bool
201
202 config ARM_ERRATA_751472
203         bool
204
205 config ARM_ERRATA_761320
206         bool
207
208 config ARM_ERRATA_773022
209         bool
210
211 config ARM_ERRATA_774769
212         bool
213
214 config ARM_ERRATA_794072
215         bool
216
217 config ARM_ERRATA_798870
218         bool
219
220 config ARM_ERRATA_801819
221         bool
222
223 config ARM_ERRATA_826974
224         bool
225
226 config ARM_ERRATA_828024
227         bool
228
229 config ARM_ERRATA_829520
230         bool
231
232 config ARM_ERRATA_833069
233         bool
234
235 config ARM_ERRATA_833471
236         bool
237
238 config ARM_ERRATA_845369
239         bool
240
241 config ARM_ERRATA_852421
242         bool
243
244 config ARM_ERRATA_852423
245         bool
246
247 config ARM_ERRATA_855873
248         bool
249
250 config ARM_CORTEX_A8_CVE_2017_5715
251         bool
252
253 config ARM_CORTEX_A15_CVE_2017_5715
254         bool
255
256 config CPU_ARM720T
257         bool
258         select SYS_CACHE_SHIFT_5
259         imply SYS_ARM_MMU
260
261 config CPU_ARM920T
262         bool
263         select SYS_CACHE_SHIFT_5
264         imply SYS_ARM_MMU
265
266 config CPU_ARM926EJS
267         bool
268         select SYS_CACHE_SHIFT_5
269         imply SYS_ARM_MMU
270
271 config CPU_ARM946ES
272         bool
273         select SYS_CACHE_SHIFT_5
274         imply SYS_ARM_MMU
275
276 config CPU_ARM1136
277         bool
278         select SYS_CACHE_SHIFT_5
279         imply SYS_ARM_MMU
280
281 config CPU_ARM1176
282         bool
283         select HAS_VBAR
284         select SYS_CACHE_SHIFT_5
285         imply SYS_ARM_MMU
286
287 config CPU_V7A
288         bool
289         select HAS_THUMB2
290         select HAS_VBAR
291         select SYS_CACHE_SHIFT_6
292         imply SYS_ARM_MMU
293
294 config CPU_V7M
295         bool
296         select HAS_THUMB2
297         select SYS_ARM_MPU
298         select SYS_CACHE_SHIFT_5
299         select SYS_THUMB_BUILD
300         select THUMB2_KERNEL
301
302 config CPU_V7R
303         bool
304         select HAS_THUMB2
305         select SYS_ARM_CACHE_CP15
306         select SYS_ARM_MPU
307         select SYS_CACHE_SHIFT_6
308
309 config CPU_PXA
310         bool
311         select SYS_CACHE_SHIFT_5
312         imply SYS_ARM_MMU
313
314 config CPU_PXA27X
315         bool
316         select CPU_PXA
317
318 config CPU_SA1100
319         bool
320         select SYS_CACHE_SHIFT_5
321         imply SYS_ARM_MMU
322
323 config SYS_CPU
324         default "arm720t" if CPU_ARM720T
325         default "arm920t" if CPU_ARM920T
326         default "arm926ejs" if CPU_ARM926EJS
327         default "arm946es" if CPU_ARM946ES
328         default "arm1136" if CPU_ARM1136
329         default "arm1176" if CPU_ARM1176
330         default "armv7" if CPU_V7A
331         default "armv7" if CPU_V7R
332         default "armv7m" if CPU_V7M
333         default "pxa" if CPU_PXA
334         default "sa1100" if CPU_SA1100
335         default "armv8" if ARM64
336
337 config SYS_ARM_ARCH
338         int
339         default 4 if CPU_ARM720T
340         default 4 if CPU_ARM920T
341         default 5 if CPU_ARM926EJS
342         default 5 if CPU_ARM946ES
343         default 6 if CPU_ARM1136
344         default 6 if CPU_ARM1176
345         default 7 if CPU_V7A
346         default 7 if CPU_V7M
347         default 7 if CPU_V7R
348         default 5 if CPU_PXA
349         default 4 if CPU_SA1100
350         default 8 if ARM64
351
352 choice
353         prompt "Select the ARM data write cache policy"
354         default SYS_ARM_CACHE_WRITETHROUGH if TARGET_BCMCYGNUS || \
355                                               CPU_PXA || RZA1
356         default SYS_ARM_CACHE_WRITEBACK
357
358 config SYS_ARM_CACHE_WRITEBACK
359         bool "Write-back (WB)"
360         help
361           A write updates the cache only and marks the cache line as dirty.
362           External memory is updated only when the line is evicted or explicitly
363           cleaned.
364
365 config SYS_ARM_CACHE_WRITETHROUGH
366         bool "Write-through (WT)"
367         help
368           A write updates both the cache and the external memory system.
369           This does not mark the cache line as dirty.
370
371 config SYS_ARM_CACHE_WRITEALLOC
372         bool "Write allocation (WA)"
373         help
374           A cache line is allocated on a write miss. This means that executing a
375           store instruction on the processor might cause a burst read to occur.
376           There is a linefill to obtain the data for the cache line, before the
377           write is performed.
378 endchoice
379
380 config ARCH_CPU_INIT
381         bool "Enable ARCH_CPU_INIT"
382         help
383           Some architectures require a call to arch_cpu_init().
384           Say Y here to enable it
385
386 config SYS_ARCH_TIMER
387         bool "ARM Generic Timer support"
388         depends on CPU_V7A || ARM64
389         default y if ARM64
390         help
391           The ARM Generic Timer (aka arch-timer) provides an architected
392           interface to a timer source on an SoC.
393           It is mandatory for ARMv8 implementation and widely available
394           on ARMv7 systems.
395
396 config ARM_SMCCC
397         bool "Support for ARM SMC Calling Convention (SMCCC)"
398         depends on CPU_V7A || ARM64
399         select ARM_PSCI_FW
400         help
401           Say Y here if you want to enable ARM SMC Calling Convention.
402           This should be enabled if U-Boot needs to communicate with system
403           firmware (for example, PSCI) according to SMCCC.
404
405 config SEMIHOSTING
406         bool "support boot from semihosting"
407         help
408           In emulated environments, semihosting is a way for
409           the hosted environment to call out to the emulator to
410           retrieve files from the host machine.
411
412 config SYS_THUMB_BUILD
413         bool "Build U-Boot using the Thumb instruction set"
414         depends on !ARM64
415         help
416            Use this flag to build U-Boot using the Thumb instruction set for
417            ARM architectures. Thumb instruction set provides better code
418            density. For ARM architectures that support Thumb2 this flag will
419            result in Thumb2 code generated by GCC.
420
421 config SPL_SYS_THUMB_BUILD
422         bool "Build SPL using the Thumb instruction set"
423         default y if SYS_THUMB_BUILD
424         depends on !ARM64 && SPL
425         help
426            Use this flag to build SPL using the Thumb instruction set for
427            ARM architectures. Thumb instruction set provides better code
428            density. For ARM architectures that support Thumb2 this flag will
429            result in Thumb2 code generated by GCC.
430
431 config TPL_SYS_THUMB_BUILD
432         bool "Build TPL using the Thumb instruction set"
433         default y if SYS_THUMB_BUILD
434         depends on TPL && !ARM64
435         help
436            Use this flag to build TPL using the Thumb instruction set for
437            ARM architectures. Thumb instruction set provides better code
438            density. For ARM architectures that support Thumb2 this flag will
439            result in Thumb2 code generated by GCC.
440
441
442 config SYS_L2CACHE_OFF
443         bool "L2cache off"
444         help
445           If SoC does not support L2CACHE or one does not want to enable
446           L2CACHE, choose this option.
447
448 config ENABLE_ARM_SOC_BOOT0_HOOK
449         bool "prepare BOOT0 header"
450         help
451           If the SoC's BOOT0 requires a header area filled with (magic)
452           values, then choose this option, and create a file included as
453           <asm/arch/boot0.h> which contains the required assembler code.
454
455 config USE_ARCH_MEMCPY
456         bool "Use an assembly optimized implementation of memcpy"
457         default y if !ARM64
458         depends on !ARM64 || (ARM64 && (GCC_VERSION >= 90400))
459         help
460           Enable the generation of an optimized version of memcpy.
461           Such an implementation may be faster under some conditions
462           but may increase the binary size.
463
464 config SPL_USE_ARCH_MEMCPY
465         bool "Use an assembly optimized implementation of memcpy for SPL"
466         default y if USE_ARCH_MEMCPY
467         depends on SPL
468         help
469           Enable the generation of an optimized version of memcpy.
470           Such an implementation may be faster under some conditions
471           but may increase the binary size.
472
473 config TPL_USE_ARCH_MEMCPY
474         bool "Use an assembly optimized implementation of memcpy for TPL"
475         default y if USE_ARCH_MEMCPY
476         depends on TPL
477         help
478           Enable the generation of an optimized version of memcpy.
479           Such an implementation may be faster under some conditions
480           but may increase the binary size.
481
482 config USE_ARCH_MEMMOVE
483         bool "Use an assembly optimized implementation of memmove" if !ARM64
484         default USE_ARCH_MEMCPY if ARM64
485         depends on ARM64
486         help
487           Enable the generation of an optimized version of memmove.
488           Such an implementation may be faster under some conditions
489           but may increase the binary size.
490
491 config SPL_USE_ARCH_MEMMOVE
492         bool "Use an assembly optimized implementation of memmove for SPL" if !ARM64
493         default SPL_USE_ARCH_MEMCPY if ARM64
494         depends on SPL && ARM64
495         help
496           Enable the generation of an optimized version of memmove.
497           Such an implementation may be faster under some conditions
498           but may increase the binary size.
499
500 config TPL_USE_ARCH_MEMMOVE
501         bool "Use an assembly optimized implementation of memmove for TPL" if !ARM64
502         default TPL_USE_ARCH_MEMCPY if ARM64
503         depends on TPL && ARM64
504         help
505           Enable the generation of an optimized version of memmove.
506           Such an implementation may be faster under some conditions
507           but may increase the binary size.
508
509 config USE_ARCH_MEMSET
510         bool "Use an assembly optimized implementation of memset"
511         default y if !ARM64
512         depends on !ARM64 || (ARM64 && (GCC_VERSION >= 90400))
513         help
514           Enable the generation of an optimized version of memset.
515           Such an implementation may be faster under some conditions
516           but may increase the binary size.
517
518 config SPL_USE_ARCH_MEMSET
519         bool "Use an assembly optimized implementation of memset for SPL"
520         default y if USE_ARCH_MEMSET
521         depends on SPL
522         help
523           Enable the generation of an optimized version of memset.
524           Such an implementation may be faster under some conditions
525           but may increase the binary size.
526
527 config TPL_USE_ARCH_MEMSET
528         bool "Use an assembly optimized implementation of memset for TPL"
529         default y if USE_ARCH_MEMSET
530         depends on TPL
531         help
532           Enable the generation of an optimized version of memset.
533           Such an implementation may be faster under some conditions
534           but may increase the binary size.
535
536 config ARM64_SUPPORT_AARCH32
537         bool "ARM64 system support AArch32 execution state"
538         depends on ARM64
539         default y if !TARGET_THUNDERX_88XX
540         help
541           This ARM64 system supports AArch32 execution state.
542
543 choice
544         prompt "Target select"
545         default TARGET_HIKEY
546
547 config ARCH_AT91
548         bool "Atmel AT91"
549         select GPIO_EXTRA_HEADER
550         select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
551         select SPL_SEPARATE_BSS if SPL
552
553 config ARCH_DAVINCI
554         bool "TI DaVinci"
555         select CPU_ARM926EJS
556         select GPIO_EXTRA_HEADER
557         select SPL_DM_SPI if SPL
558         imply CMD_SAVES
559         help
560           Support for TI's DaVinci platform.
561
562 config ARCH_KIRKWOOD
563         bool "Marvell Kirkwood"
564         select ARCH_MISC_INIT
565         select BOARD_EARLY_INIT_F
566         select CPU_ARM926EJS
567         select GPIO_EXTRA_HEADER
568
569 config ARCH_MVEBU
570         bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
571         select DM
572         select DM_ETH
573         select DM_SERIAL
574         select DM_SPI
575         select DM_SPI_FLASH
576         select GPIO_EXTRA_HEADER
577         select SPL_DM_SPI if SPL
578         select SPL_DM_SPI_FLASH if SPL
579         select OF_CONTROL
580         select OF_SEPARATE
581         select SPI
582         imply CMD_DM
583
584 config ARCH_ORION5X
585         bool "Marvell Orion"
586         select CPU_ARM926EJS
587         select GPIO_EXTRA_HEADER
588
589 config TARGET_STV0991
590         bool "Support stv0991"
591         select CPU_V7A
592         select DM
593         select DM_SERIAL
594         select DM_SPI
595         select DM_SPI_FLASH
596         select GPIO_EXTRA_HEADER
597         select PL01X_SERIAL
598         select SPI
599         select SPI_FLASH
600         imply CMD_DM
601
602 config ARCH_BCM283X
603         bool "Broadcom BCM283X family"
604         select DM
605         select DM_GPIO
606         select DM_SERIAL
607         select GPIO_EXTRA_HEADER
608         select OF_CONTROL
609         select PL01X_SERIAL
610         select SERIAL_SEARCH_ALL
611         imply CMD_DM
612         imply FAT_WRITE
613
614 config ARCH_BCM63158
615         bool "Broadcom BCM63158 family"
616         select DM
617         select OF_CONTROL
618         imply CMD_DM
619
620 config ARCH_BCM68360
621         bool "Broadcom BCM68360 family"
622         select DM
623         select OF_CONTROL
624         imply CMD_DM
625
626 config ARCH_BCM6858
627         bool "Broadcom BCM6858 family"
628         select DM
629         select OF_CONTROL
630         imply CMD_DM
631
632 config ARCH_BCMSTB
633         bool "Broadcom BCM7XXX family"
634         select CPU_V7A
635         select DM
636         select GPIO_EXTRA_HEADER
637         select OF_CONTROL
638         imply CMD_DM
639         imply OF_HAS_PRIOR_STAGE
640         help
641           This enables support for Broadcom ARM-based set-top box
642           chipsets, including the 7445 family of chips.
643
644 config TARGET_VEXPRESS_CA9X4
645         bool "Support vexpress_ca9x4"
646         select CPU_V7A
647         select PL011_SERIAL
648
649 config TARGET_BCMCYGNUS
650         bool "Support bcmcygnus"
651         select CPU_V7A
652         select GPIO_EXTRA_HEADER
653         imply BCM_SF2_ETH
654         imply BCM_SF2_ETH_GMAC
655         imply CMD_HASH
656         imply CRC32_VERIFY
657         imply FAT_WRITE
658         imply HASH_VERIFY
659         imply NETDEVICES
660
661 config TARGET_BCMNS2
662         bool "Support Broadcom Northstar2"
663         select ARM64
664         select GPIO_EXTRA_HEADER
665         help
666           Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
667           ARMv8 Cortex-A57 processors targeting a broad range of networking
668           applications.
669
670 config TARGET_BCMNS3
671         bool "Support Broadcom NS3"
672         select ARM64
673         select BOARD_LATE_INIT
674         help
675           Support for Broadcom Northstar 3 SoCs. NS3 is a octo-core 64-bit
676           ARMv8 Cortex-A72 processors targeting a broad range of networking
677           applications.
678
679 config ARCH_EXYNOS
680         bool "Samsung EXYNOS"
681         select DM
682         select DM_GPIO
683         select DM_I2C
684         select DM_ETH
685         select DM_KEYBOARD
686         select DM_SERIAL
687         select DM_SPI
688         select DM_SPI_FLASH
689         select SPI
690         select GPIO_EXTRA_HEADER
691         imply SYS_THUMB_BUILD
692         imply CMD_DM
693         imply FAT_WRITE
694
695 config ARCH_S5PC1XX
696         bool "Samsung S5PC1XX"
697         select CPU_V7A
698         select DM
699         select DM_GPIO
700         select DM_I2C
701         select DM_SERIAL
702         select GPIO_EXTRA_HEADER
703         imply CMD_DM
704
705 config ARCH_HIGHBANK
706         bool "Calxeda Highbank"
707         select CPU_V7A
708         select PL01X_SERIAL
709         select DM
710         select DM_SERIAL
711         select OF_CONTROL
712         select CLK
713         select CLK_CCF
714         select AHCI
715         select DM_ETH
716         select PHYS_64BIT
717         imply OF_HAS_PRIOR_STAGE
718
719 config ARCH_INTEGRATOR
720         bool "ARM Ltd. Integrator family"
721         select DM
722         select DM_SERIAL
723         select GPIO_EXTRA_HEADER
724         select PL01X_SERIAL
725         imply CMD_DM
726
727 config ARCH_IPQ40XX
728         bool "Qualcomm IPQ40xx SoCs"
729         select CPU_V7A
730         select DM
731         select DM_GPIO
732         select DM_SERIAL
733         select DM_RESET
734         select GPIO_EXTRA_HEADER
735         select MSM_SMEM
736         select PINCTRL
737         select CLK
738         select SMEM
739         select OF_CONTROL
740         imply CMD_DM
741
742 config ARCH_KEYSTONE
743         bool "TI Keystone"
744         select CMD_POWEROFF
745         select CPU_V7A
746         select DDR_SPD
747         select GPIO_EXTRA_HEADER
748         select SUPPORT_SPL
749         select SYS_ARCH_TIMER
750         select SYS_THUMB_BUILD
751         imply CMD_MTDPARTS
752         imply CMD_SAVES
753         imply FIT
754
755 config ARCH_K3
756         bool "Texas Instruments' K3 Architecture"
757         select SPL
758         select SUPPORT_SPL
759         select FIT
760
761 config ARCH_OMAP2PLUS
762         bool "TI OMAP2+"
763         select CPU_V7A
764         select GPIO_EXTRA_HEADER
765         select SPL_BOARD_INIT if SPL
766         select SPL_STACK_R if SPL
767         select SUPPORT_SPL
768         imply TI_SYSC if DM && OF_CONTROL
769         imply FIT
770
771 config ARCH_MESON
772         bool "Amlogic Meson"
773         select GPIO_EXTRA_HEADER
774         imply DISTRO_DEFAULTS
775         imply DM_RNG
776         help
777           Support for the Meson SoC family developed by Amlogic Inc.,
778           targeted at media players and tablet computers. We currently
779           support the S905 (GXBaby) 64-bit SoC.
780
781 config ARCH_MEDIATEK
782         bool "MediaTek SoCs"
783         select DM
784         select GPIO_EXTRA_HEADER
785         select OF_CONTROL
786         select SPL_DM if SPL
787         select SPL_LIBCOMMON_SUPPORT if SPL
788         select SPL_LIBGENERIC_SUPPORT if SPL
789         select SPL_OF_CONTROL if SPL
790         select SUPPORT_SPL
791         help
792           Support for the MediaTek SoCs family developed by MediaTek Inc.
793           Please refer to doc/README.mediatek for more information.
794
795 config ARCH_LPC32XX
796         bool "NXP LPC32xx platform"
797         select CPU_ARM926EJS
798         select DM
799         select DM_GPIO
800         select DM_SERIAL
801         select GPIO_EXTRA_HEADER
802         select SPL_DM if SPL
803         select SUPPORT_SPL
804         imply CMD_DM
805
806 config ARCH_IMX8
807         bool "NXP i.MX8 platform"
808         select ARM64
809         select DM
810         select GPIO_EXTRA_HEADER
811         select MACH_IMX
812         select OF_CONTROL
813         select ENABLE_ARM_SOC_BOOT0_HOOK
814
815 config ARCH_IMX8M
816         bool "NXP i.MX8M platform"
817         select ARM64
818         select GPIO_EXTRA_HEADER
819         select MACH_IMX
820         select SYS_FSL_HAS_SEC if IMX_HAB
821         select SYS_FSL_SEC_COMPAT_4
822         select SYS_FSL_SEC_LE
823         select SYS_I2C_MXC
824         select DM
825         select SUPPORT_SPL
826         imply CMD_DM
827
828 config ARCH_IMX8ULP
829         bool "NXP i.MX8ULP platform"
830         select ARM64
831         select DM
832         select MACH_IMX
833         select OF_CONTROL
834         select SUPPORT_SPL
835         select GPIO_EXTRA_HEADER
836         imply CMD_DM
837
838 config ARCH_IMXRT
839         bool "NXP i.MXRT platform"
840         select CPU_V7M
841         select DM
842         select DM_SERIAL
843         select GPIO_EXTRA_HEADER
844         select MACH_IMX
845         select SUPPORT_SPL
846         imply CMD_DM
847
848 config ARCH_MX23
849         bool "NXP i.MX23 family"
850         select CPU_ARM926EJS
851         select GPIO_EXTRA_HEADER
852         select MACH_IMX
853         select PL011_SERIAL
854         select SUPPORT_SPL
855
856 config ARCH_MX28
857         bool "NXP i.MX28 family"
858         select CPU_ARM926EJS
859         select GPIO_EXTRA_HEADER
860         select PL011_SERIAL
861         select MACH_IMX
862         select SUPPORT_SPL
863
864 config ARCH_MX31
865         bool "NXP i.MX31 family"
866         select CPU_ARM1136
867         select GPIO_EXTRA_HEADER
868         select MACH_IMX
869
870 config ARCH_MX7ULP
871         bool "NXP MX7ULP"
872         select CPU_V7A
873         select GPIO_EXTRA_HEADER
874         select MACH_IMX
875         select SYS_FSL_HAS_SEC if IMX_HAB
876         select SYS_FSL_SEC_COMPAT_4
877         select SYS_FSL_SEC_LE
878         select ROM_UNIFIED_SECTIONS
879         imply MXC_GPIO
880         imply SYS_THUMB_BUILD
881
882 config ARCH_MX7
883         bool "Freescale MX7"
884         select ARCH_MISC_INIT
885         select CPU_V7A
886         select GPIO_EXTRA_HEADER
887         select MACH_IMX
888         select SYS_FSL_HAS_SEC if IMX_HAB
889         select SYS_FSL_SEC_COMPAT_4
890         select SYS_FSL_SEC_LE
891         imply BOARD_EARLY_INIT_F
892         imply MXC_GPIO
893         imply SYS_THUMB_BUILD
894
895 config ARCH_MX6
896         bool "Freescale MX6"
897         select CPU_V7A
898         select GPIO_EXTRA_HEADER
899         select MACH_IMX
900         select SYS_FSL_HAS_SEC
901         select SYS_FSL_SEC_COMPAT_4
902         select SYS_FSL_SEC_LE
903         imply MXC_GPIO
904         imply SYS_THUMB_BUILD
905
906 if ARCH_MX6
907 config SPL_LDSCRIPT
908         default "arch/arm/mach-omap2/u-boot-spl.lds"
909 endif
910
911 config ARCH_MX5
912         bool "Freescale MX5"
913         select BOARD_EARLY_INIT_F
914         select CPU_V7A
915         select GPIO_EXTRA_HEADER
916         select MACH_IMX
917         imply MXC_GPIO
918
919 config ARCH_NEXELL
920         bool "Nexell S5P4418/S5P6818 SoC"
921         select ENABLE_ARM_SOC_BOOT0_HOOK
922         select DM
923         select GPIO_EXTRA_HEADER
924
925 config ARCH_APPLE
926         bool "Apple SoCs"
927         select ARM64
928         select BLK
929         select CLK
930         select CMD_USB
931         select DM
932         select DM_GPIO
933         select DM_KEYBOARD
934         select DM_MAILBOX
935         select DM_RESET
936         select DM_SERIAL
937         select DM_SPI
938         select DM_USB
939         select DM_VIDEO
940         select IOMMU
941         select LINUX_KERNEL_IMAGE_HEADER
942         select OF_CONTROL
943         select PINCTRL
944         select POSITION_INDEPENDENT
945         select POWER_DOMAIN
946         select REGMAP
947         select SPI
948         select SYSCON
949         select SYSRESET
950         select SYSRESET_WATCHDOG
951         select SYSRESET_WATCHDOG_AUTO
952         select USB
953         imply CMD_DM
954         imply CMD_GPT
955         imply DISTRO_DEFAULTS
956         imply OF_HAS_PRIOR_STAGE
957
958 config ARCH_OWL
959         bool "Actions Semi OWL SoCs"
960         select DM
961         select DM_ETH
962         select DM_SERIAL
963         select GPIO_EXTRA_HEADER
964         select OWL_SERIAL
965         select CLK
966         select CLK_OWL
967         select OF_CONTROL
968         select SYS_RELOC_GD_ENV_ADDR
969         imply CMD_DM
970
971 config ARCH_QEMU
972         bool "QEMU Virtual Platform"
973         select DM
974         select DM_SERIAL
975         select OF_CONTROL
976         select PL01X_SERIAL
977         imply CMD_DM
978         imply DM_RNG
979         imply DM_RTC
980         imply RTC_PL031
981         imply OF_HAS_PRIOR_STAGE
982
983 config ARCH_RMOBILE
984         bool "Renesas ARM SoCs"
985         select DM
986         select DM_SERIAL
987         select GPIO_EXTRA_HEADER
988         imply BOARD_EARLY_INIT_F
989         imply CMD_DM
990         imply FAT_WRITE
991         imply SYS_THUMB_BUILD
992         imply ARCH_MISC_INIT if DISPLAY_CPUINFO
993
994 config ARCH_SNAPDRAGON
995         bool "Qualcomm Snapdragon SoCs"
996         select ARM64
997         select DM
998         select DM_GPIO
999         select DM_SERIAL
1000         select GPIO_EXTRA_HEADER
1001         select MSM_SMEM
1002         select OF_CONTROL
1003         select OF_SEPARATE
1004         select SMEM
1005         select SPMI
1006         imply CMD_DM
1007
1008 config ARCH_SOCFPGA
1009         bool "Altera SOCFPGA family"
1010         select ARCH_EARLY_INIT_R
1011         select ARCH_MISC_INIT if !TARGET_SOCFPGA_ARRIA10
1012         select ARM64 if TARGET_SOCFPGA_SOC64
1013         select CPU_V7A if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
1014         select DM
1015         select DM_SERIAL
1016         select GICV2
1017         select GPIO_EXTRA_HEADER
1018         select ENABLE_ARM_SOC_BOOT0_HOOK if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
1019         select OF_CONTROL
1020         select SPL_DM_RESET if DM_RESET
1021         select SPL_DM_SERIAL
1022         select SPL_LIBCOMMON_SUPPORT
1023         select SPL_LIBGENERIC_SUPPORT
1024         select SPL_NAND_SUPPORT if SPL_NAND_DENALI
1025         select SPL_OF_CONTROL
1026         select SPL_SEPARATE_BSS if TARGET_SOCFPGA_SOC64
1027         select SPL_SERIAL
1028         select SPL_SYSRESET
1029         select SPL_WATCHDOG
1030         select SUPPORT_SPL
1031         select SYS_NS16550
1032         select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
1033         select SYSRESET
1034         select SYSRESET_SOCFPGA if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
1035         select SYSRESET_SOCFPGA_SOC64 if TARGET_SOCFPGA_SOC64
1036         imply CMD_DM
1037         imply CMD_MTDPARTS
1038         imply CRC32_VERIFY
1039         imply DM_SPI
1040         imply DM_SPI_FLASH
1041         imply FAT_WRITE
1042         imply SPL
1043         imply SPL_DM
1044         imply SPL_DM_SPI
1045         imply SPL_DM_SPI_FLASH
1046         imply SPL_LIBDISK_SUPPORT
1047         imply SPL_MMC
1048         imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
1049         imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
1050         imply SPL_SPI_FLASH_SUPPORT
1051         imply SPL_SPI
1052         imply L2X0_CACHE
1053
1054 config ARCH_SUNXI
1055         bool "Support sunxi (Allwinner) SoCs"
1056         select BINMAN
1057         select CMD_GPIO
1058         select CMD_MMC if MMC
1059         select CMD_USB if DISTRO_DEFAULTS && USB_HOST
1060         select CLK
1061         select DM
1062         select DM_ETH
1063         select DM_GPIO
1064         select DM_I2C if I2C
1065         select DM_KEYBOARD
1066         select DM_MMC if MMC
1067         select DM_SCSI if SCSI
1068         select DM_SERIAL
1069         select GPIO_EXTRA_HEADER
1070         select OF_BOARD_SETUP
1071         select OF_CONTROL
1072         select OF_SEPARATE
1073         select SPECIFY_CONSOLE_INDEX
1074         select SPL_SEPARATE_BSS if SPL
1075         select SPL_STACK_R if SPL
1076         select SPL_SYS_MALLOC_SIMPLE if SPL
1077         select SPL_SYS_THUMB_BUILD if !ARM64
1078         select SUNXI_GPIO
1079         select SYS_NS16550
1080         select SYS_THUMB_BUILD if !ARM64
1081         select USB if DISTRO_DEFAULTS
1082         select USB_KEYBOARD if DISTRO_DEFAULTS && USB_HOST
1083         select USB_STORAGE if DISTRO_DEFAULTS && USB_HOST
1084         select SPL_USE_TINY_PRINTF
1085         select USE_PREBOOT
1086         select SYS_RELOC_GD_ENV_ADDR
1087         imply BOARD_LATE_INIT
1088         imply CMD_DM
1089         imply CMD_GPT
1090         imply CMD_UBI if MTD_RAW_NAND
1091         imply DISTRO_DEFAULTS
1092         imply FAT_WRITE
1093         imply FIT
1094         imply OF_LIBFDT_OVERLAY
1095         imply PRE_CONSOLE_BUFFER
1096         imply SPL_GPIO
1097         imply SPL_LIBCOMMON_SUPPORT
1098         imply SPL_LIBGENERIC_SUPPORT
1099         imply SPL_MMC if MMC
1100         imply SPL_POWER
1101         imply SPL_SERIAL
1102         imply SYSRESET
1103         imply SYSRESET_WATCHDOG
1104         imply SYSRESET_WATCHDOG_AUTO
1105         imply USB_GADGET
1106         imply WDT
1107
1108 config ARCH_U8500
1109         bool "ST-Ericsson U8500 Series"
1110         select CPU_V7A
1111         select DM
1112         select DM_GPIO
1113         select DM_MMC if MMC
1114         select DM_SERIAL
1115         select DM_USB_GADGET if DM_USB
1116         select OF_CONTROL
1117         select SYSRESET
1118         select TIMER
1119         imply AB8500_USB_PHY
1120         imply ARM_PL180_MMCI
1121         imply CLK
1122         imply DM_PMIC
1123         imply DM_RTC
1124         imply NOMADIK_GPIO
1125         imply NOMADIK_MTU_TIMER
1126         imply PHY
1127         imply PL01X_SERIAL
1128         imply PMIC_AB8500
1129         imply RTC_PL031
1130         imply SYS_THUMB_BUILD
1131         imply SYSRESET_SYSCON
1132
1133 config ARCH_VERSAL
1134         bool "Support Xilinx Versal Platform"
1135         select ARM64
1136         select CLK
1137         select DM
1138         select DM_ETH if NET
1139         select DM_MMC if MMC
1140         select DM_SERIAL
1141         select GICV3
1142         select GPIO_EXTRA_HEADER
1143         select OF_CONTROL
1144         select SOC_DEVICE
1145         imply BOARD_LATE_INIT
1146         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1147
1148 config ARCH_VF610
1149         bool "Freescale Vybrid"
1150         select CPU_V7A
1151         select GPIO_EXTRA_HEADER
1152         select MACH_IMX
1153         select SYS_FSL_ERRATUM_ESDHC111
1154         imply CMD_MTDPARTS
1155         imply MTD_RAW_NAND
1156
1157 config ARCH_ZYNQ
1158         bool "Xilinx Zynq based platform"
1159         select CLK
1160         select CLK_ZYNQ
1161         select CPU_V7A
1162         select DM
1163         select DM_ETH if NET
1164         select DM_MMC if MMC
1165         select DM_SERIAL
1166         select DM_SPI
1167         select DM_SPI_FLASH
1168         select GPIO_EXTRA_HEADER
1169         select OF_CONTROL
1170         select SPI
1171         select SPL_BOARD_INIT if SPL
1172         select SPL_CLK if SPL
1173         select SPL_DM if SPL
1174         select SPL_DM_SPI if SPL
1175         select SPL_DM_SPI_FLASH if SPL
1176         select SPL_OF_CONTROL if SPL
1177         select SPL_SEPARATE_BSS if SPL
1178         select SUPPORT_SPL
1179         imply ARCH_EARLY_INIT_R
1180         imply BOARD_LATE_INIT
1181         imply CMD_CLK
1182         imply CMD_DM
1183         imply CMD_SPL
1184         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1185         imply FAT_WRITE
1186
1187 config ARCH_ZYNQMP_R5
1188         bool "Xilinx ZynqMP R5 based platform"
1189         select CLK
1190         select CPU_V7R
1191         select DM
1192         select DM_ETH if NET
1193         select DM_MMC if MMC
1194         select DM_SERIAL
1195         select GPIO_EXTRA_HEADER
1196         select OF_CONTROL
1197         imply CMD_DM
1198         imply DM_USB_GADGET
1199
1200 config ARCH_ZYNQMP
1201         bool "Xilinx ZynqMP based platform"
1202         select ARM64
1203         select CLK
1204         select DM
1205         select DM_ETH if NET
1206         select DM_MAILBOX
1207         select DM_MMC if MMC
1208         select DM_SERIAL
1209         select DM_SPI if SPI
1210         select DM_SPI_FLASH if DM_SPI
1211         imply FIRMWARE
1212         select GICV2
1213         select GPIO_EXTRA_HEADER
1214         select OF_CONTROL
1215         select SPL_BOARD_INIT if SPL
1216         select SPL_CLK if SPL
1217         select SPL_DM if SPL
1218         select SPL_DM_SPI if SPI && SPL_DM
1219         select SPL_DM_SPI_FLASH if SPL_DM_SPI
1220         select SPL_DM_MAILBOX if SPL
1221         imply SPL_FIRMWARE if SPL
1222         select SPL_SEPARATE_BSS if SPL
1223         select SUPPORT_SPL
1224         select ZYNQMP_IPI
1225         select SOC_DEVICE
1226         imply BOARD_LATE_INIT
1227         imply CMD_DM
1228         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1229         imply FAT_WRITE
1230         imply MP
1231         imply DM_USB_GADGET
1232         imply ZYNQMP_GPIO_MODEPIN if DM_GPIO && USB
1233
1234 config ARCH_TEGRA
1235         bool "NVIDIA Tegra"
1236         select GPIO_EXTRA_HEADER
1237         imply DISTRO_DEFAULTS
1238         imply FAT_WRITE
1239
1240 config TARGET_VEXPRESS64_AEMV8A
1241         bool "Support vexpress_aemv8a"
1242         select ARM64
1243         select GPIO_EXTRA_HEADER
1244         select PL01X_SERIAL
1245
1246 config TARGET_VEXPRESS64_BASE_FVP
1247         bool "Support Versatile Express ARMv8a FVP BASE model"
1248         select ARM64
1249         select GPIO_EXTRA_HEADER
1250         select PL01X_SERIAL
1251         select SEMIHOSTING
1252
1253 config TARGET_VEXPRESS64_JUNO
1254         bool "Support Versatile Express Juno Development Platform"
1255         select ARM64
1256         select GPIO_EXTRA_HEADER
1257         select PL01X_SERIAL
1258         select DM
1259         select OF_CONTROL
1260         select CLK
1261         select DM_SERIAL
1262         select ARM_PSCI_FW
1263         select PSCI_RESET
1264         select DM_ETH
1265         select BLK
1266         select USB
1267         imply OF_HAS_PRIOR_STAGE
1268
1269 config TARGET_TOTAL_COMPUTE
1270         bool "Support Total Compute Platform"
1271         select ARM64
1272         select PL01X_SERIAL
1273         select DM
1274         select DM_SERIAL
1275         select DM_MMC
1276         select DM_GPIO
1277
1278 config TARGET_LS2080A_EMU
1279         bool "Support ls2080a_emu"
1280         select ARCH_LS2080A
1281         select ARM64
1282         select ARMV8_MULTIENTRY
1283         select FSL_DDR_SYNC_REFRESH
1284         select GPIO_EXTRA_HEADER
1285         help
1286           Support for Freescale LS2080A_EMU platform.
1287           The LS2080A Development System (EMULATOR) is a pre-silicon
1288           development platform that supports the QorIQ LS2080A
1289           Layerscape Architecture processor.
1290
1291 config TARGET_LS1088AQDS
1292         bool "Support ls1088aqds"
1293         select ARCH_LS1088A
1294         select ARM64
1295         select ARMV8_MULTIENTRY
1296         select ARCH_SUPPORT_TFABOOT
1297         select BOARD_LATE_INIT
1298         select GPIO_EXTRA_HEADER
1299         select SUPPORT_SPL
1300         select FSL_DDR_INTERACTIVE if !SD_BOOT
1301         help
1302           Support for NXP LS1088AQDS platform.
1303           The LS1088A Development System (QDS) is a high-performance
1304           development platform that supports the QorIQ LS1088A
1305           Layerscape Architecture processor.
1306
1307 config TARGET_LS2080AQDS
1308         bool "Support ls2080aqds"
1309         select ARCH_LS2080A
1310         select ARM64
1311         select ARMV8_MULTIENTRY
1312         select ARCH_SUPPORT_TFABOOT
1313         select BOARD_LATE_INIT
1314         select GPIO_EXTRA_HEADER
1315         select SUPPORT_SPL
1316         imply SCSI
1317         imply SCSI_AHCI
1318         select FSL_DDR_BIST
1319         select FSL_DDR_INTERACTIVE if !SPL
1320         help
1321           Support for Freescale LS2080AQDS platform.
1322           The LS2080A Development System (QDS) is a high-performance
1323           development platform that supports the QorIQ LS2080A
1324           Layerscape Architecture processor.
1325
1326 config TARGET_LS2080ARDB
1327         bool "Support ls2080ardb"
1328         select ARCH_LS2080A
1329         select ARM64
1330         select ARMV8_MULTIENTRY
1331         select ARCH_SUPPORT_TFABOOT
1332         select BOARD_LATE_INIT
1333         select SUPPORT_SPL
1334         select FSL_DDR_BIST
1335         select FSL_DDR_INTERACTIVE if !SPL
1336         select GPIO_EXTRA_HEADER
1337         imply SCSI
1338         imply SCSI_AHCI
1339         help
1340           Support for Freescale LS2080ARDB platform.
1341           The LS2080A Reference design board (RDB) is a high-performance
1342           development platform that supports the QorIQ LS2080A
1343           Layerscape Architecture processor.
1344
1345 config TARGET_LS2081ARDB
1346         bool "Support ls2081ardb"
1347         select ARCH_LS2080A
1348         select ARM64
1349         select ARMV8_MULTIENTRY
1350         select BOARD_LATE_INIT
1351         select GPIO_EXTRA_HEADER
1352         select SUPPORT_SPL
1353         help
1354           Support for Freescale LS2081ARDB platform.
1355           The LS2081A Reference design board (RDB) is a high-performance
1356           development platform that supports the QorIQ LS2081A/LS2041A
1357           Layerscape Architecture processor.
1358
1359 config TARGET_LX2160ARDB
1360         bool "Support lx2160ardb"
1361         select ARCH_LX2160A
1362         select ARM64
1363         select ARMV8_MULTIENTRY
1364         select ARCH_SUPPORT_TFABOOT
1365         select BOARD_LATE_INIT
1366         select GPIO_EXTRA_HEADER
1367         help
1368           Support for NXP LX2160ARDB platform.
1369           The lx2160ardb (LX2160A Reference design board (RDB)
1370           is a high-performance development platform that supports the
1371           QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1372
1373 config TARGET_LX2160AQDS
1374         bool "Support lx2160aqds"
1375         select ARCH_LX2160A
1376         select ARM64
1377         select ARMV8_MULTIENTRY
1378         select ARCH_SUPPORT_TFABOOT
1379         select BOARD_LATE_INIT
1380         select GPIO_EXTRA_HEADER
1381         help
1382           Support for NXP LX2160AQDS platform.
1383           The lx2160aqds (LX2160A QorIQ Development System (QDS)
1384           is a high-performance development platform that supports the
1385           QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1386
1387 config TARGET_LX2162AQDS
1388         bool "Support lx2162aqds"
1389         select ARCH_LX2162A
1390         select ARCH_MISC_INIT
1391         select ARM64
1392         select ARMV8_MULTIENTRY
1393         select ARCH_SUPPORT_TFABOOT
1394         select BOARD_LATE_INIT
1395         select GPIO_EXTRA_HEADER
1396         help
1397           Support for NXP LX2162AQDS platform.
1398           The lx2162aqds support is based on LX2160A Layerscape Architecture processor.
1399
1400 config TARGET_HIKEY
1401         bool "Support HiKey 96boards Consumer Edition Platform"
1402         select ARM64
1403         select DM
1404         select DM_GPIO
1405         select DM_SERIAL
1406         select GPIO_EXTRA_HEADER
1407         select OF_CONTROL
1408         select PL01X_SERIAL
1409         select SPECIFY_CONSOLE_INDEX
1410         imply CMD_DM
1411           help
1412           Support for HiKey 96boards platform. It features a HI6220
1413           SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
1414
1415 config TARGET_HIKEY960
1416         bool "Support HiKey960 96boards Consumer Edition Platform"
1417         select ARM64
1418         select DM
1419         select DM_SERIAL
1420         select GPIO_EXTRA_HEADER
1421         select OF_CONTROL
1422         select PL01X_SERIAL
1423         imply CMD_DM
1424           help
1425           Support for HiKey960 96boards platform. It features a HI3660
1426           SoC, with 4xA73 CPU, 4xA53 CPU, MALI-G71 GPU, and 3GB RAM.
1427
1428 config TARGET_POPLAR
1429         bool "Support Poplar 96boards Enterprise Edition Platform"
1430         select ARM64
1431         select DM
1432         select DM_SERIAL
1433         select GPIO_EXTRA_HEADER
1434         select OF_CONTROL
1435         select PL01X_SERIAL
1436         imply CMD_DM
1437           help
1438           Support for Poplar 96boards EE platform. It features a HI3798cv200
1439           SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
1440           making it capable of running any commercial set-top solution based on
1441           Linux or Android.
1442
1443 config TARGET_LS1012AQDS
1444         bool "Support ls1012aqds"
1445         select ARCH_LS1012A
1446         select ARM64
1447         select ARCH_SUPPORT_TFABOOT
1448         select BOARD_LATE_INIT
1449         select GPIO_EXTRA_HEADER
1450         help
1451           Support for Freescale LS1012AQDS platform.
1452           The LS1012A Development System (QDS) is a high-performance
1453           development platform that supports the QorIQ LS1012A
1454           Layerscape Architecture processor.
1455
1456 config TARGET_LS1012ARDB
1457         bool "Support ls1012ardb"
1458         select ARCH_LS1012A
1459         select ARM64
1460         select ARCH_SUPPORT_TFABOOT
1461         select BOARD_LATE_INIT
1462         select GPIO_EXTRA_HEADER
1463         imply SCSI
1464         imply SCSI_AHCI
1465         help
1466           Support for Freescale LS1012ARDB platform.
1467           The LS1012A Reference design board (RDB) is a high-performance
1468           development platform that supports the QorIQ LS1012A
1469           Layerscape Architecture processor.
1470
1471 config TARGET_LS1012A2G5RDB
1472         bool "Support ls1012a2g5rdb"
1473         select ARCH_LS1012A
1474         select ARM64
1475         select ARCH_SUPPORT_TFABOOT
1476         select BOARD_LATE_INIT
1477         select GPIO_EXTRA_HEADER
1478         imply SCSI
1479         help
1480           Support for Freescale LS1012A2G5RDB platform.
1481           The LS1012A 2G5 Reference design board (RDB) is a high-performance
1482           development platform that supports the QorIQ LS1012A
1483           Layerscape Architecture processor.
1484
1485 config TARGET_LS1012AFRWY
1486         bool "Support ls1012afrwy"
1487         select ARCH_LS1012A
1488         select ARM64
1489         select ARCH_SUPPORT_TFABOOT
1490         select BOARD_LATE_INIT
1491         select GPIO_EXTRA_HEADER
1492         imply SCSI
1493         imply SCSI_AHCI
1494         help
1495          Support for Freescale LS1012AFRWY platform.
1496          The LS1012A FRWY board (FRWY) is a high-performance
1497          development platform that supports the QorIQ LS1012A
1498          Layerscape Architecture processor.
1499
1500 config TARGET_LS1012AFRDM
1501         bool "Support ls1012afrdm"
1502         select ARCH_LS1012A
1503         select ARM64
1504         select ARCH_SUPPORT_TFABOOT
1505         select GPIO_EXTRA_HEADER
1506         help
1507           Support for Freescale LS1012AFRDM platform.
1508           The LS1012A Freedom  board (FRDM) is a high-performance
1509           development platform that supports the QorIQ LS1012A
1510           Layerscape Architecture processor.
1511
1512 config TARGET_LS1028AQDS
1513         bool "Support ls1028aqds"
1514         select ARCH_LS1028A
1515         select ARM64
1516         select ARMV8_MULTIENTRY
1517         select ARCH_SUPPORT_TFABOOT
1518         select BOARD_LATE_INIT
1519         select GPIO_EXTRA_HEADER
1520         help
1521           Support for Freescale LS1028AQDS platform
1522           The LS1028A Development System (QDS) is a high-performance
1523           development platform that supports the QorIQ LS1028A
1524           Layerscape Architecture processor.
1525
1526 config TARGET_LS1028ARDB
1527         bool "Support ls1028ardb"
1528         select ARCH_LS1028A
1529         select ARM64
1530         select ARMV8_MULTIENTRY
1531         select ARCH_SUPPORT_TFABOOT
1532         select BOARD_LATE_INIT
1533         select GPIO_EXTRA_HEADER
1534         help
1535           Support for Freescale LS1028ARDB platform
1536           The LS1028A Development System (RDB) is a high-performance
1537           development platform that supports the QorIQ LS1028A
1538           Layerscape Architecture processor.
1539
1540 config TARGET_LS1088ARDB
1541         bool "Support ls1088ardb"
1542         select ARCH_LS1088A
1543         select ARM64
1544         select ARMV8_MULTIENTRY
1545         select ARCH_SUPPORT_TFABOOT
1546         select BOARD_LATE_INIT
1547         select SUPPORT_SPL
1548         select FSL_DDR_INTERACTIVE if !SD_BOOT
1549         select GPIO_EXTRA_HEADER
1550         help
1551           Support for NXP LS1088ARDB platform.
1552           The LS1088A Reference design board (RDB) is a high-performance
1553           development platform that supports the QorIQ LS1088A
1554           Layerscape Architecture processor.
1555
1556 config TARGET_LS1021AQDS
1557         bool "Support ls1021aqds"
1558         select ARCH_LS1021A
1559         select ARCH_SUPPORT_PSCI
1560         select BOARD_EARLY_INIT_F
1561         select BOARD_LATE_INIT
1562         select CPU_V7A
1563         select CPU_V7_HAS_NONSEC
1564         select CPU_V7_HAS_VIRT
1565         select LS1_DEEP_SLEEP
1566         select SUPPORT_SPL
1567         select SYS_FSL_DDR
1568         select FSL_DDR_INTERACTIVE
1569         select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
1570         select GPIO_EXTRA_HEADER
1571         select SPI_FLASH_DATAFLASH if FSL_DSPI || FSL_QSPI
1572         imply SCSI
1573
1574 config TARGET_LS1021ATWR
1575         bool "Support ls1021atwr"
1576         select ARCH_LS1021A
1577         select ARCH_SUPPORT_PSCI
1578         select BOARD_EARLY_INIT_F
1579         select BOARD_LATE_INIT
1580         select CPU_V7A
1581         select CPU_V7_HAS_NONSEC
1582         select CPU_V7_HAS_VIRT
1583         select LS1_DEEP_SLEEP
1584         select SUPPORT_SPL
1585         select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
1586         select GPIO_EXTRA_HEADER
1587         imply SCSI
1588
1589 config TARGET_PG_WCOM_SELI8
1590         bool "Support Hitachi-Powergrids SELI8 service unit card"
1591         select ARCH_LS1021A
1592         select ARCH_SUPPORT_PSCI
1593         select BOARD_EARLY_INIT_F
1594         select BOARD_LATE_INIT
1595         select CPU_V7A
1596         select CPU_V7_HAS_NONSEC
1597         select CPU_V7_HAS_VIRT
1598         select SYS_FSL_DDR
1599         select FSL_DDR_INTERACTIVE
1600         select GPIO_EXTRA_HEADER
1601         select VENDOR_KM
1602         imply SCSI
1603         help
1604          Support for Hitachi-Powergrids SELI8 service unit card.
1605          SELI8 is a QorIQ LS1021a based service unit card used
1606          in XMC20 and FOX615 product families.
1607
1608 config TARGET_PG_WCOM_EXPU1
1609         bool "Support Hitachi-Powergrids EXPU1 service unit card"
1610         select ARCH_LS1021A
1611         select ARCH_SUPPORT_PSCI
1612         select BOARD_EARLY_INIT_F
1613         select BOARD_LATE_INIT
1614         select CPU_V7A
1615         select CPU_V7_HAS_NONSEC
1616         select CPU_V7_HAS_VIRT
1617         select SYS_FSL_DDR
1618         select FSL_DDR_INTERACTIVE
1619         select VENDOR_KM
1620         imply SCSI
1621         help
1622          Support for Hitachi-Powergrids EXPU1 service unit card.
1623          EXPU1 is a QorIQ LS1021a based service unit card used
1624          in XMC20 and FOX615 product families.
1625
1626 config TARGET_LS1021ATSN
1627         bool "Support ls1021atsn"
1628         select ARCH_LS1021A
1629         select ARCH_SUPPORT_PSCI
1630         select BOARD_EARLY_INIT_F
1631         select BOARD_LATE_INIT
1632         select CPU_V7A
1633         select CPU_V7_HAS_NONSEC
1634         select CPU_V7_HAS_VIRT
1635         select LS1_DEEP_SLEEP
1636         select SUPPORT_SPL
1637         select GPIO_EXTRA_HEADER
1638         imply SCSI
1639
1640 config TARGET_LS1021AIOT
1641         bool "Support ls1021aiot"
1642         select ARCH_LS1021A
1643         select ARCH_SUPPORT_PSCI
1644         select BOARD_LATE_INIT
1645         select CPU_V7A
1646         select CPU_V7_HAS_NONSEC
1647         select CPU_V7_HAS_VIRT
1648         select SUPPORT_SPL
1649         select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
1650         select GPIO_EXTRA_HEADER
1651         imply SCSI
1652         help
1653           Support for Freescale LS1021AIOT platform.
1654           The LS1021A Freescale board (IOT) is a high-performance
1655           development platform that supports the QorIQ LS1021A
1656           Layerscape Architecture processor.
1657
1658 config TARGET_LS1043AQDS
1659         bool "Support ls1043aqds"
1660         select ARCH_LS1043A
1661         select ARM64
1662         select ARMV8_MULTIENTRY
1663         select ARCH_SUPPORT_TFABOOT
1664         select BOARD_EARLY_INIT_F
1665         select BOARD_LATE_INIT
1666         select SUPPORT_SPL
1667         select FSL_DDR_INTERACTIVE if !SPL
1668         select FSL_DSPI if !SPL_NO_DSPI
1669         select DM_SPI_FLASH if FSL_DSPI
1670         select GPIO_EXTRA_HEADER
1671         imply SCSI
1672         imply SCSI_AHCI
1673         help
1674           Support for Freescale LS1043AQDS platform.
1675
1676 config TARGET_LS1043ARDB
1677         bool "Support ls1043ardb"
1678         select ARCH_LS1043A
1679         select ARM64
1680         select ARMV8_MULTIENTRY
1681         select ARCH_SUPPORT_TFABOOT
1682         select BOARD_EARLY_INIT_F
1683         select BOARD_LATE_INIT
1684         select SUPPORT_SPL
1685         select FSL_DSPI if !SPL_NO_DSPI
1686         select DM_SPI_FLASH if FSL_DSPI
1687         select GPIO_EXTRA_HEADER
1688         help
1689           Support for Freescale LS1043ARDB platform.
1690
1691 config TARGET_LS1046AQDS
1692         bool "Support ls1046aqds"
1693         select ARCH_LS1046A
1694         select ARM64
1695         select ARMV8_MULTIENTRY
1696         select ARCH_SUPPORT_TFABOOT
1697         select BOARD_EARLY_INIT_F
1698         select BOARD_LATE_INIT
1699         select DM_SPI_FLASH if DM_SPI
1700         select SUPPORT_SPL
1701         select FSL_DDR_BIST if !SPL
1702         select FSL_DDR_INTERACTIVE  if !SPL
1703         select FSL_DDR_INTERACTIVE if !SPL
1704         select GPIO_EXTRA_HEADER
1705         imply SCSI
1706         help
1707           Support for Freescale LS1046AQDS platform.
1708           The LS1046A Development System (QDS) is a high-performance
1709           development platform that supports the QorIQ LS1046A
1710           Layerscape Architecture processor.
1711
1712 config TARGET_LS1046ARDB
1713         bool "Support ls1046ardb"
1714         select ARCH_LS1046A
1715         select ARM64
1716         select ARMV8_MULTIENTRY
1717         select ARCH_SUPPORT_TFABOOT
1718         select BOARD_EARLY_INIT_F
1719         select BOARD_LATE_INIT
1720         select DM_SPI_FLASH if DM_SPI
1721         select POWER_MC34VR500
1722         select SUPPORT_SPL
1723         select FSL_DDR_BIST
1724         select FSL_DDR_INTERACTIVE if !SPL
1725         select GPIO_EXTRA_HEADER
1726         imply SCSI
1727         help
1728           Support for Freescale LS1046ARDB platform.
1729           The LS1046A Reference Design Board (RDB) is a high-performance
1730           development platform that supports the QorIQ LS1046A
1731           Layerscape Architecture processor.
1732
1733 config TARGET_LS1046AFRWY
1734         bool "Support ls1046afrwy"
1735         select ARCH_LS1046A
1736         select ARM64
1737         select ARMV8_MULTIENTRY
1738         select ARCH_SUPPORT_TFABOOT
1739         select BOARD_EARLY_INIT_F
1740         select BOARD_LATE_INIT
1741         select DM_SPI_FLASH if DM_SPI
1742         select GPIO_EXTRA_HEADER
1743         imply SCSI
1744         help
1745           Support for Freescale LS1046AFRWY platform.
1746           The LS1046A Freeway Board (FRWY) is a high-performance
1747           development platform that supports the QorIQ LS1046A
1748           Layerscape Architecture processor.
1749
1750 config TARGET_SL28
1751         bool "Support sl28"
1752         select ARCH_LS1028A
1753         select ARM64
1754         select ARMV8_MULTIENTRY
1755         select SUPPORT_SPL
1756         select BINMAN
1757         select DM
1758         select DM_GPIO
1759         select DM_I2C
1760         select DM_MMC
1761         select DM_SPI_FLASH
1762         select DM_ETH
1763         select DM_MDIO
1764         select PCI
1765         select DM_RNG
1766         select DM_RTC
1767         select DM_SCSI
1768         select DM_SERIAL
1769         select DM_SPI
1770         select GPIO_EXTRA_HEADER
1771         select SPL_DM if SPL
1772         select SPL_DM_SPI if SPL
1773         select SPL_DM_SPI_FLASH if SPL
1774         select SPL_DM_I2C if SPL
1775         select SPL_DM_MMC if SPL
1776         select SPL_DM_SERIAL if SPL
1777         help
1778           Support for Kontron SMARC-sAL28 board.
1779
1780 config TARGET_TEN64
1781         bool "Support ten64"
1782         select ARCH_LS1088A
1783         select ARCH_MISC_INIT
1784         select ARM64
1785         select ARMV8_MULTIENTRY
1786         select ARCH_SUPPORT_TFABOOT
1787         select BOARD_LATE_INIT
1788         select SUPPORT_SPL
1789         select FSL_DDR_INTERACTIVE if !SD_BOOT
1790         select GPIO_EXTRA_HEADER
1791         help
1792           Support for Traverse Technologies Ten64 board, based
1793           on NXP LS1088A.
1794
1795 config TARGET_COLIBRI_PXA270
1796         bool "Support colibri_pxa270"
1797         select CPU_PXA27X
1798         select GPIO_EXTRA_HEADER
1799
1800 config ARCH_UNIPHIER
1801         bool "Socionext UniPhier SoCs"
1802         select BOARD_LATE_INIT
1803         select DM
1804         select DM_ETH
1805         select DM_GPIO
1806         select DM_I2C
1807         select DM_MMC
1808         select DM_MTD
1809         select DM_RESET
1810         select DM_SERIAL
1811         select OF_BOARD_SETUP
1812         select OF_CONTROL
1813         select OF_LIBFDT
1814         select PINCTRL
1815         select SPL_BOARD_INIT if SPL
1816         select SPL_DM if SPL
1817         select SPL_LIBCOMMON_SUPPORT if SPL
1818         select SPL_LIBGENERIC_SUPPORT if SPL
1819         select SPL_OF_CONTROL if SPL
1820         select SPL_PINCTRL if SPL
1821         select SUPPORT_SPL
1822         imply CMD_DM
1823         imply DISTRO_DEFAULTS
1824         imply FAT_WRITE
1825         help
1826           Support for UniPhier SoC family developed by Socionext Inc.
1827           (formerly, System LSI Business Division of Panasonic Corporation)
1828
1829 config ARCH_SYNQUACER
1830         bool "Socionext SynQuacer SoCs"
1831         select ARM64
1832         select DM
1833         select GIC_V3
1834         select PSCI_RESET
1835         select SYSRESET
1836         select SYSRESET_PSCI
1837         select OF_CONTROL
1838         help
1839           Support for SynQuacer SoC family developed by Socionext Inc.
1840           This SoC is used on 96boards EE DeveloperBox.
1841
1842 config ARCH_STM32
1843         bool "Support STMicroelectronics STM32 MCU with cortex M"
1844         select CPU_V7M
1845         select DM
1846         select DM_SERIAL
1847         imply CMD_DM
1848
1849 config ARCH_STI
1850         bool "Support STMicrolectronics SoCs"
1851         select BLK
1852         select CPU_V7A
1853         select DM
1854         select DM_MMC
1855         select DM_RESET
1856         select DM_SERIAL
1857         imply CMD_DM
1858         help
1859           Support for STMicroelectronics STiH407/10 SoC family.
1860           This SoC is used on Linaro 96Board STiH410-B2260
1861
1862 config ARCH_STM32MP
1863         bool "Support STMicroelectronics STM32MP Socs with cortex A"
1864         select ARCH_MISC_INIT
1865         select ARCH_SUPPORT_TFABOOT
1866         select BOARD_LATE_INIT
1867         select CLK
1868         select DM
1869         select DM_GPIO
1870         select DM_RESET
1871         select DM_SERIAL
1872         select MISC
1873         select OF_CONTROL
1874         select OF_LIBFDT
1875         select OF_SYSTEM_SETUP
1876         select PINCTRL
1877         select REGMAP
1878         select SUPPORT_SPL
1879         select SYSCON
1880         select SYSRESET
1881         select SYS_THUMB_BUILD
1882         imply SPL_SYSRESET
1883         imply CMD_DM
1884         imply CMD_POWEROFF
1885         imply OF_LIBFDT_OVERLAY
1886         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1887         imply USE_PREBOOT
1888         imply TIMESTAMP
1889         help
1890           Support for STM32MP SoC family developed by STMicroelectronics,
1891           MPUs based on ARM cortex A core
1892           U-BOOT is running in DDR, loaded by the First Stage BootLoader (FSBL).
1893           FSBL can be TF-A: Trusted Firmware for Cortex A, for trusted boot
1894           chain.
1895           SPL is the unsecure FSBL for the basic boot chain.
1896
1897 config ARCH_ROCKCHIP
1898         bool "Support Rockchip SoCs"
1899         select BLK
1900         select BINMAN if SPL_OPTEE || (SPL && !ARM64)
1901         select DM
1902         select DM_GPIO
1903         select DM_I2C
1904         select DM_MMC
1905         select DM_PWM
1906         select DM_REGULATOR
1907         select DM_SERIAL
1908         select DM_SPI
1909         select DM_SPI_FLASH
1910         select ENABLE_ARM_SOC_BOOT0_HOOK
1911         select OF_CONTROL
1912         select SPI
1913         select SPL_DM if SPL
1914         select SPL_DM_SPI if SPL
1915         select SPL_DM_SPI_FLASH if SPL
1916         select SYS_MALLOC_F
1917         select SYS_THUMB_BUILD if !ARM64
1918         imply ADC
1919         imply CMD_DM
1920         imply DEBUG_UART_BOARD_INIT
1921         imply DISTRO_DEFAULTS
1922         imply FAT_WRITE
1923         imply SARADC_ROCKCHIP
1924         imply SPL_SYSRESET
1925         imply SPL_SYS_MALLOC_SIMPLE
1926         imply SYS_NS16550
1927         imply TPL_SYSRESET
1928         imply USB_FUNCTION_FASTBOOT
1929
1930 config ARCH_OCTEONTX
1931         bool "Support OcteonTX SoCs"
1932         select CLK
1933         select DM
1934         select GPIO_EXTRA_HEADER
1935         select ARM64
1936         select OF_CONTROL
1937         select OF_LIVE
1938         select BOARD_LATE_INIT
1939         select SYS_CACHE_SHIFT_7
1940         select SYS_PCI_64BIT if PCI
1941         imply OF_HAS_PRIOR_STAGE
1942
1943 config ARCH_OCTEONTX2
1944         bool "Support OcteonTX2 SoCs"
1945         select CLK
1946         select DM
1947         select GPIO_EXTRA_HEADER
1948         select ARM64
1949         select OF_CONTROL
1950         select OF_LIVE
1951         select BOARD_LATE_INIT
1952         select SYS_CACHE_SHIFT_7
1953         select SYS_PCI_64BIT if PCI
1954         imply OF_HAS_PRIOR_STAGE
1955
1956 config TARGET_THUNDERX_88XX
1957         bool "Support ThunderX 88xx"
1958         select ARM64
1959         select GPIO_EXTRA_HEADER
1960         select OF_CONTROL
1961         select PL01X_SERIAL
1962         select SYS_CACHE_SHIFT_7
1963
1964 config ARCH_ASPEED
1965         bool "Support Aspeed SoCs"
1966         select DM
1967         select OF_CONTROL
1968         imply CMD_DM
1969
1970 config TARGET_DURIAN
1971         bool "Support Phytium Durian Platform"
1972         select ARM64
1973         select GPIO_EXTRA_HEADER
1974         help
1975           Support for durian platform.
1976           It has 2GB Sdram, uart and pcie.
1977
1978 config TARGET_PRESIDIO_ASIC
1979         bool "Support Cortina Presidio ASIC Platform"
1980         select ARM64
1981         select GICV2
1982
1983 config TARGET_XENGUEST_ARM64
1984         bool "Xen guest ARM64"
1985         select ARM64
1986         select XEN
1987         select OF_CONTROL
1988         select LINUX_KERNEL_IMAGE_HEADER
1989         select XEN_SERIAL
1990         select SSCANF
1991         imply OF_HAS_PRIOR_STAGE
1992
1993 endchoice
1994
1995 config SUPPORT_PASSING_ATAGS
1996         bool "Support pre-devicetree ATAG-based booting"
1997         depends on !ARM64
1998         imply SETUP_MEMORY_TAGS
1999         help
2000           Support for booting older Linux kernels, using ATAGs rather than
2001           passing a devicetree.  This is option is rarely used, and the
2002           semantics are defined at
2003           https://www.kernel.org/doc/Documentation/arm/Booting at section 4a.
2004
2005 config SETUP_MEMORY_TAGS
2006         bool "Pass memory size information via ATAG"
2007         depends on SUPPORT_PASSING_ATAGS
2008
2009 config CMDLINE_TAG
2010         bool "Pass Linux kernel cmdline via ATAG"
2011         depends on SUPPORT_PASSING_ATAGS
2012
2013 config INITRD_TAG
2014         bool "Pass initrd starting point and size via ATAG"
2015         depends on SUPPORT_PASSING_ATAGS
2016
2017 config REVISION_TAG
2018         bool "Pass system revision via ATAG"
2019         depends on SUPPORT_PASSING_ATAGS
2020
2021 config SERIAL_TAG
2022         bool "Pass system serial number via ATAG"
2023         depends on SUPPORT_PASSING_ATAGS
2024
2025 config STATIC_MACH_TYPE
2026         bool "Statically define the Machine ID number"
2027         help
2028           When booting via ATAGs, enable this option if we know the correct
2029           machine ID number to use at compile time.  Some systems will be
2030           passed the number dynamically by whatever loads U-Boot.
2031
2032 config MACH_TYPE
2033         int "Machine ID number"
2034         depends on STATIC_MACH_TYPE
2035         help
2036           When booting via ATAGs, the machine type must be passed as a number.
2037           For the full list see https://www.arm.linux.org.uk/developer/machines
2038
2039 config ARCH_SUPPORT_TFABOOT
2040         bool
2041
2042 config TFABOOT
2043         bool "Support for booting from TF-A"
2044         depends on ARCH_SUPPORT_TFABOOT
2045         help
2046           Some platforms support the setup of secure registers (for instance
2047           for CPU errata handling) or provide secure services like PSCI.
2048           Those services could also be provided by other firmware parts
2049           like TF-A (Trusted Firmware for Cortex-A), in which case U-Boot
2050           does not need to (and cannot) execute this code.
2051           Enabling this option will make a U-Boot binary that is relying
2052           on other firmware layers to provide secure functionality.
2053
2054 config TI_SECURE_DEVICE
2055         bool "HS Device Type Support"
2056         depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
2057         help
2058           If a high secure (HS) device type is being used, this config
2059           must be set. This option impacts various aspects of the
2060           build system (to create signed boot images that can be
2061           authenticated) and the code. See the doc/README.ti-secure
2062           file for further details.
2063
2064 if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
2065 config ISW_ENTRY_ADDR
2066         hex "Address in memory or XIP address of bootloader entry point"
2067         default 0x402F4000 if AM43XX
2068         default 0x402F0400 if AM33XX
2069         default 0x40301350 if OMAP54XX
2070         help
2071           After any reset, the boot ROM searches the boot media for a valid
2072           boot image. For non-XIP devices, the ROM then copies the image into
2073           internal memory. For all boot modes, after the ROM processes the
2074           boot image it eventually computes the entry point address depending
2075           on the device type (secure/non-secure), boot media (xip/non-xip) and
2076           image headers.
2077 endif
2078
2079 config SYS_KWD_CONFIG
2080         string "kwbimage config file path"
2081         depends on ARCH_KIRKWOOD || ARCH_MVEBU
2082         default "arch/arm/mach-mvebu/kwbimage.cfg"
2083         help
2084           Path within the source directory to the kwbimage.cfg file to use
2085           when packaging the U-Boot image for use.
2086
2087 source "arch/arm/mach-apple/Kconfig"
2088
2089 source "arch/arm/mach-aspeed/Kconfig"
2090
2091 source "arch/arm/mach-at91/Kconfig"
2092
2093 source "arch/arm/mach-bcm283x/Kconfig"
2094
2095 source "arch/arm/mach-bcmstb/Kconfig"
2096
2097 source "arch/arm/mach-davinci/Kconfig"
2098
2099 source "arch/arm/mach-exynos/Kconfig"
2100
2101 source "arch/arm/mach-highbank/Kconfig"
2102
2103 source "arch/arm/mach-integrator/Kconfig"
2104
2105 source "arch/arm/mach-ipq40xx/Kconfig"
2106
2107 source "arch/arm/mach-k3/Kconfig"
2108
2109 source "arch/arm/mach-keystone/Kconfig"
2110
2111 source "arch/arm/mach-kirkwood/Kconfig"
2112
2113 source "arch/arm/mach-lpc32xx/Kconfig"
2114
2115 source "arch/arm/mach-mvebu/Kconfig"
2116
2117 source "arch/arm/mach-octeontx/Kconfig"
2118
2119 source "arch/arm/mach-octeontx2/Kconfig"
2120
2121 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
2122
2123 source "arch/arm/mach-imx/mx3/Kconfig"
2124
2125 source "arch/arm/mach-imx/mx5/Kconfig"
2126
2127 source "arch/arm/mach-imx/mx6/Kconfig"
2128
2129 source "arch/arm/mach-imx/mx7/Kconfig"
2130
2131 source "arch/arm/mach-imx/mx7ulp/Kconfig"
2132
2133 source "arch/arm/mach-imx/imx8/Kconfig"
2134
2135 source "arch/arm/mach-imx/imx8m/Kconfig"
2136
2137 source "arch/arm/mach-imx/imx8ulp/Kconfig"
2138
2139 source "arch/arm/mach-imx/imxrt/Kconfig"
2140
2141 source "arch/arm/mach-imx/mxs/Kconfig"
2142
2143 source "arch/arm/mach-omap2/Kconfig"
2144
2145 source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
2146
2147 source "arch/arm/mach-orion5x/Kconfig"
2148
2149 source "arch/arm/mach-owl/Kconfig"
2150
2151 source "arch/arm/mach-rmobile/Kconfig"
2152
2153 source "arch/arm/mach-meson/Kconfig"
2154
2155 source "arch/arm/mach-mediatek/Kconfig"
2156
2157 source "arch/arm/mach-qemu/Kconfig"
2158
2159 source "arch/arm/mach-rockchip/Kconfig"
2160
2161 source "arch/arm/mach-s5pc1xx/Kconfig"
2162
2163 source "arch/arm/mach-snapdragon/Kconfig"
2164
2165 source "arch/arm/mach-socfpga/Kconfig"
2166
2167 source "arch/arm/mach-sti/Kconfig"
2168
2169 source "arch/arm/mach-stm32/Kconfig"
2170
2171 source "arch/arm/mach-stm32mp/Kconfig"
2172
2173 source "arch/arm/mach-sunxi/Kconfig"
2174
2175 source "arch/arm/mach-tegra/Kconfig"
2176
2177 source "arch/arm/mach-u8500/Kconfig"
2178
2179 source "arch/arm/mach-uniphier/Kconfig"
2180
2181 source "arch/arm/cpu/armv7/vf610/Kconfig"
2182
2183 source "arch/arm/mach-zynq/Kconfig"
2184
2185 source "arch/arm/mach-zynqmp/Kconfig"
2186
2187 source "arch/arm/mach-versal/Kconfig"
2188
2189 source "arch/arm/mach-zynqmp-r5/Kconfig"
2190
2191 source "arch/arm/cpu/armv7/Kconfig"
2192
2193 source "arch/arm/cpu/armv8/Kconfig"
2194
2195 source "arch/arm/mach-imx/Kconfig"
2196
2197 source "arch/arm/mach-nexell/Kconfig"
2198
2199 source "board/armltd/total_compute/Kconfig"
2200
2201 source "board/bosch/shc/Kconfig"
2202 source "board/bosch/guardian/Kconfig"
2203 source "board/Marvell/octeontx/Kconfig"
2204 source "board/Marvell/octeontx2/Kconfig"
2205 source "board/armltd/vexpress/Kconfig"
2206 source "board/armltd/vexpress64/Kconfig"
2207 source "board/cortina/presidio-asic/Kconfig"
2208 source "board/broadcom/bcm963158/Kconfig"
2209 source "board/broadcom/bcm968360bg/Kconfig"
2210 source "board/broadcom/bcm968580xref/Kconfig"
2211 source "board/broadcom/bcmns3/Kconfig"
2212 source "board/cavium/thunderx/Kconfig"
2213 source "board/eets/pdu001/Kconfig"
2214 source "board/emulation/qemu-arm/Kconfig"
2215 source "board/freescale/ls2080aqds/Kconfig"
2216 source "board/freescale/ls2080ardb/Kconfig"
2217 source "board/freescale/ls1088a/Kconfig"
2218 source "board/freescale/ls1028a/Kconfig"
2219 source "board/freescale/ls1021aqds/Kconfig"
2220 source "board/freescale/ls1043aqds/Kconfig"
2221 source "board/freescale/ls1021atwr/Kconfig"
2222 source "board/freescale/ls1021atsn/Kconfig"
2223 source "board/freescale/ls1021aiot/Kconfig"
2224 source "board/freescale/ls1046aqds/Kconfig"
2225 source "board/freescale/ls1043ardb/Kconfig"
2226 source "board/freescale/ls1046ardb/Kconfig"
2227 source "board/freescale/ls1046afrwy/Kconfig"
2228 source "board/freescale/ls1012aqds/Kconfig"
2229 source "board/freescale/ls1012ardb/Kconfig"
2230 source "board/freescale/ls1012afrdm/Kconfig"
2231 source "board/freescale/lx2160a/Kconfig"
2232 source "board/grinn/chiliboard/Kconfig"
2233 source "board/hisilicon/hikey/Kconfig"
2234 source "board/hisilicon/hikey960/Kconfig"
2235 source "board/hisilicon/poplar/Kconfig"
2236 source "board/isee/igep003x/Kconfig"
2237 source "board/kontron/sl28/Kconfig"
2238 source "board/myir/mys_6ulx/Kconfig"
2239 source "board/seeed/npi_imx6ull/Kconfig"
2240 source "board/socionext/developerbox/Kconfig"
2241 source "board/st/stv0991/Kconfig"
2242 source "board/tcl/sl50/Kconfig"
2243 source "board/toradex/colibri_pxa270/Kconfig"
2244 source "board/traverse/ten64/Kconfig"
2245 source "board/variscite/dart_6ul/Kconfig"
2246 source "board/vscom/baltos/Kconfig"
2247 source "board/phytium/durian/Kconfig"
2248 source "board/xen/xenguest_arm64/Kconfig"
2249 source "board/keymile/Kconfig"
2250
2251 source "arch/arm/Kconfig.debug"
2252
2253 endmenu
2254
2255 config SPL_LDSCRIPT
2256         default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
2257         default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
2258         default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64