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