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