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