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