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