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