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