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