Merge tag 'v2022.04-rc4' into next
[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_BCM6753
621         bool "Broadcom BCM6753 family"
622         select CPU_V7A
623         select DM
624         select OF_CONTROL
625         imply CMD_DM
626
627 config ARCH_BCM68360
628         bool "Broadcom BCM68360 family"
629         select DM
630         select OF_CONTROL
631         imply CMD_DM
632
633 config ARCH_BCM6858
634         bool "Broadcom BCM6858 family"
635         select DM
636         select OF_CONTROL
637         imply CMD_DM
638
639 config ARCH_BCMSTB
640         bool "Broadcom BCM7XXX family"
641         select CPU_V7A
642         select DM
643         select GPIO_EXTRA_HEADER
644         select OF_CONTROL
645         imply CMD_DM
646         imply OF_HAS_PRIOR_STAGE
647         help
648           This enables support for Broadcom ARM-based set-top box
649           chipsets, including the 7445 family of chips.
650
651 config TARGET_VEXPRESS_CA9X4
652         bool "Support vexpress_ca9x4"
653         select CPU_V7A
654         select PL011_SERIAL
655
656 config TARGET_BCMCYGNUS
657         bool "Support bcmcygnus"
658         select CPU_V7A
659         select GPIO_EXTRA_HEADER
660         imply BCM_SF2_ETH
661         imply BCM_SF2_ETH_GMAC
662         imply CMD_HASH
663         imply CRC32_VERIFY
664         imply FAT_WRITE
665         imply HASH_VERIFY
666         imply NETDEVICES
667
668 config TARGET_BCMNS2
669         bool "Support Broadcom Northstar2"
670         select ARM64
671         select GPIO_EXTRA_HEADER
672         help
673           Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
674           ARMv8 Cortex-A57 processors targeting a broad range of networking
675           applications.
676
677 config TARGET_BCMNS3
678         bool "Support Broadcom NS3"
679         select ARM64
680         select BOARD_LATE_INIT
681         help
682           Support for Broadcom Northstar 3 SoCs. NS3 is a octo-core 64-bit
683           ARMv8 Cortex-A72 processors targeting a broad range of networking
684           applications.
685
686 config ARCH_EXYNOS
687         bool "Samsung EXYNOS"
688         select DM
689         select DM_GPIO
690         select DM_I2C
691         select DM_ETH
692         select DM_KEYBOARD
693         select DM_SERIAL
694         select DM_SPI
695         select DM_SPI_FLASH
696         select SPI
697         select GPIO_EXTRA_HEADER
698         imply SYS_THUMB_BUILD
699         imply CMD_DM
700         imply FAT_WRITE
701
702 config ARCH_S5PC1XX
703         bool "Samsung S5PC1XX"
704         select CPU_V7A
705         select DM
706         select DM_GPIO
707         select DM_I2C
708         select DM_SERIAL
709         select GPIO_EXTRA_HEADER
710         imply CMD_DM
711
712 config ARCH_HIGHBANK
713         bool "Calxeda Highbank"
714         select CPU_V7A
715         select PL01X_SERIAL
716         select DM
717         select DM_SERIAL
718         select OF_CONTROL
719         select CLK
720         select CLK_CCF
721         select AHCI
722         select DM_ETH
723         select PHYS_64BIT
724         imply OF_HAS_PRIOR_STAGE
725
726 config ARCH_INTEGRATOR
727         bool "ARM Ltd. Integrator family"
728         select DM
729         select DM_SERIAL
730         select GPIO_EXTRA_HEADER
731         select PL01X_SERIAL
732         imply CMD_DM
733
734 config ARCH_IPQ40XX
735         bool "Qualcomm IPQ40xx SoCs"
736         select CPU_V7A
737         select DM
738         select DM_GPIO
739         select DM_SERIAL
740         select DM_RESET
741         select GPIO_EXTRA_HEADER
742         select MSM_SMEM
743         select PINCTRL
744         select CLK
745         select SMEM
746         select OF_CONTROL
747         imply CMD_DM
748
749 config ARCH_KEYSTONE
750         bool "TI Keystone"
751         select CMD_POWEROFF
752         select CPU_V7A
753         select DDR_SPD
754         select GPIO_EXTRA_HEADER
755         select SUPPORT_SPL
756         select SYS_ARCH_TIMER
757         select SYS_THUMB_BUILD
758         imply CMD_MTDPARTS
759         imply CMD_SAVES
760         imply FIT
761
762 config ARCH_K3
763         bool "Texas Instruments' K3 Architecture"
764         select SPL
765         select SUPPORT_SPL
766         select FIT
767
768 config ARCH_OMAP2PLUS
769         bool "TI OMAP2+"
770         select CPU_V7A
771         select GPIO_EXTRA_HEADER
772         select SPL_BOARD_INIT if SPL
773         select SPL_STACK_R if SPL
774         select SUPPORT_SPL
775         imply TI_SYSC if DM && OF_CONTROL
776         imply FIT
777         imply DM_EVENT
778
779 config ARCH_MESON
780         bool "Amlogic Meson"
781         select GPIO_EXTRA_HEADER
782         imply DISTRO_DEFAULTS
783         imply DM_RNG
784         help
785           Support for the Meson SoC family developed by Amlogic Inc.,
786           targeted at media players and tablet computers. We currently
787           support the S905 (GXBaby) 64-bit SoC.
788
789 config ARCH_MEDIATEK
790         bool "MediaTek SoCs"
791         select DM
792         select GPIO_EXTRA_HEADER
793         select OF_CONTROL
794         select SPL_DM if SPL
795         select SPL_LIBCOMMON_SUPPORT if SPL
796         select SPL_LIBGENERIC_SUPPORT if SPL
797         select SPL_OF_CONTROL if SPL
798         select SUPPORT_SPL
799         help
800           Support for the MediaTek SoCs family developed by MediaTek Inc.
801           Please refer to doc/README.mediatek for more information.
802
803 config ARCH_LPC32XX
804         bool "NXP LPC32xx platform"
805         select CPU_ARM926EJS
806         select DM
807         select DM_GPIO
808         select DM_SERIAL
809         select GPIO_EXTRA_HEADER
810         select SPL_DM if SPL
811         select SUPPORT_SPL
812         imply CMD_DM
813
814 config ARCH_IMX8
815         bool "NXP i.MX8 platform"
816         select ARM64
817         select DM
818         select GPIO_EXTRA_HEADER
819         select MACH_IMX
820         select OF_CONTROL
821         select ENABLE_ARM_SOC_BOOT0_HOOK
822         imply DM_EVENT
823
824 config ARCH_IMX8M
825         bool "NXP i.MX8M platform"
826         select ARM64
827         select GPIO_EXTRA_HEADER
828         select MACH_IMX
829         select SYS_FSL_HAS_SEC if IMX_HAB
830         select SYS_FSL_SEC_COMPAT_4
831         select SYS_FSL_SEC_LE
832         select SYS_I2C_MXC
833         select DM
834         select SUPPORT_SPL
835         imply CMD_DM
836         imply DM_EVENT
837
838 config ARCH_IMX8ULP
839         bool "NXP i.MX8ULP platform"
840         select ARM64
841         select DM
842         select MACH_IMX
843         select OF_CONTROL
844         select SUPPORT_SPL
845         select GPIO_EXTRA_HEADER
846         imply CMD_DM
847         imply DM_EVENT
848
849 config ARCH_IMXRT
850         bool "NXP i.MXRT platform"
851         select CPU_V7M
852         select DM
853         select DM_SERIAL
854         select GPIO_EXTRA_HEADER
855         select MACH_IMX
856         select SUPPORT_SPL
857         imply CMD_DM
858
859 config ARCH_MX23
860         bool "NXP i.MX23 family"
861         select CPU_ARM926EJS
862         select GPIO_EXTRA_HEADER
863         select MACH_IMX
864         select PL011_SERIAL
865         select SUPPORT_SPL
866
867 config ARCH_MX28
868         bool "NXP i.MX28 family"
869         select CPU_ARM926EJS
870         select GPIO_EXTRA_HEADER
871         select PL011_SERIAL
872         select MACH_IMX
873         select SUPPORT_SPL
874
875 config ARCH_MX31
876         bool "NXP i.MX31 family"
877         select CPU_ARM1136
878         select GPIO_EXTRA_HEADER
879         select MACH_IMX
880
881 config ARCH_MX7ULP
882         bool "NXP MX7ULP"
883         select BOARD_POSTCLK_INIT
884         select CPU_V7A
885         select GPIO_EXTRA_HEADER
886         select MACH_IMX
887         select SYS_FSL_HAS_SEC if IMX_HAB
888         select SYS_FSL_SEC_COMPAT_4
889         select SYS_FSL_SEC_LE
890         select ROM_UNIFIED_SECTIONS
891         imply MXC_GPIO
892         imply SYS_THUMB_BUILD
893
894 config ARCH_MX7
895         bool "Freescale MX7"
896         select ARCH_MISC_INIT
897         select CPU_V7A
898         select GPIO_EXTRA_HEADER
899         select MACH_IMX
900         select SYS_FSL_HAS_SEC if IMX_HAB
901         select SYS_FSL_SEC_COMPAT_4
902         select SYS_FSL_SEC_LE
903         imply BOARD_EARLY_INIT_F
904         imply MXC_GPIO
905         imply SYS_THUMB_BUILD
906
907 config ARCH_MX6
908         bool "Freescale MX6"
909         select BOARD_POSTCLK_INIT
910         select CPU_V7A
911         select GPIO_EXTRA_HEADER
912         select MACH_IMX
913         select SYS_FSL_HAS_SEC
914         select SYS_FSL_SEC_COMPAT_4
915         select SYS_FSL_SEC_LE
916         imply MXC_GPIO
917         imply SYS_THUMB_BUILD
918
919 if ARCH_MX6
920 config SPL_LDSCRIPT
921         default "arch/arm/mach-omap2/u-boot-spl.lds"
922 endif
923
924 config ARCH_MX5
925         bool "Freescale MX5"
926         select BOARD_EARLY_INIT_F
927         select CPU_V7A
928         select GPIO_EXTRA_HEADER
929         select MACH_IMX
930         imply MXC_GPIO
931
932 config ARCH_NEXELL
933         bool "Nexell S5P4418/S5P6818 SoC"
934         select ENABLE_ARM_SOC_BOOT0_HOOK
935         select DM
936         select GPIO_EXTRA_HEADER
937
938 config ARCH_APPLE
939         bool "Apple SoCs"
940         select ARM64
941         select BLK
942         select CLK
943         select CMD_USB
944         select DM
945         select DM_GPIO
946         select DM_KEYBOARD
947         select DM_MAILBOX
948         select DM_RESET
949         select DM_SERIAL
950         select DM_SPI
951         select DM_USB
952         select DM_VIDEO
953         select IOMMU
954         select LINUX_KERNEL_IMAGE_HEADER
955         select OF_CONTROL
956         select PINCTRL
957         select POSITION_INDEPENDENT
958         select POWER_DOMAIN
959         select REGMAP
960         select SPI
961         select SYSCON
962         select SYSRESET
963         select SYSRESET_WATCHDOG
964         select SYSRESET_WATCHDOG_AUTO
965         select USB
966         imply CMD_DM
967         imply CMD_GPT
968         imply DISTRO_DEFAULTS
969         imply OF_HAS_PRIOR_STAGE
970
971 config ARCH_OWL
972         bool "Actions Semi OWL SoCs"
973         select DM
974         select DM_ETH
975         select DM_SERIAL
976         select GPIO_EXTRA_HEADER
977         select OWL_SERIAL
978         select CLK
979         select CLK_OWL
980         select OF_CONTROL
981         select SYS_RELOC_GD_ENV_ADDR
982         imply CMD_DM
983
984 config ARCH_QEMU
985         bool "QEMU Virtual Platform"
986         select DM
987         select DM_SERIAL
988         select OF_CONTROL
989         select PL01X_SERIAL
990         imply CMD_DM
991         imply DM_RNG
992         imply DM_RTC
993         imply RTC_PL031
994         imply OF_HAS_PRIOR_STAGE
995
996 config ARCH_RMOBILE
997         bool "Renesas ARM SoCs"
998         select DM
999         select DM_SERIAL
1000         select GPIO_EXTRA_HEADER
1001         imply BOARD_EARLY_INIT_F
1002         imply CMD_DM
1003         imply FAT_WRITE
1004         imply SYS_THUMB_BUILD
1005         imply ARCH_MISC_INIT if DISPLAY_CPUINFO
1006
1007 config ARCH_SNAPDRAGON
1008         bool "Qualcomm Snapdragon SoCs"
1009         select ARM64
1010         select DM
1011         select DM_GPIO
1012         select DM_SERIAL
1013         select GPIO_EXTRA_HEADER
1014         select MSM_SMEM
1015         select OF_CONTROL
1016         select OF_SEPARATE
1017         select SMEM
1018         select SPMI
1019         imply CMD_DM
1020
1021 config ARCH_SOCFPGA
1022         bool "Altera SOCFPGA family"
1023         select ARCH_EARLY_INIT_R
1024         select ARCH_MISC_INIT if !TARGET_SOCFPGA_ARRIA10
1025         select ARM64 if TARGET_SOCFPGA_SOC64
1026         select CPU_V7A if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
1027         select DM
1028         select DM_SERIAL
1029         select GICV2
1030         select GPIO_EXTRA_HEADER
1031         select ENABLE_ARM_SOC_BOOT0_HOOK if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
1032         select OF_CONTROL
1033         select SPL_DM_RESET if DM_RESET
1034         select SPL_DM_SERIAL
1035         select SPL_LIBCOMMON_SUPPORT
1036         select SPL_LIBGENERIC_SUPPORT
1037         select SPL_NAND_SUPPORT if SPL_NAND_DENALI
1038         select SPL_OF_CONTROL
1039         select SPL_SEPARATE_BSS if TARGET_SOCFPGA_SOC64
1040         select SPL_SERIAL
1041         select SPL_SYSRESET
1042         select SPL_WATCHDOG
1043         select SUPPORT_SPL
1044         select SYS_NS16550
1045         select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
1046         select SYSRESET
1047         select SYSRESET_SOCFPGA if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
1048         select SYSRESET_SOCFPGA_SOC64 if TARGET_SOCFPGA_SOC64
1049         imply CMD_DM
1050         imply CMD_MTDPARTS
1051         imply CRC32_VERIFY
1052         imply DM_SPI
1053         imply DM_SPI_FLASH
1054         imply FAT_WRITE
1055         imply SPL
1056         imply SPL_DM
1057         imply SPL_DM_SPI
1058         imply SPL_DM_SPI_FLASH
1059         imply SPL_LIBDISK_SUPPORT
1060         imply SPL_MMC
1061         imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
1062         imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
1063         imply SPL_SPI_FLASH_SUPPORT
1064         imply SPL_SPI
1065         imply L2X0_CACHE
1066
1067 config ARCH_SUNXI
1068         bool "Support sunxi (Allwinner) SoCs"
1069         select BINMAN
1070         select CMD_GPIO
1071         select CMD_MMC if MMC
1072         select CMD_USB if DISTRO_DEFAULTS && USB_HOST
1073         select CLK
1074         select DM
1075         select DM_ETH
1076         select DM_GPIO
1077         select DM_I2C if I2C
1078         select DM_SPI if SPI
1079         select DM_SPI_FLASH if SPI
1080         select DM_KEYBOARD
1081         select DM_MMC if MMC
1082         select DM_SCSI if SCSI
1083         select DM_SERIAL
1084         select GPIO_EXTRA_HEADER
1085         select OF_BOARD_SETUP
1086         select OF_CONTROL
1087         select OF_SEPARATE
1088         select SPECIFY_CONSOLE_INDEX
1089         select SPL_SEPARATE_BSS if SPL
1090         select SPL_STACK_R if SPL
1091         select SPL_SYS_MALLOC_SIMPLE if SPL
1092         select SPL_SYS_THUMB_BUILD if !ARM64
1093         select SUNXI_GPIO
1094         select SYS_NS16550
1095         select SYS_THUMB_BUILD if !ARM64
1096         select USB if DISTRO_DEFAULTS
1097         select USB_KEYBOARD if DISTRO_DEFAULTS && USB_HOST
1098         select USB_STORAGE if DISTRO_DEFAULTS && USB_HOST
1099         select SPL_USE_TINY_PRINTF
1100         select USE_PREBOOT
1101         select SYS_RELOC_GD_ENV_ADDR
1102         imply BOARD_LATE_INIT
1103         imply CMD_DM
1104         imply CMD_GPT
1105         imply CMD_UBI if MTD_RAW_NAND
1106         imply DISTRO_DEFAULTS
1107         imply FAT_WRITE
1108         imply FIT
1109         imply OF_LIBFDT_OVERLAY
1110         imply PRE_CONSOLE_BUFFER
1111         imply SPL_GPIO
1112         imply SPL_LIBCOMMON_SUPPORT
1113         imply SPL_LIBGENERIC_SUPPORT
1114         imply SPL_MMC if MMC
1115         imply SPL_POWER
1116         imply SPL_SERIAL
1117         imply SYSRESET
1118         imply SYSRESET_WATCHDOG
1119         imply SYSRESET_WATCHDOG_AUTO
1120         imply USB_GADGET
1121         imply WDT
1122
1123 config ARCH_U8500
1124         bool "ST-Ericsson U8500 Series"
1125         select CPU_V7A
1126         select DM
1127         select DM_GPIO
1128         select DM_MMC if MMC
1129         select DM_SERIAL
1130         select DM_USB_GADGET if DM_USB
1131         select OF_CONTROL
1132         select SYSRESET
1133         select TIMER
1134         imply AB8500_USB_PHY
1135         imply ARM_PL180_MMCI
1136         imply CLK
1137         imply DM_PMIC
1138         imply DM_RTC
1139         imply NOMADIK_GPIO
1140         imply NOMADIK_MTU_TIMER
1141         imply PHY
1142         imply PL01X_SERIAL
1143         imply PMIC_AB8500
1144         imply RTC_PL031
1145         imply SYS_THUMB_BUILD
1146         imply SYSRESET_SYSCON
1147
1148 config ARCH_VERSAL
1149         bool "Support Xilinx Versal Platform"
1150         select ARM64
1151         select CLK
1152         select DM
1153         select DM_ETH if NET
1154         select DM_MMC if MMC
1155         select DM_SERIAL
1156         select GICV3
1157         select OF_CONTROL
1158         select SOC_DEVICE
1159         imply BOARD_LATE_INIT
1160         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1161
1162 config ARCH_VF610
1163         bool "Freescale Vybrid"
1164         select CPU_V7A
1165         select GPIO_EXTRA_HEADER
1166         select MACH_IMX
1167         select SYS_FSL_ERRATUM_ESDHC111
1168         imply CMD_MTDPARTS
1169         imply MTD_RAW_NAND
1170
1171 config ARCH_ZYNQ
1172         bool "Xilinx Zynq based platform"
1173         select CLK
1174         select CLK_ZYNQ
1175         select CPU_V7A
1176         select DEBUG_UART_BOARD_INIT if SPL && DEBUG_UART
1177         select DM
1178         select DM_ETH if NET
1179         select DM_MMC if MMC
1180         select DM_SERIAL
1181         select DM_SPI
1182         select DM_SPI_FLASH
1183         select OF_CONTROL
1184         select SPI
1185         select SPL_BOARD_INIT if SPL
1186         select SPL_CLK if SPL
1187         select SPL_DM if SPL
1188         select SPL_DM_SPI if SPL
1189         select SPL_DM_SPI_FLASH if SPL
1190         select SPL_OF_CONTROL if SPL
1191         select SPL_SEPARATE_BSS if SPL
1192         select SUPPORT_SPL
1193         imply ARCH_EARLY_INIT_R
1194         imply BOARD_LATE_INIT
1195         imply CMD_CLK
1196         imply CMD_DM
1197         imply CMD_SPL
1198         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1199         imply FAT_WRITE
1200
1201 config ARCH_ZYNQMP_R5
1202         bool "Xilinx ZynqMP R5 based platform"
1203         select CLK
1204         select CPU_V7R
1205         select DM
1206         select DM_ETH if NET
1207         select DM_MMC if MMC
1208         select DM_SERIAL
1209         select OF_CONTROL
1210         imply CMD_DM
1211         imply DM_USB_GADGET
1212
1213 config ARCH_ZYNQMP
1214         bool "Xilinx ZynqMP based platform"
1215         select ARM64
1216         select CLK
1217         select DM
1218         select DEBUG_UART_BOARD_INIT if SPL && DEBUG_UART
1219         select DM_ETH if NET
1220         select DM_MAILBOX
1221         select DM_MMC if MMC
1222         select DM_SERIAL
1223         select DM_SPI if SPI
1224         select DM_SPI_FLASH if DM_SPI
1225         imply FIRMWARE
1226         select GICV2
1227         select OF_CONTROL
1228         select SPL_BOARD_INIT if SPL
1229         select SPL_CLK if SPL
1230         select SPL_DM if SPL
1231         select SPL_DM_SPI if SPI && SPL_DM
1232         select SPL_DM_SPI_FLASH if SPL_DM_SPI
1233         select SPL_DM_MAILBOX if SPL
1234         imply SPL_FIRMWARE if SPL
1235         select SPL_SEPARATE_BSS if SPL
1236         select SUPPORT_SPL
1237         select ZYNQMP_IPI
1238         select SOC_DEVICE
1239         imply BOARD_LATE_INIT
1240         imply CMD_DM
1241         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1242         imply FAT_WRITE
1243         imply MP
1244         imply DM_USB_GADGET
1245         imply ZYNQMP_GPIO_MODEPIN if DM_GPIO && USB
1246
1247 config ARCH_TEGRA
1248         bool "NVIDIA Tegra"
1249         select GPIO_EXTRA_HEADER
1250         imply DISTRO_DEFAULTS
1251         imply FAT_WRITE
1252
1253 config TARGET_VEXPRESS64_AEMV8A
1254         bool "Support vexpress_aemv8a"
1255         select ARM64
1256         select GPIO_EXTRA_HEADER
1257         select PL01X_SERIAL
1258
1259 config TARGET_VEXPRESS64_BASE_FVP
1260         bool "Support Versatile Express ARMv8a FVP BASE model"
1261         select ARM64
1262         select GPIO_EXTRA_HEADER
1263         select PL01X_SERIAL
1264         select SEMIHOSTING
1265
1266 config TARGET_VEXPRESS64_JUNO
1267         bool "Support Versatile Express Juno Development Platform"
1268         select ARM64
1269         select GPIO_EXTRA_HEADER
1270         select PL01X_SERIAL
1271         select DM
1272         select OF_CONTROL
1273         select CLK
1274         select DM_SERIAL
1275         select ARM_PSCI_FW
1276         select PSCI_RESET
1277         select DM_ETH
1278         select BLK
1279         select USB
1280         imply OF_HAS_PRIOR_STAGE
1281
1282 config TARGET_TOTAL_COMPUTE
1283         bool "Support Total Compute Platform"
1284         select ARM64
1285         select PL01X_SERIAL
1286         select DM
1287         select DM_SERIAL
1288         select DM_MMC
1289         select DM_GPIO
1290
1291 config TARGET_LS2080A_EMU
1292         bool "Support ls2080a_emu"
1293         select ARCH_LS2080A
1294         select ARM64
1295         select ARMV8_MULTIENTRY
1296         select FSL_DDR_SYNC_REFRESH
1297         select GPIO_EXTRA_HEADER
1298         help
1299           Support for Freescale LS2080A_EMU platform.
1300           The LS2080A Development System (EMULATOR) is a pre-silicon
1301           development platform that supports the QorIQ LS2080A
1302           Layerscape Architecture processor.
1303
1304 config TARGET_LS1088AQDS
1305         bool "Support ls1088aqds"
1306         select ARCH_LS1088A
1307         select ARM64
1308         select ARMV8_MULTIENTRY
1309         select ARCH_SUPPORT_TFABOOT
1310         select BOARD_LATE_INIT
1311         select GPIO_EXTRA_HEADER
1312         select SUPPORT_SPL
1313         select FSL_DDR_INTERACTIVE if !SD_BOOT
1314         help
1315           Support for NXP LS1088AQDS platform.
1316           The LS1088A Development System (QDS) is a high-performance
1317           development platform that supports the QorIQ LS1088A
1318           Layerscape Architecture processor.
1319
1320 config TARGET_LS2080AQDS
1321         bool "Support ls2080aqds"
1322         select ARCH_LS2080A
1323         select ARM64
1324         select ARMV8_MULTIENTRY
1325         select ARCH_SUPPORT_TFABOOT
1326         select BOARD_LATE_INIT
1327         select GPIO_EXTRA_HEADER
1328         select SUPPORT_SPL
1329         imply SCSI
1330         imply SCSI_AHCI
1331         select FSL_DDR_BIST
1332         select FSL_DDR_INTERACTIVE if !SPL
1333         help
1334           Support for Freescale LS2080AQDS platform.
1335           The LS2080A Development System (QDS) is a high-performance
1336           development platform that supports the QorIQ LS2080A
1337           Layerscape Architecture processor.
1338
1339 config TARGET_LS2080ARDB
1340         bool "Support ls2080ardb"
1341         select ARCH_LS2080A
1342         select ARM64
1343         select ARMV8_MULTIENTRY
1344         select ARCH_SUPPORT_TFABOOT
1345         select BOARD_LATE_INIT
1346         select SUPPORT_SPL
1347         select FSL_DDR_BIST
1348         select FSL_DDR_INTERACTIVE if !SPL
1349         select GPIO_EXTRA_HEADER
1350         imply SCSI
1351         imply SCSI_AHCI
1352         help
1353           Support for Freescale LS2080ARDB platform.
1354           The LS2080A Reference design board (RDB) is a high-performance
1355           development platform that supports the QorIQ LS2080A
1356           Layerscape Architecture processor.
1357
1358 config TARGET_LS2081ARDB
1359         bool "Support ls2081ardb"
1360         select ARCH_LS2080A
1361         select ARM64
1362         select ARMV8_MULTIENTRY
1363         select BOARD_LATE_INIT
1364         select GPIO_EXTRA_HEADER
1365         select SUPPORT_SPL
1366         help
1367           Support for Freescale LS2081ARDB platform.
1368           The LS2081A Reference design board (RDB) is a high-performance
1369           development platform that supports the QorIQ LS2081A/LS2041A
1370           Layerscape Architecture processor.
1371
1372 config TARGET_LX2160ARDB
1373         bool "Support lx2160ardb"
1374         select ARCH_LX2160A
1375         select ARM64
1376         select ARMV8_MULTIENTRY
1377         select ARCH_SUPPORT_TFABOOT
1378         select BOARD_LATE_INIT
1379         select GPIO_EXTRA_HEADER
1380         help
1381           Support for NXP LX2160ARDB platform.
1382           The lx2160ardb (LX2160A Reference design board (RDB)
1383           is a high-performance development platform that supports the
1384           QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1385
1386 config TARGET_LX2160AQDS
1387         bool "Support lx2160aqds"
1388         select ARCH_LX2160A
1389         select ARM64
1390         select ARMV8_MULTIENTRY
1391         select ARCH_SUPPORT_TFABOOT
1392         select BOARD_LATE_INIT
1393         select GPIO_EXTRA_HEADER
1394         help
1395           Support for NXP LX2160AQDS platform.
1396           The lx2160aqds (LX2160A QorIQ Development System (QDS)
1397           is a high-performance development platform that supports the
1398           QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1399
1400 config TARGET_LX2162AQDS
1401         bool "Support lx2162aqds"
1402         select ARCH_LX2162A
1403         select ARCH_MISC_INIT
1404         select ARM64
1405         select ARMV8_MULTIENTRY
1406         select ARCH_SUPPORT_TFABOOT
1407         select BOARD_LATE_INIT
1408         select GPIO_EXTRA_HEADER
1409         help
1410           Support for NXP LX2162AQDS platform.
1411           The lx2162aqds support is based on LX2160A Layerscape Architecture processor.
1412
1413 config TARGET_HIKEY
1414         bool "Support HiKey 96boards Consumer Edition Platform"
1415         select ARM64
1416         select DM
1417         select DM_GPIO
1418         select DM_SERIAL
1419         select GPIO_EXTRA_HEADER
1420         select OF_CONTROL
1421         select PL01X_SERIAL
1422         select SPECIFY_CONSOLE_INDEX
1423         imply CMD_DM
1424           help
1425           Support for HiKey 96boards platform. It features a HI6220
1426           SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
1427
1428 config TARGET_HIKEY960
1429         bool "Support HiKey960 96boards Consumer 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 HiKey960 96boards platform. It features a HI3660
1439           SoC, with 4xA73 CPU, 4xA53 CPU, MALI-G71 GPU, and 3GB RAM.
1440
1441 config TARGET_POPLAR
1442         bool "Support Poplar 96boards Enterprise Edition Platform"
1443         select ARM64
1444         select DM
1445         select DM_SERIAL
1446         select GPIO_EXTRA_HEADER
1447         select OF_CONTROL
1448         select PL01X_SERIAL
1449         imply CMD_DM
1450           help
1451           Support for Poplar 96boards EE platform. It features a HI3798cv200
1452           SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
1453           making it capable of running any commercial set-top solution based on
1454           Linux or Android.
1455
1456 config TARGET_LS1012AQDS
1457         bool "Support ls1012aqds"
1458         select ARCH_LS1012A
1459         select ARM64
1460         select ARCH_SUPPORT_TFABOOT
1461         select BOARD_LATE_INIT
1462         select GPIO_EXTRA_HEADER
1463         help
1464           Support for Freescale LS1012AQDS platform.
1465           The LS1012A Development System (QDS) is a high-performance
1466           development platform that supports the QorIQ LS1012A
1467           Layerscape Architecture processor.
1468
1469 config TARGET_LS1012ARDB
1470         bool "Support ls1012ardb"
1471         select ARCH_LS1012A
1472         select ARM64
1473         select ARCH_SUPPORT_TFABOOT
1474         select BOARD_LATE_INIT
1475         select GPIO_EXTRA_HEADER
1476         imply SCSI
1477         imply SCSI_AHCI
1478         help
1479           Support for Freescale LS1012ARDB platform.
1480           The LS1012A Reference design board (RDB) is a high-performance
1481           development platform that supports the QorIQ LS1012A
1482           Layerscape Architecture processor.
1483
1484 config TARGET_LS1012A2G5RDB
1485         bool "Support ls1012a2g5rdb"
1486         select ARCH_LS1012A
1487         select ARM64
1488         select ARCH_SUPPORT_TFABOOT
1489         select BOARD_LATE_INIT
1490         select GPIO_EXTRA_HEADER
1491         imply SCSI
1492         help
1493           Support for Freescale LS1012A2G5RDB platform.
1494           The LS1012A 2G5 Reference design board (RDB) is a high-performance
1495           development platform that supports the QorIQ LS1012A
1496           Layerscape Architecture processor.
1497
1498 config TARGET_LS1012AFRWY
1499         bool "Support ls1012afrwy"
1500         select ARCH_LS1012A
1501         select ARM64
1502         select ARCH_SUPPORT_TFABOOT
1503         select BOARD_LATE_INIT
1504         select GPIO_EXTRA_HEADER
1505         imply SCSI
1506         imply SCSI_AHCI
1507         help
1508          Support for Freescale LS1012AFRWY platform.
1509          The LS1012A FRWY board (FRWY) is a high-performance
1510          development platform that supports the QorIQ LS1012A
1511          Layerscape Architecture processor.
1512
1513 config TARGET_LS1012AFRDM
1514         bool "Support ls1012afrdm"
1515         select ARCH_LS1012A
1516         select ARM64
1517         select ARCH_SUPPORT_TFABOOT
1518         select GPIO_EXTRA_HEADER
1519         help
1520           Support for Freescale LS1012AFRDM platform.
1521           The LS1012A Freedom  board (FRDM) is a high-performance
1522           development platform that supports the QorIQ LS1012A
1523           Layerscape Architecture processor.
1524
1525 config TARGET_LS1028AQDS
1526         bool "Support ls1028aqds"
1527         select ARCH_LS1028A
1528         select ARM64
1529         select ARMV8_MULTIENTRY
1530         select ARCH_SUPPORT_TFABOOT
1531         select BOARD_LATE_INIT
1532         select GPIO_EXTRA_HEADER
1533         help
1534           Support for Freescale LS1028AQDS platform
1535           The LS1028A Development System (QDS) is a high-performance
1536           development platform that supports the QorIQ LS1028A
1537           Layerscape Architecture processor.
1538
1539 config TARGET_LS1028ARDB
1540         bool "Support ls1028ardb"
1541         select ARCH_LS1028A
1542         select ARM64
1543         select ARMV8_MULTIENTRY
1544         select ARCH_SUPPORT_TFABOOT
1545         select BOARD_LATE_INIT
1546         select GPIO_EXTRA_HEADER
1547         help
1548           Support for Freescale LS1028ARDB platform
1549           The LS1028A Development System (RDB) is a high-performance
1550           development platform that supports the QorIQ LS1028A
1551           Layerscape Architecture processor.
1552
1553 config TARGET_LS1088ARDB
1554         bool "Support ls1088ardb"
1555         select ARCH_LS1088A
1556         select ARM64
1557         select ARMV8_MULTIENTRY
1558         select ARCH_SUPPORT_TFABOOT
1559         select BOARD_LATE_INIT
1560         select SUPPORT_SPL
1561         select FSL_DDR_INTERACTIVE if !SD_BOOT
1562         select GPIO_EXTRA_HEADER
1563         help
1564           Support for NXP LS1088ARDB platform.
1565           The LS1088A Reference design board (RDB) is a high-performance
1566           development platform that supports the QorIQ LS1088A
1567           Layerscape Architecture processor.
1568
1569 config TARGET_LS1021AQDS
1570         bool "Support ls1021aqds"
1571         select ARCH_LS1021A
1572         select ARCH_SUPPORT_PSCI
1573         select BOARD_EARLY_INIT_F
1574         select BOARD_LATE_INIT
1575         select CPU_V7A
1576         select CPU_V7_HAS_NONSEC
1577         select CPU_V7_HAS_VIRT
1578         select LS1_DEEP_SLEEP
1579         select SUPPORT_SPL
1580         select SYS_FSL_DDR
1581         select FSL_DDR_INTERACTIVE
1582         select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
1583         select GPIO_EXTRA_HEADER
1584         select SPI_FLASH_DATAFLASH if FSL_DSPI || FSL_QSPI
1585         imply SCSI
1586
1587 config TARGET_LS1021ATWR
1588         bool "Support ls1021atwr"
1589         select ARCH_LS1021A
1590         select ARCH_SUPPORT_PSCI
1591         select BOARD_EARLY_INIT_F
1592         select BOARD_LATE_INIT
1593         select CPU_V7A
1594         select CPU_V7_HAS_NONSEC
1595         select CPU_V7_HAS_VIRT
1596         select LS1_DEEP_SLEEP
1597         select SUPPORT_SPL
1598         select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
1599         select GPIO_EXTRA_HEADER
1600         imply SCSI
1601
1602 config TARGET_PG_WCOM_SELI8
1603         bool "Support Hitachi-Powergrids SELI8 service unit card"
1604         select ARCH_LS1021A
1605         select ARCH_SUPPORT_PSCI
1606         select BOARD_EARLY_INIT_F
1607         select BOARD_LATE_INIT
1608         select CPU_V7A
1609         select CPU_V7_HAS_NONSEC
1610         select CPU_V7_HAS_VIRT
1611         select SYS_FSL_DDR
1612         select FSL_DDR_INTERACTIVE
1613         select GPIO_EXTRA_HEADER
1614         select VENDOR_KM
1615         imply SCSI
1616         help
1617          Support for Hitachi-Powergrids SELI8 service unit card.
1618          SELI8 is a QorIQ LS1021a based service unit card used
1619          in XMC20 and FOX615 product families.
1620
1621 config TARGET_PG_WCOM_EXPU1
1622         bool "Support Hitachi-Powergrids EXPU1 service unit card"
1623         select ARCH_LS1021A
1624         select ARCH_SUPPORT_PSCI
1625         select BOARD_EARLY_INIT_F
1626         select BOARD_LATE_INIT
1627         select CPU_V7A
1628         select CPU_V7_HAS_NONSEC
1629         select CPU_V7_HAS_VIRT
1630         select SYS_FSL_DDR
1631         select FSL_DDR_INTERACTIVE
1632         select VENDOR_KM
1633         imply SCSI
1634         help
1635          Support for Hitachi-Powergrids EXPU1 service unit card.
1636          EXPU1 is a QorIQ LS1021a based service unit card used
1637          in XMC20 and FOX615 product families.
1638
1639 config TARGET_LS1021ATSN
1640         bool "Support ls1021atsn"
1641         select ARCH_LS1021A
1642         select ARCH_SUPPORT_PSCI
1643         select BOARD_EARLY_INIT_F
1644         select BOARD_LATE_INIT
1645         select CPU_V7A
1646         select CPU_V7_HAS_NONSEC
1647         select CPU_V7_HAS_VIRT
1648         select LS1_DEEP_SLEEP
1649         select SUPPORT_SPL
1650         select GPIO_EXTRA_HEADER
1651         imply SCSI
1652
1653 config TARGET_LS1021AIOT
1654         bool "Support ls1021aiot"
1655         select ARCH_LS1021A
1656         select ARCH_SUPPORT_PSCI
1657         select BOARD_LATE_INIT
1658         select CPU_V7A
1659         select CPU_V7_HAS_NONSEC
1660         select CPU_V7_HAS_VIRT
1661         select SUPPORT_SPL
1662         select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
1663         select GPIO_EXTRA_HEADER
1664         imply SCSI
1665         help
1666           Support for Freescale LS1021AIOT platform.
1667           The LS1021A Freescale board (IOT) is a high-performance
1668           development platform that supports the QorIQ LS1021A
1669           Layerscape Architecture processor.
1670
1671 config TARGET_LS1043AQDS
1672         bool "Support ls1043aqds"
1673         select ARCH_LS1043A
1674         select ARM64
1675         select ARMV8_MULTIENTRY
1676         select ARCH_SUPPORT_TFABOOT
1677         select BOARD_EARLY_INIT_F
1678         select BOARD_LATE_INIT
1679         select SUPPORT_SPL
1680         select FSL_DDR_INTERACTIVE if !SPL
1681         select FSL_DSPI if !SPL_NO_DSPI
1682         select DM_SPI_FLASH if FSL_DSPI
1683         select GPIO_EXTRA_HEADER
1684         imply SCSI
1685         imply SCSI_AHCI
1686         help
1687           Support for Freescale LS1043AQDS platform.
1688
1689 config TARGET_LS1043ARDB
1690         bool "Support ls1043ardb"
1691         select ARCH_LS1043A
1692         select ARM64
1693         select ARMV8_MULTIENTRY
1694         select ARCH_SUPPORT_TFABOOT
1695         select BOARD_EARLY_INIT_F
1696         select BOARD_LATE_INIT
1697         select SUPPORT_SPL
1698         select FSL_DSPI if !SPL_NO_DSPI
1699         select DM_SPI_FLASH if FSL_DSPI
1700         select GPIO_EXTRA_HEADER
1701         help
1702           Support for Freescale LS1043ARDB platform.
1703
1704 config TARGET_LS1046AQDS
1705         bool "Support ls1046aqds"
1706         select ARCH_LS1046A
1707         select ARM64
1708         select ARMV8_MULTIENTRY
1709         select ARCH_SUPPORT_TFABOOT
1710         select BOARD_EARLY_INIT_F
1711         select BOARD_LATE_INIT
1712         select DM_SPI_FLASH if DM_SPI
1713         select SUPPORT_SPL
1714         select FSL_DDR_BIST if !SPL
1715         select FSL_DDR_INTERACTIVE  if !SPL
1716         select FSL_DDR_INTERACTIVE if !SPL
1717         select GPIO_EXTRA_HEADER
1718         imply SCSI
1719         help
1720           Support for Freescale LS1046AQDS platform.
1721           The LS1046A Development System (QDS) is a high-performance
1722           development platform that supports the QorIQ LS1046A
1723           Layerscape Architecture processor.
1724
1725 config TARGET_LS1046ARDB
1726         bool "Support ls1046ardb"
1727         select ARCH_LS1046A
1728         select ARM64
1729         select ARMV8_MULTIENTRY
1730         select ARCH_SUPPORT_TFABOOT
1731         select BOARD_EARLY_INIT_F
1732         select BOARD_LATE_INIT
1733         select DM_SPI_FLASH if DM_SPI
1734         select POWER_MC34VR500
1735         select SUPPORT_SPL
1736         select FSL_DDR_BIST
1737         select FSL_DDR_INTERACTIVE if !SPL
1738         select GPIO_EXTRA_HEADER
1739         imply SCSI
1740         help
1741           Support for Freescale LS1046ARDB platform.
1742           The LS1046A Reference Design Board (RDB) is a high-performance
1743           development platform that supports the QorIQ LS1046A
1744           Layerscape Architecture processor.
1745
1746 config TARGET_LS1046AFRWY
1747         bool "Support ls1046afrwy"
1748         select ARCH_LS1046A
1749         select ARM64
1750         select ARMV8_MULTIENTRY
1751         select ARCH_SUPPORT_TFABOOT
1752         select BOARD_EARLY_INIT_F
1753         select BOARD_LATE_INIT
1754         select DM_SPI_FLASH if DM_SPI
1755         select GPIO_EXTRA_HEADER
1756         imply SCSI
1757         help
1758           Support for Freescale LS1046AFRWY platform.
1759           The LS1046A Freeway Board (FRWY) is a high-performance
1760           development platform that supports the QorIQ LS1046A
1761           Layerscape Architecture processor.
1762
1763 config TARGET_SL28
1764         bool "Support sl28"
1765         select ARCH_LS1028A
1766         select ARM64
1767         select ARMV8_MULTIENTRY
1768         select SUPPORT_SPL
1769         select BINMAN
1770         select DM
1771         select DM_GPIO
1772         select DM_I2C
1773         select DM_MMC
1774         select DM_SPI_FLASH
1775         select DM_ETH
1776         select DM_MDIO
1777         select PCI
1778         select DM_RNG
1779         select DM_RTC
1780         select DM_SCSI
1781         select DM_SERIAL
1782         select DM_SPI
1783         select GPIO_EXTRA_HEADER
1784         select SPL_DM if SPL
1785         select SPL_DM_SPI if SPL
1786         select SPL_DM_SPI_FLASH if SPL
1787         select SPL_DM_I2C if SPL
1788         select SPL_DM_MMC if SPL
1789         select SPL_DM_SERIAL if SPL
1790         help
1791           Support for Kontron SMARC-sAL28 board.
1792
1793 config TARGET_TEN64
1794         bool "Support ten64"
1795         select ARCH_LS1088A
1796         select ARCH_MISC_INIT
1797         select ARM64
1798         select ARMV8_MULTIENTRY
1799         select ARCH_SUPPORT_TFABOOT
1800         select BOARD_LATE_INIT
1801         select SUPPORT_SPL
1802         select FSL_DDR_INTERACTIVE if !SD_BOOT
1803         select GPIO_EXTRA_HEADER
1804         help
1805           Support for Traverse Technologies Ten64 board, based
1806           on NXP LS1088A.
1807
1808 config TARGET_COLIBRI_PXA270
1809         bool "Support colibri_pxa270"
1810         select CPU_PXA27X
1811         select GPIO_EXTRA_HEADER
1812
1813 config ARCH_UNIPHIER
1814         bool "Socionext UniPhier SoCs"
1815         select BOARD_LATE_INIT
1816         select DM
1817         select DM_ETH
1818         select DM_GPIO
1819         select DM_I2C
1820         select DM_MMC
1821         select DM_MTD
1822         select DM_RESET
1823         select DM_SERIAL
1824         select OF_BOARD_SETUP
1825         select OF_CONTROL
1826         select OF_LIBFDT
1827         select PINCTRL
1828         select SPL_BOARD_INIT if SPL
1829         select SPL_DM if SPL
1830         select SPL_LIBCOMMON_SUPPORT if SPL
1831         select SPL_LIBGENERIC_SUPPORT if SPL
1832         select SPL_OF_CONTROL if SPL
1833         select SPL_PINCTRL if SPL
1834         select SUPPORT_SPL
1835         imply CMD_DM
1836         imply DISTRO_DEFAULTS
1837         imply FAT_WRITE
1838         help
1839           Support for UniPhier SoC family developed by Socionext Inc.
1840           (formerly, System LSI Business Division of Panasonic Corporation)
1841
1842 config ARCH_SYNQUACER
1843         bool "Socionext SynQuacer SoCs"
1844         select ARM64
1845         select DM
1846         select GIC_V3
1847         select PSCI_RESET
1848         select SYSRESET
1849         select SYSRESET_PSCI
1850         select OF_CONTROL
1851         help
1852           Support for SynQuacer SoC family developed by Socionext Inc.
1853           This SoC is used on 96boards EE DeveloperBox.
1854
1855 config ARCH_STM32
1856         bool "Support STMicroelectronics STM32 MCU with cortex M"
1857         select CPU_V7M
1858         select DM
1859         select DM_SERIAL
1860         imply CMD_DM
1861
1862 config ARCH_STI
1863         bool "Support STMicrolectronics SoCs"
1864         select BLK
1865         select CPU_V7A
1866         select DM
1867         select DM_MMC
1868         select DM_RESET
1869         select DM_SERIAL
1870         imply CMD_DM
1871         help
1872           Support for STMicroelectronics STiH407/10 SoC family.
1873           This SoC is used on Linaro 96Board STiH410-B2260
1874
1875 config ARCH_STM32MP
1876         bool "Support STMicroelectronics STM32MP Socs with cortex A"
1877         select ARCH_MISC_INIT
1878         select ARCH_SUPPORT_TFABOOT
1879         select BOARD_LATE_INIT
1880         select CLK
1881         select DM
1882         select DM_GPIO
1883         select DM_RESET
1884         select DM_SERIAL
1885         select MISC
1886         select OF_CONTROL
1887         select OF_LIBFDT
1888         select OF_SYSTEM_SETUP
1889         select PINCTRL
1890         select REGMAP
1891         select SUPPORT_SPL
1892         select SYSCON
1893         select SYSRESET
1894         select SYS_THUMB_BUILD
1895         imply SPL_SYSRESET
1896         imply CMD_DM
1897         imply CMD_POWEROFF
1898         imply OF_LIBFDT_OVERLAY
1899         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1900         imply USE_PREBOOT
1901         imply TIMESTAMP
1902         help
1903           Support for STM32MP SoC family developed by STMicroelectronics,
1904           MPUs based on ARM cortex A core
1905           U-BOOT is running in DDR, loaded by the First Stage BootLoader (FSBL).
1906           FSBL can be TF-A: Trusted Firmware for Cortex A, for trusted boot
1907           chain.
1908           SPL is the unsecure FSBL for the basic boot chain.
1909
1910 config ARCH_ROCKCHIP
1911         bool "Support Rockchip SoCs"
1912         select BLK
1913         select BINMAN if SPL_OPTEE || (SPL && !ARM64)
1914         select DM
1915         select DM_GPIO
1916         select DM_I2C
1917         select DM_MMC
1918         select DM_PWM
1919         select DM_REGULATOR
1920         select DM_SERIAL
1921         select DM_SPI
1922         select DM_SPI_FLASH
1923         select ENABLE_ARM_SOC_BOOT0_HOOK
1924         select OF_CONTROL
1925         select SPI
1926         select SPL_DM if SPL
1927         select SPL_DM_SPI if SPL
1928         select SPL_DM_SPI_FLASH if SPL
1929         select SYS_MALLOC_F
1930         select SYS_THUMB_BUILD if !ARM64
1931         imply ADC
1932         imply CMD_DM
1933         imply DEBUG_UART_BOARD_INIT
1934         imply DISTRO_DEFAULTS
1935         imply FAT_WRITE
1936         imply SARADC_ROCKCHIP
1937         imply SPL_SYSRESET
1938         imply SPL_SYS_MALLOC_SIMPLE
1939         imply SYS_NS16550
1940         imply TPL_SYSRESET
1941         imply USB_FUNCTION_FASTBOOT
1942
1943 config ARCH_OCTEONTX
1944         bool "Support OcteonTX 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 ARCH_OCTEONTX2
1957         bool "Support OcteonTX2 SoCs"
1958         select CLK
1959         select DM
1960         select GPIO_EXTRA_HEADER
1961         select ARM64
1962         select OF_CONTROL
1963         select OF_LIVE
1964         select BOARD_LATE_INIT
1965         select SYS_CACHE_SHIFT_7
1966         select SYS_PCI_64BIT if PCI
1967         imply OF_HAS_PRIOR_STAGE
1968
1969 config TARGET_THUNDERX_88XX
1970         bool "Support ThunderX 88xx"
1971         select ARM64
1972         select GPIO_EXTRA_HEADER
1973         select OF_CONTROL
1974         select PL01X_SERIAL
1975         select SYS_CACHE_SHIFT_7
1976
1977 config ARCH_ASPEED
1978         bool "Support Aspeed SoCs"
1979         select DM
1980         select OF_CONTROL
1981         imply CMD_DM
1982
1983 config TARGET_DURIAN
1984         bool "Support Phytium Durian Platform"
1985         select ARM64
1986         select GPIO_EXTRA_HEADER
1987         help
1988           Support for durian platform.
1989           It has 2GB Sdram, uart and pcie.
1990
1991 config TARGET_POMELO
1992         bool "Support Phytium Pomelo Platform"
1993         select ARM64
1994         select DM
1995         select AHCI
1996         select SCSI_AHCI
1997         select AHCI_PCI
1998         select BLK
1999         select PCI
2000         select DM_PCI
2001         select SCSI
2002         select DM_SCSI
2003         select DM_SERIAL
2004         select DM_ETH if NET
2005         imply CMD_PCI
2006         help
2007            Support for pomelo platform.
2008            It has 8GB Sdram, uart and pcie.
2009
2010 config TARGET_PRESIDIO_ASIC
2011         bool "Support Cortina Presidio ASIC Platform"
2012         select ARM64
2013         select GICV2
2014
2015 config TARGET_XENGUEST_ARM64
2016         bool "Xen guest ARM64"
2017         select ARM64
2018         select XEN
2019         select OF_CONTROL
2020         select LINUX_KERNEL_IMAGE_HEADER
2021         select XEN_SERIAL
2022         select SSCANF
2023         imply OF_HAS_PRIOR_STAGE
2024
2025 endchoice
2026
2027 config SUPPORT_PASSING_ATAGS
2028         bool "Support pre-devicetree ATAG-based booting"
2029         depends on !ARM64
2030         imply SETUP_MEMORY_TAGS
2031         help
2032           Support for booting older Linux kernels, using ATAGs rather than
2033           passing a devicetree.  This is option is rarely used, and the
2034           semantics are defined at
2035           https://www.kernel.org/doc/Documentation/arm/Booting at section 4a.
2036
2037 config SETUP_MEMORY_TAGS
2038         bool "Pass memory size information via ATAG"
2039         depends on SUPPORT_PASSING_ATAGS
2040
2041 config CMDLINE_TAG
2042         bool "Pass Linux kernel cmdline via ATAG"
2043         depends on SUPPORT_PASSING_ATAGS
2044
2045 config INITRD_TAG
2046         bool "Pass initrd starting point and size via ATAG"
2047         depends on SUPPORT_PASSING_ATAGS
2048
2049 config REVISION_TAG
2050         bool "Pass system revision via ATAG"
2051         depends on SUPPORT_PASSING_ATAGS
2052
2053 config SERIAL_TAG
2054         bool "Pass system serial number via ATAG"
2055         depends on SUPPORT_PASSING_ATAGS
2056
2057 config STATIC_MACH_TYPE
2058         bool "Statically define the Machine ID number"
2059         help
2060           When booting via ATAGs, enable this option if we know the correct
2061           machine ID number to use at compile time.  Some systems will be
2062           passed the number dynamically by whatever loads U-Boot.
2063
2064 config MACH_TYPE
2065         int "Machine ID number"
2066         depends on STATIC_MACH_TYPE
2067         help
2068           When booting via ATAGs, the machine type must be passed as a number.
2069           For the full list see https://www.arm.linux.org.uk/developer/machines
2070
2071 config ARCH_SUPPORT_TFABOOT
2072         bool
2073
2074 config TFABOOT
2075         bool "Support for booting from TF-A"
2076         depends on ARCH_SUPPORT_TFABOOT
2077         help
2078           Some platforms support the setup of secure registers (for instance
2079           for CPU errata handling) or provide secure services like PSCI.
2080           Those services could also be provided by other firmware parts
2081           like TF-A (Trusted Firmware for Cortex-A), in which case U-Boot
2082           does not need to (and cannot) execute this code.
2083           Enabling this option will make a U-Boot binary that is relying
2084           on other firmware layers to provide secure functionality.
2085
2086 config TI_SECURE_DEVICE
2087         bool "HS Device Type Support"
2088         depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
2089         help
2090           If a high secure (HS) device type is being used, this config
2091           must be set. This option impacts various aspects of the
2092           build system (to create signed boot images that can be
2093           authenticated) and the code. See the doc/README.ti-secure
2094           file for further details.
2095
2096 if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
2097 config ISW_ENTRY_ADDR
2098         hex "Address in memory or XIP address of bootloader entry point"
2099         default 0x402F4000 if AM43XX
2100         default 0x402F0400 if AM33XX
2101         default 0x40301350 if OMAP54XX
2102         help
2103           After any reset, the boot ROM searches the boot media for a valid
2104           boot image. For non-XIP devices, the ROM then copies the image into
2105           internal memory. For all boot modes, after the ROM processes the
2106           boot image it eventually computes the entry point address depending
2107           on the device type (secure/non-secure), boot media (xip/non-xip) and
2108           image headers.
2109 endif
2110
2111 config SYS_KWD_CONFIG
2112         string "kwbimage config file path"
2113         depends on ARCH_KIRKWOOD || ARCH_MVEBU
2114         default "arch/arm/mach-mvebu/kwbimage.cfg"
2115         help
2116           Path within the source directory to the kwbimage.cfg file to use
2117           when packaging the U-Boot image for use.
2118
2119 source "arch/arm/mach-apple/Kconfig"
2120
2121 source "arch/arm/mach-aspeed/Kconfig"
2122
2123 source "arch/arm/mach-at91/Kconfig"
2124
2125 source "arch/arm/mach-bcm283x/Kconfig"
2126
2127 source "arch/arm/mach-bcmstb/Kconfig"
2128
2129 source "arch/arm/mach-davinci/Kconfig"
2130
2131 source "arch/arm/mach-exynos/Kconfig"
2132
2133 source "arch/arm/mach-highbank/Kconfig"
2134
2135 source "arch/arm/mach-integrator/Kconfig"
2136
2137 source "arch/arm/mach-ipq40xx/Kconfig"
2138
2139 source "arch/arm/mach-k3/Kconfig"
2140
2141 source "arch/arm/mach-keystone/Kconfig"
2142
2143 source "arch/arm/mach-kirkwood/Kconfig"
2144
2145 source "arch/arm/mach-lpc32xx/Kconfig"
2146
2147 source "arch/arm/mach-mvebu/Kconfig"
2148
2149 source "arch/arm/mach-octeontx/Kconfig"
2150
2151 source "arch/arm/mach-octeontx2/Kconfig"
2152
2153 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
2154
2155 source "arch/arm/mach-imx/mx3/Kconfig"
2156
2157 source "arch/arm/mach-imx/mx5/Kconfig"
2158
2159 source "arch/arm/mach-imx/mx6/Kconfig"
2160
2161 source "arch/arm/mach-imx/mx7/Kconfig"
2162
2163 source "arch/arm/mach-imx/mx7ulp/Kconfig"
2164
2165 source "arch/arm/mach-imx/imx8/Kconfig"
2166
2167 source "arch/arm/mach-imx/imx8m/Kconfig"
2168
2169 source "arch/arm/mach-imx/imx8ulp/Kconfig"
2170
2171 source "arch/arm/mach-imx/imxrt/Kconfig"
2172
2173 source "arch/arm/mach-imx/mxs/Kconfig"
2174
2175 source "arch/arm/mach-omap2/Kconfig"
2176
2177 source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
2178
2179 source "arch/arm/mach-orion5x/Kconfig"
2180
2181 source "arch/arm/mach-owl/Kconfig"
2182
2183 source "arch/arm/mach-rmobile/Kconfig"
2184
2185 source "arch/arm/mach-meson/Kconfig"
2186
2187 source "arch/arm/mach-mediatek/Kconfig"
2188
2189 source "arch/arm/mach-qemu/Kconfig"
2190
2191 source "arch/arm/mach-rockchip/Kconfig"
2192
2193 source "arch/arm/mach-s5pc1xx/Kconfig"
2194
2195 source "arch/arm/mach-snapdragon/Kconfig"
2196
2197 source "arch/arm/mach-socfpga/Kconfig"
2198
2199 source "arch/arm/mach-sti/Kconfig"
2200
2201 source "arch/arm/mach-stm32/Kconfig"
2202
2203 source "arch/arm/mach-stm32mp/Kconfig"
2204
2205 source "arch/arm/mach-sunxi/Kconfig"
2206
2207 source "arch/arm/mach-tegra/Kconfig"
2208
2209 source "arch/arm/mach-u8500/Kconfig"
2210
2211 source "arch/arm/mach-uniphier/Kconfig"
2212
2213 source "arch/arm/cpu/armv7/vf610/Kconfig"
2214
2215 source "arch/arm/mach-zynq/Kconfig"
2216
2217 source "arch/arm/mach-zynqmp/Kconfig"
2218
2219 source "arch/arm/mach-versal/Kconfig"
2220
2221 source "arch/arm/mach-zynqmp-r5/Kconfig"
2222
2223 source "arch/arm/cpu/armv7/Kconfig"
2224
2225 source "arch/arm/cpu/armv8/Kconfig"
2226
2227 source "arch/arm/mach-imx/Kconfig"
2228
2229 source "arch/arm/mach-nexell/Kconfig"
2230
2231 source "board/armltd/total_compute/Kconfig"
2232
2233 source "board/bosch/shc/Kconfig"
2234 source "board/bosch/guardian/Kconfig"
2235 source "board/Marvell/octeontx/Kconfig"
2236 source "board/Marvell/octeontx2/Kconfig"
2237 source "board/armltd/vexpress/Kconfig"
2238 source "board/armltd/vexpress64/Kconfig"
2239 source "board/cortina/presidio-asic/Kconfig"
2240 source "board/broadcom/bcm963158/Kconfig"
2241 source "board/broadcom/bcm96753ref/Kconfig"
2242 source "board/broadcom/bcm968360bg/Kconfig"
2243 source "board/broadcom/bcm968580xref/Kconfig"
2244 source "board/broadcom/bcmns3/Kconfig"
2245 source "board/cavium/thunderx/Kconfig"
2246 source "board/eets/pdu001/Kconfig"
2247 source "board/emulation/qemu-arm/Kconfig"
2248 source "board/freescale/ls2080aqds/Kconfig"
2249 source "board/freescale/ls2080ardb/Kconfig"
2250 source "board/freescale/ls1088a/Kconfig"
2251 source "board/freescale/ls1028a/Kconfig"
2252 source "board/freescale/ls1021aqds/Kconfig"
2253 source "board/freescale/ls1043aqds/Kconfig"
2254 source "board/freescale/ls1021atwr/Kconfig"
2255 source "board/freescale/ls1021atsn/Kconfig"
2256 source "board/freescale/ls1021aiot/Kconfig"
2257 source "board/freescale/ls1046aqds/Kconfig"
2258 source "board/freescale/ls1043ardb/Kconfig"
2259 source "board/freescale/ls1046ardb/Kconfig"
2260 source "board/freescale/ls1046afrwy/Kconfig"
2261 source "board/freescale/ls1012aqds/Kconfig"
2262 source "board/freescale/ls1012ardb/Kconfig"
2263 source "board/freescale/ls1012afrdm/Kconfig"
2264 source "board/freescale/lx2160a/Kconfig"
2265 source "board/grinn/chiliboard/Kconfig"
2266 source "board/hisilicon/hikey/Kconfig"
2267 source "board/hisilicon/hikey960/Kconfig"
2268 source "board/hisilicon/poplar/Kconfig"
2269 source "board/isee/igep003x/Kconfig"
2270 source "board/kontron/sl28/Kconfig"
2271 source "board/myir/mys_6ulx/Kconfig"
2272 source "board/seeed/npi_imx6ull/Kconfig"
2273 source "board/socionext/developerbox/Kconfig"
2274 source "board/st/stv0991/Kconfig"
2275 source "board/tcl/sl50/Kconfig"
2276 source "board/toradex/colibri_pxa270/Kconfig"
2277 source "board/traverse/ten64/Kconfig"
2278 source "board/variscite/dart_6ul/Kconfig"
2279 source "board/vscom/baltos/Kconfig"
2280 source "board/phytium/durian/Kconfig"
2281 source "board/phytium/pomelo/Kconfig"
2282 source "board/xen/xenguest_arm64/Kconfig"
2283 source "board/keymile/Kconfig"
2284
2285 source "arch/arm/Kconfig.debug"
2286
2287 endmenu
2288
2289 config SPL_LDSCRIPT
2290         default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
2291         default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
2292         default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64