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