vexpress64: move hardware setting from defconfig to Kconfig
[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 ARCH_VEXPRESS64
1254         bool "Support ARMv8 Arm Ltd. VExpress based boards and models"
1255         select ARM64
1256         select DM
1257         select DM_SERIAL
1258         select PL01X_SERIAL
1259         select OF_CONTROL
1260         select CLK
1261         select BLK
1262         select MTD_NOR_FLASH if MTD
1263         select FLASH_CFI_DRIVER if MTD
1264         select ENV_IS_IN_FLASH if MTD
1265
1266 config TARGET_TOTAL_COMPUTE
1267         bool "Support Total Compute Platform"
1268         select ARM64
1269         select PL01X_SERIAL
1270         select DM
1271         select DM_SERIAL
1272         select DM_MMC
1273         select DM_GPIO
1274
1275 config TARGET_LS2080A_EMU
1276         bool "Support ls2080a_emu"
1277         select ARCH_LS2080A
1278         select ARM64
1279         select ARMV8_MULTIENTRY
1280         select FSL_DDR_SYNC_REFRESH
1281         select GPIO_EXTRA_HEADER
1282         help
1283           Support for Freescale LS2080A_EMU platform.
1284           The LS2080A Development System (EMULATOR) is a pre-silicon
1285           development platform that supports the QorIQ LS2080A
1286           Layerscape Architecture processor.
1287
1288 config TARGET_LS1088AQDS
1289         bool "Support ls1088aqds"
1290         select ARCH_LS1088A
1291         select ARM64
1292         select ARMV8_MULTIENTRY
1293         select ARCH_SUPPORT_TFABOOT
1294         select BOARD_LATE_INIT
1295         select GPIO_EXTRA_HEADER
1296         select SUPPORT_SPL
1297         select FSL_DDR_INTERACTIVE if !SD_BOOT
1298         help
1299           Support for NXP LS1088AQDS platform.
1300           The LS1088A Development System (QDS) is a high-performance
1301           development platform that supports the QorIQ LS1088A
1302           Layerscape Architecture processor.
1303
1304 config TARGET_LS2080AQDS
1305         bool "Support ls2080aqds"
1306         select ARCH_LS2080A
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         imply SCSI
1314         imply SCSI_AHCI
1315         select FSL_DDR_BIST
1316         select FSL_DDR_INTERACTIVE if !SPL
1317         help
1318           Support for Freescale LS2080AQDS platform.
1319           The LS2080A Development System (QDS) is a high-performance
1320           development platform that supports the QorIQ LS2080A
1321           Layerscape Architecture processor.
1322
1323 config TARGET_LS2080ARDB
1324         bool "Support ls2080ardb"
1325         select ARCH_LS2080A
1326         select ARM64
1327         select ARMV8_MULTIENTRY
1328         select ARCH_SUPPORT_TFABOOT
1329         select BOARD_LATE_INIT
1330         select SUPPORT_SPL
1331         select FSL_DDR_BIST
1332         select FSL_DDR_INTERACTIVE if !SPL
1333         select GPIO_EXTRA_HEADER
1334         imply SCSI
1335         imply SCSI_AHCI
1336         help
1337           Support for Freescale LS2080ARDB platform.
1338           The LS2080A Reference design board (RDB) is a high-performance
1339           development platform that supports the QorIQ LS2080A
1340           Layerscape Architecture processor.
1341
1342 config TARGET_LS2081ARDB
1343         bool "Support ls2081ardb"
1344         select ARCH_LS2080A
1345         select ARM64
1346         select ARMV8_MULTIENTRY
1347         select BOARD_LATE_INIT
1348         select GPIO_EXTRA_HEADER
1349         select SUPPORT_SPL
1350         help
1351           Support for Freescale LS2081ARDB platform.
1352           The LS2081A Reference design board (RDB) is a high-performance
1353           development platform that supports the QorIQ LS2081A/LS2041A
1354           Layerscape Architecture processor.
1355
1356 config TARGET_LX2160ARDB
1357         bool "Support lx2160ardb"
1358         select ARCH_LX2160A
1359         select ARM64
1360         select ARMV8_MULTIENTRY
1361         select ARCH_SUPPORT_TFABOOT
1362         select BOARD_LATE_INIT
1363         select GPIO_EXTRA_HEADER
1364         help
1365           Support for NXP LX2160ARDB platform.
1366           The lx2160ardb (LX2160A Reference design board (RDB)
1367           is a high-performance development platform that supports the
1368           QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1369
1370 config TARGET_LX2160AQDS
1371         bool "Support lx2160aqds"
1372         select ARCH_LX2160A
1373         select ARM64
1374         select ARMV8_MULTIENTRY
1375         select ARCH_SUPPORT_TFABOOT
1376         select BOARD_LATE_INIT
1377         select GPIO_EXTRA_HEADER
1378         help
1379           Support for NXP LX2160AQDS platform.
1380           The lx2160aqds (LX2160A QorIQ Development System (QDS)
1381           is a high-performance development platform that supports the
1382           QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1383
1384 config TARGET_LX2162AQDS
1385         bool "Support lx2162aqds"
1386         select ARCH_LX2162A
1387         select ARCH_MISC_INIT
1388         select ARM64
1389         select ARMV8_MULTIENTRY
1390         select ARCH_SUPPORT_TFABOOT
1391         select BOARD_LATE_INIT
1392         select GPIO_EXTRA_HEADER
1393         help
1394           Support for NXP LX2162AQDS platform.
1395           The lx2162aqds support is based on LX2160A Layerscape Architecture processor.
1396
1397 config TARGET_HIKEY
1398         bool "Support HiKey 96boards Consumer Edition Platform"
1399         select ARM64
1400         select DM
1401         select DM_GPIO
1402         select DM_SERIAL
1403         select GPIO_EXTRA_HEADER
1404         select OF_CONTROL
1405         select PL01X_SERIAL
1406         select SPECIFY_CONSOLE_INDEX
1407         imply CMD_DM
1408           help
1409           Support for HiKey 96boards platform. It features a HI6220
1410           SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
1411
1412 config TARGET_HIKEY960
1413         bool "Support HiKey960 96boards Consumer Edition Platform"
1414         select ARM64
1415         select DM
1416         select DM_SERIAL
1417         select GPIO_EXTRA_HEADER
1418         select OF_CONTROL
1419         select PL01X_SERIAL
1420         imply CMD_DM
1421           help
1422           Support for HiKey960 96boards platform. It features a HI3660
1423           SoC, with 4xA73 CPU, 4xA53 CPU, MALI-G71 GPU, and 3GB RAM.
1424
1425 config TARGET_POPLAR
1426         bool "Support Poplar 96boards Enterprise Edition Platform"
1427         select ARM64
1428         select DM
1429         select DM_SERIAL
1430         select GPIO_EXTRA_HEADER
1431         select OF_CONTROL
1432         select PL01X_SERIAL
1433         imply CMD_DM
1434           help
1435           Support for Poplar 96boards EE platform. It features a HI3798cv200
1436           SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
1437           making it capable of running any commercial set-top solution based on
1438           Linux or Android.
1439
1440 config TARGET_LS1012AQDS
1441         bool "Support ls1012aqds"
1442         select ARCH_LS1012A
1443         select ARM64
1444         select ARCH_SUPPORT_TFABOOT
1445         select BOARD_LATE_INIT
1446         select GPIO_EXTRA_HEADER
1447         help
1448           Support for Freescale LS1012AQDS platform.
1449           The LS1012A Development System (QDS) is a high-performance
1450           development platform that supports the QorIQ LS1012A
1451           Layerscape Architecture processor.
1452
1453 config TARGET_LS1012ARDB
1454         bool "Support ls1012ardb"
1455         select ARCH_LS1012A
1456         select ARM64
1457         select ARCH_SUPPORT_TFABOOT
1458         select BOARD_LATE_INIT
1459         select GPIO_EXTRA_HEADER
1460         imply SCSI
1461         imply SCSI_AHCI
1462         help
1463           Support for Freescale LS1012ARDB platform.
1464           The LS1012A Reference design board (RDB) is a high-performance
1465           development platform that supports the QorIQ LS1012A
1466           Layerscape Architecture processor.
1467
1468 config TARGET_LS1012A2G5RDB
1469         bool "Support ls1012a2g5rdb"
1470         select ARCH_LS1012A
1471         select ARM64
1472         select ARCH_SUPPORT_TFABOOT
1473         select BOARD_LATE_INIT
1474         select GPIO_EXTRA_HEADER
1475         imply SCSI
1476         help
1477           Support for Freescale LS1012A2G5RDB platform.
1478           The LS1012A 2G5 Reference design board (RDB) is a high-performance
1479           development platform that supports the QorIQ LS1012A
1480           Layerscape Architecture processor.
1481
1482 config TARGET_LS1012AFRWY
1483         bool "Support ls1012afrwy"
1484         select ARCH_LS1012A
1485         select ARM64
1486         select ARCH_SUPPORT_TFABOOT
1487         select BOARD_LATE_INIT
1488         select GPIO_EXTRA_HEADER
1489         imply SCSI
1490         imply SCSI_AHCI
1491         help
1492          Support for Freescale LS1012AFRWY platform.
1493          The LS1012A FRWY board (FRWY) is a high-performance
1494          development platform that supports the QorIQ LS1012A
1495          Layerscape Architecture processor.
1496
1497 config TARGET_LS1012AFRDM
1498         bool "Support ls1012afrdm"
1499         select ARCH_LS1012A
1500         select ARM64
1501         select ARCH_SUPPORT_TFABOOT
1502         select GPIO_EXTRA_HEADER
1503         help
1504           Support for Freescale LS1012AFRDM platform.
1505           The LS1012A Freedom  board (FRDM) is a high-performance
1506           development platform that supports the QorIQ LS1012A
1507           Layerscape Architecture processor.
1508
1509 config TARGET_LS1028AQDS
1510         bool "Support ls1028aqds"
1511         select ARCH_LS1028A
1512         select ARM64
1513         select ARMV8_MULTIENTRY
1514         select ARCH_SUPPORT_TFABOOT
1515         select BOARD_LATE_INIT
1516         select GPIO_EXTRA_HEADER
1517         help
1518           Support for Freescale LS1028AQDS platform
1519           The LS1028A Development System (QDS) is a high-performance
1520           development platform that supports the QorIQ LS1028A
1521           Layerscape Architecture processor.
1522
1523 config TARGET_LS1028ARDB
1524         bool "Support ls1028ardb"
1525         select ARCH_LS1028A
1526         select ARM64
1527         select ARMV8_MULTIENTRY
1528         select ARCH_SUPPORT_TFABOOT
1529         select BOARD_LATE_INIT
1530         select GPIO_EXTRA_HEADER
1531         help
1532           Support for Freescale LS1028ARDB platform
1533           The LS1028A Development System (RDB) is a high-performance
1534           development platform that supports the QorIQ LS1028A
1535           Layerscape Architecture processor.
1536
1537 config TARGET_LS1088ARDB
1538         bool "Support ls1088ardb"
1539         select ARCH_LS1088A
1540         select ARM64
1541         select ARMV8_MULTIENTRY
1542         select ARCH_SUPPORT_TFABOOT
1543         select BOARD_LATE_INIT
1544         select SUPPORT_SPL
1545         select FSL_DDR_INTERACTIVE if !SD_BOOT
1546         select GPIO_EXTRA_HEADER
1547         help
1548           Support for NXP LS1088ARDB platform.
1549           The LS1088A Reference design board (RDB) is a high-performance
1550           development platform that supports the QorIQ LS1088A
1551           Layerscape Architecture processor.
1552
1553 config TARGET_LS1021AQDS
1554         bool "Support ls1021aqds"
1555         select ARCH_LS1021A
1556         select ARCH_SUPPORT_PSCI
1557         select BOARD_EARLY_INIT_F
1558         select BOARD_LATE_INIT
1559         select CPU_V7A
1560         select CPU_V7_HAS_NONSEC
1561         select CPU_V7_HAS_VIRT
1562         select LS1_DEEP_SLEEP
1563         select SUPPORT_SPL
1564         select SYS_FSL_DDR
1565         select FSL_DDR_INTERACTIVE
1566         select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
1567         select GPIO_EXTRA_HEADER
1568         select SPI_FLASH_DATAFLASH if FSL_DSPI || FSL_QSPI
1569         imply SCSI
1570
1571 config TARGET_LS1021ATWR
1572         bool "Support ls1021atwr"
1573         select ARCH_LS1021A
1574         select ARCH_SUPPORT_PSCI
1575         select BOARD_EARLY_INIT_F
1576         select BOARD_LATE_INIT
1577         select CPU_V7A
1578         select CPU_V7_HAS_NONSEC
1579         select CPU_V7_HAS_VIRT
1580         select LS1_DEEP_SLEEP
1581         select SUPPORT_SPL
1582         select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
1583         select GPIO_EXTRA_HEADER
1584         imply SCSI
1585
1586 config TARGET_PG_WCOM_SELI8
1587         bool "Support Hitachi-Powergrids SELI8 service unit card"
1588         select ARCH_LS1021A
1589         select ARCH_SUPPORT_PSCI
1590         select BOARD_EARLY_INIT_F
1591         select BOARD_LATE_INIT
1592         select CPU_V7A
1593         select CPU_V7_HAS_NONSEC
1594         select CPU_V7_HAS_VIRT
1595         select SYS_FSL_DDR
1596         select FSL_DDR_INTERACTIVE
1597         select GPIO_EXTRA_HEADER
1598         select VENDOR_KM
1599         imply SCSI
1600         help
1601          Support for Hitachi-Powergrids SELI8 service unit card.
1602          SELI8 is a QorIQ LS1021a based service unit card used
1603          in XMC20 and FOX615 product families.
1604
1605 config TARGET_PG_WCOM_EXPU1
1606         bool "Support Hitachi-Powergrids EXPU1 service unit card"
1607         select ARCH_LS1021A
1608         select ARCH_SUPPORT_PSCI
1609         select BOARD_EARLY_INIT_F
1610         select BOARD_LATE_INIT
1611         select CPU_V7A
1612         select CPU_V7_HAS_NONSEC
1613         select CPU_V7_HAS_VIRT
1614         select SYS_FSL_DDR
1615         select FSL_DDR_INTERACTIVE
1616         select VENDOR_KM
1617         imply SCSI
1618         help
1619          Support for Hitachi-Powergrids EXPU1 service unit card.
1620          EXPU1 is a QorIQ LS1021a based service unit card used
1621          in XMC20 and FOX615 product families.
1622
1623 config TARGET_LS1021ATSN
1624         bool "Support ls1021atsn"
1625         select ARCH_LS1021A
1626         select ARCH_SUPPORT_PSCI
1627         select BOARD_EARLY_INIT_F
1628         select BOARD_LATE_INIT
1629         select CPU_V7A
1630         select CPU_V7_HAS_NONSEC
1631         select CPU_V7_HAS_VIRT
1632         select LS1_DEEP_SLEEP
1633         select SUPPORT_SPL
1634         select GPIO_EXTRA_HEADER
1635         imply SCSI
1636
1637 config TARGET_LS1021AIOT
1638         bool "Support ls1021aiot"
1639         select ARCH_LS1021A
1640         select ARCH_SUPPORT_PSCI
1641         select BOARD_LATE_INIT
1642         select CPU_V7A
1643         select CPU_V7_HAS_NONSEC
1644         select CPU_V7_HAS_VIRT
1645         select SUPPORT_SPL
1646         select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
1647         select GPIO_EXTRA_HEADER
1648         imply SCSI
1649         help
1650           Support for Freescale LS1021AIOT platform.
1651           The LS1021A Freescale board (IOT) is a high-performance
1652           development platform that supports the QorIQ LS1021A
1653           Layerscape Architecture processor.
1654
1655 config TARGET_LS1043AQDS
1656         bool "Support ls1043aqds"
1657         select ARCH_LS1043A
1658         select ARM64
1659         select ARMV8_MULTIENTRY
1660         select ARCH_SUPPORT_TFABOOT
1661         select BOARD_EARLY_INIT_F
1662         select BOARD_LATE_INIT
1663         select SUPPORT_SPL
1664         select FSL_DDR_INTERACTIVE if !SPL
1665         select FSL_DSPI if !SPL_NO_DSPI
1666         select DM_SPI_FLASH if FSL_DSPI
1667         select GPIO_EXTRA_HEADER
1668         imply SCSI
1669         imply SCSI_AHCI
1670         help
1671           Support for Freescale LS1043AQDS platform.
1672
1673 config TARGET_LS1043ARDB
1674         bool "Support ls1043ardb"
1675         select ARCH_LS1043A
1676         select ARM64
1677         select ARMV8_MULTIENTRY
1678         select ARCH_SUPPORT_TFABOOT
1679         select BOARD_EARLY_INIT_F
1680         select BOARD_LATE_INIT
1681         select SUPPORT_SPL
1682         select FSL_DSPI if !SPL_NO_DSPI
1683         select DM_SPI_FLASH if FSL_DSPI
1684         select GPIO_EXTRA_HEADER
1685         help
1686           Support for Freescale LS1043ARDB platform.
1687
1688 config TARGET_LS1046AQDS
1689         bool "Support ls1046aqds"
1690         select ARCH_LS1046A
1691         select ARM64
1692         select ARMV8_MULTIENTRY
1693         select ARCH_SUPPORT_TFABOOT
1694         select BOARD_EARLY_INIT_F
1695         select BOARD_LATE_INIT
1696         select DM_SPI_FLASH if DM_SPI
1697         select SUPPORT_SPL
1698         select FSL_DDR_BIST if !SPL
1699         select FSL_DDR_INTERACTIVE  if !SPL
1700         select FSL_DDR_INTERACTIVE if !SPL
1701         select GPIO_EXTRA_HEADER
1702         imply SCSI
1703         help
1704           Support for Freescale LS1046AQDS platform.
1705           The LS1046A Development System (QDS) is a high-performance
1706           development platform that supports the QorIQ LS1046A
1707           Layerscape Architecture processor.
1708
1709 config TARGET_LS1046ARDB
1710         bool "Support ls1046ardb"
1711         select ARCH_LS1046A
1712         select ARM64
1713         select ARMV8_MULTIENTRY
1714         select ARCH_SUPPORT_TFABOOT
1715         select BOARD_EARLY_INIT_F
1716         select BOARD_LATE_INIT
1717         select DM_SPI_FLASH if DM_SPI
1718         select POWER_MC34VR500
1719         select SUPPORT_SPL
1720         select FSL_DDR_BIST
1721         select FSL_DDR_INTERACTIVE if !SPL
1722         select GPIO_EXTRA_HEADER
1723         imply SCSI
1724         help
1725           Support for Freescale LS1046ARDB platform.
1726           The LS1046A Reference Design Board (RDB) is a high-performance
1727           development platform that supports the QorIQ LS1046A
1728           Layerscape Architecture processor.
1729
1730 config TARGET_LS1046AFRWY
1731         bool "Support ls1046afrwy"
1732         select ARCH_LS1046A
1733         select ARM64
1734         select ARMV8_MULTIENTRY
1735         select ARCH_SUPPORT_TFABOOT
1736         select BOARD_EARLY_INIT_F
1737         select BOARD_LATE_INIT
1738         select DM_SPI_FLASH if DM_SPI
1739         select GPIO_EXTRA_HEADER
1740         imply SCSI
1741         help
1742           Support for Freescale LS1046AFRWY platform.
1743           The LS1046A Freeway Board (FRWY) is a high-performance
1744           development platform that supports the QorIQ LS1046A
1745           Layerscape Architecture processor.
1746
1747 config TARGET_SL28
1748         bool "Support sl28"
1749         select ARCH_LS1028A
1750         select ARM64
1751         select ARMV8_MULTIENTRY
1752         select SUPPORT_SPL
1753         select BINMAN
1754         select DM
1755         select DM_GPIO
1756         select DM_I2C
1757         select DM_MMC
1758         select DM_SPI_FLASH
1759         select DM_ETH
1760         select DM_MDIO
1761         select PCI
1762         select DM_RNG
1763         select DM_RTC
1764         select DM_SCSI
1765         select DM_SERIAL
1766         select DM_SPI
1767         select GPIO_EXTRA_HEADER
1768         select SPL_DM if SPL
1769         select SPL_DM_SPI if SPL
1770         select SPL_DM_SPI_FLASH if SPL
1771         select SPL_DM_I2C if SPL
1772         select SPL_DM_MMC if SPL
1773         select SPL_DM_SERIAL if SPL
1774         help
1775           Support for Kontron SMARC-sAL28 board.
1776
1777 config TARGET_TEN64
1778         bool "Support ten64"
1779         select ARCH_LS1088A
1780         select ARCH_MISC_INIT
1781         select ARM64
1782         select ARMV8_MULTIENTRY
1783         select ARCH_SUPPORT_TFABOOT
1784         select BOARD_LATE_INIT
1785         select SUPPORT_SPL
1786         select FSL_DDR_INTERACTIVE if !SD_BOOT
1787         select GPIO_EXTRA_HEADER
1788         help
1789           Support for Traverse Technologies Ten64 board, based
1790           on NXP LS1088A.
1791
1792 config TARGET_COLIBRI_PXA270
1793         bool "Support colibri_pxa270"
1794         select CPU_PXA27X
1795         select GPIO_EXTRA_HEADER
1796
1797 config ARCH_UNIPHIER
1798         bool "Socionext UniPhier SoCs"
1799         select BOARD_LATE_INIT
1800         select DM
1801         select DM_ETH
1802         select DM_GPIO
1803         select DM_I2C
1804         select DM_MMC
1805         select DM_MTD
1806         select DM_RESET
1807         select DM_SERIAL
1808         select OF_BOARD_SETUP
1809         select OF_CONTROL
1810         select OF_LIBFDT
1811         select PINCTRL
1812         select SPL_BOARD_INIT if SPL
1813         select SPL_DM if SPL
1814         select SPL_LIBCOMMON_SUPPORT if SPL
1815         select SPL_LIBGENERIC_SUPPORT if SPL
1816         select SPL_OF_CONTROL if SPL
1817         select SPL_PINCTRL if SPL
1818         select SUPPORT_SPL
1819         imply CMD_DM
1820         imply DISTRO_DEFAULTS
1821         imply FAT_WRITE
1822         help
1823           Support for UniPhier SoC family developed by Socionext Inc.
1824           (formerly, System LSI Business Division of Panasonic Corporation)
1825
1826 config ARCH_SYNQUACER
1827         bool "Socionext SynQuacer SoCs"
1828         select ARM64
1829         select DM
1830         select GIC_V3
1831         select PSCI_RESET
1832         select SYSRESET
1833         select SYSRESET_PSCI
1834         select OF_CONTROL
1835         help
1836           Support for SynQuacer SoC family developed by Socionext Inc.
1837           This SoC is used on 96boards EE DeveloperBox.
1838
1839 config ARCH_STM32
1840         bool "Support STMicroelectronics STM32 MCU with cortex M"
1841         select CPU_V7M
1842         select DM
1843         select DM_SERIAL
1844         imply CMD_DM
1845
1846 config ARCH_STI
1847         bool "Support STMicrolectronics SoCs"
1848         select BLK
1849         select CPU_V7A
1850         select DM
1851         select DM_MMC
1852         select DM_RESET
1853         select DM_SERIAL
1854         imply CMD_DM
1855         help
1856           Support for STMicroelectronics STiH407/10 SoC family.
1857           This SoC is used on Linaro 96Board STiH410-B2260
1858
1859 config ARCH_STM32MP
1860         bool "Support STMicroelectronics STM32MP Socs with cortex A"
1861         select ARCH_MISC_INIT
1862         select ARCH_SUPPORT_TFABOOT
1863         select BOARD_LATE_INIT
1864         select CLK
1865         select DM
1866         select DM_GPIO
1867         select DM_RESET
1868         select DM_SERIAL
1869         select MISC
1870         select OF_CONTROL
1871         select OF_LIBFDT
1872         select OF_SYSTEM_SETUP
1873         select PINCTRL
1874         select REGMAP
1875         select SUPPORT_SPL
1876         select SYSCON
1877         select SYSRESET
1878         select SYS_THUMB_BUILD
1879         imply SPL_SYSRESET
1880         imply CMD_DM
1881         imply CMD_POWEROFF
1882         imply OF_LIBFDT_OVERLAY
1883         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1884         imply USE_PREBOOT
1885         imply TIMESTAMP
1886         help
1887           Support for STM32MP SoC family developed by STMicroelectronics,
1888           MPUs based on ARM cortex A core
1889           U-BOOT is running in DDR, loaded by the First Stage BootLoader (FSBL).
1890           FSBL can be TF-A: Trusted Firmware for Cortex A, for trusted boot
1891           chain.
1892           SPL is the unsecure FSBL for the basic boot chain.
1893
1894 config ARCH_ROCKCHIP
1895         bool "Support Rockchip SoCs"
1896         select BLK
1897         select BINMAN if SPL_OPTEE || (SPL && !ARM64)
1898         select DM
1899         select DM_GPIO
1900         select DM_I2C
1901         select DM_MMC
1902         select DM_PWM
1903         select DM_REGULATOR
1904         select DM_SERIAL
1905         select DM_SPI
1906         select DM_SPI_FLASH
1907         select ENABLE_ARM_SOC_BOOT0_HOOK
1908         select OF_CONTROL
1909         select SPI
1910         select SPL_DM if SPL
1911         select SPL_DM_SPI if SPL
1912         select SPL_DM_SPI_FLASH if SPL
1913         select SYS_MALLOC_F
1914         select SYS_THUMB_BUILD if !ARM64
1915         imply ADC
1916         imply CMD_DM
1917         imply DEBUG_UART_BOARD_INIT
1918         imply DISTRO_DEFAULTS
1919         imply FAT_WRITE
1920         imply SARADC_ROCKCHIP
1921         imply SPL_SYSRESET
1922         imply SPL_SYS_MALLOC_SIMPLE
1923         imply SYS_NS16550
1924         imply TPL_SYSRESET
1925         imply USB_FUNCTION_FASTBOOT
1926
1927 config ARCH_OCTEONTX
1928         bool "Support OcteonTX SoCs"
1929         select CLK
1930         select DM
1931         select GPIO_EXTRA_HEADER
1932         select ARM64
1933         select OF_CONTROL
1934         select OF_LIVE
1935         select BOARD_LATE_INIT
1936         select SYS_CACHE_SHIFT_7
1937         select SYS_PCI_64BIT if PCI
1938         imply OF_HAS_PRIOR_STAGE
1939
1940 config ARCH_OCTEONTX2
1941         bool "Support OcteonTX2 SoCs"
1942         select CLK
1943         select DM
1944         select GPIO_EXTRA_HEADER
1945         select ARM64
1946         select OF_CONTROL
1947         select OF_LIVE
1948         select BOARD_LATE_INIT
1949         select SYS_CACHE_SHIFT_7
1950         select SYS_PCI_64BIT if PCI
1951         imply OF_HAS_PRIOR_STAGE
1952
1953 config TARGET_THUNDERX_88XX
1954         bool "Support ThunderX 88xx"
1955         select ARM64
1956         select GPIO_EXTRA_HEADER
1957         select OF_CONTROL
1958         select PL01X_SERIAL
1959         select SYS_CACHE_SHIFT_7
1960
1961 config ARCH_ASPEED
1962         bool "Support Aspeed SoCs"
1963         select DM
1964         select OF_CONTROL
1965         imply CMD_DM
1966
1967 config TARGET_DURIAN
1968         bool "Support Phytium Durian Platform"
1969         select ARM64
1970         select GPIO_EXTRA_HEADER
1971         help
1972           Support for durian platform.
1973           It has 2GB Sdram, uart and pcie.
1974
1975 config TARGET_POMELO
1976         bool "Support Phytium Pomelo Platform"
1977         select ARM64
1978         select DM
1979         select AHCI
1980         select SCSI_AHCI
1981         select AHCI_PCI
1982         select BLK
1983         select PCI
1984         select DM_PCI
1985         select SCSI
1986         select DM_SCSI
1987         select DM_SERIAL
1988         select DM_ETH if NET
1989         imply CMD_PCI
1990         help
1991            Support for pomelo platform.
1992            It has 8GB Sdram, uart and pcie.
1993
1994 config TARGET_PRESIDIO_ASIC
1995         bool "Support Cortina Presidio ASIC Platform"
1996         select ARM64
1997         select GICV2
1998
1999 config TARGET_XENGUEST_ARM64
2000         bool "Xen guest ARM64"
2001         select ARM64
2002         select XEN
2003         select OF_CONTROL
2004         select LINUX_KERNEL_IMAGE_HEADER
2005         select XEN_SERIAL
2006         select SSCANF
2007         imply OF_HAS_PRIOR_STAGE
2008
2009 endchoice
2010
2011 config SUPPORT_PASSING_ATAGS
2012         bool "Support pre-devicetree ATAG-based booting"
2013         depends on !ARM64
2014         imply SETUP_MEMORY_TAGS
2015         help
2016           Support for booting older Linux kernels, using ATAGs rather than
2017           passing a devicetree.  This is option is rarely used, and the
2018           semantics are defined at
2019           https://www.kernel.org/doc/Documentation/arm/Booting at section 4a.
2020
2021 config SETUP_MEMORY_TAGS
2022         bool "Pass memory size information via ATAG"
2023         depends on SUPPORT_PASSING_ATAGS
2024
2025 config CMDLINE_TAG
2026         bool "Pass Linux kernel cmdline via ATAG"
2027         depends on SUPPORT_PASSING_ATAGS
2028
2029 config INITRD_TAG
2030         bool "Pass initrd starting point and size via ATAG"
2031         depends on SUPPORT_PASSING_ATAGS
2032
2033 config REVISION_TAG
2034         bool "Pass system revision via ATAG"
2035         depends on SUPPORT_PASSING_ATAGS
2036
2037 config SERIAL_TAG
2038         bool "Pass system serial number via ATAG"
2039         depends on SUPPORT_PASSING_ATAGS
2040
2041 config STATIC_MACH_TYPE
2042         bool "Statically define the Machine ID number"
2043         help
2044           When booting via ATAGs, enable this option if we know the correct
2045           machine ID number to use at compile time.  Some systems will be
2046           passed the number dynamically by whatever loads U-Boot.
2047
2048 config MACH_TYPE
2049         int "Machine ID number"
2050         depends on STATIC_MACH_TYPE
2051         help
2052           When booting via ATAGs, the machine type must be passed as a number.
2053           For the full list see https://www.arm.linux.org.uk/developer/machines
2054
2055 config ARCH_SUPPORT_TFABOOT
2056         bool
2057
2058 config TFABOOT
2059         bool "Support for booting from TF-A"
2060         depends on ARCH_SUPPORT_TFABOOT
2061         help
2062           Some platforms support the setup of secure registers (for instance
2063           for CPU errata handling) or provide secure services like PSCI.
2064           Those services could also be provided by other firmware parts
2065           like TF-A (Trusted Firmware for Cortex-A), in which case U-Boot
2066           does not need to (and cannot) execute this code.
2067           Enabling this option will make a U-Boot binary that is relying
2068           on other firmware layers to provide secure functionality.
2069
2070 config TI_SECURE_DEVICE
2071         bool "HS Device Type Support"
2072         depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
2073         help
2074           If a high secure (HS) device type is being used, this config
2075           must be set. This option impacts various aspects of the
2076           build system (to create signed boot images that can be
2077           authenticated) and the code. See the doc/README.ti-secure
2078           file for further details.
2079
2080 if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
2081 config ISW_ENTRY_ADDR
2082         hex "Address in memory or XIP address of bootloader entry point"
2083         default 0x402F4000 if AM43XX
2084         default 0x402F0400 if AM33XX
2085         default 0x40301350 if OMAP54XX
2086         help
2087           After any reset, the boot ROM searches the boot media for a valid
2088           boot image. For non-XIP devices, the ROM then copies the image into
2089           internal memory. For all boot modes, after the ROM processes the
2090           boot image it eventually computes the entry point address depending
2091           on the device type (secure/non-secure), boot media (xip/non-xip) and
2092           image headers.
2093 endif
2094
2095 config SYS_KWD_CONFIG
2096         string "kwbimage config file path"
2097         depends on ARCH_KIRKWOOD || ARCH_MVEBU
2098         default "arch/arm/mach-mvebu/kwbimage.cfg"
2099         help
2100           Path within the source directory to the kwbimage.cfg file to use
2101           when packaging the U-Boot image for use.
2102
2103 source "arch/arm/mach-apple/Kconfig"
2104
2105 source "arch/arm/mach-aspeed/Kconfig"
2106
2107 source "arch/arm/mach-at91/Kconfig"
2108
2109 source "arch/arm/mach-bcm283x/Kconfig"
2110
2111 source "arch/arm/mach-bcmstb/Kconfig"
2112
2113 source "arch/arm/mach-davinci/Kconfig"
2114
2115 source "arch/arm/mach-exynos/Kconfig"
2116
2117 source "arch/arm/mach-highbank/Kconfig"
2118
2119 source "arch/arm/mach-integrator/Kconfig"
2120
2121 source "arch/arm/mach-ipq40xx/Kconfig"
2122
2123 source "arch/arm/mach-k3/Kconfig"
2124
2125 source "arch/arm/mach-keystone/Kconfig"
2126
2127 source "arch/arm/mach-kirkwood/Kconfig"
2128
2129 source "arch/arm/mach-lpc32xx/Kconfig"
2130
2131 source "arch/arm/mach-mvebu/Kconfig"
2132
2133 source "arch/arm/mach-octeontx/Kconfig"
2134
2135 source "arch/arm/mach-octeontx2/Kconfig"
2136
2137 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
2138
2139 source "arch/arm/mach-imx/mx3/Kconfig"
2140
2141 source "arch/arm/mach-imx/mx5/Kconfig"
2142
2143 source "arch/arm/mach-imx/mx6/Kconfig"
2144
2145 source "arch/arm/mach-imx/mx7/Kconfig"
2146
2147 source "arch/arm/mach-imx/mx7ulp/Kconfig"
2148
2149 source "arch/arm/mach-imx/imx8/Kconfig"
2150
2151 source "arch/arm/mach-imx/imx8m/Kconfig"
2152
2153 source "arch/arm/mach-imx/imx8ulp/Kconfig"
2154
2155 source "arch/arm/mach-imx/imxrt/Kconfig"
2156
2157 source "arch/arm/mach-imx/mxs/Kconfig"
2158
2159 source "arch/arm/mach-omap2/Kconfig"
2160
2161 source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
2162
2163 source "arch/arm/mach-orion5x/Kconfig"
2164
2165 source "arch/arm/mach-owl/Kconfig"
2166
2167 source "arch/arm/mach-rmobile/Kconfig"
2168
2169 source "arch/arm/mach-meson/Kconfig"
2170
2171 source "arch/arm/mach-mediatek/Kconfig"
2172
2173 source "arch/arm/mach-qemu/Kconfig"
2174
2175 source "arch/arm/mach-rockchip/Kconfig"
2176
2177 source "arch/arm/mach-s5pc1xx/Kconfig"
2178
2179 source "arch/arm/mach-snapdragon/Kconfig"
2180
2181 source "arch/arm/mach-socfpga/Kconfig"
2182
2183 source "arch/arm/mach-sti/Kconfig"
2184
2185 source "arch/arm/mach-stm32/Kconfig"
2186
2187 source "arch/arm/mach-stm32mp/Kconfig"
2188
2189 source "arch/arm/mach-sunxi/Kconfig"
2190
2191 source "arch/arm/mach-tegra/Kconfig"
2192
2193 source "arch/arm/mach-u8500/Kconfig"
2194
2195 source "arch/arm/mach-uniphier/Kconfig"
2196
2197 source "arch/arm/cpu/armv7/vf610/Kconfig"
2198
2199 source "arch/arm/mach-zynq/Kconfig"
2200
2201 source "arch/arm/mach-zynqmp/Kconfig"
2202
2203 source "arch/arm/mach-versal/Kconfig"
2204
2205 source "arch/arm/mach-zynqmp-r5/Kconfig"
2206
2207 source "arch/arm/cpu/armv7/Kconfig"
2208
2209 source "arch/arm/cpu/armv8/Kconfig"
2210
2211 source "arch/arm/mach-imx/Kconfig"
2212
2213 source "arch/arm/mach-nexell/Kconfig"
2214
2215 source "board/armltd/total_compute/Kconfig"
2216
2217 source "board/bosch/shc/Kconfig"
2218 source "board/bosch/guardian/Kconfig"
2219 source "board/Marvell/octeontx/Kconfig"
2220 source "board/Marvell/octeontx2/Kconfig"
2221 source "board/armltd/vexpress/Kconfig"
2222 source "board/armltd/vexpress64/Kconfig"
2223 source "board/cortina/presidio-asic/Kconfig"
2224 source "board/broadcom/bcm963158/Kconfig"
2225 source "board/broadcom/bcm96753ref/Kconfig"
2226 source "board/broadcom/bcm968360bg/Kconfig"
2227 source "board/broadcom/bcm968580xref/Kconfig"
2228 source "board/broadcom/bcmns3/Kconfig"
2229 source "board/cavium/thunderx/Kconfig"
2230 source "board/eets/pdu001/Kconfig"
2231 source "board/emulation/qemu-arm/Kconfig"
2232 source "board/freescale/ls2080aqds/Kconfig"
2233 source "board/freescale/ls2080ardb/Kconfig"
2234 source "board/freescale/ls1088a/Kconfig"
2235 source "board/freescale/ls1028a/Kconfig"
2236 source "board/freescale/ls1021aqds/Kconfig"
2237 source "board/freescale/ls1043aqds/Kconfig"
2238 source "board/freescale/ls1021atwr/Kconfig"
2239 source "board/freescale/ls1021atsn/Kconfig"
2240 source "board/freescale/ls1021aiot/Kconfig"
2241 source "board/freescale/ls1046aqds/Kconfig"
2242 source "board/freescale/ls1043ardb/Kconfig"
2243 source "board/freescale/ls1046ardb/Kconfig"
2244 source "board/freescale/ls1046afrwy/Kconfig"
2245 source "board/freescale/ls1012aqds/Kconfig"
2246 source "board/freescale/ls1012ardb/Kconfig"
2247 source "board/freescale/ls1012afrdm/Kconfig"
2248 source "board/freescale/lx2160a/Kconfig"
2249 source "board/grinn/chiliboard/Kconfig"
2250 source "board/hisilicon/hikey/Kconfig"
2251 source "board/hisilicon/hikey960/Kconfig"
2252 source "board/hisilicon/poplar/Kconfig"
2253 source "board/isee/igep003x/Kconfig"
2254 source "board/kontron/sl28/Kconfig"
2255 source "board/myir/mys_6ulx/Kconfig"
2256 source "board/seeed/npi_imx6ull/Kconfig"
2257 source "board/socionext/developerbox/Kconfig"
2258 source "board/st/stv0991/Kconfig"
2259 source "board/tcl/sl50/Kconfig"
2260 source "board/toradex/colibri_pxa270/Kconfig"
2261 source "board/traverse/ten64/Kconfig"
2262 source "board/variscite/dart_6ul/Kconfig"
2263 source "board/vscom/baltos/Kconfig"
2264 source "board/phytium/durian/Kconfig"
2265 source "board/phytium/pomelo/Kconfig"
2266 source "board/xen/xenguest_arm64/Kconfig"
2267
2268 source "arch/arm/Kconfig.debug"
2269
2270 endmenu
2271
2272 config SPL_LDSCRIPT
2273         default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
2274         default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
2275         default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64