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