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