• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 in the binary to support U-Boot
21	  relocating itself to the top-of-RAM later during execution.
22
23config INIT_SP_RELATIVE
24	bool "Specify the early stack pointer relative to the .bss section"
25	help
26	  U-Boot typically uses a hard-coded value for the stack pointer
27	  before relocation. Enable 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 it can be loaded and executed at arbitrary
30	  addresses and thus avoid using arbitrary addresses at runtime.
31
32	  If this option is enabled, the early stack pointer is set to
33	  &_bss_start with a offset value added. The offset is specified by
34	  SYS_INIT_SP_BSS_OFFSET.
35
36config SYS_INIT_SP_BSS_OFFSET
37	int "Early stack offset from the .bss base address"
38	depends on INIT_SP_RELATIVE
39	default 524288
40	help
41	  This option's value is the offset added to &_bss_start in order to
42	  calculate the stack pointer. This offset should be large enough so
43	  that the early malloc region, global data (gd), and early stack usage
44	  do not overlap any appended DTB.
45
46config LINUX_KERNEL_IMAGE_HEADER
47	bool
48	help
49	  Place a Linux kernel image header at the start of the U-Boot binary.
50	  The format of the header is described in the Linux kernel source at
51	  Documentation/arm64/booting.txt. This feature is useful since the
52	  image header reports the amount of memory (BSS and similar) that
53	  U-Boot needs to use, but which isn't part of the binary.
54
55if LINUX_KERNEL_IMAGE_HEADER
56config LNX_KRNL_IMG_TEXT_OFFSET_BASE
57	hex
58	help
59	  The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
60	  TEXT_OFFSET value written to the Linux kernel image header.
61endif
62endif
63
64config STATIC_RELA
65	bool
66	default y if ARM64 && !POSITION_INDEPENDENT
67
68config DMA_ADDR_T_64BIT
69	bool
70	default y if ARM64
71
72config HAS_VBAR
73	bool
74
75config HAS_THUMB2
76	bool
77
78# Used for compatibility with asm files copied from the kernel
79config ARM_ASM_UNIFIED
80	bool
81	default y
82
83# Used for compatibility with asm files copied from the kernel
84config THUMB2_KERNEL
85	bool
86
87config SYS_ICACHE_OFF
88	bool "Do not enable icache"
89	default n
90	help
91	  Do not enable instruction cache in U-Boot.
92
93config SPL_SYS_ICACHE_OFF
94	bool "Do not enable icache in SPL"
95	depends on SPL
96	default SYS_ICACHE_OFF
97	help
98	  Do not enable instruction cache in SPL.
99
100config SYS_DCACHE_OFF
101	bool "Do not enable dcache"
102	default n
103	help
104	  Do not enable data cache in U-Boot.
105
106config SPL_SYS_DCACHE_OFF
107	bool "Do not enable dcache in SPL"
108	depends on SPL
109	default SYS_DCACHE_OFF
110	help
111	  Do not enable data cache in SPL.
112
113config SYS_ARM_CACHE_CP15
114	bool "CP15 based cache enabling support"
115	help
116	  Select this if your processor suports enabling caches by using
117	  CP15 registers.
118
119config SYS_ARM_MMU
120	bool "MMU-based Paged Memory Management Support"
121	select SYS_ARM_CACHE_CP15
122	help
123	  Select if you want MMU-based virtualised addressing space
124	  support via paged memory management.
125
126config SYS_ARM_MPU
127	bool 'Use the ARM v7 PMSA Compliant MPU'
128	help
129	  Some ARM systems without an MMU have instead a Memory Protection
130	  Unit (MPU) that defines the type and permissions for regions of
131	  memory.
132	  If your CPU has an MPU then you should choose 'y' here unless you
133	  know that you do not want to use the MPU.
134
135# If set, the workarounds for these ARM errata are applied early during U-Boot
136# startup. Note that in general these options force the workarounds to be
137# applied; no CPU-type/version detection exists, unlike the similar options in
138# the Linux kernel. Do not set these options unless they apply!  Also note that
139# the following can be machine-specific errata. These do have ability to
140# provide rudimentary version and machine-specific checks, but expect no
141# product checks:
142# CONFIG_ARM_ERRATA_430973
143# CONFIG_ARM_ERRATA_454179
144# CONFIG_ARM_ERRATA_621766
145# CONFIG_ARM_ERRATA_798870
146# CONFIG_ARM_ERRATA_801819
147# CONFIG_ARM_CORTEX_A8_CVE_2017_5715
148# CONFIG_ARM_CORTEX_A15_CVE_2017_5715
149
150config ARM_ERRATA_430973
151	bool
152
153config ARM_ERRATA_454179
154	bool
155
156config ARM_ERRATA_621766
157	bool
158
159config ARM_ERRATA_716044
160	bool
161
162config ARM_ERRATA_725233
163	bool
164
165config ARM_ERRATA_742230
166	bool
167
168config ARM_ERRATA_743622
169	bool
170
171config ARM_ERRATA_751472
172	bool
173
174config ARM_ERRATA_761320
175	bool
176
177config ARM_ERRATA_773022
178	bool
179
180config ARM_ERRATA_774769
181	bool
182
183config ARM_ERRATA_794072
184	bool
185
186config ARM_ERRATA_798870
187	bool
188
189config ARM_ERRATA_801819
190	bool
191
192config ARM_ERRATA_826974
193	bool
194
195config ARM_ERRATA_828024
196	bool
197
198config ARM_ERRATA_829520
199	bool
200
201config ARM_ERRATA_833069
202	bool
203
204config ARM_ERRATA_833471
205	bool
206
207config ARM_ERRATA_845369
208	bool
209
210config ARM_ERRATA_852421
211	bool
212
213config ARM_ERRATA_852423
214	bool
215
216config ARM_ERRATA_855873
217	bool
218
219config ARM_CORTEX_A8_CVE_2017_5715
220	bool
221
222config ARM_CORTEX_A15_CVE_2017_5715
223	bool
224
225config CPU_ARM720T
226	bool
227	select SYS_CACHE_SHIFT_5
228	imply SYS_ARM_MMU
229
230config CPU_ARM920T
231	bool
232	select SYS_CACHE_SHIFT_5
233	imply SYS_ARM_MMU
234
235config CPU_ARM926EJS
236	bool
237	select SYS_CACHE_SHIFT_5
238	imply SYS_ARM_MMU
239
240config CPU_ARM946ES
241	bool
242	select SYS_CACHE_SHIFT_5
243	imply SYS_ARM_MMU
244
245config CPU_ARM1136
246	bool
247	select SYS_CACHE_SHIFT_5
248	imply SYS_ARM_MMU
249
250config CPU_ARM1176
251	bool
252	select HAS_VBAR
253	select SYS_CACHE_SHIFT_5
254	imply SYS_ARM_MMU
255
256config CPU_V7A
257	bool
258	select HAS_THUMB2
259	select HAS_VBAR
260	select SYS_CACHE_SHIFT_6
261	imply SYS_ARM_MMU
262
263config CPU_V7M
264	bool
265	select HAS_THUMB2
266	select SYS_ARM_MPU
267	select SYS_CACHE_SHIFT_5
268	select SYS_THUMB_BUILD
269	select THUMB2_KERNEL
270
271config CPU_V7R
272	bool
273	select HAS_THUMB2
274	select SYS_ARM_CACHE_CP15
275	select SYS_ARM_MPU
276	select SYS_CACHE_SHIFT_6
277
278config CPU_PXA
279	bool
280	select SYS_CACHE_SHIFT_5
281	imply SYS_ARM_MMU
282
283config CPU_SA1100
284	bool
285	select SYS_CACHE_SHIFT_5
286	imply SYS_ARM_MMU
287
288config SYS_CPU
289	default "arm720t" if CPU_ARM720T
290	default "arm920t" if CPU_ARM920T
291	default "arm926ejs" if CPU_ARM926EJS
292	default "arm946es" if CPU_ARM946ES
293	default "arm1136" if CPU_ARM1136
294	default "arm1176" if CPU_ARM1176
295	default "armv7" if CPU_V7A
296	default "armv7" if CPU_V7R
297	default "armv7m" if CPU_V7M
298	default "pxa" if CPU_PXA
299	default "sa1100" if CPU_SA1100
300	default "armv8" if ARM64
301
302config SYS_ARM_ARCH
303	int
304	default 4 if CPU_ARM720T
305	default 4 if CPU_ARM920T
306	default 5 if CPU_ARM926EJS
307	default 5 if CPU_ARM946ES
308	default 6 if CPU_ARM1136
309	default 6 if CPU_ARM1176
310	default 7 if CPU_V7A
311	default 7 if CPU_V7M
312	default 7 if CPU_V7R
313	default 5 if CPU_PXA
314	default 4 if CPU_SA1100
315	default 8 if ARM64
316
317config SYS_CACHE_SHIFT_5
318	bool
319
320config SYS_CACHE_SHIFT_6
321	bool
322
323config SYS_CACHE_SHIFT_7
324	bool
325
326config SYS_CACHELINE_SIZE
327	int
328	default 128 if SYS_CACHE_SHIFT_7
329	default 64 if SYS_CACHE_SHIFT_6
330	default 32 if SYS_CACHE_SHIFT_5
331
332config ARCH_CPU_INIT
333	bool "Enable ARCH_CPU_INIT"
334	help
335	  Some architectures require a call to arch_cpu_init().
336	  Say Y here to enable it
337
338config SYS_ARCH_TIMER
339	bool "ARM Generic Timer support"
340	depends on CPU_V7A || ARM64
341	default y if ARM64
342	help
343	  The ARM Generic Timer (aka arch-timer) provides an architected
344	  interface to a timer source on an SoC.
345	  It is mandatory for ARMv8 implementation and widely available
346	  on ARMv7 systems.
347
348config ARM_SMCCC
349	bool "Support for ARM SMC Calling Convention (SMCCC)"
350	depends on CPU_V7A || ARM64
351	select ARM_PSCI_FW
352	help
353	  Say Y here if you want to enable ARM SMC Calling Convention.
354	  This should be enabled if U-Boot needs to communicate with system
355	  firmware (for example, PSCI) according to SMCCC.
356
357config SEMIHOSTING
358	bool "support boot from semihosting"
359	help
360	  In emulated environments, semihosting is a way for
361	  the hosted environment to call out to the emulator to
362	  retrieve files from the host machine.
363
364config SYS_THUMB_BUILD
365	bool "Build U-Boot using the Thumb instruction set"
366	depends on !ARM64
367	help
368	   Use this flag to build U-Boot using the Thumb instruction set for
369	   ARM architectures. Thumb instruction set provides better code
370	   density. For ARM architectures that support Thumb2 this flag will
371	   result in Thumb2 code generated by GCC.
372
373config SPL_SYS_THUMB_BUILD
374	bool "Build SPL using the Thumb instruction set"
375	default y if SYS_THUMB_BUILD
376	depends on !ARM64 && SPL
377	help
378	   Use this flag to build SPL using the Thumb instruction set for
379	   ARM architectures. Thumb instruction set provides better code
380	   density. For ARM architectures that support Thumb2 this flag will
381	   result in Thumb2 code generated by GCC.
382
383config TPL_SYS_THUMB_BUILD
384	bool "Build TPL using the Thumb instruction set"
385	default y if SYS_THUMB_BUILD
386	depends on TPL && !ARM64
387	help
388	   Use this flag to build TPL using the Thumb instruction set for
389	   ARM architectures. Thumb instruction set provides better code
390	   density. For ARM architectures that support Thumb2 this flag will
391	   result in Thumb2 code generated by GCC.
392
393
394config SYS_L2CACHE_OFF
395	bool "L2cache off"
396	help
397	  If SoC does not support L2CACHE or one does not want to enable
398	  L2CACHE, choose this option.
399
400config ENABLE_ARM_SOC_BOOT0_HOOK
401	bool "prepare BOOT0 header"
402	help
403	  If the SoC's BOOT0 requires a header area filled with (magic)
404	  values, then choose this option, and create a file included as
405	  <asm/arch/boot0.h> which contains the required assembler code.
406
407config ARM_CORTEX_CPU_IS_UP
408	bool
409	default n
410
411config USE_ARCH_MEMCPY
412	bool "Use an assembly optimized implementation of memcpy"
413	default y
414	depends on !ARM64
415	help
416	  Enable the generation of an optimized version of memcpy.
417	  Such an implementation may be faster under some conditions
418	  but may increase the binary size.
419
420config SPL_USE_ARCH_MEMCPY
421	bool "Use an assembly optimized implementation of memcpy for SPL"
422	default y if USE_ARCH_MEMCPY
423	depends on !ARM64 && SPL
424	help
425	  Enable the generation of an optimized version of memcpy.
426	  Such an implementation may be faster under some conditions
427	  but may increase the binary size.
428
429config TPL_USE_ARCH_MEMCPY
430	bool "Use an assembly optimized implementation of memcpy for TPL"
431	default y if USE_ARCH_MEMCPY
432	depends on !ARM64 && TPL
433	help
434	  Enable the generation of an optimized version of memcpy.
435	  Such an implementation may be faster under some conditions
436	  but may increase the binary size.
437
438config USE_ARCH_MEMSET
439	bool "Use an assembly optimized implementation of memset"
440	default y
441	depends on !ARM64
442	help
443	  Enable the generation of an optimized version of memset.
444	  Such an implementation may be faster under some conditions
445	  but may increase the binary size.
446
447config SPL_USE_ARCH_MEMSET
448	bool "Use an assembly optimized implementation of memset for SPL"
449	default y if USE_ARCH_MEMSET
450	depends on !ARM64 && SPL
451	help
452	  Enable the generation of an optimized version of memset.
453	  Such an implementation may be faster under some conditions
454	  but may increase the binary size.
455
456config TPL_USE_ARCH_MEMSET
457	bool "Use an assembly optimized implementation of memset for TPL"
458	default y if USE_ARCH_MEMSET
459	depends on !ARM64 && TPL
460	help
461	  Enable the generation of an optimized version of memset.
462	  Such an implementation may be faster under some conditions
463	  but may increase the binary size.
464
465config SET_STACK_SIZE
466	bool "Enable an option to set max stack size that can be used"
467	default y if ARCH_VERSAL || ARCH_ZYNQMP
468	help
469	  This will enable an option to set max stack size that can be
470	  used by U-Boot.
471
472config STACK_SIZE
473	hex "Define max stack size that can be used by U-Boot"
474	depends on SET_STACK_SIZE
475	default 0x4000000 if ARCH_VERSAL || ARCH_ZYNQMP
476	help
477	  Define Max stack size that can be used by U-Boot so that the
478	  initrd_high will be calculated as base stack pointer minus this
479	  stack size.
480
481config ARM64_SUPPORT_AARCH32
482	bool "ARM64 system support AArch32 execution state"
483	depends on ARM64
484	default y if !TARGET_THUNDERX_88XX
485	help
486	  This ARM64 system supports AArch32 execution state.
487
488choice
489	prompt "Target select"
490	default TARGET_HIKEY
491
492config ARCH_AT91
493	bool "Atmel AT91"
494	select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
495
496config TARGET_EDB93XX
497	bool "Support edb93xx"
498	select CPU_ARM920T
499	select PL010_SERIAL
500
501config TARGET_ASPENITE
502	bool "Support aspenite"
503	select CPU_ARM926EJS
504
505config TARGET_GPLUGD
506	bool "Support gplugd"
507	select CPU_ARM926EJS
508
509config ARCH_DAVINCI
510	bool "TI DaVinci"
511	select CPU_ARM926EJS
512	imply CMD_SAVES
513	help
514	  Support for TI's DaVinci platform.
515
516config KIRKWOOD
517	bool "Marvell Kirkwood"
518	select ARCH_MISC_INIT
519	select BOARD_EARLY_INIT_F
520	select CPU_ARM926EJS
521
522config ARCH_MVEBU
523	bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
524	select DM
525	select DM_ETH
526	select DM_SERIAL
527	select DM_SPI
528	select DM_SPI_FLASH
529	select OF_CONTROL
530	select OF_SEPARATE
531	select SPI
532	imply CMD_DM
533
534config TARGET_APF27
535	bool "Support apf27"
536	select CPU_ARM926EJS
537	select SUPPORT_SPL
538
539config ORION5X
540	bool "Marvell Orion"
541	select CPU_ARM926EJS
542
543config TARGET_SPEAR300
544	bool "Support spear300"
545	select BOARD_EARLY_INIT_F
546	select CPU_ARM926EJS
547	select PL011_SERIAL
548	imply CMD_SAVES
549
550config TARGET_SPEAR310
551	bool "Support spear310"
552	select BOARD_EARLY_INIT_F
553	select CPU_ARM926EJS
554	select PL011_SERIAL
555	imply CMD_SAVES
556
557config TARGET_SPEAR320
558	bool "Support spear320"
559	select BOARD_EARLY_INIT_F
560	select CPU_ARM926EJS
561	select PL011_SERIAL
562	imply CMD_SAVES
563
564config TARGET_SPEAR600
565	bool "Support spear600"
566	select BOARD_EARLY_INIT_F
567	select CPU_ARM926EJS
568	select PL011_SERIAL
569	imply CMD_SAVES
570
571config TARGET_STV0991
572	bool "Support stv0991"
573	select CPU_V7A
574	select DM
575	select DM_SERIAL
576	select DM_SPI
577	select DM_SPI_FLASH
578	select PL01X_SERIAL
579	select SPI
580	select SPI_FLASH
581	imply CMD_DM
582
583config TARGET_X600
584	bool "Support x600"
585	select BOARD_LATE_INIT
586	select CPU_ARM926EJS
587	select PL011_SERIAL
588	select SUPPORT_SPL
589
590config TARGET_WOODBURN
591	bool "Support woodburn"
592	select CPU_ARM1136
593
594config TARGET_WOODBURN_SD
595	bool "Support woodburn_sd"
596	select CPU_ARM1136
597	select SUPPORT_SPL
598
599config TARGET_FLEA3
600	bool "Support flea3"
601	select CPU_ARM1136
602
603config TARGET_MX35PDK
604	bool "Support mx35pdk"
605	select BOARD_LATE_INIT
606	select CPU_ARM1136
607
608config ARCH_BCM283X
609	bool "Broadcom BCM283X family"
610	select DM
611	select DM_GPIO
612	select DM_SERIAL
613	select OF_CONTROL
614	select PL01X_SERIAL
615	select SERIAL_SEARCH_ALL
616	imply CMD_DM
617	imply FAT_WRITE
618
619config ARCH_BCM63158
620	bool "Broadcom BCM63158 family"
621	select DM
622	select OF_CONTROL
623	imply CMD_DM
624
625config ARCH_BCM6858
626	bool "Broadcom BCM6858 family"
627	select DM
628	select OF_CONTROL
629	imply CMD_DM
630
631config TARGET_VEXPRESS_CA15_TC2
632	bool "Support vexpress_ca15_tc2"
633	select CPU_V7A
634	select CPU_V7_HAS_NONSEC
635	select CPU_V7_HAS_VIRT
636	select PL011_SERIAL
637
638config ARCH_BCMSTB
639	bool "Broadcom BCM7XXX family"
640	select CPU_V7A
641	select DM
642	select OF_CONTROL
643	select OF_PRIOR_STAGE
644	imply CMD_DM
645	help
646	  This enables support for Broadcom ARM-based set-top box
647	  chipsets, including the 7445 family of chips.
648
649config TARGET_VEXPRESS_CA5X2
650	bool "Support vexpress_ca5x2"
651	select CPU_V7A
652	select PL011_SERIAL
653
654config TARGET_VEXPRESS_CA9X4
655	bool "Support vexpress_ca9x4"
656	select CPU_V7A
657	select PL011_SERIAL
658
659config TARGET_BCM23550_W1D
660	bool "Support bcm23550_w1d"
661	select CPU_V7A
662	imply CRC32_VERIFY
663	imply FAT_WRITE
664
665config TARGET_BCM28155_AP
666	bool "Support bcm28155_ap"
667	select CPU_V7A
668	imply CRC32_VERIFY
669	imply FAT_WRITE
670
671config TARGET_BCMCYGNUS
672	bool "Support bcmcygnus"
673	select CPU_V7A
674	imply BCM_SF2_ETH
675	imply BCM_SF2_ETH_GMAC
676	imply CMD_HASH
677	imply CRC32_VERIFY
678	imply FAT_WRITE
679	imply HASH_VERIFY
680	imply NETDEVICES
681
682config TARGET_BCMNSP
683	bool "Support bcmnsp"
684	select CPU_V7A
685
686config TARGET_BCMNS2
687	bool "Support Broadcom Northstar2"
688	select ARM64
689	help
690	  Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
691	  ARMv8 Cortex-A57 processors targeting a broad range of networking
692	  applications.
693
694config ARCH_EXYNOS
695	bool "Samsung EXYNOS"
696	select DM
697	select DM_GPIO
698	select DM_I2C
699	select DM_KEYBOARD
700	select DM_SERIAL
701	select DM_SPI
702	select DM_SPI_FLASH
703	select SPI
704	imply SYS_THUMB_BUILD
705	imply CMD_DM
706	imply FAT_WRITE
707
708config ARCH_S5PC1XX
709	bool "Samsung S5PC1XX"
710	select CPU_V7A
711	select DM
712	select DM_GPIO
713	select DM_I2C
714	select DM_SERIAL
715	imply CMD_DM
716
717config ARCH_HIGHBANK
718	bool "Calxeda Highbank"
719	select CPU_V7A
720	select PL011_SERIAL
721
722config ARCH_INTEGRATOR
723	bool "ARM Ltd. Integrator family"
724	select DM
725	select DM_SERIAL
726	select PL01X_SERIAL
727	imply CMD_DM
728
729config ARCH_KEYSTONE
730	bool "TI Keystone"
731	select CMD_POWEROFF
732	select CPU_V7A
733	select SUPPORT_SPL
734	select SYS_ARCH_TIMER
735	select SYS_THUMB_BUILD
736	imply CMD_MTDPARTS
737	imply CMD_SAVES
738	imply FIT
739
740config ARCH_K3
741	bool "Texas Instruments' K3 Architecture"
742	select SPL
743	select SUPPORT_SPL
744	select FIT
745
746config ARCH_OMAP2PLUS
747	bool "TI OMAP2+"
748	select CPU_V7A
749	select SPL_BOARD_INIT if SPL
750	select SPL_STACK_R if SPL
751	select SUPPORT_SPL
752	imply FIT
753
754config ARCH_MESON
755	bool "Amlogic Meson"
756	imply DISTRO_DEFAULTS
757	help
758	  Support for the Meson SoC family developed by Amlogic Inc.,
759	  targeted at media players and tablet computers. We currently
760	  support the S905 (GXBaby) 64-bit SoC.
761
762config ARCH_MEDIATEK
763	bool "MediaTek SoCs"
764	select BINMAN
765	select DM
766	select OF_CONTROL
767	select SPL_DM if SPL
768	select SPL_LIBCOMMON_SUPPORT if SPL
769	select SPL_LIBGENERIC_SUPPORT if SPL
770	select SPL_OF_CONTROL if SPL
771	select SUPPORT_SPL
772	help
773	  Support for the MediaTek SoCs family developed by MediaTek Inc.
774	  Please refer to doc/README.mediatek for more information.
775
776config ARCH_LPC32XX
777	bool "NXP LPC32xx platform"
778	select CPU_ARM926EJS
779	select DM
780	select DM_GPIO
781	select DM_SERIAL
782	select SPL_DM if SPL
783	select SUPPORT_SPL
784	imply CMD_DM
785
786config ARCH_IMX8
787	bool "NXP i.MX8 platform"
788	select ARM64
789	select DM
790	select OF_CONTROL
791	select ENABLE_ARM_SOC_BOOT0_HOOK
792
793config ARCH_IMX8M
794	bool "NXP i.MX8M platform"
795	select ARM64
796	select DM
797	select SUPPORT_SPL
798	imply CMD_DM
799
800config ARCH_MX23
801	bool "NXP i.MX23 family"
802	select CPU_ARM926EJS
803	select PL011_SERIAL
804	select SUPPORT_SPL
805
806config ARCH_MX25
807	bool "NXP MX25"
808	select CPU_ARM926EJS
809	imply MXC_GPIO
810
811config ARCH_MX28
812	bool "NXP i.MX28 family"
813	select CPU_ARM926EJS
814	select PL011_SERIAL
815	select SUPPORT_SPL
816
817config ARCH_MX31
818	bool "NXP i.MX31 family"
819	select CPU_ARM1136
820
821config ARCH_MX7ULP
822	bool "NXP MX7ULP"
823	select CPU_V7A
824	select ROM_UNIFIED_SECTIONS
825	imply MXC_GPIO
826
827config ARCH_MX7
828	bool "Freescale MX7"
829	select ARCH_MISC_INIT
830	select BOARD_EARLY_INIT_F
831	select CPU_V7A
832	select SYS_FSL_HAS_SEC if IMX_HAB
833	select SYS_FSL_SEC_COMPAT_4
834	select SYS_FSL_SEC_LE
835	imply MXC_GPIO
836
837config ARCH_MX6
838	bool "Freescale MX6"
839	select CPU_V7A
840	select SYS_FSL_HAS_SEC if IMX_HAB
841	select SYS_FSL_SEC_COMPAT_4
842	select SYS_FSL_SEC_LE
843	select SYS_THUMB_BUILD if SPL
844	imply MXC_GPIO
845
846if ARCH_MX6
847config SPL_LDSCRIPT
848	default "arch/arm/mach-omap2/u-boot-spl.lds"
849endif
850
851config ARCH_MX5
852	bool "Freescale MX5"
853	select BOARD_EARLY_INIT_F
854	select CPU_V7A
855	imply MXC_GPIO
856
857config ARCH_OWL
858	bool "Actions Semi OWL SoCs"
859	select ARM64
860	select DM
861	select DM_SERIAL
862	select OF_CONTROL
863	imply CMD_DM
864
865config ARCH_QEMU
866	bool "QEMU Virtual Platform"
867	select ARCH_SUPPORT_TFABOOT
868	select DM
869	select DM_SERIAL
870	select OF_CONTROL
871	select PL01X_SERIAL
872	imply CMD_DM
873	imply DM_RTC
874	imply RTC_PL031
875
876config ARCH_RMOBILE
877	bool "Renesas ARM SoCs"
878	select BOARD_EARLY_INIT_F if !RZA1
879	select DM
880	select DM_SERIAL
881	imply CMD_DM
882	imply FAT_WRITE
883	imply SYS_THUMB_BUILD
884	imply ARCH_MISC_INIT if DISPLAY_CPUINFO
885
886config TARGET_S32V234EVB
887	bool "Support s32v234evb"
888	select ARM64
889	select SYS_FSL_ERRATUM_ESDHC111
890
891config ARCH_SNAPDRAGON
892	bool "Qualcomm Snapdragon SoCs"
893	select ARM64
894	select DM
895	select DM_GPIO
896	select DM_SERIAL
897	select MSM_SMEM
898	select OF_CONTROL
899	select OF_SEPARATE
900	select SMEM
901	select SPMI
902	imply CMD_DM
903
904config ARCH_SOCFPGA
905	bool "Altera SOCFPGA family"
906	select ARCH_EARLY_INIT_R
907	select ARCH_MISC_INIT if !TARGET_SOCFPGA_ARRIA10
908	select ARM64 if TARGET_SOCFPGA_STRATIX10
909	select CPU_V7A if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
910	select DM
911	select DM_SERIAL
912	select ENABLE_ARM_SOC_BOOT0_HOOK if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
913	select OF_CONTROL
914	select SPL_DM_RESET if DM_RESET
915	select SPL_DM_SERIAL
916	select SPL_LIBCOMMON_SUPPORT
917	select SPL_LIBGENERIC_SUPPORT
918	select SPL_NAND_SUPPORT if SPL_NAND_DENALI
919	select SPL_OF_CONTROL
920	select SPL_SEPARATE_BSS if TARGET_SOCFPGA_STRATIX10
921	select SPL_SERIAL_SUPPORT
922	select SPL_SYSRESET
923	select SPL_WATCHDOG_SUPPORT
924	select SUPPORT_SPL
925	select SYS_NS16550
926	select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
927	select SYSRESET
928	select SYSRESET_SOCFPGA if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
929	select SYSRESET_SOCFPGA_S10 if TARGET_SOCFPGA_STRATIX10
930	imply CMD_DM
931	imply CMD_MTDPARTS
932	imply CRC32_VERIFY
933	imply DM_SPI
934	imply DM_SPI_FLASH
935	imply FAT_WRITE
936	imply SPL
937	imply SPL_DM
938	imply SPL_LIBDISK_SUPPORT
939	imply SPL_MMC_SUPPORT
940	imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
941	imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
942	imply SPL_SPI_FLASH_SUPPORT
943	imply SPL_SPI_SUPPORT
944	imply L2X0_CACHE
945
946config ARCH_SUNXI
947	bool "Support sunxi (Allwinner) SoCs"
948	select BINMAN
949	select CMD_GPIO
950	select CMD_MMC if MMC
951	select CMD_USB if DISTRO_DEFAULTS
952	select CLK
953	select DM
954	select DM_ETH
955	select DM_GPIO
956	select DM_KEYBOARD
957	select DM_MMC if MMC
958	select DM_SCSI if SCSI
959	select DM_SERIAL
960	select DM_USB if DISTRO_DEFAULTS
961	select OF_BOARD_SETUP
962	select OF_CONTROL
963	select OF_SEPARATE
964	select SPECIFY_CONSOLE_INDEX
965	select SPL_STACK_R if SPL
966	select SPL_SYS_MALLOC_SIMPLE if SPL
967	select SPL_SYS_THUMB_BUILD if !ARM64
968	select SUNXI_GPIO
969	select SYS_NS16550
970	select SYS_THUMB_BUILD if !ARM64
971	select USB if DISTRO_DEFAULTS
972	select USB_KEYBOARD if DISTRO_DEFAULTS
973	select USB_STORAGE if DISTRO_DEFAULTS
974	select SPL_USE_TINY_PRINTF
975	imply CMD_DM
976	imply CMD_GPT
977	imply CMD_UBI if MTD_RAW_NAND
978	imply DISTRO_DEFAULTS
979	imply FAT_WRITE
980	imply FIT
981	imply OF_LIBFDT_OVERLAY
982	imply PRE_CONSOLE_BUFFER
983	imply SPL_GPIO_SUPPORT
984	imply SPL_LIBCOMMON_SUPPORT
985	imply SPL_LIBGENERIC_SUPPORT
986	imply SPL_MMC_SUPPORT if MMC
987	imply SPL_POWER_SUPPORT
988	imply SPL_SERIAL_SUPPORT
989	imply USB_GADGET
990
991config ARCH_VERSAL
992	bool "Support Xilinx Versal Platform"
993	select ARM64
994	select CLK
995	select DM
996	select DM_ETH if NET
997	select DM_MMC if MMC
998	select DM_SERIAL
999	select OF_CONTROL
1000	imply BOARD_LATE_INIT
1001
1002config ARCH_VF610
1003	bool "Freescale Vybrid"
1004	select CPU_V7A
1005	select SYS_FSL_ERRATUM_ESDHC111
1006	imply CMD_MTDPARTS
1007	imply MTD_RAW_NAND
1008
1009config ARCH_ZYNQ
1010	bool "Xilinx Zynq based platform"
1011	select CLK
1012	select CLK_ZYNQ
1013	select CPU_V7A
1014	select DM
1015	select DM_ETH if NET
1016	select DM_MMC if MMC
1017	select DM_SERIAL
1018	select DM_SPI
1019	select DM_SPI_FLASH
1020	select DM_USB if USB
1021	select OF_CONTROL
1022	select SPI
1023	select SPL_BOARD_INIT if SPL
1024	select SPL_CLK if SPL
1025	select SPL_DM if SPL
1026	select SPL_OF_CONTROL if SPL
1027	select SPL_SEPARATE_BSS if SPL
1028	select SUPPORT_SPL
1029	imply ARCH_EARLY_INIT_R
1030	imply BOARD_LATE_INIT
1031	imply CMD_CLK
1032	imply CMD_DM
1033	imply CMD_SPL
1034	imply FAT_WRITE
1035
1036config ARCH_ZYNQMP_R5
1037	bool "Xilinx ZynqMP R5 based platform"
1038	select CLK
1039	select CPU_V7R
1040	select DM
1041	select DM_ETH if NET
1042	select DM_MMC if MMC
1043	select DM_SERIAL
1044	select OF_CONTROL
1045	imply CMD_DM
1046	imply DM_USB_GADGET
1047
1048config ARCH_ZYNQMP
1049	bool "Xilinx ZynqMP based platform"
1050	select ARM64
1051	select CLK
1052	select DM
1053	select DM_ETH if NET
1054	select DM_MAILBOX
1055	select DM_MMC if MMC
1056	select DM_SERIAL
1057	select DM_SPI if SPI
1058	select DM_SPI_FLASH if DM_SPI
1059	select DM_USB if USB
1060	select FIRMWARE
1061	select OF_CONTROL
1062	select SPL_BOARD_INIT if SPL
1063	select SPL_CLK if SPL
1064	select SPL_DM_MAILBOX if SPL
1065	select SPL_FIRMWARE if SPL
1066	select SPL_SEPARATE_BSS if SPL
1067	select SUPPORT_SPL
1068	select ZYNQMP_IPI
1069	imply BOARD_LATE_INIT
1070	imply CMD_DM
1071	imply FAT_WRITE
1072	imply MP
1073	imply DM_USB_GADGET
1074
1075config TEGRA
1076	bool "NVIDIA Tegra"
1077	imply DISTRO_DEFAULTS
1078	imply FAT_WRITE
1079
1080config TARGET_VEXPRESS64_AEMV8A
1081	bool "Support vexpress_aemv8a"
1082	select ARM64
1083	select PL01X_SERIAL
1084
1085config TARGET_VEXPRESS64_BASE_FVP
1086	bool "Support Versatile Express ARMv8a FVP BASE model"
1087	select ARM64
1088	select PL01X_SERIAL
1089	select SEMIHOSTING
1090
1091config TARGET_VEXPRESS64_JUNO
1092	bool "Support Versatile Express Juno Development Platform"
1093	select ARM64
1094	select PL01X_SERIAL
1095
1096config TARGET_LS2080A_EMU
1097	bool "Support ls2080a_emu"
1098	select ARCH_LS2080A
1099	select ARCH_MISC_INIT
1100	select ARM64
1101	select ARMV8_MULTIENTRY
1102	select FSL_DDR_SYNC_REFRESH
1103	help
1104	  Support for Freescale LS2080A_EMU platform.
1105	  The LS2080A Development System (EMULATOR) is a pre-silicon
1106	  development platform that supports the QorIQ LS2080A
1107	  Layerscape Architecture processor.
1108
1109config TARGET_LS2080A_SIMU
1110	bool "Support ls2080a_simu"
1111	select ARCH_LS2080A
1112	select ARCH_MISC_INIT
1113	select ARM64
1114	select ARMV8_MULTIENTRY
1115	select BOARD_LATE_INIT
1116	help
1117	  Support for Freescale LS2080A_SIMU platform.
1118	  The LS2080A Development System (QDS) is a pre silicon
1119	  development platform that supports the QorIQ LS2080A
1120	  Layerscape Architecture processor.
1121
1122config TARGET_LS1088AQDS
1123	bool "Support ls1088aqds"
1124	select ARCH_LS1088A
1125	select ARCH_MISC_INIT
1126	select ARM64
1127	select ARMV8_MULTIENTRY
1128	select ARCH_SUPPORT_TFABOOT
1129	select BOARD_LATE_INIT
1130	select SUPPORT_SPL
1131	select FSL_DDR_INTERACTIVE if !SD_BOOT
1132	help
1133	  Support for NXP LS1088AQDS platform.
1134	  The LS1088A Development System (QDS) is a high-performance
1135	  development platform that supports the QorIQ LS1088A
1136	  Layerscape Architecture processor.
1137
1138config TARGET_LS2080AQDS
1139	bool "Support ls2080aqds"
1140	select ARCH_LS2080A
1141	select ARCH_MISC_INIT
1142	select ARM64
1143	select ARMV8_MULTIENTRY
1144	select ARCH_SUPPORT_TFABOOT
1145	select BOARD_LATE_INIT
1146	select SUPPORT_SPL
1147	imply SCSI
1148	imply SCSI_AHCI
1149	select FSL_DDR_BIST
1150	select FSL_DDR_INTERACTIVE if !SPL
1151	help
1152	  Support for Freescale LS2080AQDS platform.
1153	  The LS2080A Development System (QDS) is a high-performance
1154	  development platform that supports the QorIQ LS2080A
1155	  Layerscape Architecture processor.
1156
1157config TARGET_LS2080ARDB
1158	bool "Support ls2080ardb"
1159	select ARCH_LS2080A
1160	select ARCH_MISC_INIT
1161	select ARM64
1162	select ARMV8_MULTIENTRY
1163	select ARCH_SUPPORT_TFABOOT
1164	select BOARD_LATE_INIT
1165	select SUPPORT_SPL
1166	select FSL_DDR_BIST
1167	select FSL_DDR_INTERACTIVE if !SPL
1168	imply SCSI
1169	imply SCSI_AHCI
1170	help
1171	  Support for Freescale LS2080ARDB platform.
1172	  The LS2080A Reference design board (RDB) is a high-performance
1173	  development platform that supports the QorIQ LS2080A
1174	  Layerscape Architecture processor.
1175
1176config TARGET_LS2081ARDB
1177	bool "Support ls2081ardb"
1178	select ARCH_LS2080A
1179	select ARCH_MISC_INIT
1180	select ARM64
1181	select ARMV8_MULTIENTRY
1182	select BOARD_LATE_INIT
1183	select SUPPORT_SPL
1184	help
1185	  Support for Freescale LS2081ARDB platform.
1186	  The LS2081A Reference design board (RDB) is a high-performance
1187	  development platform that supports the QorIQ LS2081A/LS2041A
1188	  Layerscape Architecture processor.
1189
1190config TARGET_LX2160ARDB
1191	bool "Support lx2160ardb"
1192	select ARCH_LX2160A
1193	select ARCH_MISC_INIT
1194	select ARM64
1195	select ARMV8_MULTIENTRY
1196	select ARCH_SUPPORT_TFABOOT
1197	select BOARD_LATE_INIT
1198	help
1199	  Support for NXP LX2160ARDB platform.
1200	  The lx2160ardb (LX2160A Reference design board (RDB)
1201	  is a high-performance development platform that supports the
1202	  QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1203
1204config TARGET_LX2160AQDS
1205	bool "Support lx2160aqds"
1206	select ARCH_LX2160A
1207	select ARCH_MISC_INIT
1208	select ARM64
1209	select ARMV8_MULTIENTRY
1210	select ARCH_SUPPORT_TFABOOT
1211	select BOARD_LATE_INIT
1212	help
1213	  Support for NXP LX2160AQDS platform.
1214	  The lx2160aqds (LX2160A QorIQ Development System (QDS)
1215	  is a high-performance development platform that supports the
1216	  QorIQ LX2160A/LX2120A/LX2080A Layerscape Architecture processor.
1217
1218config TARGET_HIKEY
1219	bool "Support HiKey 96boards Consumer Edition Platform"
1220	select ARM64
1221	select DM
1222	select DM_GPIO
1223	select DM_SERIAL
1224	select OF_CONTROL
1225	select PL01X_SERIAL
1226	select SPECIFY_CONSOLE_INDEX
1227	imply CMD_DM
1228	  help
1229	  Support for HiKey 96boards platform. It features a HI6220
1230	  SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
1231
1232config TARGET_HIKEY960
1233	bool "Support HiKey960 96boards Consumer Edition Platform"
1234	select ARM64
1235	select DM
1236	select DM_SERIAL
1237	select OF_CONTROL
1238	select PL01X_SERIAL
1239	imply CMD_DM
1240	  help
1241	  Support for HiKey960 96boards platform. It features a HI3660
1242	  SoC, with 4xA73 CPU, 4xA53 CPU, MALI-G71 GPU, and 3GB RAM.
1243
1244config TARGET_POPLAR
1245	bool "Support Poplar 96boards Enterprise Edition Platform"
1246	select ARM64
1247	select DM
1248	select DM_SERIAL
1249	select DM_USB
1250	select OF_CONTROL
1251	select PL01X_SERIAL
1252	imply CMD_DM
1253	  help
1254	  Support for Poplar 96boards EE platform. It features a HI3798cv200
1255	  SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
1256	  making it capable of running any commercial set-top solution based on
1257	  Linux or Android.
1258
1259config TARGET_LS1012AQDS
1260	bool "Support ls1012aqds"
1261	select ARCH_LS1012A
1262	select ARM64
1263	select ARCH_SUPPORT_TFABOOT
1264	select BOARD_LATE_INIT
1265	help
1266	  Support for Freescale LS1012AQDS platform.
1267	  The LS1012A Development System (QDS) is a high-performance
1268	  development platform that supports the QorIQ LS1012A
1269	  Layerscape Architecture processor.
1270
1271config TARGET_LS1012ARDB
1272	bool "Support ls1012ardb"
1273	select ARCH_LS1012A
1274	select ARM64
1275	select ARCH_SUPPORT_TFABOOT
1276	select BOARD_LATE_INIT
1277	imply SCSI
1278	imply SCSI_AHCI
1279	help
1280	  Support for Freescale LS1012ARDB platform.
1281	  The LS1012A Reference design board (RDB) is a high-performance
1282	  development platform that supports the QorIQ LS1012A
1283	  Layerscape Architecture processor.
1284
1285config TARGET_LS1012A2G5RDB
1286	bool "Support ls1012a2g5rdb"
1287	select ARCH_LS1012A
1288	select ARM64
1289	select ARCH_SUPPORT_TFABOOT
1290	select BOARD_LATE_INIT
1291	imply SCSI
1292	help
1293	  Support for Freescale LS1012A2G5RDB platform.
1294	  The LS1012A 2G5 Reference design board (RDB) is a high-performance
1295	  development platform that supports the QorIQ LS1012A
1296	  Layerscape Architecture processor.
1297
1298config TARGET_LS1012AFRWY
1299	bool "Support ls1012afrwy"
1300	select ARCH_LS1012A
1301	select ARM64
1302	select ARCH_SUPPORT_TFABOOT
1303	select BOARD_LATE_INIT
1304	imply SCSI
1305	imply SCSI_AHCI
1306	help
1307	 Support for Freescale LS1012AFRWY platform.
1308	 The LS1012A FRWY board (FRWY) is a high-performance
1309	 development platform that supports the QorIQ LS1012A
1310	 Layerscape Architecture processor.
1311
1312config TARGET_LS1012AFRDM
1313	bool "Support ls1012afrdm"
1314	select ARCH_LS1012A
1315	select ARM64
1316	select ARCH_SUPPORT_TFABOOT
1317	help
1318	  Support for Freescale LS1012AFRDM platform.
1319	  The LS1012A Freedom  board (FRDM) is a high-performance
1320	  development platform that supports the QorIQ LS1012A
1321	  Layerscape Architecture processor.
1322
1323config TARGET_LS1028AQDS
1324	bool "Support ls1028aqds"
1325	select ARCH_LS1028A
1326	select ARM64
1327	select ARMV8_MULTIENTRY
1328	select ARCH_SUPPORT_TFABOOT
1329	select BOARD_LATE_INIT
1330	select ARCH_MISC_INIT
1331	help
1332	  Support for Freescale LS1028AQDS platform
1333	  The LS1028A Development System (QDS) is a high-performance
1334	  development platform that supports the QorIQ LS1028A
1335	  Layerscape Architecture processor.
1336
1337config TARGET_LS1028ARDB
1338	bool "Support ls1028ardb"
1339	select ARCH_LS1028A
1340	select ARM64
1341	select ARMV8_MULTIENTRY
1342	select ARCH_SUPPORT_TFABOOT
1343	help
1344	  Support for Freescale LS1028ARDB platform
1345	  The LS1028A Development System (RDB) is a high-performance
1346	  development platform that supports the QorIQ LS1028A
1347	  Layerscape Architecture processor.
1348
1349config TARGET_LS1088ARDB
1350	bool "Support ls1088ardb"
1351	select ARCH_LS1088A
1352	select ARCH_MISC_INIT
1353	select ARM64
1354	select ARMV8_MULTIENTRY
1355	select ARCH_SUPPORT_TFABOOT
1356	select BOARD_LATE_INIT
1357	select SUPPORT_SPL
1358	select FSL_DDR_INTERACTIVE if !SD_BOOT
1359	help
1360	  Support for NXP LS1088ARDB platform.
1361	  The LS1088A Reference design board (RDB) is a high-performance
1362	  development platform that supports the QorIQ LS1088A
1363	  Layerscape Architecture processor.
1364
1365config TARGET_LS1021AQDS
1366	bool "Support ls1021aqds"
1367	select ARCH_LS1021A
1368	select ARCH_SUPPORT_PSCI
1369	select BOARD_EARLY_INIT_F
1370	select BOARD_LATE_INIT
1371	select CPU_V7A
1372	select CPU_V7_HAS_NONSEC
1373	select CPU_V7_HAS_VIRT
1374	select LS1_DEEP_SLEEP
1375	select SUPPORT_SPL
1376	select SYS_FSL_DDR
1377	select FSL_DDR_INTERACTIVE
1378	imply SCSI
1379
1380config TARGET_LS1021ATWR
1381	bool "Support ls1021atwr"
1382	select ARCH_LS1021A
1383	select ARCH_SUPPORT_PSCI
1384	select BOARD_EARLY_INIT_F
1385	select BOARD_LATE_INIT
1386	select CPU_V7A
1387	select CPU_V7_HAS_NONSEC
1388	select CPU_V7_HAS_VIRT
1389	select LS1_DEEP_SLEEP
1390	select SUPPORT_SPL
1391	imply SCSI
1392
1393config TARGET_LS1021ATSN
1394	bool "Support ls1021atsn"
1395	select ARCH_LS1021A
1396	select ARCH_SUPPORT_PSCI
1397	select BOARD_EARLY_INIT_F
1398	select BOARD_LATE_INIT
1399	select CPU_V7A
1400	select CPU_V7_HAS_NONSEC
1401	select CPU_V7_HAS_VIRT
1402	select LS1_DEEP_SLEEP
1403	select SUPPORT_SPL
1404	imply SCSI
1405
1406config TARGET_LS1021AIOT
1407	bool "Support ls1021aiot"
1408	select ARCH_LS1021A
1409	select ARCH_SUPPORT_PSCI
1410	select BOARD_LATE_INIT
1411	select CPU_V7A
1412	select CPU_V7_HAS_NONSEC
1413	select CPU_V7_HAS_VIRT
1414	select SUPPORT_SPL
1415	imply SCSI
1416	help
1417	  Support for Freescale LS1021AIOT platform.
1418	  The LS1021A Freescale board (IOT) is a high-performance
1419	  development platform that supports the QorIQ LS1021A
1420	  Layerscape Architecture processor.
1421
1422config TARGET_LS1043AQDS
1423	bool "Support ls1043aqds"
1424	select ARCH_LS1043A
1425	select ARM64
1426	select ARMV8_MULTIENTRY
1427	select ARCH_SUPPORT_TFABOOT
1428	select BOARD_EARLY_INIT_F
1429	select BOARD_LATE_INIT
1430	select SUPPORT_SPL
1431	select FSL_DDR_INTERACTIVE if !SPL
1432	imply SCSI
1433	imply SCSI_AHCI
1434	help
1435	  Support for Freescale LS1043AQDS platform.
1436
1437config TARGET_LS1043ARDB
1438	bool "Support ls1043ardb"
1439	select ARCH_LS1043A
1440	select ARM64
1441	select ARMV8_MULTIENTRY
1442	select ARCH_SUPPORT_TFABOOT
1443	select BOARD_EARLY_INIT_F
1444	select BOARD_LATE_INIT
1445	select SUPPORT_SPL
1446	help
1447	  Support for Freescale LS1043ARDB platform.
1448
1449config TARGET_LS1046AQDS
1450	bool "Support ls1046aqds"
1451	select ARCH_LS1046A
1452	select ARM64
1453	select ARMV8_MULTIENTRY
1454	select ARCH_SUPPORT_TFABOOT
1455	select BOARD_EARLY_INIT_F
1456	select BOARD_LATE_INIT
1457	select DM_SPI_FLASH if DM_SPI
1458	select SUPPORT_SPL
1459	select FSL_DDR_BIST if !SPL
1460	select FSL_DDR_INTERACTIVE  if !SPL
1461	select FSL_DDR_INTERACTIVE if !SPL
1462	imply SCSI
1463	help
1464	  Support for Freescale LS1046AQDS platform.
1465	  The LS1046A Development System (QDS) is a high-performance
1466	  development platform that supports the QorIQ LS1046A
1467	  Layerscape Architecture processor.
1468
1469config TARGET_LS1046ARDB
1470	bool "Support ls1046ardb"
1471	select ARCH_LS1046A
1472	select ARM64
1473	select ARMV8_MULTIENTRY
1474	select ARCH_SUPPORT_TFABOOT
1475	select BOARD_EARLY_INIT_F
1476	select BOARD_LATE_INIT
1477	select DM_SPI_FLASH if DM_SPI
1478	select POWER_MC34VR500
1479	select SUPPORT_SPL
1480	select FSL_DDR_BIST
1481	select FSL_DDR_INTERACTIVE if !SPL
1482	imply SCSI
1483	help
1484	  Support for Freescale LS1046ARDB platform.
1485	  The LS1046A Reference Design Board (RDB) is a high-performance
1486	  development platform that supports the QorIQ LS1046A
1487	  Layerscape Architecture processor.
1488
1489config TARGET_LS1046AFRWY
1490	bool "Support ls1046afrwy"
1491	select ARCH_LS1046A
1492	select ARM64
1493	select ARMV8_MULTIENTRY
1494	select ARCH_SUPPORT_TFABOOT
1495	select BOARD_EARLY_INIT_F
1496	select BOARD_LATE_INIT
1497	select DM_SPI_FLASH if DM_SPI
1498	imply SCSI
1499	help
1500	  Support for Freescale LS1046AFRWY platform.
1501	  The LS1046A Freeway Board (FRWY) is a high-performance
1502	  development platform that supports the QorIQ LS1046A
1503	  Layerscape Architecture processor.
1504
1505config TARGET_COLIBRI_PXA270
1506	bool "Support colibri_pxa270"
1507	select CPU_PXA
1508
1509config ARCH_UNIPHIER
1510	bool "Socionext UniPhier SoCs"
1511	select BOARD_LATE_INIT
1512	select DM
1513	select DM_GPIO
1514	select DM_I2C
1515	select DM_MMC
1516	select DM_RESET
1517	select DM_SERIAL
1518	select DM_USB
1519	select OF_BOARD_SETUP
1520	select OF_CONTROL
1521	select OF_LIBFDT
1522	select PINCTRL
1523	select SPL_BOARD_INIT if SPL
1524	select SPL_DM if SPL
1525	select SPL_LIBCOMMON_SUPPORT if SPL
1526	select SPL_LIBGENERIC_SUPPORT if SPL
1527	select SPL_OF_CONTROL if SPL
1528	select SPL_PINCTRL if SPL
1529	select SUPPORT_SPL
1530	imply CMD_DM
1531	imply DISTRO_DEFAULTS
1532	imply FAT_WRITE
1533	help
1534	  Support for UniPhier SoC family developed by Socionext Inc.
1535	  (formerly, System LSI Business Division of Panasonic Corporation)
1536
1537config STM32
1538	bool "Support STMicroelectronics STM32 MCU with cortex M"
1539	select CPU_V7M
1540	select DM
1541	select DM_SERIAL
1542	imply CMD_DM
1543
1544config ARCH_STI
1545	bool "Support STMicrolectronics SoCs"
1546	select BLK
1547	select CPU_V7A
1548	select DM
1549	select DM_MMC
1550	select DM_RESET
1551	select DM_SERIAL
1552	imply CMD_DM
1553	help
1554	  Support for STMicroelectronics STiH407/10 SoC family.
1555	  This SoC is used on Linaro 96Board STiH410-B2260
1556
1557config ARCH_STM32MP
1558	bool "Support STMicroelectronics STM32MP Socs with cortex A"
1559	select ARCH_MISC_INIT
1560	select BOARD_LATE_INIT
1561	select CLK
1562	select DM
1563	select DM_GPIO
1564	select DM_RESET
1565	select DM_SERIAL
1566	select MISC
1567	select OF_CONTROL
1568	select OF_LIBFDT
1569	select OF_SYSTEM_SETUP
1570	select PINCTRL
1571	select REGMAP
1572	select SUPPORT_SPL
1573	select SYSCON
1574	select SYSRESET
1575	select SYS_THUMB_BUILD
1576	imply SPL_SYSRESET
1577	imply CMD_DM
1578	imply CMD_POWEROFF
1579	imply OF_LIBFDT_OVERLAY
1580	imply ENV_VARS_UBOOT_RUNTIME_CONFIG
1581	imply USE_PREBOOT
1582	help
1583	  Support for STM32MP SoC family developed by STMicroelectronics,
1584	  MPUs based on ARM cortex A core
1585	  U-BOOT is running in DDR, loaded by the First Stage BootLoader (FSBL).
1586	  FSBL can be TF-A: Trusted Firmware for Cortex A, for trusted boot
1587	  chain.
1588	  SPL is the unsecure FSBL for the basic boot chain.
1589
1590config ARCH_ROCKCHIP
1591	bool "Support Rockchip SoCs"
1592	select BLK
1593	select DM
1594	select DM_GPIO
1595	select DM_I2C
1596	select DM_MMC
1597	select DM_PWM
1598	select DM_REGULATOR
1599	select DM_SERIAL
1600	select DM_SPI
1601	select DM_SPI_FLASH
1602	select DM_USB if USB
1603	select ENABLE_ARM_SOC_BOOT0_HOOK
1604	select OF_CONTROL
1605	select SPI
1606	select SPL_DM if SPL
1607	select SYS_MALLOC_F
1608	select SYS_THUMB_BUILD if !ARM64
1609	imply ADC
1610	imply CMD_DM
1611	imply DEBUG_UART_BOARD_INIT
1612	imply DISTRO_DEFAULTS
1613	imply FAT_WRITE
1614	imply SARADC_ROCKCHIP
1615	imply SPL_SYSRESET
1616	imply SPL_SYS_MALLOC_SIMPLE
1617	imply SYS_NS16550
1618	imply TPL_SYSRESET
1619	imply USB_FUNCTION_FASTBOOT
1620
1621config TARGET_THUNDERX_88XX
1622	bool "Support ThunderX 88xx"
1623	select ARM64
1624	select OF_CONTROL
1625	select PL01X_SERIAL
1626	select SYS_CACHE_SHIFT_7
1627
1628config ARCH_ASPEED
1629	bool "Support Aspeed SoCs"
1630	select DM
1631	select OF_CONTROL
1632	imply CMD_DM
1633
1634config TARGET_DURIAN
1635	bool "Support Phytium Durian Platform"
1636	select ARM64
1637	help
1638	  Support for durian platform.
1639	  It has 2GB Sdram, uart and pcie.
1640
1641endchoice
1642
1643config ARCH_SUPPORT_TFABOOT
1644	bool
1645
1646config TFABOOT
1647	bool "Support for booting from TF-A"
1648	depends on ARCH_SUPPORT_TFABOOT
1649	default n
1650	help
1651	  Enabling this will make a U-Boot binary that is capable of being
1652	  booted via TF-A (Trusted Firmware for Cortex-A).
1653
1654config TI_SECURE_DEVICE
1655	bool "HS Device Type Support"
1656	depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
1657	help
1658	  If a high secure (HS) device type is being used, this config
1659	  must be set. This option impacts various aspects of the
1660	  build system (to create signed boot images that can be
1661	  authenticated) and the code. See the doc/README.ti-secure
1662	  file for further details.
1663
1664if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
1665config ISW_ENTRY_ADDR
1666	hex "Address in memory or XIP address of bootloader entry point"
1667	default 0x402F4000 if AM43XX
1668	default 0x402F0400 if AM33XX
1669	default 0x40301350 if OMAP54XX
1670	help
1671	  After any reset, the boot ROM searches the boot media for a valid
1672	  boot image. For non-XIP devices, the ROM then copies the image into
1673	  internal memory. For all boot modes, after the ROM processes the
1674	  boot image it eventually computes the entry point address depending
1675	  on the device type (secure/non-secure), boot media (xip/non-xip) and
1676	  image headers.
1677endif
1678
1679source "arch/arm/mach-aspeed/Kconfig"
1680
1681source "arch/arm/mach-at91/Kconfig"
1682
1683source "arch/arm/mach-bcm283x/Kconfig"
1684
1685source "arch/arm/mach-bcmstb/Kconfig"
1686
1687source "arch/arm/mach-davinci/Kconfig"
1688
1689source "arch/arm/mach-exynos/Kconfig"
1690
1691source "arch/arm/mach-highbank/Kconfig"
1692
1693source "arch/arm/mach-integrator/Kconfig"
1694
1695source "arch/arm/mach-k3/Kconfig"
1696
1697source "arch/arm/mach-keystone/Kconfig"
1698
1699source "arch/arm/mach-kirkwood/Kconfig"
1700
1701source "arch/arm/cpu/arm926ejs/lpc32xx/Kconfig"
1702
1703source "arch/arm/mach-mvebu/Kconfig"
1704
1705source "arch/arm/cpu/armv7/ls102xa/Kconfig"
1706
1707source "arch/arm/mach-imx/mx2/Kconfig"
1708
1709source "arch/arm/mach-imx/mx3/Kconfig"
1710
1711source "arch/arm/mach-imx/mx5/Kconfig"
1712
1713source "arch/arm/mach-imx/mx6/Kconfig"
1714
1715source "arch/arm/mach-imx/mx7/Kconfig"
1716
1717source "arch/arm/mach-imx/mx7ulp/Kconfig"
1718
1719source "arch/arm/mach-imx/imx8/Kconfig"
1720
1721source "arch/arm/mach-imx/imx8m/Kconfig"
1722
1723source "arch/arm/mach-imx/mxs/Kconfig"
1724
1725source "arch/arm/mach-omap2/Kconfig"
1726
1727source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
1728
1729source "arch/arm/mach-orion5x/Kconfig"
1730
1731source "arch/arm/mach-owl/Kconfig"
1732
1733source "arch/arm/mach-rmobile/Kconfig"
1734
1735source "arch/arm/mach-meson/Kconfig"
1736
1737source "arch/arm/mach-mediatek/Kconfig"
1738
1739source "arch/arm/mach-qemu/Kconfig"
1740
1741source "arch/arm/mach-rockchip/Kconfig"
1742
1743source "arch/arm/mach-s5pc1xx/Kconfig"
1744
1745source "arch/arm/mach-snapdragon/Kconfig"
1746
1747source "arch/arm/mach-socfpga/Kconfig"
1748
1749source "arch/arm/mach-sti/Kconfig"
1750
1751source "arch/arm/mach-stm32/Kconfig"
1752
1753source "arch/arm/mach-stm32mp/Kconfig"
1754
1755source "arch/arm/mach-sunxi/Kconfig"
1756
1757source "arch/arm/mach-tegra/Kconfig"
1758
1759source "arch/arm/mach-uniphier/Kconfig"
1760
1761source "arch/arm/cpu/armv7/vf610/Kconfig"
1762
1763source "arch/arm/mach-zynq/Kconfig"
1764
1765source "arch/arm/mach-zynqmp/Kconfig"
1766
1767source "arch/arm/mach-versal/Kconfig"
1768
1769source "arch/arm/mach-zynqmp-r5/Kconfig"
1770
1771source "arch/arm/cpu/armv7/Kconfig"
1772
1773source "arch/arm/cpu/armv8/Kconfig"
1774
1775source "arch/arm/mach-imx/Kconfig"
1776
1777source "board/bosch/shc/Kconfig"
1778source "board/bosch/guardian/Kconfig"
1779source "board/CarMediaLab/flea3/Kconfig"
1780source "board/Marvell/aspenite/Kconfig"
1781source "board/Marvell/gplugd/Kconfig"
1782source "board/armadeus/apf27/Kconfig"
1783source "board/armltd/vexpress/Kconfig"
1784source "board/armltd/vexpress64/Kconfig"
1785source "board/broadcom/bcm23550_w1d/Kconfig"
1786source "board/broadcom/bcm28155_ap/Kconfig"
1787source "board/broadcom/bcm963158/Kconfig"
1788source "board/broadcom/bcm968580xref/Kconfig"
1789source "board/broadcom/bcmcygnus/Kconfig"
1790source "board/broadcom/bcmnsp/Kconfig"
1791source "board/broadcom/bcmns2/Kconfig"
1792source "board/cavium/thunderx/Kconfig"
1793source "board/cirrus/edb93xx/Kconfig"
1794source "board/eets/pdu001/Kconfig"
1795source "board/emulation/qemu-arm/Kconfig"
1796source "board/freescale/ls2080a/Kconfig"
1797source "board/freescale/ls2080aqds/Kconfig"
1798source "board/freescale/ls2080ardb/Kconfig"
1799source "board/freescale/ls1088a/Kconfig"
1800source "board/freescale/ls1028a/Kconfig"
1801source "board/freescale/ls1021aqds/Kconfig"
1802source "board/freescale/ls1043aqds/Kconfig"
1803source "board/freescale/ls1021atwr/Kconfig"
1804source "board/freescale/ls1021atsn/Kconfig"
1805source "board/freescale/ls1021aiot/Kconfig"
1806source "board/freescale/ls1046aqds/Kconfig"
1807source "board/freescale/ls1043ardb/Kconfig"
1808source "board/freescale/ls1046ardb/Kconfig"
1809source "board/freescale/ls1046afrwy/Kconfig"
1810source "board/freescale/ls1012aqds/Kconfig"
1811source "board/freescale/ls1012ardb/Kconfig"
1812source "board/freescale/ls1012afrdm/Kconfig"
1813source "board/freescale/lx2160a/Kconfig"
1814source "board/freescale/mx35pdk/Kconfig"
1815source "board/freescale/s32v234evb/Kconfig"
1816source "board/grinn/chiliboard/Kconfig"
1817source "board/gumstix/pepper/Kconfig"
1818source "board/hisilicon/hikey/Kconfig"
1819source "board/hisilicon/hikey960/Kconfig"
1820source "board/hisilicon/poplar/Kconfig"
1821source "board/isee/igep003x/Kconfig"
1822source "board/phytec/pcm051/Kconfig"
1823source "board/silica/pengwyn/Kconfig"
1824source "board/spear/spear300/Kconfig"
1825source "board/spear/spear310/Kconfig"
1826source "board/spear/spear320/Kconfig"
1827source "board/spear/spear600/Kconfig"
1828source "board/spear/x600/Kconfig"
1829source "board/st/stv0991/Kconfig"
1830source "board/tcl/sl50/Kconfig"
1831source "board/ucRobotics/bubblegum_96/Kconfig"
1832source "board/birdland/bav335x/Kconfig"
1833source "board/toradex/colibri_pxa270/Kconfig"
1834source "board/variscite/dart_6ul/Kconfig"
1835source "board/vscom/baltos/Kconfig"
1836source "board/woodburn/Kconfig"
1837source "board/xilinx/Kconfig"
1838source "board/xilinx/zynq/Kconfig"
1839source "board/xilinx/zynqmp/Kconfig"
1840source "board/phytium/durian/Kconfig"
1841
1842source "arch/arm/Kconfig.debug"
1843
1844endmenu
1845
1846config SPL_LDSCRIPT
1847	default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
1848	default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
1849	default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
1850
1851
1852