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