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