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