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