xref: /rk3399_rockchip-uboot/arch/arm/Kconfig (revision 9946631a0f2d8e8493ea17e9fe1f0e190aa3372d)
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	imply PRE_CONSOLE_BUFFER
826	imply SPL_GPIO_SUPPORT
827	imply SPL_LIBCOMMON_SUPPORT
828	imply SPL_LIBDISK_SUPPORT
829	imply SPL_LIBGENERIC_SUPPORT
830	imply SPL_MMC_SUPPORT if GENERIC_MMC
831	imply SPL_POWER_SUPPORT
832	imply SPL_SERIAL_SUPPORT
833
834config TARGET_TS4600
835	bool "Support TS4600"
836	select CPU_ARM926EJS
837	select SUPPORT_SPL
838
839config TARGET_TS4800
840	bool "Support TS4800"
841	select CPU_V7
842	select SYS_FSL_ERRATUM_ESDHC_A001
843
844config ARCH_VF610
845	bool "Freescale Vybrid"
846	select CPU_V7
847	select SYS_FSL_ERRATUM_ESDHC111
848
849config ARCH_ZYNQ
850	bool "Xilinx Zynq Platform"
851	select BOARD_LATE_INIT
852	select CPU_V7
853	select SUPPORT_SPL
854	select OF_CONTROL
855	select SPL_OF_CONTROL if SPL
856	select DM
857	select DM_ETH
858	select DM_GPIO
859	select SPL_DM if SPL
860	select DM_MMC
861	select DM_MMC_OPS
862	select DM_SPI
863	select DM_SERIAL
864	select DM_SPI_FLASH
865	select SPL_SEPARATE_BSS if SPL
866	select DM_USB if USB
867	select BLK
868	select CLK
869	select SPL_CLK
870	select CLK_ZYNQ
871
872config ARCH_ZYNQMP
873	bool "Support Xilinx ZynqMP Platform"
874	select ARM64
875	select BOARD_LATE_INIT
876	select DM
877	select OF_CONTROL
878	select DM_SERIAL
879	select SUPPORT_SPL
880	select CLK
881	select SPL_CLK
882	select DM_USB if USB
883
884config TEGRA
885	bool "NVIDIA Tegra"
886
887config TARGET_VEXPRESS64_AEMV8A
888	bool "Support vexpress_aemv8a"
889	select ARM64
890
891config TARGET_VEXPRESS64_BASE_FVP
892	bool "Support Versatile Express ARMv8a FVP BASE model"
893	select ARM64
894	select SEMIHOSTING
895
896config TARGET_VEXPRESS64_BASE_FVP_DRAM
897	bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
898	select ARM64
899	help
900	  This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
901	  the default config to allow the user to load the images directly into
902	  DRAM using model parameters rather than by using semi-hosting to load
903	  the files from the host filesystem.
904
905config TARGET_VEXPRESS64_JUNO
906	bool "Support Versatile Express Juno Development Platform"
907	select ARM64
908
909config TARGET_LS2080A_EMU
910	bool "Support ls2080a_emu"
911	select ARCH_LS2080A
912	select ARM64
913	select ARMV8_MULTIENTRY
914	select ARCH_MISC_INIT
915	help
916	  Support for Freescale LS2080A_EMU platform
917	  The LS2080A Development System (EMULATOR) is a pre silicon
918	  development platform that supports the QorIQ LS2080A
919	  Layerscape Architecture processor.
920
921config TARGET_LS2080A_SIMU
922	bool "Support ls2080a_simu"
923	select ARCH_LS2080A
924	select ARM64
925	select ARMV8_MULTIENTRY
926	select ARCH_MISC_INIT
927	help
928	  Support for Freescale LS2080A_SIMU platform
929	  The LS2080A Development System (QDS) is a pre silicon
930	  development platform that supports the QorIQ LS2080A
931	  Layerscape Architecture processor.
932
933config TARGET_LS2080AQDS
934	bool "Support ls2080aqds"
935	select ARCH_LS2080A
936	select ARM64
937	select ARMV8_MULTIENTRY
938	select BOARD_LATE_INIT
939	select SUPPORT_SPL
940	select ARCH_MISC_INIT
941	help
942	  Support for Freescale LS2080AQDS platform
943	  The LS2080A Development System (QDS) is a high-performance
944	  development platform that supports the QorIQ LS2080A
945	  Layerscape Architecture processor.
946
947config TARGET_LS2080ARDB
948	bool "Support ls2080ardb"
949	select ARCH_LS2080A
950	select ARM64
951	select ARMV8_MULTIENTRY
952	select BOARD_LATE_INIT
953	select SUPPORT_SPL
954	select ARCH_MISC_INIT
955	help
956	  Support for Freescale LS2080ARDB platform.
957	  The LS2080A Reference design board (RDB) is a high-performance
958	  development platform that supports the QorIQ LS2080A
959	  Layerscape Architecture processor.
960
961config TARGET_HIKEY
962	bool "Support HiKey 96boards Consumer Edition Platform"
963	select ARM64
964	select DM
965	select DM_GPIO
966	select DM_SERIAL
967	select OF_CONTROL
968	  help
969	  Support for HiKey 96boards platform. It features a HI6220
970	  SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
971
972config TARGET_LS1012AQDS
973	bool "Support ls1012aqds"
974	select ARCH_LS1012A
975	select ARM64
976	select BOARD_LATE_INIT
977	help
978	  Support for Freescale LS1012AQDS platform.
979	  The LS1012A Development System (QDS) is a high-performance
980	  development platform that supports the QorIQ LS1012A
981	  Layerscape Architecture processor.
982
983config TARGET_LS1012ARDB
984	bool "Support ls1012ardb"
985	select ARCH_LS1012A
986	select ARM64
987	select BOARD_LATE_INIT
988	help
989	  Support for Freescale LS1012ARDB platform.
990	  The LS1012A Reference design board (RDB) is a high-performance
991	  development platform that supports the QorIQ LS1012A
992	  Layerscape Architecture processor.
993
994config TARGET_LS1012AFRDM
995	bool "Support ls1012afrdm"
996	select ARCH_LS1012A
997	select ARM64
998	help
999	  Support for Freescale LS1012AFRDM platform.
1000	  The LS1012A Freedom  board (FRDM) is a high-performance
1001	  development platform that supports the QorIQ LS1012A
1002	  Layerscape Architecture processor.
1003
1004config TARGET_LS1021AQDS
1005	bool "Support ls1021aqds"
1006	select BOARD_LATE_INIT
1007	select CPU_V7
1008	select CPU_V7_HAS_NONSEC
1009	select CPU_V7_HAS_VIRT
1010	select SUPPORT_SPL
1011	select ARCH_LS1021A
1012	select ARCH_SUPPORT_PSCI
1013	select LS1_DEEP_SLEEP
1014	select SYS_FSL_DDR
1015	select BOARD_EARLY_INIT_F
1016
1017config TARGET_LS1021ATWR
1018	bool "Support ls1021atwr"
1019	select BOARD_LATE_INIT
1020	select CPU_V7
1021	select CPU_V7_HAS_NONSEC
1022	select CPU_V7_HAS_VIRT
1023	select SUPPORT_SPL
1024	select ARCH_LS1021A
1025	select ARCH_SUPPORT_PSCI
1026	select LS1_DEEP_SLEEP
1027	select BOARD_EARLY_INIT_F
1028
1029config TARGET_LS1021AIOT
1030	bool "Support ls1021aiot"
1031	select BOARD_LATE_INIT
1032	select CPU_V7
1033	select CPU_V7_HAS_NONSEC
1034	select CPU_V7_HAS_VIRT
1035	select SUPPORT_SPL
1036	select ARCH_LS1021A
1037	select ARCH_SUPPORT_PSCI
1038	help
1039	  Support for Freescale LS1021AIOT platform.
1040	  The LS1021A Freescale board (IOT) is a high-performance
1041	  development platform that supports the QorIQ LS1021A
1042	  Layerscape Architecture processor.
1043
1044config TARGET_LS1043AQDS
1045	bool "Support ls1043aqds"
1046	select ARCH_LS1043A
1047	select ARM64
1048	select ARMV8_MULTIENTRY
1049	select BOARD_LATE_INIT
1050	select SUPPORT_SPL
1051	select BOARD_EARLY_INIT_F
1052	help
1053	  Support for Freescale LS1043AQDS platform.
1054
1055config TARGET_LS1043ARDB
1056	bool "Support ls1043ardb"
1057	select ARCH_LS1043A
1058	select ARM64
1059	select ARMV8_MULTIENTRY
1060	select BOARD_LATE_INIT
1061	select SUPPORT_SPL
1062	select BOARD_EARLY_INIT_F
1063	help
1064	  Support for Freescale LS1043ARDB platform.
1065
1066config TARGET_LS1046AQDS
1067	bool "Support ls1046aqds"
1068	select ARCH_LS1046A
1069	select ARM64
1070	select ARMV8_MULTIENTRY
1071	select BOARD_LATE_INIT
1072	select SUPPORT_SPL
1073	select DM_SPI_FLASH if DM_SPI
1074	select BOARD_EARLY_INIT_F
1075	help
1076	  Support for Freescale LS1046AQDS platform.
1077	  The LS1046A Development System (QDS) is a high-performance
1078	  development platform that supports the QorIQ LS1046A
1079	  Layerscape Architecture processor.
1080
1081config TARGET_LS1046ARDB
1082	bool "Support ls1046ardb"
1083	select ARCH_LS1046A
1084	select ARM64
1085	select ARMV8_MULTIENTRY
1086	select BOARD_LATE_INIT
1087	select SUPPORT_SPL
1088	select DM_SPI_FLASH if DM_SPI
1089	select POWER_MC34VR500
1090	select BOARD_EARLY_INIT_F
1091	help
1092	  Support for Freescale LS1046ARDB platform.
1093	  The LS1046A Reference Design Board (RDB) is a high-performance
1094	  development platform that supports the QorIQ LS1046A
1095	  Layerscape Architecture processor.
1096
1097config TARGET_H2200
1098	bool "Support h2200"
1099	select CPU_PXA
1100
1101config TARGET_ZIPITZ2
1102	bool "Support zipitz2"
1103	select CPU_PXA
1104
1105config TARGET_COLIBRI_PXA270
1106	bool "Support colibri_pxa270"
1107	select CPU_PXA
1108
1109config ARCH_UNIPHIER
1110	bool "Socionext UniPhier SoCs"
1111	select BOARD_LATE_INIT
1112	select CLK_UNIPHIER
1113	select DM
1114	select DM_GPIO
1115	select DM_I2C
1116	select DM_MMC
1117	select DM_RESET
1118	select DM_SERIAL
1119	select DM_USB
1120	select OF_CONTROL
1121	select OF_LIBFDT
1122	select PINCTRL
1123	select SPL_DM if SPL
1124	select SPL_LIBCOMMON_SUPPORT if SPL
1125	select SPL_LIBGENERIC_SUPPORT if SPL
1126	select SPL_OF_CONTROL if SPL
1127	select SPL_PINCTRL if SPL
1128	select SUPPORT_SPL
1129	help
1130	  Support for UniPhier SoC family developed by Socionext Inc.
1131	  (formerly, System LSI Business Division of Panasonic Corporation)
1132
1133config STM32
1134	bool "Support STM32"
1135	select CPU_V7M
1136	select DM
1137	select DM_SERIAL
1138	select SYS_THUMB_BUILD
1139
1140config ARCH_STI
1141	bool "Support STMicrolectronics SoCs"
1142	select CPU_V7
1143	select DM
1144	select DM_SERIAL
1145	select BLK
1146	select DM_MMC
1147	select DM_RESET
1148	help
1149	  Support for STMicroelectronics STiH407/10 SoC family.
1150	  This SoC is used on Linaro 96Board STiH410-B2260
1151
1152config ARCH_ROCKCHIP
1153	bool "Support Rockchip SoCs"
1154	select OF_CONTROL
1155	select BLK
1156	select DM
1157	select SPL_DM if SPL
1158	select SYS_MALLOC_F
1159	select SYS_THUMB_BUILD if !ARM64
1160	select SPL_SYS_MALLOC_SIMPLE if SPL
1161	select DM_GPIO
1162	select DM_I2C
1163	select DM_MMC
1164	select DM_MMC_OPS
1165	select DM_SERIAL
1166	select DM_SPI
1167	select DM_SPI_FLASH
1168	select DM_USB if USB
1169	select DM_PWM
1170	select DM_REGULATOR
1171
1172config TARGET_THUNDERX_88XX
1173	bool "Support ThunderX 88xx"
1174	select ARM64
1175	select OF_CONTROL
1176	select SYS_CACHE_SHIFT_7
1177
1178config ARCH_ASPEED
1179	bool "Support Aspeed SoCs"
1180	select OF_CONTROL
1181	select DM
1182
1183endchoice
1184
1185source "arch/arm/mach-aspeed/Kconfig"
1186
1187source "arch/arm/mach-at91/Kconfig"
1188
1189source "arch/arm/mach-bcm283x/Kconfig"
1190
1191source "arch/arm/mach-davinci/Kconfig"
1192
1193source "arch/arm/mach-exynos/Kconfig"
1194
1195source "arch/arm/mach-highbank/Kconfig"
1196
1197source "arch/arm/mach-integrator/Kconfig"
1198
1199source "arch/arm/mach-keystone/Kconfig"
1200
1201source "arch/arm/mach-kirkwood/Kconfig"
1202
1203source "arch/arm/mach-mvebu/Kconfig"
1204
1205source "arch/arm/cpu/armv7/ls102xa/Kconfig"
1206
1207source "arch/arm/cpu/armv7/mx7ulp/Kconfig"
1208
1209source "arch/arm/cpu/armv7/mx7/Kconfig"
1210
1211source "arch/arm/cpu/armv7/mx6/Kconfig"
1212
1213source "arch/arm/cpu/armv7/mx5/Kconfig"
1214
1215source "arch/arm/mach-omap2/Kconfig"
1216
1217source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
1218
1219source "arch/arm/mach-orion5x/Kconfig"
1220
1221source "arch/arm/mach-rmobile/Kconfig"
1222
1223source "arch/arm/mach-meson/Kconfig"
1224
1225source "arch/arm/mach-rockchip/Kconfig"
1226
1227source "arch/arm/mach-s5pc1xx/Kconfig"
1228
1229source "arch/arm/mach-snapdragon/Kconfig"
1230
1231source "arch/arm/mach-socfpga/Kconfig"
1232
1233source "arch/arm/mach-sti/Kconfig"
1234
1235source "arch/arm/mach-stm32/Kconfig"
1236
1237source "arch/arm/mach-sunxi/Kconfig"
1238
1239source "arch/arm/mach-tegra/Kconfig"
1240
1241source "arch/arm/mach-uniphier/Kconfig"
1242
1243source "arch/arm/cpu/armv7/vf610/Kconfig"
1244
1245source "arch/arm/mach-zynq/Kconfig"
1246
1247source "arch/arm/cpu/armv7/Kconfig"
1248
1249source "arch/arm/cpu/armv8/zynqmp/Kconfig"
1250
1251source "arch/arm/cpu/armv8/Kconfig"
1252
1253source "arch/arm/imx-common/Kconfig"
1254
1255source "board/aries/m28evk/Kconfig"
1256source "board/aries/m53evk/Kconfig"
1257source "board/bosch/shc/Kconfig"
1258source "board/BuR/brxre1/Kconfig"
1259source "board/BuR/brppt1/Kconfig"
1260source "board/CarMediaLab/flea3/Kconfig"
1261source "board/Marvell/aspenite/Kconfig"
1262source "board/Marvell/gplugd/Kconfig"
1263source "board/armadeus/apf27/Kconfig"
1264source "board/armltd/vexpress/Kconfig"
1265source "board/armltd/vexpress64/Kconfig"
1266source "board/bluegiga/apx4devkit/Kconfig"
1267source "board/broadcom/bcm23550_w1d/Kconfig"
1268source "board/broadcom/bcm28155_ap/Kconfig"
1269source "board/broadcom/bcmcygnus/Kconfig"
1270source "board/broadcom/bcmnsp/Kconfig"
1271source "board/broadcom/bcmns2/Kconfig"
1272source "board/cavium/thunderx/Kconfig"
1273source "board/cirrus/edb93xx/Kconfig"
1274source "board/compulab/cm_t335/Kconfig"
1275source "board/compulab/cm_t43/Kconfig"
1276source "board/creative/xfi3/Kconfig"
1277source "board/freescale/ls2080a/Kconfig"
1278source "board/freescale/ls2080aqds/Kconfig"
1279source "board/freescale/ls2080ardb/Kconfig"
1280source "board/freescale/ls1021aqds/Kconfig"
1281source "board/freescale/ls1043aqds/Kconfig"
1282source "board/freescale/ls1021atwr/Kconfig"
1283source "board/freescale/ls1021aiot/Kconfig"
1284source "board/freescale/ls1046aqds/Kconfig"
1285source "board/freescale/ls1043ardb/Kconfig"
1286source "board/freescale/ls1046ardb/Kconfig"
1287source "board/freescale/ls1012aqds/Kconfig"
1288source "board/freescale/ls1012ardb/Kconfig"
1289source "board/freescale/ls1012afrdm/Kconfig"
1290source "board/freescale/mx23evk/Kconfig"
1291source "board/freescale/mx25pdk/Kconfig"
1292source "board/freescale/mx28evk/Kconfig"
1293source "board/freescale/mx31ads/Kconfig"
1294source "board/freescale/mx31pdk/Kconfig"
1295source "board/freescale/mx35pdk/Kconfig"
1296source "board/freescale/mx51evk/Kconfig"
1297source "board/freescale/mx53ard/Kconfig"
1298source "board/freescale/mx53evk/Kconfig"
1299source "board/freescale/mx53loco/Kconfig"
1300source "board/freescale/mx53smd/Kconfig"
1301source "board/freescale/s32v234evb/Kconfig"
1302source "board/gdsys/a38x/Kconfig"
1303source "board/grinn/chiliboard/Kconfig"
1304source "board/gumstix/pepper/Kconfig"
1305source "board/h2200/Kconfig"
1306source "board/hisilicon/hikey/Kconfig"
1307source "board/imx31_phycore/Kconfig"
1308source "board/isee/igep0033/Kconfig"
1309source "board/olimex/mx23_olinuxino/Kconfig"
1310source "board/phytec/pcm051/Kconfig"
1311source "board/ppcag/bg0900/Kconfig"
1312source "board/sandisk/sansa_fuze_plus/Kconfig"
1313source "board/schulercontrol/sc_sps_1/Kconfig"
1314source "board/siemens/draco/Kconfig"
1315source "board/siemens/pxm2/Kconfig"
1316source "board/siemens/rut/Kconfig"
1317source "board/silica/pengwyn/Kconfig"
1318source "board/spear/spear300/Kconfig"
1319source "board/spear/spear310/Kconfig"
1320source "board/spear/spear320/Kconfig"
1321source "board/spear/spear600/Kconfig"
1322source "board/spear/x600/Kconfig"
1323source "board/st/stv0991/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