xref: /openbmc/u-boot/arch/arm/Kconfig (revision ec37f05e)
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 SPECIFY_CONSOLE_INDEX
713	select SPL_STACK_R if SPL
714	select SPL_SYS_MALLOC_SIMPLE if SPL
715	select SYS_NS16550
716	select SPL_SYS_THUMB_BUILD if !ARM64
717	select SYS_THUMB_BUILD if !ARM64
718	select USB if DISTRO_DEFAULTS
719	select USB_STORAGE if DISTRO_DEFAULTS
720	select USB_KEYBOARD if DISTRO_DEFAULTS
721	select USE_TINY_PRINTF
722	imply CMD_GPT
723	imply FAT_WRITE
724	imply OF_LIBFDT_OVERLAY
725	imply PRE_CONSOLE_BUFFER
726	imply SPL_GPIO_SUPPORT
727	imply SPL_LIBCOMMON_SUPPORT
728	imply SPL_LIBDISK_SUPPORT
729	imply SPL_LIBGENERIC_SUPPORT
730	imply SPL_MMC_SUPPORT if MMC
731	imply SPL_POWER_SUPPORT
732	imply SPL_SERIAL_SUPPORT
733	imply USB_GADGET
734
735config ARCH_VF610
736	bool "Freescale Vybrid"
737	select CPU_V7
738	select SYS_FSL_ERRATUM_ESDHC111
739	imply CMD_MTDPARTS
740	imply NAND
741
742config ARCH_ZYNQ
743	bool "Xilinx Zynq based platform"
744	select BOARD_LATE_INIT
745	select CPU_V7
746	select SUPPORT_SPL
747	select OF_CONTROL
748	select SPL_BOARD_INIT if SPL
749	select BOARD_EARLY_INIT_F if WDT
750	select SPL_OF_CONTROL if SPL
751	select DM
752	select DM_ETH if NET
753	select SPL_DM if SPL
754	select DM_MMC if MMC
755	select DM_SPI
756	select DM_SERIAL
757	select DM_SPI_FLASH
758	select SPL_SEPARATE_BSS if SPL
759	select DM_USB if USB
760	select CLK
761	select SPL_CLK if SPL
762	select CLK_ZYNQ
763	imply CMD_CLK
764	imply FAT_WRITE
765	imply CMD_SPL
766
767config ARCH_ZYNQMP
768	bool "Xilinx ZynqMP based platform"
769	select ARM64
770	select BOARD_LATE_INIT
771	select DM
772	select OF_CONTROL
773	select DM_SERIAL
774	select SUPPORT_SPL
775	select CLK
776	select SPL_BOARD_INIT if SPL
777	select SPL_CLK if SPL
778	select DM_USB if USB
779	imply FAT_WRITE
780
781config TEGRA
782	bool "NVIDIA Tegra"
783	imply FAT_WRITE
784
785config TARGET_VEXPRESS64_AEMV8A
786	bool "Support vexpress_aemv8a"
787	select ARM64
788	select PL01X_SERIAL
789
790config TARGET_VEXPRESS64_BASE_FVP
791	bool "Support Versatile Express ARMv8a FVP BASE model"
792	select ARM64
793	select SEMIHOSTING
794	select PL01X_SERIAL
795
796config TARGET_VEXPRESS64_BASE_FVP_DRAM
797	bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
798	select ARM64
799	select PL01X_SERIAL
800	help
801	  This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
802	  the default config to allow the user to load the images directly into
803	  DRAM using model parameters rather than by using semi-hosting to load
804	  the files from the host filesystem.
805
806config TARGET_VEXPRESS64_JUNO
807	bool "Support Versatile Express Juno Development Platform"
808	select ARM64
809	select PL01X_SERIAL
810
811config TARGET_LS2080A_EMU
812	bool "Support ls2080a_emu"
813	select ARCH_LS2080A
814	select ARM64
815	select ARMV8_MULTIENTRY
816	select ARCH_MISC_INIT
817	help
818	  Support for Freescale LS2080A_EMU platform
819	  The LS2080A Development System (EMULATOR) is a pre silicon
820	  development platform that supports the QorIQ LS2080A
821	  Layerscape Architecture processor.
822
823config TARGET_LS2080A_SIMU
824	bool "Support ls2080a_simu"
825	select ARCH_LS2080A
826	select ARM64
827	select ARMV8_MULTIENTRY
828	select ARCH_MISC_INIT
829	help
830	  Support for Freescale LS2080A_SIMU platform
831	  The LS2080A Development System (QDS) is a pre silicon
832	  development platform that supports the QorIQ LS2080A
833	  Layerscape Architecture processor.
834
835config TARGET_LS1088AQDS
836	bool "Support ls1088aqds"
837	select ARCH_LS1088A
838	select ARM64
839	select ARMV8_MULTIENTRY
840	select ARCH_MISC_INIT
841	select BOARD_LATE_INIT
842	select SUPPORT_SPL
843	help
844	  Support for NXP LS1088AQDS platform
845	  The LS1088A Development System (QDS) is a high-performance
846	  development platform that supports the QorIQ LS1088A
847	  Layerscape Architecture processor.
848
849config TARGET_LS2080AQDS
850	bool "Support ls2080aqds"
851	select ARCH_LS2080A
852	select ARM64
853	select ARMV8_MULTIENTRY
854	select BOARD_LATE_INIT
855	select SUPPORT_SPL
856	select ARCH_MISC_INIT
857	imply SCSI
858	imply SCSI_AHCI
859	help
860	  Support for Freescale LS2080AQDS platform
861	  The LS2080A Development System (QDS) is a high-performance
862	  development platform that supports the QorIQ LS2080A
863	  Layerscape Architecture processor.
864
865config TARGET_LS2080ARDB
866	bool "Support ls2080ardb"
867	select ARCH_LS2080A
868	select ARM64
869	select ARMV8_MULTIENTRY
870	select BOARD_LATE_INIT
871	select SUPPORT_SPL
872	select ARCH_MISC_INIT
873	imply SCSI
874	imply SCSI_AHCI
875	help
876	  Support for Freescale LS2080ARDB platform.
877	  The LS2080A Reference design board (RDB) is a high-performance
878	  development platform that supports the QorIQ LS2080A
879	  Layerscape Architecture processor.
880
881config TARGET_LS2081ARDB
882	bool "Support ls2081ardb"
883	select ARCH_LS2080A
884	select ARM64
885	select ARMV8_MULTIENTRY
886	select BOARD_LATE_INIT
887	select SUPPORT_SPL
888	select ARCH_MISC_INIT
889	help
890	  Support for Freescale LS2081ARDB platform.
891	  The LS2081A Reference design board (RDB) is a high-performance
892	  development platform that supports the QorIQ LS2081A/LS2041A
893	  Layerscape Architecture processor.
894
895config TARGET_HIKEY
896	bool "Support HiKey 96boards Consumer Edition Platform"
897	select ARM64
898	select DM
899	select DM_GPIO
900	select DM_SERIAL
901	select OF_CONTROL
902	select PL01X_SERIAL
903	select SPECIFY_CONSOLE_INDEX
904	  help
905	  Support for HiKey 96boards platform. It features a HI6220
906	  SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
907
908config TARGET_POPLAR
909	bool "Support Poplar 96boards Enterprise Edition Platform"
910	select ARM64
911	select DM
912	select OF_CONTROL
913	select DM_SERIAL
914	select DM_USB
915	select PL01X_SERIAL
916	  help
917	  Support for Poplar 96boards EE platform. It features a HI3798cv200
918	  SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
919	  making it capable of running any commercial set-top solution based on
920	  Linux or Android.
921
922config TARGET_LS1012AQDS
923	bool "Support ls1012aqds"
924	select ARCH_LS1012A
925	select ARM64
926	select BOARD_LATE_INIT
927	help
928	  Support for Freescale LS1012AQDS platform.
929	  The LS1012A Development System (QDS) is a high-performance
930	  development platform that supports the QorIQ LS1012A
931	  Layerscape Architecture processor.
932
933config TARGET_LS1012ARDB
934	bool "Support ls1012ardb"
935	select ARCH_LS1012A
936	select ARM64
937	select BOARD_LATE_INIT
938	imply SCSI
939	imply SCSI_AHCI
940	help
941	  Support for Freescale LS1012ARDB platform.
942	  The LS1012A Reference design board (RDB) is a high-performance
943	  development platform that supports the QorIQ LS1012A
944	  Layerscape Architecture processor.
945
946config TARGET_LS1012A2G5RDB
947	bool "Support ls1012a2g5rdb"
948	select ARCH_LS1012A
949	select ARM64
950	select BOARD_LATE_INIT
951	imply SCSI
952	help
953	  Support for Freescale LS1012A2G5RDB platform.
954	  The LS1012A 2G5 Reference design board (RDB) is a high-performance
955	  development platform that supports the QorIQ LS1012A
956	  Layerscape Architecture processor.
957
958config TARGET_LS1012AFRDM
959	bool "Support ls1012afrdm"
960	select ARCH_LS1012A
961	select ARM64
962	help
963	  Support for Freescale LS1012AFRDM platform.
964	  The LS1012A Freedom  board (FRDM) is a high-performance
965	  development platform that supports the QorIQ LS1012A
966	  Layerscape Architecture processor.
967
968config TARGET_LS1088ARDB
969	bool "Support ls1088ardb"
970	select ARCH_LS1088A
971	select ARM64
972	select ARMV8_MULTIENTRY
973	select ARCH_MISC_INIT
974	select BOARD_LATE_INIT
975	select SUPPORT_SPL
976	help
977	  Support for NXP LS1088ARDB platform.
978	  The LS1088A Reference design board (RDB) is a high-performance
979	  development platform that supports the QorIQ LS1088A
980	  Layerscape Architecture processor.
981
982config TARGET_LS1021AQDS
983	bool "Support ls1021aqds"
984	select BOARD_LATE_INIT
985	select CPU_V7
986	select CPU_V7_HAS_NONSEC
987	select CPU_V7_HAS_VIRT
988	select SUPPORT_SPL
989	select ARCH_LS1021A
990	select ARCH_SUPPORT_PSCI
991	select LS1_DEEP_SLEEP
992	select SYS_FSL_DDR
993	select BOARD_EARLY_INIT_F
994	imply SCSI
995
996config TARGET_LS1021ATWR
997	bool "Support ls1021atwr"
998	select BOARD_LATE_INIT
999	select CPU_V7
1000	select CPU_V7_HAS_NONSEC
1001	select CPU_V7_HAS_VIRT
1002	select SUPPORT_SPL
1003	select ARCH_LS1021A
1004	select ARCH_SUPPORT_PSCI
1005	select LS1_DEEP_SLEEP
1006	select BOARD_EARLY_INIT_F
1007	imply SCSI
1008
1009config TARGET_LS1021AIOT
1010	bool "Support ls1021aiot"
1011	select BOARD_LATE_INIT
1012	select CPU_V7
1013	select CPU_V7_HAS_NONSEC
1014	select CPU_V7_HAS_VIRT
1015	select SUPPORT_SPL
1016	select ARCH_LS1021A
1017	select ARCH_SUPPORT_PSCI
1018	imply SCSI
1019	help
1020	  Support for Freescale LS1021AIOT platform.
1021	  The LS1021A Freescale board (IOT) is a high-performance
1022	  development platform that supports the QorIQ LS1021A
1023	  Layerscape Architecture processor.
1024
1025config TARGET_LS1043AQDS
1026	bool "Support ls1043aqds"
1027	select ARCH_LS1043A
1028	select ARM64
1029	select ARMV8_MULTIENTRY
1030	select BOARD_LATE_INIT
1031	select SUPPORT_SPL
1032	select BOARD_EARLY_INIT_F
1033	imply SCSI
1034	help
1035	  Support for Freescale LS1043AQDS platform.
1036
1037config TARGET_LS1043ARDB
1038	bool "Support ls1043ardb"
1039	select ARCH_LS1043A
1040	select ARM64
1041	select ARMV8_MULTIENTRY
1042	select BOARD_LATE_INIT
1043	select SUPPORT_SPL
1044	select BOARD_EARLY_INIT_F
1045	imply SCSI
1046	help
1047	  Support for Freescale LS1043ARDB platform.
1048
1049config TARGET_LS1046AQDS
1050	bool "Support ls1046aqds"
1051	select ARCH_LS1046A
1052	select ARM64
1053	select ARMV8_MULTIENTRY
1054	select BOARD_LATE_INIT
1055	select SUPPORT_SPL
1056	select DM_SPI_FLASH if DM_SPI
1057	select BOARD_EARLY_INIT_F
1058	imply SCSI
1059	help
1060	  Support for Freescale LS1046AQDS platform.
1061	  The LS1046A Development System (QDS) is a high-performance
1062	  development platform that supports the QorIQ LS1046A
1063	  Layerscape Architecture processor.
1064
1065config TARGET_LS1046ARDB
1066	bool "Support ls1046ardb"
1067	select ARCH_LS1046A
1068	select ARM64
1069	select ARMV8_MULTIENTRY
1070	select BOARD_LATE_INIT
1071	select SUPPORT_SPL
1072	select DM_SPI_FLASH if DM_SPI
1073	select POWER_MC34VR500
1074	select BOARD_EARLY_INIT_F
1075	imply SCSI
1076	help
1077	  Support for Freescale LS1046ARDB platform.
1078	  The LS1046A Reference Design Board (RDB) is a high-performance
1079	  development platform that supports the QorIQ LS1046A
1080	  Layerscape Architecture processor.
1081
1082config TARGET_H2200
1083	bool "Support h2200"
1084	select CPU_PXA
1085
1086config TARGET_ZIPITZ2
1087	bool "Support zipitz2"
1088	select CPU_PXA
1089
1090config TARGET_COLIBRI_PXA270
1091	bool "Support colibri_pxa270"
1092	select CPU_PXA
1093
1094config ARCH_UNIPHIER
1095	bool "Socionext UniPhier SoCs"
1096	select BOARD_LATE_INIT
1097	select DM
1098	select DM_GPIO
1099	select DM_I2C
1100	select DM_MMC
1101	select DM_RESET
1102	select DM_SERIAL
1103	select DM_USB
1104	select OF_CONTROL
1105	select OF_LIBFDT
1106	select PINCTRL
1107	select SPL_BOARD_INIT if SPL
1108	select SPL_DM if SPL
1109	select SPL_LIBCOMMON_SUPPORT if SPL
1110	select SPL_LIBGENERIC_SUPPORT if SPL
1111	select SPL_OF_CONTROL if SPL
1112	select SPL_PINCTRL if SPL
1113	select SUPPORT_SPL
1114	imply FAT_WRITE
1115	help
1116	  Support for UniPhier SoC family developed by Socionext Inc.
1117	  (formerly, System LSI Business Division of Panasonic Corporation)
1118
1119config STM32
1120	bool "Support STMicroelectronics STM32 MCU with cortex M"
1121	select CPU_V7M
1122	select DM
1123	select DM_SERIAL
1124	select SYS_THUMB_BUILD
1125
1126config ARCH_STI
1127	bool "Support STMicrolectronics SoCs"
1128	select CPU_V7
1129	select DM
1130	select DM_SERIAL
1131	select BLK
1132	select DM_MMC
1133	select DM_RESET
1134	help
1135	  Support for STMicroelectronics STiH407/10 SoC family.
1136	  This SoC is used on Linaro 96Board STiH410-B2260
1137
1138config ARCH_STM32MP
1139	bool "Support STMicroelectronics STM32MP Socs with cortex A"
1140	select ARCH_MISC_INIT
1141	select BOARD_LATE_INIT
1142	select CLK
1143	select DM
1144	select DM_GPIO
1145	select DM_RESET
1146	select DM_SERIAL
1147	select OF_CONTROL
1148	select OF_LIBFDT
1149	select PINCTRL
1150	select REGMAP
1151	select SUPPORT_SPL
1152	select SYSCON
1153	select SYSRESET
1154	select SYS_THUMB_BUILD
1155	help
1156	  Support for STM32MP SoC family developed by STMicroelectronics,
1157	  MPUs based on ARM cortex A core
1158	  U-BOOT is running in DDR and SPL support is the unsecure First Stage
1159	  BootLoader (FSBL)
1160
1161config ARCH_ROCKCHIP
1162	bool "Support Rockchip SoCs"
1163	select OF_CONTROL
1164	select BLK
1165	select DM
1166	select SPL_DM if SPL
1167	select SYS_MALLOC_F
1168	select SYS_THUMB_BUILD if !ARM64
1169	select SPL_SYS_MALLOC_SIMPLE if SPL
1170	select DM_GPIO
1171	select DM_I2C
1172	select DM_MMC
1173	select DM_SERIAL
1174	select DM_SPI
1175	select DM_SPI_FLASH
1176	select DM_USB if USB
1177	select DM_PWM
1178	select DM_REGULATOR
1179	select ENABLE_ARM_SOC_BOOT0_HOOK
1180	imply CMD_FASTBOOT
1181	imply FASTBOOT
1182	imply FAT_WRITE
1183	imply USB_FUNCTION_FASTBOOT
1184	imply SPL_SYSRESET
1185	imply TPL_SYSRESET
1186	imply ADC
1187	imply SARADC_ROCKCHIP
1188	imply SYS_NS16550
1189
1190config TARGET_THUNDERX_88XX
1191	bool "Support ThunderX 88xx"
1192	select ARM64
1193	select OF_CONTROL
1194	select SYS_CACHE_SHIFT_7
1195	select PL01X_SERIAL
1196
1197config ARCH_ASPEED
1198	bool "Support Aspeed SoCs"
1199	select OF_CONTROL
1200	select DM
1201
1202endchoice
1203
1204config TI_SECURE_DEVICE
1205	bool "HS Device Type Support"
1206	depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS
1207	help
1208	  If a high secure (HS) device type is being used, this config
1209	  must be set. This option impacts various aspects of the
1210	  build system (to create signed boot images that can be
1211	  authenticated) and the code. See the doc/README.ti-secure
1212	  file for further details.
1213
1214source "arch/arm/mach-aspeed/Kconfig"
1215
1216source "arch/arm/mach-at91/Kconfig"
1217
1218source "arch/arm/mach-bcm283x/Kconfig"
1219
1220source "arch/arm/mach-davinci/Kconfig"
1221
1222source "arch/arm/mach-exynos/Kconfig"
1223
1224source "arch/arm/mach-highbank/Kconfig"
1225
1226source "arch/arm/mach-integrator/Kconfig"
1227
1228source "arch/arm/mach-keystone/Kconfig"
1229
1230source "arch/arm/mach-kirkwood/Kconfig"
1231
1232source "arch/arm/mach-mvebu/Kconfig"
1233
1234source "arch/arm/cpu/armv7/ls102xa/Kconfig"
1235
1236source "arch/arm/mach-imx/mx2/Kconfig"
1237
1238source "arch/arm/mach-imx/mx5/Kconfig"
1239
1240source "arch/arm/mach-imx/mx6/Kconfig"
1241
1242source "arch/arm/mach-imx/mx7/Kconfig"
1243
1244source "arch/arm/mach-imx/mx7ulp/Kconfig"
1245
1246source "arch/arm/mach-imx/mx8m/Kconfig"
1247
1248source "arch/arm/mach-imx/mxs/Kconfig"
1249
1250source "arch/arm/mach-omap2/Kconfig"
1251
1252source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
1253
1254source "arch/arm/mach-orion5x/Kconfig"
1255
1256source "arch/arm/mach-rmobile/Kconfig"
1257
1258source "arch/arm/mach-meson/Kconfig"
1259
1260source "arch/arm/mach-qemu/Kconfig"
1261
1262source "arch/arm/mach-rockchip/Kconfig"
1263
1264source "arch/arm/mach-s5pc1xx/Kconfig"
1265
1266source "arch/arm/mach-snapdragon/Kconfig"
1267
1268source "arch/arm/mach-socfpga/Kconfig"
1269
1270source "arch/arm/mach-sti/Kconfig"
1271
1272source "arch/arm/mach-stm32/Kconfig"
1273
1274source "arch/arm/mach-stm32mp/Kconfig"
1275
1276source "arch/arm/mach-sunxi/Kconfig"
1277
1278source "arch/arm/mach-tegra/Kconfig"
1279
1280source "arch/arm/mach-uniphier/Kconfig"
1281
1282source "arch/arm/cpu/armv7/vf610/Kconfig"
1283
1284source "arch/arm/mach-zynq/Kconfig"
1285
1286source "arch/arm/cpu/armv7/Kconfig"
1287
1288source "arch/arm/cpu/armv8/zynqmp/Kconfig"
1289
1290source "arch/arm/cpu/armv8/Kconfig"
1291
1292source "arch/arm/mach-imx/Kconfig"
1293
1294source "board/bosch/shc/Kconfig"
1295source "board/CarMediaLab/flea3/Kconfig"
1296source "board/Marvell/aspenite/Kconfig"
1297source "board/Marvell/gplugd/Kconfig"
1298source "board/armadeus/apf27/Kconfig"
1299source "board/armltd/vexpress/Kconfig"
1300source "board/armltd/vexpress64/Kconfig"
1301source "board/broadcom/bcm23550_w1d/Kconfig"
1302source "board/broadcom/bcm28155_ap/Kconfig"
1303source "board/broadcom/bcmcygnus/Kconfig"
1304source "board/broadcom/bcmnsp/Kconfig"
1305source "board/broadcom/bcmns2/Kconfig"
1306source "board/cavium/thunderx/Kconfig"
1307source "board/cirrus/edb93xx/Kconfig"
1308source "board/eets/pdu001/Kconfig"
1309source "board/freescale/ls2080a/Kconfig"
1310source "board/freescale/ls2080aqds/Kconfig"
1311source "board/freescale/ls2080ardb/Kconfig"
1312source "board/freescale/ls1088a/Kconfig"
1313source "board/freescale/ls1021aqds/Kconfig"
1314source "board/freescale/ls1043aqds/Kconfig"
1315source "board/freescale/ls1021atwr/Kconfig"
1316source "board/freescale/ls1021aiot/Kconfig"
1317source "board/freescale/ls1046aqds/Kconfig"
1318source "board/freescale/ls1043ardb/Kconfig"
1319source "board/freescale/ls1046ardb/Kconfig"
1320source "board/freescale/ls1012aqds/Kconfig"
1321source "board/freescale/ls1012ardb/Kconfig"
1322source "board/freescale/ls1012afrdm/Kconfig"
1323source "board/freescale/mx31pdk/Kconfig"
1324source "board/freescale/mx35pdk/Kconfig"
1325source "board/freescale/s32v234evb/Kconfig"
1326source "board/gdsys/a38x/Kconfig"
1327source "board/grinn/chiliboard/Kconfig"
1328source "board/gumstix/pepper/Kconfig"
1329source "board/h2200/Kconfig"
1330source "board/hisilicon/hikey/Kconfig"
1331source "board/hisilicon/poplar/Kconfig"
1332source "board/isee/igep003x/Kconfig"
1333source "board/phytec/pcm051/Kconfig"
1334source "board/silica/pengwyn/Kconfig"
1335source "board/spear/spear300/Kconfig"
1336source "board/spear/spear310/Kconfig"
1337source "board/spear/spear320/Kconfig"
1338source "board/spear/spear600/Kconfig"
1339source "board/spear/x600/Kconfig"
1340source "board/st/stv0991/Kconfig"
1341source "board/tcl/sl50/Kconfig"
1342source "board/birdland/bav335x/Kconfig"
1343source "board/timll/devkit3250/Kconfig"
1344source "board/toradex/colibri_pxa270/Kconfig"
1345source "board/vscom/baltos/Kconfig"
1346source "board/woodburn/Kconfig"
1347source "board/work-microwave/work_92105/Kconfig"
1348source "board/xilinx/zynqmp/Kconfig"
1349source "board/zipitz2/Kconfig"
1350
1351source "arch/arm/Kconfig.debug"
1352
1353endmenu
1354
1355config SPL_LDSCRIPT
1356        default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if ARCH_MX23 || ARCH_MX28
1357        default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
1358	default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
1359
1360
1361