xref: /rk3399_rockchip-uboot/arch/arm/Kconfig (revision 73b4df6a98d2d973cbf1e2b18947abbdbdb82bc1)
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
818config TEGRA
819	bool "NVIDIA Tegra"
820	imply FAT_WRITE
821
822config TARGET_VEXPRESS64_AEMV8A
823	bool "Support vexpress_aemv8a"
824	select ARM64
825
826config TARGET_VEXPRESS64_BASE_FVP
827	bool "Support Versatile Express ARMv8a FVP BASE model"
828	select ARM64
829	select SEMIHOSTING
830
831config TARGET_VEXPRESS64_BASE_FVP_DRAM
832	bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
833	select ARM64
834	help
835	  This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
836	  the default config to allow the user to load the images directly into
837	  DRAM using model parameters rather than by using semi-hosting to load
838	  the files from the host filesystem.
839
840config TARGET_VEXPRESS64_JUNO
841	bool "Support Versatile Express Juno Development Platform"
842	select ARM64
843
844config TARGET_LS2080A_EMU
845	bool "Support ls2080a_emu"
846	select ARCH_LS2080A
847	select ARM64
848	select ARMV8_MULTIENTRY
849	select ARCH_MISC_INIT
850	help
851	  Support for Freescale LS2080A_EMU platform
852	  The LS2080A Development System (EMULATOR) is a pre silicon
853	  development platform that supports the QorIQ LS2080A
854	  Layerscape Architecture processor.
855
856config TARGET_LS2080A_SIMU
857	bool "Support ls2080a_simu"
858	select ARCH_LS2080A
859	select ARM64
860	select ARMV8_MULTIENTRY
861	select ARCH_MISC_INIT
862	help
863	  Support for Freescale LS2080A_SIMU platform
864	  The LS2080A Development System (QDS) is a pre silicon
865	  development platform that supports the QorIQ LS2080A
866	  Layerscape Architecture processor.
867
868config TARGET_LS2080AQDS
869	bool "Support ls2080aqds"
870	select ARCH_LS2080A
871	select ARM64
872	select ARMV8_MULTIENTRY
873	select BOARD_LATE_INIT
874	select SUPPORT_SPL
875	select ARCH_MISC_INIT
876	imply SCSI
877	help
878	  Support for Freescale LS2080AQDS platform
879	  The LS2080A Development System (QDS) is a high-performance
880	  development platform that supports the QorIQ LS2080A
881	  Layerscape Architecture processor.
882
883config TARGET_LS2080ARDB
884	bool "Support ls2080ardb"
885	select ARCH_LS2080A
886	select ARM64
887	select ARMV8_MULTIENTRY
888	select BOARD_LATE_INIT
889	select SUPPORT_SPL
890	select ARCH_MISC_INIT
891	imply SCSI
892	help
893	  Support for Freescale LS2080ARDB platform.
894	  The LS2080A Reference design board (RDB) is a high-performance
895	  development platform that supports the QorIQ LS2080A
896	  Layerscape Architecture processor.
897
898config TARGET_LS2081ARDB
899	bool "Support ls2081ardb"
900	select ARCH_LS2080A
901	select ARM64
902	select ARMV8_MULTIENTRY
903	select BOARD_LATE_INIT
904	select SUPPORT_SPL
905	select ARCH_MISC_INIT
906	help
907	  Support for Freescale LS2081ARDB platform.
908	  The LS2081A Reference design board (RDB) is a high-performance
909	  development platform that supports the QorIQ LS2081A/LS2041A
910	  Layerscape Architecture processor.
911
912config TARGET_HIKEY
913	bool "Support HiKey 96boards Consumer Edition Platform"
914	select ARM64
915	select DM
916	select DM_GPIO
917	select DM_SERIAL
918	select OF_CONTROL
919	  help
920	  Support for HiKey 96boards platform. It features a HI6220
921	  SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
922
923config TARGET_POPLAR
924	bool "Support Poplar 96boards Enterprise Edition Platform"
925	select ARM64
926	select DM
927	select OF_CONTROL
928	select DM_SERIAL
929	select DM_USB
930	  help
931	  Support for Poplar 96boards EE platform. It features a HI3798cv200
932	  SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
933	  making it capable of running any commercial set-top solution based on
934	  Linux or Android.
935
936config TARGET_LS1012AQDS
937	bool "Support ls1012aqds"
938	select ARCH_LS1012A
939	select ARM64
940	select BOARD_LATE_INIT
941	help
942	  Support for Freescale LS1012AQDS platform.
943	  The LS1012A Development System (QDS) is a high-performance
944	  development platform that supports the QorIQ LS1012A
945	  Layerscape Architecture processor.
946
947config TARGET_LS1012ARDB
948	bool "Support ls1012ardb"
949	select ARCH_LS1012A
950	select ARM64
951	select BOARD_LATE_INIT
952	imply SCSI
953	help
954	  Support for Freescale LS1012ARDB platform.
955	  The LS1012A Reference design board (RDB) is a high-performance
956	  development platform that supports the QorIQ LS1012A
957	  Layerscape Architecture processor.
958
959config TARGET_LS1012AFRDM
960	bool "Support ls1012afrdm"
961	select ARCH_LS1012A
962	select ARM64
963	help
964	  Support for Freescale LS1012AFRDM platform.
965	  The LS1012A Freedom  board (FRDM) is a high-performance
966	  development platform that supports the QorIQ LS1012A
967	  Layerscape Architecture processor.
968
969config TARGET_LS1021AQDS
970	bool "Support ls1021aqds"
971	select BOARD_LATE_INIT
972	select CPU_V7
973	select CPU_V7_HAS_NONSEC
974	select CPU_V7_HAS_VIRT
975	select SUPPORT_SPL
976	select ARCH_LS1021A
977	select ARCH_SUPPORT_PSCI
978	select LS1_DEEP_SLEEP
979	select SYS_FSL_DDR
980	select BOARD_EARLY_INIT_F
981	imply SCSI
982
983config TARGET_LS1021ATWR
984	bool "Support ls1021atwr"
985	select BOARD_LATE_INIT
986	select CPU_V7
987	select CPU_V7_HAS_NONSEC
988	select CPU_V7_HAS_VIRT
989	select SUPPORT_SPL
990	select ARCH_LS1021A
991	select ARCH_SUPPORT_PSCI
992	select LS1_DEEP_SLEEP
993	select BOARD_EARLY_INIT_F
994	imply SCSI
995
996config TARGET_LS1021AIOT
997	bool "Support ls1021aiot"
998	select BOARD_LATE_INIT
999	select CPU_V7
1000	select CPU_V7_HAS_NONSEC
1001	select CPU_V7_HAS_VIRT
1002	select SUPPORT_SPL
1003	select ARCH_LS1021A
1004	select ARCH_SUPPORT_PSCI
1005	imply SCSI
1006	help
1007	  Support for Freescale LS1021AIOT platform.
1008	  The LS1021A Freescale board (IOT) is a high-performance
1009	  development platform that supports the QorIQ LS1021A
1010	  Layerscape Architecture processor.
1011
1012config TARGET_LS1043AQDS
1013	bool "Support ls1043aqds"
1014	select ARCH_LS1043A
1015	select ARM64
1016	select ARMV8_MULTIENTRY
1017	select BOARD_LATE_INIT
1018	select SUPPORT_SPL
1019	select BOARD_EARLY_INIT_F
1020	imply SCSI
1021	help
1022	  Support for Freescale LS1043AQDS platform.
1023
1024config TARGET_LS1043ARDB
1025	bool "Support ls1043ardb"
1026	select ARCH_LS1043A
1027	select ARM64
1028	select ARMV8_MULTIENTRY
1029	select BOARD_LATE_INIT
1030	select SUPPORT_SPL
1031	select BOARD_EARLY_INIT_F
1032	imply SCSI
1033	help
1034	  Support for Freescale LS1043ARDB platform.
1035
1036config TARGET_LS1046AQDS
1037	bool "Support ls1046aqds"
1038	select ARCH_LS1046A
1039	select ARM64
1040	select ARMV8_MULTIENTRY
1041	select BOARD_LATE_INIT
1042	select SUPPORT_SPL
1043	select DM_SPI_FLASH if DM_SPI
1044	select BOARD_EARLY_INIT_F
1045	imply SCSI
1046	help
1047	  Support for Freescale LS1046AQDS platform.
1048	  The LS1046A Development System (QDS) is a high-performance
1049	  development platform that supports the QorIQ LS1046A
1050	  Layerscape Architecture processor.
1051
1052config TARGET_LS1046ARDB
1053	bool "Support ls1046ardb"
1054	select ARCH_LS1046A
1055	select ARM64
1056	select ARMV8_MULTIENTRY
1057	select BOARD_LATE_INIT
1058	select SUPPORT_SPL
1059	select DM_SPI_FLASH if DM_SPI
1060	select POWER_MC34VR500
1061	select BOARD_EARLY_INIT_F
1062	imply SCSI
1063	help
1064	  Support for Freescale LS1046ARDB platform.
1065	  The LS1046A Reference Design Board (RDB) is a high-performance
1066	  development platform that supports the QorIQ LS1046A
1067	  Layerscape Architecture processor.
1068
1069config TARGET_H2200
1070	bool "Support h2200"
1071	select CPU_PXA
1072
1073config TARGET_ZIPITZ2
1074	bool "Support zipitz2"
1075	select CPU_PXA
1076
1077config TARGET_COLIBRI_PXA270
1078	bool "Support colibri_pxa270"
1079	select CPU_PXA
1080
1081config ARCH_UNIPHIER
1082	bool "Socionext UniPhier SoCs"
1083	select BOARD_LATE_INIT
1084	select DM
1085	select DM_GPIO
1086	select DM_I2C
1087	select DM_MMC
1088	select DM_RESET
1089	select DM_SERIAL
1090	select DM_USB
1091	select OF_CONTROL
1092	select OF_LIBFDT
1093	select PINCTRL
1094	select SPL_BOARD_INIT if SPL
1095	select SPL_DM if SPL
1096	select SPL_LIBCOMMON_SUPPORT if SPL
1097	select SPL_LIBGENERIC_SUPPORT if SPL
1098	select SPL_OF_CONTROL if SPL
1099	select SPL_PINCTRL if SPL
1100	select SUPPORT_SPL
1101	imply FAT_WRITE
1102	help
1103	  Support for UniPhier SoC family developed by Socionext Inc.
1104	  (formerly, System LSI Business Division of Panasonic Corporation)
1105
1106config STM32
1107	bool "Support STM32"
1108	select CPU_V7M
1109	select DM
1110	select DM_SERIAL
1111	select SYS_THUMB_BUILD
1112
1113config ARCH_STI
1114	bool "Support STMicrolectronics SoCs"
1115	select CPU_V7
1116	select DM
1117	select DM_SERIAL
1118	select BLK
1119	select DM_MMC
1120	select DM_RESET
1121	help
1122	  Support for STMicroelectronics STiH407/10 SoC family.
1123	  This SoC is used on Linaro 96Board STiH410-B2260
1124
1125config ARCH_ROCKCHIP
1126	bool "Support Rockchip SoCs"
1127	select OF_CONTROL
1128	select BLK
1129	select DM
1130	select SPL_DM if SPL
1131	select SYS_MALLOC_F
1132	select SYS_THUMB_BUILD if !ARM64
1133	select SPL_SYS_MALLOC_SIMPLE if SPL
1134	select DM_GPIO
1135	select DM_I2C
1136	select DM_MMC if !DM_RAMDISK
1137	select DM_SERIAL
1138	select DM_SPI
1139	select DM_SPI_FLASH
1140	select DM_USB if USB
1141	select DM_PWM
1142	select DM_REGULATOR
1143	select CMD_ROCKUSB if USB_GADGET_DOWNLOAD
1144	select ENABLE_ARM_SOC_BOOT0_HOOK
1145	select SYS_NS16550
1146	select SKIP_RELOCATE_UBOOT if !ARM64
1147	select SPI
1148	select DEBUG_UART_BOARD_INIT
1149	imply CMD_FASTBOOT
1150	imply FASTBOOT
1151	imply FAT_WRITE
1152	imply USB_FUNCTION_FASTBOOT
1153	imply USB_FUNCTION_ROCKUSB
1154	imply SPL_SYSRESET
1155	imply TPL_SYSRESET
1156	imply ADC
1157	imply SARADC_ROCKCHIP
1158
1159config TARGET_THUNDERX_88XX
1160	bool "Support ThunderX 88xx"
1161	select ARM64
1162	select OF_CONTROL
1163	select SYS_CACHE_SHIFT_7
1164
1165config ARCH_ASPEED
1166	bool "Support Aspeed SoCs"
1167	select OF_CONTROL
1168	select DM
1169
1170endchoice
1171
1172source "arch/arm/mach-aspeed/Kconfig"
1173
1174source "arch/arm/mach-at91/Kconfig"
1175
1176source "arch/arm/mach-bcm283x/Kconfig"
1177
1178source "arch/arm/mach-davinci/Kconfig"
1179
1180source "arch/arm/mach-exynos/Kconfig"
1181
1182source "arch/arm/mach-highbank/Kconfig"
1183
1184source "arch/arm/mach-integrator/Kconfig"
1185
1186source "arch/arm/mach-keystone/Kconfig"
1187
1188source "arch/arm/mach-kirkwood/Kconfig"
1189
1190source "arch/arm/mach-mvebu/Kconfig"
1191
1192source "arch/arm/cpu/armv7/ls102xa/Kconfig"
1193
1194source "arch/arm/mach-imx/mx7ulp/Kconfig"
1195
1196source "arch/arm/mach-imx/mx7/Kconfig"
1197
1198source "arch/arm/mach-imx/mx6/Kconfig"
1199
1200source "arch/arm/mach-imx/mx5/Kconfig"
1201
1202source "arch/arm/mach-omap2/Kconfig"
1203
1204source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
1205
1206source "arch/arm/mach-orion5x/Kconfig"
1207
1208source "arch/arm/mach-rmobile/Kconfig"
1209
1210source "arch/arm/mach-meson/Kconfig"
1211
1212source "arch/arm/mach-rockchip/Kconfig"
1213
1214source "arch/arm/mach-s5pc1xx/Kconfig"
1215
1216source "arch/arm/mach-snapdragon/Kconfig"
1217
1218source "arch/arm/mach-socfpga/Kconfig"
1219
1220source "arch/arm/mach-sti/Kconfig"
1221
1222source "arch/arm/mach-stm32/Kconfig"
1223
1224source "arch/arm/mach-sunxi/Kconfig"
1225
1226source "arch/arm/mach-tegra/Kconfig"
1227
1228source "arch/arm/mach-uniphier/Kconfig"
1229
1230source "arch/arm/cpu/armv7/vf610/Kconfig"
1231
1232source "arch/arm/mach-zynq/Kconfig"
1233
1234source "arch/arm/cpu/armv7/Kconfig"
1235
1236source "arch/arm/cpu/armv8/zynqmp/Kconfig"
1237
1238source "arch/arm/cpu/armv8/Kconfig"
1239
1240source "arch/arm/mach-imx/Kconfig"
1241
1242source "board/aries/m28evk/Kconfig"
1243source "board/bosch/shc/Kconfig"
1244source "board/CarMediaLab/flea3/Kconfig"
1245source "board/Marvell/aspenite/Kconfig"
1246source "board/Marvell/gplugd/Kconfig"
1247source "board/armadeus/apf27/Kconfig"
1248source "board/armltd/vexpress/Kconfig"
1249source "board/armltd/vexpress64/Kconfig"
1250source "board/bluegiga/apx4devkit/Kconfig"
1251source "board/broadcom/bcm23550_w1d/Kconfig"
1252source "board/broadcom/bcm28155_ap/Kconfig"
1253source "board/broadcom/bcmcygnus/Kconfig"
1254source "board/broadcom/bcmnsp/Kconfig"
1255source "board/broadcom/bcmns2/Kconfig"
1256source "board/cavium/thunderx/Kconfig"
1257source "board/cirrus/edb93xx/Kconfig"
1258source "board/creative/xfi3/Kconfig"
1259source "board/freescale/ls2080a/Kconfig"
1260source "board/freescale/ls2080aqds/Kconfig"
1261source "board/freescale/ls2080ardb/Kconfig"
1262source "board/freescale/ls1021aqds/Kconfig"
1263source "board/freescale/ls1043aqds/Kconfig"
1264source "board/freescale/ls1021atwr/Kconfig"
1265source "board/freescale/ls1021aiot/Kconfig"
1266source "board/freescale/ls1046aqds/Kconfig"
1267source "board/freescale/ls1043ardb/Kconfig"
1268source "board/freescale/ls1046ardb/Kconfig"
1269source "board/freescale/ls1012aqds/Kconfig"
1270source "board/freescale/ls1012ardb/Kconfig"
1271source "board/freescale/ls1012afrdm/Kconfig"
1272source "board/freescale/mx23evk/Kconfig"
1273source "board/freescale/mx25pdk/Kconfig"
1274source "board/freescale/mx28evk/Kconfig"
1275source "board/freescale/mx31ads/Kconfig"
1276source "board/freescale/mx31pdk/Kconfig"
1277source "board/freescale/mx35pdk/Kconfig"
1278source "board/freescale/s32v234evb/Kconfig"
1279source "board/gdsys/a38x/Kconfig"
1280source "board/grinn/chiliboard/Kconfig"
1281source "board/gumstix/pepper/Kconfig"
1282source "board/h2200/Kconfig"
1283source "board/hisilicon/hikey/Kconfig"
1284source "board/hisilicon/poplar/Kconfig"
1285source "board/imx31_phycore/Kconfig"
1286source "board/isee/igep003x/Kconfig"
1287source "board/olimex/mx23_olinuxino/Kconfig"
1288source "board/phytec/pcm051/Kconfig"
1289source "board/ppcag/bg0900/Kconfig"
1290source "board/sandisk/sansa_fuze_plus/Kconfig"
1291source "board/schulercontrol/sc_sps_1/Kconfig"
1292source "board/silica/pengwyn/Kconfig"
1293source "board/spear/spear300/Kconfig"
1294source "board/spear/spear310/Kconfig"
1295source "board/spear/spear320/Kconfig"
1296source "board/spear/spear600/Kconfig"
1297source "board/spear/x600/Kconfig"
1298source "board/st/stv0991/Kconfig"
1299source "board/syteco/zmx25/Kconfig"
1300source "board/tcl/sl50/Kconfig"
1301source "board/birdland/bav335x/Kconfig"
1302source "board/timll/devkit3250/Kconfig"
1303source "board/toradex/colibri_pxa270/Kconfig"
1304source "board/technologic/ts4600/Kconfig"
1305source "board/vscom/baltos/Kconfig"
1306source "board/woodburn/Kconfig"
1307source "board/work-microwave/work_92105/Kconfig"
1308source "board/zipitz2/Kconfig"
1309
1310source "arch/arm/Kconfig.debug"
1311
1312endmenu
1313
1314config SPL_LDSCRIPT
1315        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
1316        default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
1317	default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
1318
1319
1320