3c4af1f29913fcb27f7e2245f0fb6823a30485e6
[platform/kernel/u-boot.git] / arch / arm / Kconfig
1 menu "ARM architecture"
2         depends on ARM
3
4 config SYS_ARCH
5         default "arm"
6
7 config ARM64
8         bool
9         select PHYS_64BIT
10         select SYS_CACHE_SHIFT_6
11
12 if ARM64
13 config POSITION_INDEPENDENT
14         bool "Generate position-independent pre-relocation code"
15         help
16           U-Boot expects to be linked to a specific hard-coded address, and to
17           be loaded to and run from that address. This option lifts that
18           restriction, thus allowing the code to be loaded to and executed
19           from almost any address. This logic relies on the relocation
20           information that is embedded into the binary to support U-Boot
21           relocating itself to the top-of-RAM later during execution.
22
23 config SYS_INIT_SP_BSS_OFFSET
24         int
25         help
26           U-Boot typically uses a hard-coded value for the stack pointer
27           before relocation. Define this option to instead calculate the
28           initial SP at run-time. This is useful to avoid hard-coding addresses
29           into U-Boot, so that can be loaded and executed at arbitrary
30           addresses and thus avoid using arbitrary addresses at runtime. This
31           option's value is the offset added to &_bss_start in order to
32           calculate the stack pointer. This offset should be large enough so
33           that the early malloc region, global data (gd), and early stack usage
34           do not overlap any appended DTB.
35
36 config LINUX_KERNEL_IMAGE_HEADER
37         bool
38         help
39           Place a Linux kernel image header at the start of the U-Boot binary.
40           The format of the header is described in the Linux kernel source at
41           Documentation/arm64/booting.txt. This feature is useful since the
42           image header reports the amount of memory (BSS and similar) that
43           U-Boot needs to use, but which isn't part of the binary.
44
45 if LINUX_KERNEL_IMAGE_HEADER
46 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
47         hex
48         help
49           The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
50           TEXT_OFFSET value written in to the Linux kernel image header.
51 endif
52 endif
53
54 config STATIC_RELA
55         bool
56         default y if ARM64 && !POSITION_INDEPENDENT
57
58 config DMA_ADDR_T_64BIT
59         bool
60         default y if ARM64
61
62 config HAS_VBAR
63         bool
64
65 config HAS_THUMB2
66         bool
67
68 # Used for compatibility with asm files copied from the kernel
69 config ARM_ASM_UNIFIED
70         bool
71         default y
72
73 # Used for compatibility with asm files copied from the kernel
74 config THUMB2_KERNEL
75         bool
76
77 config SYS_ARM_CACHE_CP15
78         bool "CP15 based cache enabling support"
79         help
80           Select this if your processor suports enabling caches by using
81           CP15 registers.
82
83 config SYS_ARM_MMU
84         bool "MMU-based Paged Memory Management Support"
85         select SYS_ARM_CACHE_CP15
86         help
87           Select if you want MMU-based virtualised addressing space
88           support by paged memory management.
89
90 config SYS_ARM_MPU
91         bool 'Use the ARM v7 PMSA Compliant MPU'
92         help
93           Some ARM systems without an MMU have instead a Memory Protection
94           Unit (MPU) that defines the type and permissions for regions of
95           memory.
96           If your CPU has an MPU then you should choose 'y' here unless you
97           know that you do not want to use the MPU.
98
99 # If set, the workarounds for these ARM errata are applied early during U-Boot
100 # startup. Note that in general these options force the workarounds to be
101 # applied; no CPU-type/version detection exists, unlike the similar options in
102 # the Linux kernel. Do not set these options unless they apply!  Also note that
103 # the following can be machine specific errata. These do have ability to
104 # provide rudimentary version and machine specific checks, but expect no
105 # product checks:
106 # CONFIG_ARM_ERRATA_430973
107 # CONFIG_ARM_ERRATA_454179
108 # CONFIG_ARM_ERRATA_621766
109 # CONFIG_ARM_ERRATA_798870
110 # CONFIG_ARM_ERRATA_801819
111 # CONFIG_ARM_CORTEX_A8_CVE_2017_5715
112 # CONFIG_ARM_CORTEX_A15_CVE_2017_5715
113
114 config ARM_ERRATA_430973
115         bool
116
117 config ARM_ERRATA_454179
118         bool
119
120 config ARM_ERRATA_621766
121         bool
122
123 config ARM_ERRATA_716044
124         bool
125
126 config ARM_ERRATA_725233
127         bool
128
129 config ARM_ERRATA_742230
130         bool
131
132 config ARM_ERRATA_743622
133         bool
134
135 config ARM_ERRATA_751472
136         bool
137
138 config ARM_ERRATA_761320
139         bool
140
141 config ARM_ERRATA_773022
142         bool
143
144 config ARM_ERRATA_774769
145         bool
146
147 config ARM_ERRATA_794072
148         bool
149
150 config ARM_ERRATA_798870
151         bool
152
153 config ARM_ERRATA_801819
154         bool
155
156 config ARM_ERRATA_826974
157         bool
158
159 config ARM_ERRATA_828024
160         bool
161
162 config ARM_ERRATA_829520
163         bool
164
165 config ARM_ERRATA_833069
166         bool
167
168 config ARM_ERRATA_833471
169         bool
170
171 config ARM_ERRATA_845369
172         bool
173
174 config ARM_ERRATA_852421
175         bool
176
177 config ARM_ERRATA_852423
178         bool
179
180 config ARM_ERRATA_855873
181         bool
182
183 config ARM_CORTEX_A8_CVE_2017_5715
184         bool
185
186 config ARM_CORTEX_A15_CVE_2017_5715
187         bool
188
189 config CPU_ARM720T
190         bool
191         select SYS_CACHE_SHIFT_5
192         imply SYS_ARM_MMU
193
194 config CPU_ARM920T
195         bool
196         select SYS_CACHE_SHIFT_5
197         imply SYS_ARM_MMU
198
199 config CPU_ARM926EJS
200         bool
201         select SYS_CACHE_SHIFT_5
202         imply SYS_ARM_MMU
203
204 config CPU_ARM946ES
205         bool
206         select SYS_CACHE_SHIFT_5
207         imply SYS_ARM_MMU
208
209 config CPU_ARM1136
210         bool
211         select SYS_CACHE_SHIFT_5
212         imply SYS_ARM_MMU
213
214 config CPU_ARM1176
215         bool
216         select HAS_VBAR
217         select SYS_CACHE_SHIFT_5
218         imply SYS_ARM_MMU
219
220 config CPU_V7A
221         bool
222         select HAS_THUMB2
223         select HAS_VBAR
224         select SYS_CACHE_SHIFT_6
225         imply SYS_ARM_MMU
226
227 config CPU_V7M
228         bool
229         select HAS_THUMB2
230         select SYS_ARM_MPU
231         select SYS_CACHE_SHIFT_5
232         select SYS_THUMB_BUILD
233         select THUMB2_KERNEL
234
235 config CPU_V7R
236         bool
237         select HAS_THUMB2
238         select SYS_ARM_CACHE_CP15
239         select SYS_ARM_MPU
240         select SYS_CACHE_SHIFT_6
241
242 config CPU_PXA
243         bool
244         select SYS_CACHE_SHIFT_5
245         imply SYS_ARM_MMU
246
247 config CPU_SA1100
248         bool
249         select SYS_CACHE_SHIFT_5
250         imply SYS_ARM_MMU
251
252 config SYS_CPU
253         default "arm720t" if CPU_ARM720T
254         default "arm920t" if CPU_ARM920T
255         default "arm926ejs" if CPU_ARM926EJS
256         default "arm946es" if CPU_ARM946ES
257         default "arm1136" if CPU_ARM1136
258         default "arm1176" if CPU_ARM1176
259         default "armv7" if CPU_V7A
260         default "armv7" if CPU_V7R
261         default "armv7m" if CPU_V7M
262         default "pxa" if CPU_PXA
263         default "sa1100" if CPU_SA1100
264         default "armv8" if ARM64
265
266 config SYS_ARM_ARCH
267         int
268         default 4 if CPU_ARM720T
269         default 4 if CPU_ARM920T
270         default 5 if CPU_ARM926EJS
271         default 5 if CPU_ARM946ES
272         default 6 if CPU_ARM1136
273         default 6 if CPU_ARM1176
274         default 7 if CPU_V7A
275         default 7 if CPU_V7M
276         default 7 if CPU_V7R
277         default 5 if CPU_PXA
278         default 4 if CPU_SA1100
279         default 8 if ARM64
280
281 config SYS_CACHE_SHIFT_5
282         bool
283
284 config SYS_CACHE_SHIFT_6
285         bool
286
287 config SYS_CACHE_SHIFT_7
288         bool
289
290 config SYS_CACHELINE_SIZE
291         int
292         default 128 if SYS_CACHE_SHIFT_7
293         default 64 if SYS_CACHE_SHIFT_6
294         default 32 if SYS_CACHE_SHIFT_5
295
296 config SYS_ARCH_TIMER
297         bool "ARM Generic Timer support"
298         depends on CPU_V7A || ARM64
299         default y if ARM64
300         help
301           The ARM Generic Timer (aka arch-timer) provides an architected
302           interface to a timer source on an SoC.
303           It is mandantory for ARMv8 implementation and widely available
304           on ARMv7 systems.
305
306 config ARM_SMCCC
307         bool "Support for ARM SMC Calling Convention (SMCCC)"
308         depends on CPU_V7A || ARM64
309         select ARM_PSCI_FW
310         help
311           Say Y here if you want to enable ARM SMC Calling Convention.
312           This should be enabled if U-Boot needs to communicate with system
313           firmware (for example, PSCI) according to SMCCC.
314
315 config SEMIHOSTING
316         bool "support boot from semihosting"
317         help
318           In emulated environments, semihosting is a way for
319           the hosted environment to call out to the emulator to
320           retrieve files from the host machine.
321
322 config SYS_THUMB_BUILD
323         bool "Build U-Boot using the Thumb instruction set"
324         depends on !ARM64
325         help
326            Use this flag to build U-Boot using the Thumb instruction set for
327            ARM architectures. Thumb instruction set provides better code
328            density. For ARM architectures that support Thumb2 this flag will
329            result in Thumb2 code generated by GCC.
330
331 config SPL_SYS_THUMB_BUILD
332         bool "Build SPL using the Thumb instruction set"
333         default y if SYS_THUMB_BUILD
334         depends on !ARM64
335         help
336            Use this flag to build SPL using the Thumb instruction set for
337            ARM architectures. Thumb instruction set provides better code
338            density. For ARM architectures that support Thumb2 this flag will
339            result in Thumb2 code generated by GCC.
340
341 config TPL_SYS_THUMB_BUILD
342         bool "Build TPL using the Thumb instruction set"
343         default y if SYS_THUMB_BUILD
344         depends on TPL && !ARM64
345         help
346            Use this flag to build SPL using the Thumb instruction set for
347            ARM architectures. Thumb instruction set provides better code
348            density. For ARM architectures that support Thumb2 this flag will
349            result in Thumb2 code generated by GCC.
350
351
352 config SYS_L2CACHE_OFF
353         bool "L2cache off"
354         help
355           If SoC does not support L2CACHE or one do not want to enable
356           L2CACHE, choose this option.
357
358 config ENABLE_ARM_SOC_BOOT0_HOOK
359         bool "prepare BOOT0 header"
360         help
361           If the SoC's BOOT0 requires a header area filled with (magic)
362           values, then choose this option, and create a file included as
363           <asm/arch/boot0.h> which contains the required assembler code.
364
365 config ARM_CORTEX_CPU_IS_UP
366         bool
367         default n
368
369 config USE_ARCH_MEMCPY
370         bool "Use an assembly optimized implementation of memcpy"
371         default y
372         depends on !ARM64
373         help
374           Enable the generation of an optimized version of memcpy.
375           Such implementation may be faster under some conditions
376           but may increase the binary size.
377
378 config SPL_USE_ARCH_MEMCPY
379         bool "Use an assembly optimized implementation of memcpy for SPL"
380         default y if USE_ARCH_MEMCPY
381         depends on !ARM64
382         help
383           Enable the generation of an optimized version of memcpy.
384           Such implementation may be faster under some conditions
385           but may increase the binary size.
386
387 config TPL_USE_ARCH_MEMCPY
388         bool "Use an assembly optimized implementation of memcpy for TPL"
389         default y if USE_ARCH_MEMCPY
390         depends on !ARM64
391         help
392           Enable the generation of an optimized version of memcpy.
393           Such implementation may be faster under some conditions
394           but may increase the binary size.
395
396 config USE_ARCH_MEMSET
397         bool "Use an assembly optimized implementation of memset"
398         default y
399         depends on !ARM64
400         help
401           Enable the generation of an optimized version of memset.
402           Such implementation may be faster under some conditions
403           but may increase the binary size.
404
405 config SPL_USE_ARCH_MEMSET
406         bool "Use an assembly optimized implementation of memset for SPL"
407         default y if USE_ARCH_MEMSET
408         depends on !ARM64
409         help
410           Enable the generation of an optimized version of memset.
411           Such implementation may be faster under some conditions
412           but may increase the binary size.
413
414 config TPL_USE_ARCH_MEMSET
415         bool "Use an assembly optimized implementation of memset for TPL"
416         default y if USE_ARCH_MEMSET
417         depends on !ARM64
418         help
419           Enable the generation of an optimized version of memset.
420           Such implementation may be faster under some conditions
421           but may increase the binary size.
422
423 config ARM64_SUPPORT_AARCH32
424         bool "ARM64 system support AArch32 execution state"
425         default y if ARM64 && !TARGET_THUNDERX_88XX
426         help
427           This ARM64 system supports AArch32 execution state.
428
429 choice
430         prompt "Target select"
431         default TARGET_HIKEY
432
433 config ARCH_AT91
434         bool "Atmel AT91"
435         select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
436
437 config TARGET_EDB93XX
438         bool "Support edb93xx"
439         select CPU_ARM920T
440         select PL010_SERIAL
441
442 config TARGET_ASPENITE
443         bool "Support aspenite"
444         select CPU_ARM926EJS
445
446 config TARGET_GPLUGD
447         bool "Support gplugd"
448         select CPU_ARM926EJS
449
450 config ARCH_DAVINCI
451         bool "TI DaVinci"
452         select CPU_ARM926EJS
453         imply CMD_SAVES
454         help
455           Support for TI's DaVinci platform.
456
457 config KIRKWOOD
458         bool "Marvell Kirkwood"
459         select ARCH_MISC_INIT
460         select BOARD_EARLY_INIT_F
461         select CPU_ARM926EJS
462
463 config ARCH_MVEBU
464         bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
465         select DM
466         select DM_ETH
467         select DM_SERIAL
468         select DM_SPI
469         select DM_SPI_FLASH
470         select OF_CONTROL
471         select OF_SEPARATE
472         select SPI
473         imply CMD_DM
474
475 config TARGET_APF27
476         bool "Support apf27"
477         select CPU_ARM926EJS
478         select SUPPORT_SPL
479
480 config ORION5X
481         bool "Marvell Orion"
482         select CPU_ARM926EJS
483
484 config TARGET_SPEAR300
485         bool "Support spear300"
486         select BOARD_EARLY_INIT_F
487         select CPU_ARM926EJS
488         select PL011_SERIAL
489         imply CMD_SAVES
490
491 config TARGET_SPEAR310
492         bool "Support spear310"
493         select BOARD_EARLY_INIT_F
494         select CPU_ARM926EJS
495         select PL011_SERIAL
496         imply CMD_SAVES
497
498 config TARGET_SPEAR320
499         bool "Support spear320"
500         select BOARD_EARLY_INIT_F
501         select CPU_ARM926EJS
502         select PL011_SERIAL
503         imply CMD_SAVES
504
505 config TARGET_SPEAR600
506         bool "Support spear600"
507         select BOARD_EARLY_INIT_F
508         select CPU_ARM926EJS
509         select PL011_SERIAL
510         imply CMD_SAVES
511
512 config TARGET_STV0991
513         bool "Support stv0991"
514         select CPU_V7A
515         select DM
516         select DM_SERIAL
517         select DM_SPI
518         select DM_SPI_FLASH
519         select PL01X_SERIAL
520         select SPI
521         select SPI_FLASH
522         imply CMD_DM
523
524 config TARGET_X600
525         bool "Support x600"
526         select BOARD_LATE_INIT
527         select CPU_ARM926EJS
528         select PL011_SERIAL
529         select SUPPORT_SPL
530
531 config TARGET_WOODBURN
532         bool "Support woodburn"
533         select CPU_ARM1136
534
535 config TARGET_WOODBURN_SD
536         bool "Support woodburn_sd"
537         select CPU_ARM1136
538         select SUPPORT_SPL
539
540 config TARGET_FLEA3
541         bool "Support flea3"
542         select CPU_ARM1136
543
544 config TARGET_MX35PDK
545         bool "Support mx35pdk"
546         select BOARD_LATE_INIT
547         select CPU_ARM1136
548
549 config ARCH_BCM283X
550         bool "Broadcom BCM283X family"
551         select DM
552         select DM_GPIO
553         select DM_SERIAL
554         select OF_CONTROL
555         select PL01X_SERIAL
556         select SERIAL_SEARCH_ALL
557         imply CMD_DM
558         imply FAT_WRITE
559
560 config ARCH_BCM63158
561         bool "Broadcom BCM63158 family"
562         select DM
563         select OF_CONTROL
564         imply CMD_DM
565
566 config ARCH_BCM6858
567         bool "Broadcom BCM6858 family"
568         select DM
569         select OF_CONTROL
570         imply CMD_DM
571
572 config TARGET_VEXPRESS_CA15_TC2
573         bool "Support vexpress_ca15_tc2"
574         select CPU_V7A
575         select CPU_V7_HAS_NONSEC
576         select CPU_V7_HAS_VIRT
577         select PL011_SERIAL
578
579 config ARCH_BCMSTB
580         bool "Broadcom BCM7XXX family"
581         select CPU_V7A
582         select DM
583         select OF_CONTROL
584         select OF_PRIOR_STAGE
585         imply CMD_DM
586         help
587           This enables support for Broadcom ARM-based set-top box
588           chipsets, including the 7445 family of chips.
589
590 config TARGET_VEXPRESS_CA5X2
591         bool "Support vexpress_ca5x2"
592         select CPU_V7A
593         select PL011_SERIAL
594
595 config TARGET_VEXPRESS_CA9X4
596         bool "Support vexpress_ca9x4"
597         select CPU_V7A
598         select PL011_SERIAL
599
600 config TARGET_BCM23550_W1D
601         bool "Support bcm23550_w1d"
602         select CPU_V7A
603         imply CRC32_VERIFY
604         imply FAT_WRITE
605
606 config TARGET_BCM28155_AP
607         bool "Support bcm28155_ap"
608         select CPU_V7A
609         imply CRC32_VERIFY
610         imply FAT_WRITE
611
612 config TARGET_BCMCYGNUS
613         bool "Support bcmcygnus"
614         select CPU_V7A
615         imply BCM_SF2_ETH
616         imply BCM_SF2_ETH_GMAC
617         imply CMD_HASH
618         imply CRC32_VERIFY
619         imply FAT_WRITE
620         imply HASH_VERIFY
621         imply NETDEVICES
622
623 config TARGET_BCMNSP
624         bool "Support bcmnsp"
625         select CPU_V7A
626
627 config TARGET_BCMNS2
628         bool "Support Broadcom Northstar2"
629         select ARM64
630         help
631           Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
632           ARMv8 Cortex-A57 processors targeting a broad range of networking
633           applications
634
635 config ARCH_EXYNOS
636         bool "Samsung EXYNOS"
637         select DM
638         select DM_GPIO
639         select DM_I2C
640         select DM_KEYBOARD
641         select DM_SERIAL
642         select DM_SPI
643         select DM_SPI_FLASH
644         select SPI
645         imply SYS_THUMB_BUILD
646         imply CMD_DM
647         imply FAT_WRITE
648
649 config ARCH_S5PC1XX
650         bool "Samsung S5PC1XX"
651         select CPU_V7A
652         select DM
653         select DM_GPIO
654         select DM_I2C
655         select DM_SERIAL
656         imply CMD_DM
657
658 config ARCH_HIGHBANK
659         bool "Calxeda Highbank"
660         select CPU_V7A
661         select PL011_SERIAL
662
663 config ARCH_INTEGRATOR
664         bool "ARM Ltd. Integrator family"
665         select DM
666         select DM_SERIAL
667         select PL01X_SERIAL
668         imply CMD_DM
669
670 config ARCH_KEYSTONE
671         bool "TI Keystone"
672         select CMD_POWEROFF
673         select CPU_V7A
674         select SUPPORT_SPL
675         select SYS_ARCH_TIMER
676         select SYS_THUMB_BUILD
677         imply CMD_MTDPARTS
678         imply CMD_SAVES
679         imply FIT
680
681 config ARCH_K3
682         bool "Texas Instruments' K3 Architecture"
683         select SPL
684         select SUPPORT_SPL
685         select FIT
686
687 config ARCH_OMAP2PLUS
688         bool "TI OMAP2+"
689         select CPU_V7A
690         select SPL_BOARD_INIT if SPL
691         select SPL_STACK_R if SPL
692         select SUPPORT_SPL
693         imply FIT
694
695 config ARCH_MESON
696         bool "Amlogic Meson"
697         imply DISTRO_DEFAULTS
698         help
699           Support for the Meson SoC family developed by Amlogic Inc.,
700           targeted at media players and tablet computers. We currently
701           support the S905 (GXBaby) 64-bit SoC.
702
703 config ARCH_MEDIATEK
704         bool "MediaTek SoCs"
705         select BINMAN
706         select DM
707         select OF_CONTROL
708         select SPL_DM if SPL
709         select SPL_LIBCOMMON_SUPPORT if SPL
710         select SPL_LIBGENERIC_SUPPORT if SPL
711         select SPL_OF_CONTROL if SPL
712         select SUPPORT_SPL
713         help
714           Support for the MediaTek SoCs family developed by MediaTek Inc.
715           Please refer to doc/README.mediatek for more information.
716
717 config ARCH_LPC32XX
718         bool "NXP LPC32xx platform"
719         select CPU_ARM926EJS
720         select DM
721         select DM_GPIO
722         select DM_SERIAL
723         select SPL_DM if SPL
724         select SUPPORT_SPL
725         imply CMD_DM
726
727 config ARCH_IMX8
728         bool "NXP i.MX8 platform"
729         select ARM64
730         select DM
731         select OF_CONTROL
732
733 config ARCH_IMX8M
734         bool "NXP i.MX8M platform"
735         select ARM64
736         select DM
737         select SUPPORT_SPL
738         imply CMD_DM
739
740 config ARCH_MX23
741         bool "NXP i.MX23 family"
742         select CPU_ARM926EJS
743         select PL011_SERIAL
744         select SUPPORT_SPL
745
746 config ARCH_MX25
747         bool "NXP MX25"
748         select CPU_ARM926EJS
749         imply MXC_GPIO
750
751 config ARCH_MX28
752         bool "NXP i.MX28 family"
753         select CPU_ARM926EJS
754         select PL011_SERIAL
755         select SUPPORT_SPL
756
757 config ARCH_MX31
758         bool "NXP i.MX31 family"
759         select CPU_ARM1136
760
761 config ARCH_MX7ULP
762         bool "NXP MX7ULP"
763         select CPU_V7A
764         select ROM_UNIFIED_SECTIONS
765         imply MXC_GPIO
766
767 config ARCH_MX7
768         bool "Freescale MX7"
769         select ARCH_MISC_INIT
770         select BOARD_EARLY_INIT_F
771         select CPU_V7A
772         select SYS_FSL_HAS_SEC if SECURE_BOOT
773         select SYS_FSL_SEC_COMPAT_4
774         select SYS_FSL_SEC_LE
775         imply MXC_GPIO
776
777 config ARCH_MX6
778         bool "Freescale MX6"
779         select CPU_V7A
780         select SYS_FSL_HAS_SEC if SECURE_BOOT
781         select SYS_FSL_SEC_COMPAT_4
782         select SYS_FSL_SEC_LE
783         select SYS_THUMB_BUILD if SPL
784         imply MXC_GPIO
785
786 if ARCH_MX6
787 config SPL_LDSCRIPT
788         default "arch/arm/mach-omap2/u-boot-spl.lds"
789 endif
790
791 config ARCH_MX5
792         bool "Freescale MX5"
793         select BOARD_EARLY_INIT_F
794         select CPU_V7A
795         imply MXC_GPIO
796
797 config ARCH_OWL
798         bool "Actions Semi OWL SoCs"
799         select ARM64
800         select DM
801         select DM_SERIAL
802         select OF_CONTROL
803         imply CMD_DM
804
805 config ARCH_QEMU
806         bool "QEMU Virtual Platform"
807         select DM
808         select DM_SERIAL
809         select OF_CONTROL
810         select PL01X_SERIAL
811         imply CMD_DM
812         imply DM_RTC
813         imply RTC_PL031
814
815 config ARCH_RMOBILE
816         bool "Renesas ARM SoCs"
817         select BOARD_EARLY_INIT_F if !RZA1
818         select DM
819         select DM_SERIAL
820         imply CMD_DM
821         imply FAT_WRITE
822         imply SYS_THUMB_BUILD
823         imply ARCH_MISC_INIT if DISPLAY_CPUINFO
824
825 config TARGET_S32V234EVB
826         bool "Support s32v234evb"
827         select ARM64
828         select SYS_FSL_ERRATUM_ESDHC111
829
830 config ARCH_SNAPDRAGON
831         bool "Qualcomm Snapdragon SoCs"
832         select ARM64
833         select DM
834         select DM_GPIO
835         select DM_SERIAL
836         select MSM_SMEM
837         select OF_CONTROL
838         select OF_SEPARATE
839         select SMEM
840         select SPMI
841         imply CMD_DM
842
843 config ARCH_SOCFPGA
844         bool "Altera SOCFPGA family"
845         select ARCH_EARLY_INIT_R
846         select ARCH_MISC_INIT if !TARGET_SOCFPGA_ARRIA10
847         select ARM64 if TARGET_SOCFPGA_STRATIX10
848         select CPU_V7A if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
849         select DM
850         select DM_SERIAL
851         select ENABLE_ARM_SOC_BOOT0_HOOK if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
852         select OF_CONTROL
853         select SPL_DM_RESET if DM_RESET
854         select SPL_DM_SERIAL
855         select SPL_LIBCOMMON_SUPPORT
856         select SPL_LIBGENERIC_SUPPORT
857         select SPL_NAND_SUPPORT if SPL_NAND_DENALI
858         select SPL_OF_CONTROL
859         select SPL_SEPARATE_BSS if TARGET_SOCFPGA_STRATIX10
860         select SPL_SERIAL_SUPPORT
861         select SPL_WATCHDOG_SUPPORT
862         select SUPPORT_SPL
863         select SYS_NS16550
864         select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
865         imply CMD_DM
866         imply CMD_MTDPARTS
867         imply CRC32_VERIFY
868         imply DM_SPI
869         imply DM_SPI_FLASH
870         imply FAT_WRITE
871         imply SPL
872         imply SPL_DM
873         imply SPL_LIBDISK_SUPPORT
874         imply SPL_MMC_SUPPORT
875         imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
876         imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
877         imply SPL_SPI_FLASH_SUPPORT
878         imply SPL_SPI_SUPPORT
879         imply L2X0_CACHE
880
881 config ARCH_SUNXI
882         bool "Support sunxi (Allwinner) SoCs"
883         select BINMAN
884         select CMD_GPIO
885         select CMD_MMC if MMC
886         select CMD_USB if DISTRO_DEFAULTS
887         select CLK
888         select DM
889         select DM_ETH
890         select DM_GPIO
891         select DM_KEYBOARD
892         select DM_MMC if MMC
893         select DM_SCSI if SCSI
894         select DM_SERIAL
895         select DM_USB if DISTRO_DEFAULTS
896         select OF_BOARD_SETUP
897         select OF_CONTROL
898         select OF_SEPARATE
899         select SPECIFY_CONSOLE_INDEX
900         select SPL_STACK_R if SPL
901         select SPL_SYS_MALLOC_SIMPLE if SPL
902         select SPL_SYS_THUMB_BUILD if !ARM64
903         select SYS_NS16550
904         select SYS_THUMB_BUILD if !ARM64
905         select USB if DISTRO_DEFAULTS
906         select USB_KEYBOARD if DISTRO_DEFAULTS
907         select USB_STORAGE if DISTRO_DEFAULTS
908         select USE_TINY_PRINTF
909         imply CMD_DM
910         imply CMD_GPT
911         imply CMD_UBI if NAND
912         imply DISTRO_DEFAULTS
913         imply FAT_WRITE
914         imply FIT
915         imply OF_LIBFDT_OVERLAY
916         imply PRE_CONSOLE_BUFFER
917         imply SPL_GPIO_SUPPORT
918         imply SPL_LIBCOMMON_SUPPORT
919         imply SPL_LIBGENERIC_SUPPORT
920         imply SPL_MMC_SUPPORT if MMC
921         imply SPL_POWER_SUPPORT
922         imply SPL_SERIAL_SUPPORT
923         imply USB_GADGET
924
925 config ARCH_VERSAL
926         bool "Support Xilinx Versal Platform"
927         select ARM64
928         select CLK
929         select DM
930         select DM_ETH if NET
931         select DM_MMC if MMC
932         select DM_SERIAL
933         select OF_CONTROL
934
935 config ARCH_VF610
936         bool "Freescale Vybrid"
937         select CPU_V7A
938         select SYS_FSL_ERRATUM_ESDHC111
939         imply CMD_MTDPARTS
940         imply NAND
941
942 config ARCH_ZYNQ
943         bool "Xilinx Zynq based platform"
944         select BOARD_EARLY_INIT_F if WDT
945         select CLK
946         select CLK_ZYNQ
947         select CPU_V7A
948         select DM
949         select DM_ETH if NET
950         select DM_MMC if MMC
951         select DM_SERIAL
952         select DM_SPI
953         select DM_SPI_FLASH
954         select DM_USB if USB
955         select OF_CONTROL
956         select SPI
957         select SPL_BOARD_INIT if SPL
958         select SPL_CLK if SPL
959         select SPL_DM if SPL
960         select SPL_OF_CONTROL if SPL
961         select SPL_SEPARATE_BSS if SPL
962         select SUPPORT_SPL
963         imply ARCH_EARLY_INIT_R
964         imply BOARD_LATE_INIT
965         imply CMD_CLK
966         imply CMD_DM
967         imply CMD_SPL
968         imply FAT_WRITE
969
970 config ARCH_ZYNQMP_R5
971         bool "Xilinx ZynqMP R5 based platform"
972         select CLK
973         select CPU_V7R
974         select DM
975         select DM_ETH if NET
976         select DM_MMC if MMC
977         select DM_SERIAL
978         select OF_CONTROL
979         imply CMD_DM
980         imply DM_USB_GADGET
981
982 config ARCH_ZYNQMP
983         bool "Xilinx ZynqMP based platform"
984         select ARM64
985         select CLK
986         select DM
987         select DM_ETH if NET
988         select DM_MMC if MMC
989         select DM_SERIAL
990         select DM_SPI if SPI
991         select DM_SPI_FLASH if DM_SPI
992         select DM_USB if USB
993         select OF_CONTROL
994         select SPL_BOARD_INIT if SPL
995         select SPL_CLK if SPL
996         select SPL_SEPARATE_BSS if SPL
997         select SUPPORT_SPL
998         imply BOARD_LATE_INIT
999         imply CMD_DM
1000         imply FAT_WRITE
1001         imply MP
1002         imply DM_USB_GADGET
1003
1004 config TEGRA
1005         bool "NVIDIA Tegra"
1006         imply DISTRO_DEFAULTS
1007         imply FAT_WRITE
1008
1009 config TARGET_VEXPRESS64_AEMV8A
1010         bool "Support vexpress_aemv8a"
1011         select ARM64
1012         select PL01X_SERIAL
1013
1014 config TARGET_VEXPRESS64_BASE_FVP
1015         bool "Support Versatile Express ARMv8a FVP BASE model"
1016         select ARM64
1017         select PL01X_SERIAL
1018         select SEMIHOSTING
1019
1020 config TARGET_VEXPRESS64_BASE_FVP_DRAM
1021         bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
1022         select ARM64
1023         select PL01X_SERIAL
1024         help
1025           This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
1026           the default config to allow the user to load the images directly into
1027           DRAM using model parameters rather than by using semi-hosting to load
1028           the files from the host filesystem.
1029
1030 config TARGET_VEXPRESS64_JUNO
1031         bool "Support Versatile Express Juno Development Platform"
1032         select ARM64
1033         select PL01X_SERIAL
1034
1035 config TARGET_LS2080A_EMU
1036         bool "Support ls2080a_emu"
1037         select ARCH_LS2080A
1038         select ARCH_MISC_INIT
1039         select ARM64
1040         select ARMV8_MULTIENTRY
1041         select FSL_DDR_SYNC_REFRESH
1042         help
1043           Support for Freescale LS2080A_EMU platform
1044           The LS2080A Development System (EMULATOR) is a pre silicon
1045           development platform that supports the QorIQ LS2080A
1046           Layerscape Architecture processor.
1047
1048 config TARGET_LS2080A_SIMU
1049         bool "Support ls2080a_simu"
1050         select ARCH_LS2080A
1051         select ARCH_MISC_INIT
1052         select ARM64
1053         select ARMV8_MULTIENTRY
1054         help
1055           Support for Freescale LS2080A_SIMU platform
1056           The LS2080A Development System (QDS) is a pre silicon
1057           development platform that supports the QorIQ LS2080A
1058           Layerscape Architecture processor.
1059
1060 config TARGET_LS1088AQDS
1061         bool "Support ls1088aqds"
1062         select ARCH_LS1088A
1063         select ARCH_MISC_INIT
1064         select ARM64
1065         select ARMV8_MULTIENTRY
1066         select BOARD_LATE_INIT
1067         select SUPPORT_SPL
1068         select FSL_DDR_INTERACTIVE if !SD_BOOT
1069         help
1070           Support for NXP LS1088AQDS platform
1071           The LS1088A Development System (QDS) is a high-performance
1072           development platform that supports the QorIQ LS1088A
1073           Layerscape Architecture processor.
1074
1075 config TARGET_LS2080AQDS
1076         bool "Support ls2080aqds"
1077         select ARCH_LS2080A
1078         select ARCH_MISC_INIT
1079         select ARM64
1080         select ARMV8_MULTIENTRY
1081         select BOARD_LATE_INIT
1082         select SUPPORT_SPL
1083         imply SCSI
1084         imply SCSI_AHCI
1085         select FSL_DDR_BIST
1086         select FSL_DDR_INTERACTIVE if !SPL
1087         help
1088           Support for Freescale LS2080AQDS platform
1089           The LS2080A Development System (QDS) is a high-performance
1090           development platform that supports the QorIQ LS2080A
1091           Layerscape Architecture processor.
1092
1093 config TARGET_LS2080ARDB
1094         bool "Support ls2080ardb"
1095         select ARCH_LS2080A
1096         select ARCH_MISC_INIT
1097         select ARM64
1098         select ARMV8_MULTIENTRY
1099         select BOARD_LATE_INIT
1100         select SUPPORT_SPL
1101         select FSL_DDR_BIST
1102         select FSL_DDR_INTERACTIVE if !SPL
1103         imply SCSI
1104         imply SCSI_AHCI
1105         help
1106           Support for Freescale LS2080ARDB platform.
1107           The LS2080A Reference design board (RDB) is a high-performance
1108           development platform that supports the QorIQ LS2080A
1109           Layerscape Architecture processor.
1110
1111 config TARGET_LS2081ARDB
1112         bool "Support ls2081ardb"
1113         select ARCH_LS2080A
1114         select ARCH_MISC_INIT
1115         select ARM64
1116         select ARMV8_MULTIENTRY
1117         select BOARD_LATE_INIT
1118         select SUPPORT_SPL
1119         help
1120           Support for Freescale LS2081ARDB platform.
1121           The LS2081A Reference design board (RDB) is a high-performance
1122           development platform that supports the QorIQ LS2081A/LS2041A
1123           Layerscape Architecture processor.
1124
1125 config TARGET_LX2160ARDB
1126         bool "Support lx2160ardb"
1127         select ARCH_LX2160A
1128         select ARCH_MISC_INIT
1129         select ARM64
1130         select ARMV8_MULTIENTRY
1131         select BOARD_LATE_INIT
1132         help
1133           Support for NXP LX2160ARDB platform.
1134           The lx2160ardb (LX2160A Reference design board (RDB)
1135           is a high-performance development platform that supports the
1136           QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1137
1138 config TARGET_LX2160AQDS
1139         bool "Support lx2160aqds"
1140         select ARCH_LX2160A
1141         select ARCH_MISC_INIT
1142         select ARM64
1143         select ARMV8_MULTIENTRY
1144         select BOARD_LATE_INIT
1145         help
1146           Support for NXP LX2160AQDS platform.
1147           The lx2160aqds (LX2160A QorIQ Development System (QDS)
1148           is a high-performance development platform that supports the
1149           QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1150
1151 config TARGET_HIKEY
1152         bool "Support HiKey 96boards Consumer Edition Platform"
1153         select ARM64
1154         select DM
1155         select DM_GPIO
1156         select DM_SERIAL
1157         select OF_CONTROL
1158         select PL01X_SERIAL
1159         select SPECIFY_CONSOLE_INDEX
1160         imply CMD_DM
1161           help
1162           Support for HiKey 96boards platform. It features a HI6220
1163           SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
1164
1165 config TARGET_POPLAR
1166         bool "Support Poplar 96boards Enterprise Edition Platform"
1167         select ARM64
1168         select DM
1169         select DM_SERIAL
1170         select DM_USB
1171         select OF_CONTROL
1172         select PL01X_SERIAL
1173         imply CMD_DM
1174           help
1175           Support for Poplar 96boards EE platform. It features a HI3798cv200
1176           SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
1177           making it capable of running any commercial set-top solution based on
1178           Linux or Android.
1179
1180 config TARGET_LS1012AQDS
1181         bool "Support ls1012aqds"
1182         select ARCH_LS1012A
1183         select ARM64
1184         select BOARD_LATE_INIT
1185         help
1186           Support for Freescale LS1012AQDS platform.
1187           The LS1012A Development System (QDS) is a high-performance
1188           development platform that supports the QorIQ LS1012A
1189           Layerscape Architecture processor.
1190
1191 config TARGET_LS1012ARDB
1192         bool "Support ls1012ardb"
1193         select ARCH_LS1012A
1194         select ARM64
1195         select BOARD_LATE_INIT
1196         imply SCSI
1197         imply SCSI_AHCI
1198         help
1199           Support for Freescale LS1012ARDB platform.
1200           The LS1012A Reference design board (RDB) is a high-performance
1201           development platform that supports the QorIQ LS1012A
1202           Layerscape Architecture processor.
1203
1204 config TARGET_LS1012A2G5RDB
1205         bool "Support ls1012a2g5rdb"
1206         select ARCH_LS1012A
1207         select ARM64
1208         select BOARD_LATE_INIT
1209         imply SCSI
1210         help
1211           Support for Freescale LS1012A2G5RDB platform.
1212           The LS1012A 2G5 Reference design board (RDB) is a high-performance
1213           development platform that supports the QorIQ LS1012A
1214           Layerscape Architecture processor.
1215
1216 config TARGET_LS1012AFRWY
1217         bool "Support ls1012afrwy"
1218         select ARCH_LS1012A
1219         select ARM64
1220         select BOARD_LATE_INIT
1221         imply SCSI
1222         imply SCSI_AHCI
1223         help
1224          Support for Freescale LS1012AFRWY platform.
1225          The LS1012A FRWY board (FRWY) is a high-performance
1226          development platform that supports the QorIQ LS1012A
1227          Layerscape Architecture processor.
1228
1229 config TARGET_LS1012AFRDM
1230         bool "Support ls1012afrdm"
1231         select ARCH_LS1012A
1232         select ARM64
1233         help
1234           Support for Freescale LS1012AFRDM platform.
1235           The LS1012A Freedom  board (FRDM) is a high-performance
1236           development platform that supports the QorIQ LS1012A
1237           Layerscape Architecture processor.
1238
1239 config TARGET_LS1088ARDB
1240         bool "Support ls1088ardb"
1241         select ARCH_LS1088A
1242         select ARCH_MISC_INIT
1243         select ARM64
1244         select ARMV8_MULTIENTRY
1245         select BOARD_LATE_INIT
1246         select SUPPORT_SPL
1247         select FSL_DDR_INTERACTIVE if !SD_BOOT
1248         help
1249           Support for NXP LS1088ARDB platform.
1250           The LS1088A Reference design board (RDB) is a high-performance
1251           development platform that supports the QorIQ LS1088A
1252           Layerscape Architecture processor.
1253
1254 config TARGET_LS1021AQDS
1255         bool "Support ls1021aqds"
1256         select ARCH_LS1021A
1257         select ARCH_SUPPORT_PSCI
1258         select BOARD_EARLY_INIT_F
1259         select BOARD_LATE_INIT
1260         select CPU_V7A
1261         select CPU_V7_HAS_NONSEC
1262         select CPU_V7_HAS_VIRT
1263         select LS1_DEEP_SLEEP
1264         select SUPPORT_SPL
1265         select SYS_FSL_DDR
1266         select FSL_DDR_INTERACTIVE
1267         imply SCSI
1268
1269 config TARGET_LS1021ATWR
1270         bool "Support ls1021atwr"
1271         select ARCH_LS1021A
1272         select ARCH_SUPPORT_PSCI
1273         select BOARD_EARLY_INIT_F
1274         select BOARD_LATE_INIT
1275         select CPU_V7A
1276         select CPU_V7_HAS_NONSEC
1277         select CPU_V7_HAS_VIRT
1278         select LS1_DEEP_SLEEP
1279         select SUPPORT_SPL
1280         imply SCSI
1281
1282 config TARGET_LS1021AIOT
1283         bool "Support ls1021aiot"
1284         select ARCH_LS1021A
1285         select ARCH_SUPPORT_PSCI
1286         select BOARD_LATE_INIT
1287         select CPU_V7A
1288         select CPU_V7_HAS_NONSEC
1289         select CPU_V7_HAS_VIRT
1290         select SUPPORT_SPL
1291         imply SCSI
1292         help
1293           Support for Freescale LS1021AIOT platform.
1294           The LS1021A Freescale board (IOT) is a high-performance
1295           development platform that supports the QorIQ LS1021A
1296           Layerscape Architecture processor.
1297
1298 config TARGET_LS1043AQDS
1299         bool "Support ls1043aqds"
1300         select ARCH_LS1043A
1301         select ARM64
1302         select ARMV8_MULTIENTRY
1303         select BOARD_EARLY_INIT_F
1304         select BOARD_LATE_INIT
1305         select SUPPORT_SPL
1306         select FSL_DDR_INTERACTIVE if !SPL
1307         imply SCSI
1308         imply SCSI_AHCI
1309         help
1310           Support for Freescale LS1043AQDS platform.
1311
1312 config TARGET_LS1043ARDB
1313         bool "Support ls1043ardb"
1314         select ARCH_LS1043A
1315         select ARM64
1316         select ARMV8_MULTIENTRY
1317         select BOARD_EARLY_INIT_F
1318         select BOARD_LATE_INIT
1319         select SUPPORT_SPL
1320         help
1321           Support for Freescale LS1043ARDB platform.
1322
1323 config TARGET_LS1046AQDS
1324         bool "Support ls1046aqds"
1325         select ARCH_LS1046A
1326         select ARM64
1327         select ARMV8_MULTIENTRY
1328         select BOARD_EARLY_INIT_F
1329         select BOARD_LATE_INIT
1330         select DM_SPI_FLASH if DM_SPI
1331         select SUPPORT_SPL
1332         select FSL_DDR_BIST if !SPL
1333         select FSL_DDR_INTERACTIVE  if !SPL
1334         select FSL_DDR_INTERACTIVE if !SPL
1335         imply SCSI
1336         help
1337           Support for Freescale LS1046AQDS platform.
1338           The LS1046A Development System (QDS) is a high-performance
1339           development platform that supports the QorIQ LS1046A
1340           Layerscape Architecture processor.
1341
1342 config TARGET_LS1046ARDB
1343         bool "Support ls1046ardb"
1344         select ARCH_LS1046A
1345         select ARM64
1346         select ARMV8_MULTIENTRY
1347         select BOARD_EARLY_INIT_F
1348         select BOARD_LATE_INIT
1349         select DM_SPI_FLASH if DM_SPI
1350         select POWER_MC34VR500
1351         select SUPPORT_SPL
1352         select FSL_DDR_BIST
1353         select FSL_DDR_INTERACTIVE if !SPL
1354         imply SCSI
1355         help
1356           Support for Freescale LS1046ARDB platform.
1357           The LS1046A Reference Design Board (RDB) is a high-performance
1358           development platform that supports the QorIQ LS1046A
1359           Layerscape Architecture processor.
1360
1361 config TARGET_H2200
1362         bool "Support h2200"
1363         select CPU_PXA
1364
1365 config TARGET_ZIPITZ2
1366         bool "Support zipitz2"
1367         select CPU_PXA
1368
1369 config TARGET_COLIBRI_PXA270
1370         bool "Support colibri_pxa270"
1371         select CPU_PXA
1372
1373 config ARCH_UNIPHIER
1374         bool "Socionext UniPhier SoCs"
1375         select BOARD_LATE_INIT
1376         select DM
1377         select DM_GPIO
1378         select DM_I2C
1379         select DM_MMC
1380         select DM_RESET
1381         select DM_SERIAL
1382         select DM_USB
1383         select OF_BOARD_SETUP
1384         select OF_CONTROL
1385         select OF_LIBFDT
1386         select PINCTRL
1387         select SPL_BOARD_INIT if SPL
1388         select SPL_DM if SPL
1389         select SPL_LIBCOMMON_SUPPORT if SPL
1390         select SPL_LIBGENERIC_SUPPORT if SPL
1391         select SPL_OF_CONTROL if SPL
1392         select SPL_PINCTRL if SPL
1393         select SUPPORT_SPL
1394         imply CMD_DM
1395         imply DISTRO_DEFAULTS
1396         imply FAT_WRITE
1397         help
1398           Support for UniPhier SoC family developed by Socionext Inc.
1399           (formerly, System LSI Business Division of Panasonic Corporation)
1400
1401 config STM32
1402         bool "Support STMicroelectronics STM32 MCU with cortex M"
1403         select CPU_V7M
1404         select DM
1405         select DM_SERIAL
1406         imply CMD_DM
1407
1408 config ARCH_STI
1409         bool "Support STMicrolectronics SoCs"
1410         select BLK
1411         select CPU_V7A
1412         select DM
1413         select DM_MMC
1414         select DM_RESET
1415         select DM_SERIAL
1416         imply CMD_DM
1417         help
1418           Support for STMicroelectronics STiH407/10 SoC family.
1419           This SoC is used on Linaro 96Board STiH410-B2260
1420
1421 config ARCH_STM32MP
1422         bool "Support STMicroelectronics STM32MP Socs with cortex A"
1423         select ARCH_MISC_INIT
1424         select BOARD_LATE_INIT
1425         select CLK
1426         select DM
1427         select DM_GPIO
1428         select DM_RESET
1429         select DM_SERIAL
1430         select MISC
1431         select OF_CONTROL
1432         select OF_LIBFDT
1433         select PINCTRL
1434         select REGMAP
1435         select SUPPORT_SPL
1436         select SYSCON
1437         select SYSRESET
1438         select SYS_THUMB_BUILD
1439         imply SPL_SYSRESET
1440         imply CMD_DM
1441         imply CMD_POWEROFF
1442         imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1443         help
1444           Support for STM32MP SoC family developed by STMicroelectronics,
1445           MPUs based on ARM cortex A core
1446           U-BOOT is running in DDR, loaded by the First Stage BootLoader (FSBL).
1447           FSBL can be TF-A: Trusted Firmware for Cortex A, for trusted boot
1448           chain.
1449           SPL is the unsecure FSBL for the basic boot chain.
1450
1451 config ARCH_ROCKCHIP
1452         bool "Support Rockchip SoCs"
1453         select BLK
1454         select DM
1455         select DM_GPIO
1456         select DM_I2C
1457         select DM_MMC
1458         select DM_PWM
1459         select DM_REGULATOR
1460         select DM_SERIAL
1461         select DM_SPI
1462         select DM_SPI_FLASH
1463         select DM_USB if USB
1464         select ENABLE_ARM_SOC_BOOT0_HOOK
1465         select OF_CONTROL
1466         select SPI
1467         select SPL_DM if SPL
1468         select SPL_SYS_MALLOC_SIMPLE if SPL
1469         select SYS_MALLOC_F
1470         select SYS_THUMB_BUILD if !ARM64
1471         imply ADC
1472         imply CMD_DM
1473         imply DEBUG_UART_BOARD_INIT
1474         imply DISTRO_DEFAULTS
1475         imply FAT_WRITE
1476         imply SARADC_ROCKCHIP
1477         imply SPL_SYSRESET
1478         imply SYS_NS16550
1479         imply TPL_SYSRESET
1480         imply USB_FUNCTION_FASTBOOT
1481
1482 config TARGET_THUNDERX_88XX
1483         bool "Support ThunderX 88xx"
1484         select ARM64
1485         select OF_CONTROL
1486         select PL01X_SERIAL
1487         select SYS_CACHE_SHIFT_7
1488
1489 config ARCH_ASPEED
1490         bool "Support Aspeed SoCs"
1491         select DM
1492         select OF_CONTROL
1493         imply CMD_DM
1494
1495 endchoice
1496
1497 config TI_SECURE_DEVICE
1498         bool "HS Device Type Support"
1499         depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
1500         help
1501           If a high secure (HS) device type is being used, this config
1502           must be set. This option impacts various aspects of the
1503           build system (to create signed boot images that can be
1504           authenticated) and the code. See the doc/README.ti-secure
1505           file for further details.
1506
1507 if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
1508 config ISW_ENTRY_ADDR
1509         hex "Address in memory or XIP address of bootloader entry point"
1510         default 0x402F4000 if AM43XX
1511         default 0x402F0400 if AM33XX
1512         default 0x40301350 if OMAP54XX
1513         help
1514           After any reset, the boot ROM searches the boot media for a valid
1515           boot image. For non-XIP devices, the ROM then copies the image into
1516           internal memory. For all boot modes, after the ROM processes the
1517           boot image it eventually computes the entry point address depending
1518           on the device type (secure/non-secure), boot media (xip/non-xip) and
1519           image headers.
1520 endif
1521
1522 source "arch/arm/mach-aspeed/Kconfig"
1523
1524 source "arch/arm/mach-at91/Kconfig"
1525
1526 source "arch/arm/mach-bcm283x/Kconfig"
1527
1528 source "arch/arm/mach-bcmstb/Kconfig"
1529
1530 source "arch/arm/mach-davinci/Kconfig"
1531
1532 source "arch/arm/mach-exynos/Kconfig"
1533
1534 source "arch/arm/mach-highbank/Kconfig"
1535
1536 source "arch/arm/mach-integrator/Kconfig"
1537
1538 source "arch/arm/mach-k3/Kconfig"
1539
1540 source "arch/arm/mach-keystone/Kconfig"
1541
1542 source "arch/arm/mach-kirkwood/Kconfig"
1543
1544 source "arch/arm/cpu/arm926ejs/lpc32xx/Kconfig"
1545
1546 source "arch/arm/mach-mvebu/Kconfig"
1547
1548 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
1549
1550 source "arch/arm/mach-imx/mx2/Kconfig"
1551
1552 source "arch/arm/mach-imx/mx3/Kconfig"
1553
1554 source "arch/arm/mach-imx/mx5/Kconfig"
1555
1556 source "arch/arm/mach-imx/mx6/Kconfig"
1557
1558 source "arch/arm/mach-imx/mx7/Kconfig"
1559
1560 source "arch/arm/mach-imx/mx7ulp/Kconfig"
1561
1562 source "arch/arm/mach-imx/imx8/Kconfig"
1563
1564 source "arch/arm/mach-imx/imx8m/Kconfig"
1565
1566 source "arch/arm/mach-imx/mxs/Kconfig"
1567
1568 source "arch/arm/mach-omap2/Kconfig"
1569
1570 source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
1571
1572 source "arch/arm/mach-orion5x/Kconfig"
1573
1574 source "arch/arm/mach-owl/Kconfig"
1575
1576 source "arch/arm/mach-rmobile/Kconfig"
1577
1578 source "arch/arm/mach-meson/Kconfig"
1579
1580 source "arch/arm/mach-mediatek/Kconfig"
1581
1582 source "arch/arm/mach-qemu/Kconfig"
1583
1584 source "arch/arm/mach-rockchip/Kconfig"
1585
1586 source "arch/arm/mach-s5pc1xx/Kconfig"
1587
1588 source "arch/arm/mach-snapdragon/Kconfig"
1589
1590 source "arch/arm/mach-socfpga/Kconfig"
1591
1592 source "arch/arm/mach-sti/Kconfig"
1593
1594 source "arch/arm/mach-stm32/Kconfig"
1595
1596 source "arch/arm/mach-stm32mp/Kconfig"
1597
1598 source "arch/arm/mach-sunxi/Kconfig"
1599
1600 source "arch/arm/mach-tegra/Kconfig"
1601
1602 source "arch/arm/mach-uniphier/Kconfig"
1603
1604 source "arch/arm/cpu/armv7/vf610/Kconfig"
1605
1606 source "arch/arm/mach-zynq/Kconfig"
1607
1608 source "arch/arm/mach-zynqmp/Kconfig"
1609
1610 source "arch/arm/mach-versal/Kconfig"
1611
1612 source "arch/arm/mach-zynqmp-r5/Kconfig"
1613
1614 source "arch/arm/cpu/armv7/Kconfig"
1615
1616 source "arch/arm/cpu/armv8/Kconfig"
1617
1618 source "arch/arm/mach-imx/Kconfig"
1619
1620 source "board/bosch/shc/Kconfig"
1621 source "board/bosch/guardian/Kconfig"
1622 source "board/CarMediaLab/flea3/Kconfig"
1623 source "board/Marvell/aspenite/Kconfig"
1624 source "board/Marvell/gplugd/Kconfig"
1625 source "board/armadeus/apf27/Kconfig"
1626 source "board/armltd/vexpress/Kconfig"
1627 source "board/armltd/vexpress64/Kconfig"
1628 source "board/broadcom/bcm23550_w1d/Kconfig"
1629 source "board/broadcom/bcm28155_ap/Kconfig"
1630 source "board/broadcom/bcm963158/Kconfig"
1631 source "board/broadcom/bcm968580xref/Kconfig"
1632 source "board/broadcom/bcmcygnus/Kconfig"
1633 source "board/broadcom/bcmnsp/Kconfig"
1634 source "board/broadcom/bcmns2/Kconfig"
1635 source "board/cavium/thunderx/Kconfig"
1636 source "board/cirrus/edb93xx/Kconfig"
1637 source "board/eets/pdu001/Kconfig"
1638 source "board/emulation/qemu-arm/Kconfig"
1639 source "board/freescale/ls2080a/Kconfig"
1640 source "board/freescale/ls2080aqds/Kconfig"
1641 source "board/freescale/ls2080ardb/Kconfig"
1642 source "board/freescale/ls1088a/Kconfig"
1643 source "board/freescale/ls1021aqds/Kconfig"
1644 source "board/freescale/ls1043aqds/Kconfig"
1645 source "board/freescale/ls1021atwr/Kconfig"
1646 source "board/freescale/ls1021aiot/Kconfig"
1647 source "board/freescale/ls1046aqds/Kconfig"
1648 source "board/freescale/ls1043ardb/Kconfig"
1649 source "board/freescale/ls1046ardb/Kconfig"
1650 source "board/freescale/ls1012aqds/Kconfig"
1651 source "board/freescale/ls1012ardb/Kconfig"
1652 source "board/freescale/ls1012afrdm/Kconfig"
1653 source "board/freescale/lx2160a/Kconfig"
1654 source "board/freescale/mx35pdk/Kconfig"
1655 source "board/freescale/s32v234evb/Kconfig"
1656 source "board/grinn/chiliboard/Kconfig"
1657 source "board/gumstix/pepper/Kconfig"
1658 source "board/h2200/Kconfig"
1659 source "board/hisilicon/hikey/Kconfig"
1660 source "board/hisilicon/poplar/Kconfig"
1661 source "board/isee/igep003x/Kconfig"
1662 source "board/phytec/pcm051/Kconfig"
1663 source "board/silica/pengwyn/Kconfig"
1664 source "board/spear/spear300/Kconfig"
1665 source "board/spear/spear310/Kconfig"
1666 source "board/spear/spear320/Kconfig"
1667 source "board/spear/spear600/Kconfig"
1668 source "board/spear/x600/Kconfig"
1669 source "board/st/stv0991/Kconfig"
1670 source "board/tcl/sl50/Kconfig"
1671 source "board/ucRobotics/bubblegum_96/Kconfig"
1672 source "board/birdland/bav335x/Kconfig"
1673 source "board/toradex/colibri_pxa270/Kconfig"
1674 source "board/variscite/dart_6ul/Kconfig"
1675 source "board/vscom/baltos/Kconfig"
1676 source "board/woodburn/Kconfig"
1677 source "board/xilinx/Kconfig"
1678 source "board/xilinx/zynq/Kconfig"
1679 source "board/xilinx/zynqmp/Kconfig"
1680 source "board/zipitz2/Kconfig"
1681
1682 source "arch/arm/Kconfig.debug"
1683
1684 endmenu
1685
1686 config SPL_LDSCRIPT
1687         default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
1688         default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
1689         default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
1690
1691