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