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