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