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