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