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