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