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