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