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