xref: /openbmc/u-boot/arch/arm/Kconfig (revision 01abae4d)
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
12config DMA_ADDR_T_64BIT
13	bool
14	default y if ARM64
15
16config HAS_VBAR
17	bool
18
19config HAS_THUMB2
20	bool
21
22# If set, the workarounds for these ARM errata are applied early during U-Boot
23# startup. Note that in general these options force the workarounds to be
24# applied; no CPU-type/version detection exists, unlike the similar options in
25# the Linux kernel. Do not set these options unless they apply!  Also note that
26# the following can be machine specific errata. These do have ability to
27# provide rudimentary version and machine specific checks, but expect no
28# product checks:
29# CONFIG_ARM_ERRATA_430973
30# CONFIG_ARM_ERRATA_454179
31# CONFIG_ARM_ERRATA_621766
32# CONFIG_ARM_ERRATA_798870
33# CONFIG_ARM_ERRATA_801819
34config ARM_ERRATA_430973
35	bool
36
37config ARM_ERRATA_454179
38	bool
39
40config ARM_ERRATA_621766
41	bool
42
43config ARM_ERRATA_716044
44	bool
45
46config ARM_ERRATA_725233
47	bool
48
49config ARM_ERRATA_742230
50	bool
51
52config ARM_ERRATA_743622
53	bool
54
55config ARM_ERRATA_751472
56	bool
57
58config ARM_ERRATA_761320
59	bool
60
61config ARM_ERRATA_773022
62	bool
63
64config ARM_ERRATA_774769
65	bool
66
67config ARM_ERRATA_794072
68	bool
69
70config ARM_ERRATA_798870
71	bool
72
73config ARM_ERRATA_801819
74	bool
75
76config ARM_ERRATA_826974
77	bool
78
79config ARM_ERRATA_828024
80	bool
81
82config ARM_ERRATA_829520
83	bool
84
85config ARM_ERRATA_833069
86	bool
87
88config ARM_ERRATA_833471
89	bool
90
91config CPU_ARM720T
92	bool
93	select SYS_CACHE_SHIFT_5
94
95config CPU_ARM920T
96	bool
97	select SYS_CACHE_SHIFT_5
98
99config CPU_ARM926EJS
100	bool
101	select SYS_CACHE_SHIFT_5
102
103config CPU_ARM946ES
104	bool
105	select SYS_CACHE_SHIFT_5
106
107config CPU_ARM1136
108	bool
109	select SYS_CACHE_SHIFT_5
110
111config CPU_ARM1176
112	bool
113	select HAS_VBAR
114	select SYS_CACHE_SHIFT_5
115
116config CPU_V7
117	bool
118	select HAS_VBAR
119	select HAS_THUMB2
120	select SYS_CACHE_SHIFT_6
121
122config CPU_V7M
123	bool
124	select HAS_THUMB2
125	select SYS_CACHE_SHIFT_5
126
127config CPU_PXA
128	bool
129	select SYS_CACHE_SHIFT_5
130
131config CPU_SA1100
132	bool
133	select SYS_CACHE_SHIFT_5
134
135config SYS_CPU
136	default "arm720t" if CPU_ARM720T
137	default "arm920t" if CPU_ARM920T
138	default "arm926ejs" if CPU_ARM926EJS
139	default "arm946es" if CPU_ARM946ES
140	default "arm1136" if CPU_ARM1136
141	default "arm1176" if CPU_ARM1176
142	default "armv7" if CPU_V7
143	default "armv7m" if CPU_V7M
144	default "pxa" if CPU_PXA
145	default "sa1100" if CPU_SA1100
146	default "armv8" if ARM64
147
148config SYS_ARM_ARCH
149	int
150	default 4 if CPU_ARM720T
151	default 4 if CPU_ARM920T
152	default 5 if CPU_ARM926EJS
153	default 5 if CPU_ARM946ES
154	default 6 if CPU_ARM1136
155	default 6 if CPU_ARM1176
156	default 7 if CPU_V7
157	default 7 if CPU_V7M
158	default 5 if CPU_PXA
159	default 4 if CPU_SA1100
160	default 8 if ARM64
161
162config SYS_CACHE_SHIFT_5
163	bool
164
165config SYS_CACHE_SHIFT_6
166	bool
167
168config SYS_CACHE_SHIFT_7
169	bool
170
171config SYS_CACHELINE_SIZE
172	int
173	default 128 if SYS_CACHE_SHIFT_7
174	default 64 if SYS_CACHE_SHIFT_6
175	default 32 if SYS_CACHE_SHIFT_5
176
177config SEMIHOSTING
178	bool "support boot from semihosting"
179	help
180	  In emulated environments, semihosting is a way for
181	  the hosted environment to call out to the emulator to
182	  retrieve files from the host machine.
183
184config SYS_THUMB_BUILD
185	bool "Build U-Boot using the Thumb instruction set"
186	depends on !ARM64
187	help
188	   Use this flag to build U-Boot using the Thumb instruction set for
189	   ARM architectures. Thumb instruction set provides better code
190	   density. For ARM architectures that support Thumb2 this flag will
191	   result in Thumb2 code generated by GCC.
192
193config SPL_SYS_THUMB_BUILD
194	bool "Build SPL using the Thumb instruction set"
195	default y if SYS_THUMB_BUILD
196	depends on !ARM64
197	help
198	   Use this flag to build SPL using the Thumb instruction set for
199	   ARM architectures. Thumb instruction set provides better code
200	   density. For ARM architectures that support Thumb2 this flag will
201	   result in Thumb2 code generated by GCC.
202
203config SYS_L2CACHE_OFF
204	bool "L2cache off"
205	help
206	  If SoC does not support L2CACHE or one do not want to enable
207	  L2CACHE, choose this option.
208
209config ENABLE_ARM_SOC_BOOT0_HOOK
210	bool "prepare BOOT0 header"
211	help
212	  If the SoC's BOOT0 requires a header area filled with (magic)
213	  values, then choose this option, and create a define called
214	  ARM_SOC_BOOT0_HOOK which contains the required assembler
215	  preprocessor code.
216
217config ARM_CORTEX_CPU_IS_UP
218	bool
219	default n
220
221config USE_ARCH_MEMCPY
222	bool "Use an assembly optimized implementation of memcpy"
223	default y
224	depends on !ARM64
225	help
226	  Enable the generation of an optimized version of memcpy.
227	  Such implementation may be faster under some conditions
228	  but may increase the binary size.
229
230config SPL_USE_ARCH_MEMCPY
231	bool "Use an assembly optimized implementation of memcpy"
232	default y if USE_ARCH_MEMCPY
233	depends on !ARM64
234	help
235	  Enable the generation of an optimized version of memcpy.
236	  Such implementation may be faster under some conditions
237	  but may increase the binary size.
238
239config USE_ARCH_MEMSET
240	bool "Use an assembly optimized implementation of memset"
241	default y
242	depends on !ARM64
243	help
244	  Enable the generation of an optimized version of memset.
245	  Such implementation may be faster under some conditions
246	  but may increase the binary size.
247
248config SPL_USE_ARCH_MEMSET
249	bool "Use an assembly optimized implementation of memset"
250	default y if USE_ARCH_MEMSET
251	depends on !ARM64
252	help
253	  Enable the generation of an optimized version of memset.
254	  Such implementation may be faster under some conditions
255	  but may increase the binary size.
256
257config ARCH_OMAP2
258	bool
259	select CPU_V7
260	select SUPPORT_SPL
261
262config ARM64_SUPPORT_AARCH32
263	bool "ARM64 system support AArch32 execution state"
264	default y if ARM64 && !TARGET_THUNDERX_88XX
265	help
266	  This ARM64 system supports AArch32 execution state.
267
268choice
269	prompt "Target select"
270	default TARGET_HIKEY
271
272config ARCH_AT91
273	bool "Atmel AT91"
274
275config TARGET_EDB93XX
276	bool "Support edb93xx"
277	select CPU_ARM920T
278
279config TARGET_ASPENITE
280	bool "Support aspenite"
281	select CPU_ARM926EJS
282
283config TARGET_GPLUGD
284	bool "Support gplugd"
285	select CPU_ARM926EJS
286
287config ARCH_DAVINCI
288	bool "TI DaVinci"
289	select CPU_ARM926EJS
290	help
291	  Support for TI's DaVinci platform.
292
293config KIRKWOOD
294	bool "Marvell Kirkwood"
295	select CPU_ARM926EJS
296	select BOARD_EARLY_INIT_F
297	select ARCH_MISC_INIT
298
299config ARCH_MVEBU
300	bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
301	select OF_CONTROL
302	select OF_SEPARATE
303	select DM
304	select DM_ETH
305	select DM_SERIAL
306	select DM_SPI
307	select DM_SPI_FLASH
308
309config TARGET_DEVKIT3250
310	bool "Support devkit3250"
311	select CPU_ARM926EJS
312	select SUPPORT_SPL
313
314config TARGET_WORK_92105
315	bool "Support work_92105"
316	select CPU_ARM926EJS
317	select SUPPORT_SPL
318
319config TARGET_MX25PDK
320	bool "Support mx25pdk"
321	select BOARD_LATE_INIT
322	select CPU_ARM926EJS
323	select BOARD_EARLY_INIT_F
324
325config TARGET_ZMX25
326	bool "Support zmx25"
327	select BOARD_LATE_INIT
328	select CPU_ARM926EJS
329
330config TARGET_APF27
331	bool "Support apf27"
332	select CPU_ARM926EJS
333	select SUPPORT_SPL
334
335config TARGET_APX4DEVKIT
336	bool "Support apx4devkit"
337	select CPU_ARM926EJS
338	select SUPPORT_SPL
339
340config TARGET_XFI3
341	bool "Support xfi3"
342	select CPU_ARM926EJS
343	select SUPPORT_SPL
344
345config TARGET_M28EVK
346	bool "Support m28evk"
347	select CPU_ARM926EJS
348	select SUPPORT_SPL
349
350config TARGET_MX23EVK
351	bool "Support mx23evk"
352	select CPU_ARM926EJS
353	select SUPPORT_SPL
354	select BOARD_EARLY_INIT_F
355
356config TARGET_MX28EVK
357	bool "Support mx28evk"
358	select CPU_ARM926EJS
359	select SUPPORT_SPL
360	select BOARD_EARLY_INIT_F
361
362config TARGET_MX23_OLINUXINO
363	bool "Support mx23_olinuxino"
364	select CPU_ARM926EJS
365	select SUPPORT_SPL
366	select BOARD_EARLY_INIT_F
367
368config TARGET_BG0900
369	bool "Support bg0900"
370	select CPU_ARM926EJS
371	select SUPPORT_SPL
372
373config TARGET_SANSA_FUZE_PLUS
374	bool "Support sansa_fuze_plus"
375	select CPU_ARM926EJS
376	select SUPPORT_SPL
377
378config TARGET_SC_SPS_1
379	bool "Support sc_sps_1"
380	select CPU_ARM926EJS
381	select SUPPORT_SPL
382
383config ORION5X
384	bool "Marvell Orion"
385	select CPU_ARM926EJS
386
387config TARGET_SPEAR300
388	bool "Support spear300"
389	select CPU_ARM926EJS
390	select BOARD_EARLY_INIT_F
391
392config TARGET_SPEAR310
393	bool "Support spear310"
394	select CPU_ARM926EJS
395	select BOARD_EARLY_INIT_F
396
397config TARGET_SPEAR320
398	bool "Support spear320"
399	select CPU_ARM926EJS
400	select BOARD_EARLY_INIT_F
401
402config TARGET_SPEAR600
403	bool "Support spear600"
404	select CPU_ARM926EJS
405	select BOARD_EARLY_INIT_F
406
407config TARGET_STV0991
408	bool "Support stv0991"
409	select CPU_V7
410	select DM
411	select DM_SERIAL
412	select DM_SPI
413	select DM_SPI_FLASH
414	select SPI_FLASH
415
416config TARGET_X600
417	bool "Support x600"
418	select BOARD_LATE_INIT
419	select CPU_ARM926EJS
420	select SUPPORT_SPL
421
422config TARGET_IMX31_PHYCORE
423	bool "Support imx31_phycore_eet"
424	select CPU_ARM1136
425	select BOARD_EARLY_INIT_F
426
427config TARGET_IMX31_PHYCORE_EET
428	bool "Support imx31_phycore_eet"
429	select BOARD_LATE_INIT
430	select CPU_ARM1136
431	select BOARD_EARLY_INIT_F
432
433config TARGET_MX31ADS
434	bool "Support mx31ads"
435	select CPU_ARM1136
436	select BOARD_EARLY_INIT_F
437
438config TARGET_MX31PDK
439	bool "Support mx31pdk"
440	select BOARD_LATE_INIT
441	select CPU_ARM1136
442	select SUPPORT_SPL
443	select BOARD_EARLY_INIT_F
444
445config TARGET_WOODBURN
446	bool "Support woodburn"
447	select CPU_ARM1136
448
449config TARGET_WOODBURN_SD
450	bool "Support woodburn_sd"
451	select CPU_ARM1136
452	select SUPPORT_SPL
453
454config TARGET_FLEA3
455	bool "Support flea3"
456	select CPU_ARM1136
457
458config TARGET_MX35PDK
459	bool "Support mx35pdk"
460	select BOARD_LATE_INIT
461	select CPU_ARM1136
462
463config ARCH_BCM283X
464	bool "Broadcom BCM283X family"
465	select DM
466	select DM_SERIAL
467	select DM_GPIO
468	select OF_CONTROL
469
470config TARGET_VEXPRESS_CA15_TC2
471	bool "Support vexpress_ca15_tc2"
472	select CPU_V7
473	select CPU_V7_HAS_NONSEC
474	select CPU_V7_HAS_VIRT
475
476config TARGET_VEXPRESS_CA5X2
477	bool "Support vexpress_ca5x2"
478	select CPU_V7
479
480config TARGET_VEXPRESS_CA9X4
481	bool "Support vexpress_ca9x4"
482	select CPU_V7
483
484config TARGET_BRXRE1
485	bool "Support BRXRE1"
486	select ARCH_OMAP2
487	select BOARD_LATE_INIT
488
489config TARGET_BRPPT1
490	bool "Support BRPPT1"
491	select ARCH_OMAP2
492	select BOARD_LATE_INIT
493
494config TARGET_DRACO
495	bool "Support draco"
496	select ARCH_OMAP2
497	select BOARD_LATE_INIT
498	select DM
499	select DM_SERIAL
500	select DM_GPIO
501
502config TARGET_THUBAN
503	bool "Support thuban"
504	select ARCH_OMAP2
505	select BOARD_LATE_INIT
506	select DM
507	select DM_SERIAL
508	select DM_GPIO
509
510config TARGET_RASTABAN
511	bool "Support rastaban"
512	select ARCH_OMAP2
513	select BOARD_LATE_INIT
514	select DM
515	select DM_SERIAL
516	select DM_GPIO
517
518config TARGET_ETAMIN
519	bool "Support etamin"
520	select ARCH_OMAP2
521	select BOARD_LATE_INIT
522	select DM
523	select DM_SERIAL
524	select DM_GPIO
525
526config TARGET_PXM2
527	bool "Support pxm2"
528	select ARCH_OMAP2
529	select BOARD_LATE_INIT
530	select DM
531	select DM_SERIAL
532	select DM_GPIO
533
534config TARGET_RUT
535	bool "Support rut"
536	select ARCH_OMAP2
537	select BOARD_LATE_INIT
538	select DM
539	select DM_SERIAL
540	select DM_GPIO
541
542config TARGET_TI814X_EVM
543	bool "Support ti814x_evm"
544	select ARCH_OMAP2
545
546config TARGET_TI816X_EVM
547	bool "Support ti816x_evm"
548	select ARCH_OMAP2
549
550config TARGET_BCM23550_W1D
551	bool "Support bcm23550_w1d"
552	select CPU_V7
553
554config TARGET_BCM28155_AP
555	bool "Support bcm28155_ap"
556	select CPU_V7
557
558config TARGET_BCMCYGNUS
559	bool "Support bcmcygnus"
560	select CPU_V7
561
562config TARGET_BCMNSP
563	bool "Support bcmnsp"
564	select CPU_V7
565
566config TARGET_BCMNS2
567	bool "Support Broadcom Northstar2"
568	select ARM64
569	help
570	  Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
571	  ARMv8 Cortex-A57 processors targeting a broad range of networking
572	  applications
573
574config ARCH_EXYNOS
575	bool "Samsung EXYNOS"
576	select DM
577	select DM_I2C
578	select DM_SPI_FLASH
579	select DM_SERIAL
580	select DM_SPI
581	select DM_GPIO
582	select DM_KEYBOARD
583
584config ARCH_S5PC1XX
585	bool "Samsung S5PC1XX"
586	select CPU_V7
587	select DM
588	select DM_SERIAL
589	select DM_GPIO
590	select DM_I2C
591
592config ARCH_HIGHBANK
593	bool "Calxeda Highbank"
594	select CPU_V7
595
596config ARCH_INTEGRATOR
597	bool "ARM Ltd. Integrator family"
598	select DM
599	select DM_SERIAL
600
601config ARCH_KEYSTONE
602	bool "TI Keystone"
603	select CPU_V7
604	select SUPPORT_SPL
605	select SYS_THUMB_BUILD
606	select CMD_POWEROFF
607
608config ARCH_MESON
609	bool "Amlogic Meson"
610	help
611	  Support for the Meson SoC family developed by Amlogic Inc.,
612	  targeted at media players and tablet computers. We currently
613	  support the S905 (GXBaby) 64-bit SoC.
614
615config ARCH_MX7ULP
616        bool "NXP MX7ULP"
617        select CPU_V7
618	select ROM_UNIFIED_SECTIONS
619
620config ARCH_MX7
621	bool "Freescale MX7"
622	select CPU_V7
623	select SYS_FSL_HAS_SEC if SECURE_BOOT
624	select SYS_FSL_SEC_COMPAT_4
625	select SYS_FSL_SEC_LE
626	select BOARD_EARLY_INIT_F
627	select ARCH_MISC_INIT
628
629config ARCH_MX6
630	bool "Freescale MX6"
631	select CPU_V7
632	select SYS_FSL_HAS_SEC if SECURE_BOOT
633	select SYS_FSL_SEC_COMPAT_4
634	select SYS_FSL_SEC_LE
635	select SYS_THUMB_BUILD if SPL
636
637config ARCH_MX5
638	bool "Freescale MX5"
639	select CPU_V7
640	select BOARD_EARLY_INIT_F
641
642config TARGET_M53EVK
643	bool "Support m53evk"
644	select CPU_V7
645	select SUPPORT_SPL
646	select BOARD_EARLY_INIT_F
647
648config TARGET_MX51EVK
649	bool "Support mx51evk"
650	select BOARD_LATE_INIT
651	select CPU_V7
652	select BOARD_EARLY_INIT_F
653
654config TARGET_MX53ARD
655	bool "Support mx53ard"
656	select CPU_V7
657	select BOARD_EARLY_INIT_F
658
659config TARGET_MX53EVK
660	bool "Support mx53evk"
661	select BOARD_LATE_INIT
662	select CPU_V7
663	select BOARD_EARLY_INIT_F
664
665config TARGET_MX53LOCO
666	bool "Support mx53loco"
667	select BOARD_LATE_INIT
668	select CPU_V7
669	select BOARD_EARLY_INIT_F
670
671config TARGET_MX53SMD
672	bool "Support mx53smd"
673	select CPU_V7
674	select BOARD_EARLY_INIT_F
675
676config OMAP34XX
677	bool "OMAP34XX SoC"
678	select ARCH_OMAP2
679	select ARM_ERRATA_430973
680	select ARM_ERRATA_454179
681	select ARM_ERRATA_621766
682	select ARM_ERRATA_725233
683	select USE_TINY_PRINTF
684	imply SPL_EXT_SUPPORT
685	imply SPL_FAT_SUPPORT
686	imply SPL_GPIO_SUPPORT
687	imply SPL_I2C_SUPPORT
688	imply SPL_LIBCOMMON_SUPPORT
689	imply SPL_LIBDISK_SUPPORT
690	imply SPL_LIBGENERIC_SUPPORT
691	imply SPL_MMC_SUPPORT
692	imply SPL_NAND_SUPPORT
693	imply SPL_POWER_SUPPORT
694	imply SPL_SERIAL_SUPPORT
695	imply SYS_THUMB_BUILD
696
697config OMAP44XX
698	bool "OMAP44XX SoC"
699	select ARCH_OMAP2
700	select USE_TINY_PRINTF
701	imply SPL_DISPLAY_PRINT
702	imply SPL_EXT_SUPPORT
703	imply SPL_FAT_SUPPORT
704	imply SPL_GPIO_SUPPORT
705	imply SPL_I2C_SUPPORT
706	imply SPL_LIBCOMMON_SUPPORT
707	imply SPL_LIBDISK_SUPPORT
708	imply SPL_LIBGENERIC_SUPPORT
709	imply SPL_MMC_SUPPORT
710	imply SPL_NAND_SUPPORT
711	imply SPL_POWER_SUPPORT
712	imply SPL_SERIAL_SUPPORT
713	imply SYS_THUMB_BUILD
714
715config OMAP54XX
716	bool "OMAP54XX SoC"
717	select ARCH_OMAP2
718	select ARM_ERRATA_798870
719	select SYS_THUMB_BUILD
720	imply SPL_DISPLAY_PRINT
721	imply SPL_ENV_SUPPORT
722	imply SPL_EXT_SUPPORT
723	imply SPL_FAT_SUPPORT
724	imply SPL_GPIO_SUPPORT
725	imply SPL_I2C_SUPPORT
726	imply SPL_LIBCOMMON_SUPPORT
727	imply SPL_LIBDISK_SUPPORT
728	imply SPL_LIBGENERIC_SUPPORT
729	imply SPL_MMC_SUPPORT
730	imply SPL_NAND_SUPPORT
731	imply SPL_POWER_SUPPORT
732	imply SPL_SERIAL_SUPPORT
733
734config AM43XX
735	bool "AM43XX SoC"
736	select ARCH_OMAP2
737	imply SPL_DM
738	imply SPL_DM_SEQ_ALIAS
739	imply SPL_OF_CONTROL
740	imply SPL_OF_TRANSLATE
741	imply SPL_SEPARATE_BSS
742	imply SPL_SYS_MALLOC_SIMPLE
743	imply SYS_THUMB_BUILD
744	help
745	  Support for AM43xx SOC from Texas Instruments.
746	  The AM43xx high performance SOC features a Cortex-A9
747	  ARM core, a quad core PRU-ICSS for industrial Ethernet
748	  protocols, dual camera support, optional 3D graphics
749	  and an optional customer programmable secure boot.
750
751config AM33XX
752	bool "AM33XX SoC"
753	select ARCH_OMAP2
754	imply SYS_THUMB_BUILD
755	help
756	  Support for AM335x SOC from Texas Instruments.
757	  The AM335x high performance SOC features a Cortex-A8
758	  ARM core, a dual core PRU-ICSS for industrial Ethernet
759	  protocols, optional 3D graphics and an optional customer
760	  programmable secure boot.
761
762config ARCH_RMOBILE
763	bool "Renesas ARM SoCs"
764	select DM
765	select DM_SERIAL
766	select BOARD_EARLY_INIT_F
767	imply SYS_THUMB_BUILD
768
769config TARGET_S32V234EVB
770	bool "Support s32v234evb"
771	select ARM64
772	select SYS_FSL_ERRATUM_ESDHC111
773
774config ARCH_SNAPDRAGON
775	bool "Qualcomm Snapdragon SoCs"
776	select ARM64
777	select DM
778	select DM_GPIO
779	select DM_SERIAL
780	select SPMI
781	select OF_CONTROL
782	select OF_SEPARATE
783
784config ARCH_SOCFPGA
785	bool "Altera SOCFPGA family"
786	select CPU_V7
787	select SUPPORT_SPL
788	select OF_CONTROL
789	select SPL_OF_CONTROL
790	select DM
791	select DM_SPI_FLASH
792	select DM_SPI
793	select ENABLE_ARM_SOC_BOOT0_HOOK
794	select ARCH_EARLY_INIT_R
795	select ARCH_MISC_INIT
796	select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
797	select SYS_THUMB_BUILD
798
799config TARGET_CM_T43
800	bool "Support cm_t43"
801	select ARCH_OMAP2
802
803config ARCH_SUNXI
804	bool "Support sunxi (Allwinner) SoCs"
805	select CMD_GPIO
806	select CMD_MMC if MMC
807	select CMD_USB if DISTRO_DEFAULTS
808	select DM
809	select DM_ETH
810	select DM_GPIO
811	select DM_KEYBOARD
812	select DM_SERIAL
813	select DM_USB if DISTRO_DEFAULTS
814	select OF_BOARD_SETUP
815	select OF_CONTROL
816	select OF_SEPARATE
817	select SPL_STACK_R if SUPPORT_SPL
818	select SPL_SYS_MALLOC_SIMPLE if SUPPORT_SPL
819	select SYS_NS16550
820	select SPL_SYS_THUMB_BUILD if !ARM64
821	select USB if DISTRO_DEFAULTS
822	select USB_STORAGE if DISTRO_DEFAULTS
823	select USB_KEYBOARD if DISTRO_DEFAULTS
824	select USE_TINY_PRINTF
825
826config TARGET_TS4600
827	bool "Support TS4600"
828	select CPU_ARM926EJS
829	select SUPPORT_SPL
830
831config TARGET_TS4800
832	bool "Support TS4800"
833	select CPU_V7
834	select SYS_FSL_ERRATUM_ESDHC_A001
835
836config ARCH_VF610
837	bool "Freescale Vybrid"
838	select CPU_V7
839	select SYS_FSL_ERRATUM_ESDHC111
840
841config ARCH_ZYNQ
842	bool "Xilinx Zynq Platform"
843	select BOARD_LATE_INIT
844	select CPU_V7
845	select SUPPORT_SPL
846	select OF_CONTROL
847	select SPL_OF_CONTROL if SPL
848	select DM
849	select DM_ETH
850	select DM_GPIO
851	select SPL_DM if SPL
852	select DM_MMC
853	select DM_MMC_OPS
854	select DM_SPI
855	select DM_SERIAL
856	select DM_SPI_FLASH
857	select SPL_SEPARATE_BSS if SPL
858	select DM_USB if USB
859	select BLK
860	select CLK
861	select SPL_CLK
862	select CLK_ZYNQ
863
864config ARCH_ZYNQMP
865	bool "Support Xilinx ZynqMP Platform"
866	select ARM64
867	select BOARD_LATE_INIT
868	select DM
869	select OF_CONTROL
870	select DM_SERIAL
871	select SUPPORT_SPL
872	select CLK
873	select SPL_CLK
874	select DM_USB if USB
875
876config TEGRA
877	bool "NVIDIA Tegra"
878
879config TARGET_VEXPRESS64_AEMV8A
880	bool "Support vexpress_aemv8a"
881	select ARM64
882
883config TARGET_VEXPRESS64_BASE_FVP
884	bool "Support Versatile Express ARMv8a FVP BASE model"
885	select ARM64
886	select SEMIHOSTING
887
888config TARGET_VEXPRESS64_BASE_FVP_DRAM
889	bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
890	select ARM64
891	help
892	  This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
893	  the default config to allow the user to load the images directly into
894	  DRAM using model parameters rather than by using semi-hosting to load
895	  the files from the host filesystem.
896
897config TARGET_VEXPRESS64_JUNO
898	bool "Support Versatile Express Juno Development Platform"
899	select ARM64
900
901config TARGET_LS2080A_EMU
902	bool "Support ls2080a_emu"
903	select ARCH_LS2080A
904	select ARM64
905	select ARMV8_MULTIENTRY
906	select ARCH_MISC_INIT
907	help
908	  Support for Freescale LS2080A_EMU platform
909	  The LS2080A Development System (EMULATOR) is a pre silicon
910	  development platform that supports the QorIQ LS2080A
911	  Layerscape Architecture processor.
912
913config TARGET_LS2080A_SIMU
914	bool "Support ls2080a_simu"
915	select ARCH_LS2080A
916	select ARM64
917	select ARMV8_MULTIENTRY
918	select ARCH_MISC_INIT
919	help
920	  Support for Freescale LS2080A_SIMU platform
921	  The LS2080A Development System (QDS) is a pre silicon
922	  development platform that supports the QorIQ LS2080A
923	  Layerscape Architecture processor.
924
925config TARGET_LS2080AQDS
926	bool "Support ls2080aqds"
927	select ARCH_LS2080A
928	select ARM64
929	select ARMV8_MULTIENTRY
930	select BOARD_LATE_INIT
931	select SUPPORT_SPL
932	select ARCH_MISC_INIT
933	help
934	  Support for Freescale LS2080AQDS platform
935	  The LS2080A Development System (QDS) is a high-performance
936	  development platform that supports the QorIQ LS2080A
937	  Layerscape Architecture processor.
938
939config TARGET_LS2080ARDB
940	bool "Support ls2080ardb"
941	select ARCH_LS2080A
942	select ARM64
943	select ARMV8_MULTIENTRY
944	select BOARD_LATE_INIT
945	select SUPPORT_SPL
946	select ARCH_MISC_INIT
947	help
948	  Support for Freescale LS2080ARDB platform.
949	  The LS2080A Reference design board (RDB) is a high-performance
950	  development platform that supports the QorIQ LS2080A
951	  Layerscape Architecture processor.
952
953config TARGET_HIKEY
954	bool "Support HiKey 96boards Consumer Edition Platform"
955	select ARM64
956	select DM
957	select DM_GPIO
958	select DM_SERIAL
959	select OF_CONTROL
960	  help
961	  Support for HiKey 96boards platform. It features a HI6220
962	  SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
963
964config TARGET_LS1012AQDS
965	bool "Support ls1012aqds"
966	select ARCH_LS1012A
967	select ARM64
968	select BOARD_LATE_INIT
969	help
970	  Support for Freescale LS1012AQDS platform.
971	  The LS1012A Development System (QDS) is a high-performance
972	  development platform that supports the QorIQ LS1012A
973	  Layerscape Architecture processor.
974
975config TARGET_LS1012ARDB
976	bool "Support ls1012ardb"
977	select ARCH_LS1012A
978	select ARM64
979	select BOARD_LATE_INIT
980	help
981	  Support for Freescale LS1012ARDB platform.
982	  The LS1012A Reference design board (RDB) is a high-performance
983	  development platform that supports the QorIQ LS1012A
984	  Layerscape Architecture processor.
985
986config TARGET_LS1012AFRDM
987	bool "Support ls1012afrdm"
988	select ARCH_LS1012A
989	select ARM64
990	help
991	  Support for Freescale LS1012AFRDM platform.
992	  The LS1012A Freedom  board (FRDM) is a high-performance
993	  development platform that supports the QorIQ LS1012A
994	  Layerscape Architecture processor.
995
996config TARGET_LS1021AQDS
997	bool "Support ls1021aqds"
998	select BOARD_LATE_INIT
999	select CPU_V7
1000	select CPU_V7_HAS_NONSEC
1001	select CPU_V7_HAS_VIRT
1002	select SUPPORT_SPL
1003	select ARCH_LS1021A
1004	select ARCH_SUPPORT_PSCI
1005	select LS1_DEEP_SLEEP
1006	select SYS_FSL_DDR
1007	select BOARD_EARLY_INIT_F
1008
1009config TARGET_LS1021ATWR
1010	bool "Support ls1021atwr"
1011	select BOARD_LATE_INIT
1012	select CPU_V7
1013	select CPU_V7_HAS_NONSEC
1014	select CPU_V7_HAS_VIRT
1015	select SUPPORT_SPL
1016	select ARCH_LS1021A
1017	select ARCH_SUPPORT_PSCI
1018	select LS1_DEEP_SLEEP
1019	select BOARD_EARLY_INIT_F
1020
1021config TARGET_LS1021AIOT
1022	bool "Support ls1021aiot"
1023	select BOARD_LATE_INIT
1024	select CPU_V7
1025	select CPU_V7_HAS_NONSEC
1026	select CPU_V7_HAS_VIRT
1027	select SUPPORT_SPL
1028	select ARCH_LS1021A
1029	select ARCH_SUPPORT_PSCI
1030	help
1031	  Support for Freescale LS1021AIOT platform.
1032	  The LS1021A Freescale board (IOT) is a high-performance
1033	  development platform that supports the QorIQ LS1021A
1034	  Layerscape Architecture processor.
1035
1036config TARGET_LS1043AQDS
1037	bool "Support ls1043aqds"
1038	select ARCH_LS1043A
1039	select ARM64
1040	select ARMV8_MULTIENTRY
1041	select BOARD_LATE_INIT
1042	select SUPPORT_SPL
1043	select BOARD_EARLY_INIT_F
1044	help
1045	  Support for Freescale LS1043AQDS platform.
1046
1047config TARGET_LS1043ARDB
1048	bool "Support ls1043ardb"
1049	select ARCH_LS1043A
1050	select ARM64
1051	select ARMV8_MULTIENTRY
1052	select BOARD_LATE_INIT
1053	select SUPPORT_SPL
1054	select BOARD_EARLY_INIT_F
1055	help
1056	  Support for Freescale LS1043ARDB platform.
1057
1058config TARGET_LS1046AQDS
1059	bool "Support ls1046aqds"
1060	select ARCH_LS1046A
1061	select ARM64
1062	select ARMV8_MULTIENTRY
1063	select BOARD_LATE_INIT
1064	select SUPPORT_SPL
1065	select DM_SPI_FLASH if DM_SPI
1066	select BOARD_EARLY_INIT_F
1067	help
1068	  Support for Freescale LS1046AQDS platform.
1069	  The LS1046A Development System (QDS) is a high-performance
1070	  development platform that supports the QorIQ LS1046A
1071	  Layerscape Architecture processor.
1072
1073config TARGET_LS1046ARDB
1074	bool "Support ls1046ardb"
1075	select ARCH_LS1046A
1076	select ARM64
1077	select ARMV8_MULTIENTRY
1078	select BOARD_LATE_INIT
1079	select SUPPORT_SPL
1080	select DM_SPI_FLASH if DM_SPI
1081	select POWER_MC34VR500
1082	select BOARD_EARLY_INIT_F
1083	help
1084	  Support for Freescale LS1046ARDB platform.
1085	  The LS1046A Reference Design Board (RDB) is a high-performance
1086	  development platform that supports the QorIQ LS1046A
1087	  Layerscape Architecture processor.
1088
1089config TARGET_H2200
1090	bool "Support h2200"
1091	select CPU_PXA
1092
1093config TARGET_ZIPITZ2
1094	bool "Support zipitz2"
1095	select CPU_PXA
1096
1097config TARGET_COLIBRI_PXA270
1098	bool "Support colibri_pxa270"
1099	select CPU_PXA
1100
1101config ARCH_UNIPHIER
1102	bool "Socionext UniPhier SoCs"
1103	select BOARD_LATE_INIT
1104	select CLK_UNIPHIER
1105	select DM
1106	select DM_GPIO
1107	select DM_I2C
1108	select DM_MMC
1109	select DM_RESET
1110	select DM_SERIAL
1111	select DM_USB
1112	select OF_CONTROL
1113	select OF_LIBFDT
1114	select PINCTRL
1115	select SPL_DM if SPL
1116	select SPL_LIBCOMMON_SUPPORT if SPL
1117	select SPL_LIBGENERIC_SUPPORT if SPL
1118	select SPL_OF_CONTROL if SPL
1119	select SPL_PINCTRL if SPL
1120	select SUPPORT_SPL
1121	help
1122	  Support for UniPhier SoC family developed by Socionext Inc.
1123	  (formerly, System LSI Business Division of Panasonic Corporation)
1124
1125config STM32
1126	bool "Support STM32"
1127	select CPU_V7M
1128	select DM
1129	select DM_SERIAL
1130	select SYS_THUMB_BUILD
1131
1132config ARCH_STI
1133	bool "Support STMicrolectronics SoCs"
1134	select CPU_V7
1135	select DM
1136	select DM_SERIAL
1137	select BLK
1138	select DM_MMC
1139	select DM_RESET
1140	help
1141	  Support for STMicroelectronics STiH407/10 SoC family.
1142	  This SoC is used on Linaro 96Board STiH410-B2260
1143
1144config ARCH_ROCKCHIP
1145	bool "Support Rockchip SoCs"
1146	select OF_CONTROL
1147	select BLK
1148	select DM
1149	select SPL_DM if SPL
1150	select SYS_MALLOC_F
1151	select SYS_THUMB_BUILD if !ARM64
1152	select SPL_SYS_MALLOC_SIMPLE if SPL
1153	select DM_GPIO
1154	select DM_I2C
1155	select DM_MMC
1156	select DM_MMC_OPS
1157	select DM_SERIAL
1158	select DM_SPI
1159	select DM_SPI_FLASH
1160	select DM_USB if USB
1161	select DM_PWM
1162	select DM_REGULATOR
1163
1164config TARGET_THUNDERX_88XX
1165	bool "Support ThunderX 88xx"
1166	select ARM64
1167	select OF_CONTROL
1168	select SYS_CACHE_SHIFT_7
1169
1170config ARCH_ASPEED
1171	bool "Support Aspeed SoCs"
1172	select OF_CONTROL
1173	select DM
1174
1175endchoice
1176
1177source "arch/arm/mach-aspeed/Kconfig"
1178
1179source "arch/arm/mach-at91/Kconfig"
1180
1181source "arch/arm/mach-bcm283x/Kconfig"
1182
1183source "arch/arm/mach-davinci/Kconfig"
1184
1185source "arch/arm/mach-exynos/Kconfig"
1186
1187source "arch/arm/mach-highbank/Kconfig"
1188
1189source "arch/arm/mach-integrator/Kconfig"
1190
1191source "arch/arm/mach-keystone/Kconfig"
1192
1193source "arch/arm/mach-kirkwood/Kconfig"
1194
1195source "arch/arm/mach-mvebu/Kconfig"
1196
1197source "arch/arm/cpu/armv7/ls102xa/Kconfig"
1198
1199source "arch/arm/cpu/armv7/mx7ulp/Kconfig"
1200
1201source "arch/arm/cpu/armv7/mx7/Kconfig"
1202
1203source "arch/arm/cpu/armv7/mx6/Kconfig"
1204
1205source "arch/arm/cpu/armv7/mx5/Kconfig"
1206
1207source "arch/arm/mach-omap2/Kconfig"
1208
1209source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
1210
1211source "arch/arm/mach-orion5x/Kconfig"
1212
1213source "arch/arm/mach-rmobile/Kconfig"
1214
1215source "arch/arm/mach-meson/Kconfig"
1216
1217source "arch/arm/mach-rockchip/Kconfig"
1218
1219source "arch/arm/mach-s5pc1xx/Kconfig"
1220
1221source "arch/arm/mach-snapdragon/Kconfig"
1222
1223source "arch/arm/mach-socfpga/Kconfig"
1224
1225source "arch/arm/mach-sti/Kconfig"
1226
1227source "arch/arm/mach-stm32/Kconfig"
1228
1229source "arch/arm/mach-tegra/Kconfig"
1230
1231source "arch/arm/mach-uniphier/Kconfig"
1232
1233source "arch/arm/cpu/armv7/vf610/Kconfig"
1234
1235source "arch/arm/mach-zynq/Kconfig"
1236
1237source "arch/arm/cpu/armv7/Kconfig"
1238
1239source "arch/arm/cpu/armv8/zynqmp/Kconfig"
1240
1241source "arch/arm/cpu/armv8/Kconfig"
1242
1243source "arch/arm/imx-common/Kconfig"
1244
1245source "board/bosch/shc/Kconfig"
1246source "board/BuR/brxre1/Kconfig"
1247source "board/BuR/brppt1/Kconfig"
1248source "board/CarMediaLab/flea3/Kconfig"
1249source "board/Marvell/aspenite/Kconfig"
1250source "board/Marvell/gplugd/Kconfig"
1251source "board/armadeus/apf27/Kconfig"
1252source "board/armltd/vexpress/Kconfig"
1253source "board/armltd/vexpress64/Kconfig"
1254source "board/bluegiga/apx4devkit/Kconfig"
1255source "board/broadcom/bcm23550_w1d/Kconfig"
1256source "board/broadcom/bcm28155_ap/Kconfig"
1257source "board/broadcom/bcmcygnus/Kconfig"
1258source "board/broadcom/bcmnsp/Kconfig"
1259source "board/broadcom/bcmns2/Kconfig"
1260source "board/cavium/thunderx/Kconfig"
1261source "board/cirrus/edb93xx/Kconfig"
1262source "board/compulab/cm_t335/Kconfig"
1263source "board/compulab/cm_t43/Kconfig"
1264source "board/creative/xfi3/Kconfig"
1265source "board/denx/m28evk/Kconfig"
1266source "board/denx/m53evk/Kconfig"
1267source "board/freescale/ls2080a/Kconfig"
1268source "board/freescale/ls2080aqds/Kconfig"
1269source "board/freescale/ls2080ardb/Kconfig"
1270source "board/freescale/ls1021aqds/Kconfig"
1271source "board/freescale/ls1043aqds/Kconfig"
1272source "board/freescale/ls1021atwr/Kconfig"
1273source "board/freescale/ls1021aiot/Kconfig"
1274source "board/freescale/ls1046aqds/Kconfig"
1275source "board/freescale/ls1043ardb/Kconfig"
1276source "board/freescale/ls1046ardb/Kconfig"
1277source "board/freescale/ls1012aqds/Kconfig"
1278source "board/freescale/ls1012ardb/Kconfig"
1279source "board/freescale/ls1012afrdm/Kconfig"
1280source "board/freescale/mx23evk/Kconfig"
1281source "board/freescale/mx25pdk/Kconfig"
1282source "board/freescale/mx28evk/Kconfig"
1283source "board/freescale/mx31ads/Kconfig"
1284source "board/freescale/mx31pdk/Kconfig"
1285source "board/freescale/mx35pdk/Kconfig"
1286source "board/freescale/mx51evk/Kconfig"
1287source "board/freescale/mx53ard/Kconfig"
1288source "board/freescale/mx53evk/Kconfig"
1289source "board/freescale/mx53loco/Kconfig"
1290source "board/freescale/mx53smd/Kconfig"
1291source "board/freescale/s32v234evb/Kconfig"
1292source "board/gdsys/a38x/Kconfig"
1293source "board/grinn/chiliboard/Kconfig"
1294source "board/gumstix/pepper/Kconfig"
1295source "board/h2200/Kconfig"
1296source "board/hisilicon/hikey/Kconfig"
1297source "board/imx31_phycore/Kconfig"
1298source "board/isee/igep0033/Kconfig"
1299source "board/olimex/mx23_olinuxino/Kconfig"
1300source "board/phytec/pcm051/Kconfig"
1301source "board/ppcag/bg0900/Kconfig"
1302source "board/sandisk/sansa_fuze_plus/Kconfig"
1303source "board/schulercontrol/sc_sps_1/Kconfig"
1304source "board/siemens/draco/Kconfig"
1305source "board/siemens/pxm2/Kconfig"
1306source "board/siemens/rut/Kconfig"
1307source "board/silica/pengwyn/Kconfig"
1308source "board/spear/spear300/Kconfig"
1309source "board/spear/spear310/Kconfig"
1310source "board/spear/spear320/Kconfig"
1311source "board/spear/spear600/Kconfig"
1312source "board/spear/x600/Kconfig"
1313source "board/st/stv0991/Kconfig"
1314source "board/sunxi/Kconfig"
1315source "board/syteco/zmx25/Kconfig"
1316source "board/tcl/sl50/Kconfig"
1317source "board/ti/am335x/Kconfig"
1318source "board/ti/am43xx/Kconfig"
1319source "board/birdland/bav335x/Kconfig"
1320source "board/ti/ti814x/Kconfig"
1321source "board/ti/ti816x/Kconfig"
1322source "board/timll/devkit3250/Kconfig"
1323source "board/toradex/colibri_pxa270/Kconfig"
1324source "board/technologic/ts4600/Kconfig"
1325source "board/technologic/ts4800/Kconfig"
1326source "board/vscom/baltos/Kconfig"
1327source "board/woodburn/Kconfig"
1328source "board/work-microwave/work_92105/Kconfig"
1329source "board/zipitz2/Kconfig"
1330
1331source "arch/arm/Kconfig.debug"
1332
1333endmenu
1334