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