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