ARM: adjust arm-smccc code for use in U-Boot
[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         help
181           Say Y here if you want to enable ARM SMC Calling Convention.
182           This should be enabled if U-Boot needs to communicate with system
183           firmware (for example, PSCI) according to SMCCC.
184
185 config SEMIHOSTING
186         bool "support boot from semihosting"
187         help
188           In emulated environments, semihosting is a way for
189           the hosted environment to call out to the emulator to
190           retrieve files from the host machine.
191
192 config SYS_THUMB_BUILD
193         bool "Build U-Boot using the Thumb instruction set"
194         depends on !ARM64
195         help
196            Use this flag to build U-Boot using the Thumb instruction set for
197            ARM architectures. Thumb instruction set provides better code
198            density. For ARM architectures that support Thumb2 this flag will
199            result in Thumb2 code generated by GCC.
200
201 config SPL_SYS_THUMB_BUILD
202         bool "Build SPL using the Thumb instruction set"
203         default y if SYS_THUMB_BUILD
204         depends on !ARM64
205         help
206            Use this flag to build SPL using the Thumb instruction set for
207            ARM architectures. Thumb instruction set provides better code
208            density. For ARM architectures that support Thumb2 this flag will
209            result in Thumb2 code generated by GCC.
210
211 config SYS_L2CACHE_OFF
212         bool "L2cache off"
213         help
214           If SoC does not support L2CACHE or one do not want to enable
215           L2CACHE, choose this option.
216
217 config ENABLE_ARM_SOC_BOOT0_HOOK
218         bool "prepare BOOT0 header"
219         help
220           If the SoC's BOOT0 requires a header area filled with (magic)
221           values, then choose this option, and create a define called
222           ARM_SOC_BOOT0_HOOK which contains the required assembler
223           preprocessor code.
224
225 config ARM_CORTEX_CPU_IS_UP
226         bool
227         default n
228
229 config USE_ARCH_MEMCPY
230         bool "Use an assembly optimized implementation of memcpy"
231         default y
232         depends on !ARM64
233         help
234           Enable the generation of an optimized version of memcpy.
235           Such implementation may be faster under some conditions
236           but may increase the binary size.
237
238 config SPL_USE_ARCH_MEMCPY
239         bool "Use an assembly optimized implementation of memcpy"
240         default y if USE_ARCH_MEMCPY
241         depends on !ARM64
242         help
243           Enable the generation of an optimized version of memcpy.
244           Such implementation may be faster under some conditions
245           but may increase the binary size.
246
247 config USE_ARCH_MEMSET
248         bool "Use an assembly optimized implementation of memset"
249         default y
250         depends on !ARM64
251         help
252           Enable the generation of an optimized version of memset.
253           Such implementation may be faster under some conditions
254           but may increase the binary size.
255
256 config SPL_USE_ARCH_MEMSET
257         bool "Use an assembly optimized implementation of memset"
258         default y if USE_ARCH_MEMSET
259         depends on !ARM64
260         help
261           Enable the generation of an optimized version of memset.
262           Such implementation may be faster under some conditions
263           but may increase the binary size.
264
265 config ARCH_OMAP2
266         bool
267         select CPU_V7
268         select SUPPORT_SPL
269
270 config ARM64_SUPPORT_AARCH32
271         bool "ARM64 system support AArch32 execution state"
272         default y if ARM64 && !TARGET_THUNDERX_88XX
273         help
274           This ARM64 system supports AArch32 execution state.
275
276 choice
277         prompt "Target select"
278         default TARGET_HIKEY
279
280 config ARCH_AT91
281         bool "Atmel AT91"
282
283 config TARGET_EDB93XX
284         bool "Support edb93xx"
285         select CPU_ARM920T
286
287 config TARGET_ASPENITE
288         bool "Support aspenite"
289         select CPU_ARM926EJS
290
291 config TARGET_GPLUGD
292         bool "Support gplugd"
293         select CPU_ARM926EJS
294
295 config ARCH_DAVINCI
296         bool "TI DaVinci"
297         select CPU_ARM926EJS
298         help
299           Support for TI's DaVinci platform.
300
301 config KIRKWOOD
302         bool "Marvell Kirkwood"
303         select CPU_ARM926EJS
304         select BOARD_EARLY_INIT_F
305         select ARCH_MISC_INIT
306
307 config ARCH_MVEBU
308         bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
309         select OF_CONTROL
310         select OF_SEPARATE
311         select DM
312         select DM_ETH
313         select DM_SERIAL
314         select DM_SPI
315         select DM_SPI_FLASH
316
317 config TARGET_DEVKIT3250
318         bool "Support devkit3250"
319         select CPU_ARM926EJS
320         select SUPPORT_SPL
321
322 config TARGET_WORK_92105
323         bool "Support work_92105"
324         select CPU_ARM926EJS
325         select SUPPORT_SPL
326
327 config TARGET_MX25PDK
328         bool "Support mx25pdk"
329         select BOARD_LATE_INIT
330         select CPU_ARM926EJS
331         select BOARD_EARLY_INIT_F
332
333 config TARGET_ZMX25
334         bool "Support zmx25"
335         select BOARD_LATE_INIT
336         select CPU_ARM926EJS
337
338 config TARGET_APF27
339         bool "Support apf27"
340         select CPU_ARM926EJS
341         select SUPPORT_SPL
342
343 config TARGET_APX4DEVKIT
344         bool "Support apx4devkit"
345         select CPU_ARM926EJS
346         select SUPPORT_SPL
347
348 config TARGET_XFI3
349         bool "Support xfi3"
350         select CPU_ARM926EJS
351         select SUPPORT_SPL
352
353 config TARGET_M28EVK
354         bool "Support m28evk"
355         select CPU_ARM926EJS
356         select SUPPORT_SPL
357
358 config TARGET_MX23EVK
359         bool "Support mx23evk"
360         select CPU_ARM926EJS
361         select SUPPORT_SPL
362         select BOARD_EARLY_INIT_F
363
364 config TARGET_MX28EVK
365         bool "Support mx28evk"
366         select CPU_ARM926EJS
367         select SUPPORT_SPL
368         select BOARD_EARLY_INIT_F
369
370 config TARGET_MX23_OLINUXINO
371         bool "Support mx23_olinuxino"
372         select CPU_ARM926EJS
373         select SUPPORT_SPL
374         select BOARD_EARLY_INIT_F
375
376 config TARGET_BG0900
377         bool "Support bg0900"
378         select CPU_ARM926EJS
379         select SUPPORT_SPL
380
381 config TARGET_SANSA_FUZE_PLUS
382         bool "Support sansa_fuze_plus"
383         select CPU_ARM926EJS
384         select SUPPORT_SPL
385
386 config TARGET_SC_SPS_1
387         bool "Support sc_sps_1"
388         select CPU_ARM926EJS
389         select SUPPORT_SPL
390
391 config ORION5X
392         bool "Marvell Orion"
393         select CPU_ARM926EJS
394
395 config TARGET_SPEAR300
396         bool "Support spear300"
397         select CPU_ARM926EJS
398         select BOARD_EARLY_INIT_F
399
400 config TARGET_SPEAR310
401         bool "Support spear310"
402         select CPU_ARM926EJS
403         select BOARD_EARLY_INIT_F
404
405 config TARGET_SPEAR320
406         bool "Support spear320"
407         select CPU_ARM926EJS
408         select BOARD_EARLY_INIT_F
409
410 config TARGET_SPEAR600
411         bool "Support spear600"
412         select CPU_ARM926EJS
413         select BOARD_EARLY_INIT_F
414
415 config TARGET_STV0991
416         bool "Support stv0991"
417         select CPU_V7
418         select DM
419         select DM_SERIAL
420         select DM_SPI
421         select DM_SPI_FLASH
422         select SPI_FLASH
423
424 config TARGET_X600
425         bool "Support x600"
426         select BOARD_LATE_INIT
427         select CPU_ARM926EJS
428         select SUPPORT_SPL
429
430 config TARGET_IMX31_PHYCORE
431         bool "Support imx31_phycore_eet"
432         select CPU_ARM1136
433         select BOARD_EARLY_INIT_F
434
435 config TARGET_IMX31_PHYCORE_EET
436         bool "Support imx31_phycore_eet"
437         select BOARD_LATE_INIT
438         select CPU_ARM1136
439         select BOARD_EARLY_INIT_F
440
441 config TARGET_MX31ADS
442         bool "Support mx31ads"
443         select CPU_ARM1136
444         select BOARD_EARLY_INIT_F
445
446 config TARGET_MX31PDK
447         bool "Support mx31pdk"
448         select BOARD_LATE_INIT
449         select CPU_ARM1136
450         select SUPPORT_SPL
451         select BOARD_EARLY_INIT_F
452
453 config TARGET_WOODBURN
454         bool "Support woodburn"
455         select CPU_ARM1136
456
457 config TARGET_WOODBURN_SD
458         bool "Support woodburn_sd"
459         select CPU_ARM1136
460         select SUPPORT_SPL
461
462 config TARGET_FLEA3
463         bool "Support flea3"
464         select CPU_ARM1136
465
466 config TARGET_MX35PDK
467         bool "Support mx35pdk"
468         select BOARD_LATE_INIT
469         select CPU_ARM1136
470
471 config ARCH_BCM283X
472         bool "Broadcom BCM283X family"
473         select DM
474         select DM_SERIAL
475         select DM_GPIO
476         select OF_CONTROL
477
478 config TARGET_VEXPRESS_CA15_TC2
479         bool "Support vexpress_ca15_tc2"
480         select CPU_V7
481         select CPU_V7_HAS_NONSEC
482         select CPU_V7_HAS_VIRT
483
484 config TARGET_VEXPRESS_CA5X2
485         bool "Support vexpress_ca5x2"
486         select CPU_V7
487
488 config TARGET_VEXPRESS_CA9X4
489         bool "Support vexpress_ca9x4"
490         select CPU_V7
491
492 config TARGET_BRXRE1
493         bool "Support BRXRE1"
494         select ARCH_OMAP2
495         select BOARD_LATE_INIT
496
497 config TARGET_BRPPT1
498         bool "Support BRPPT1"
499         select ARCH_OMAP2
500         select BOARD_LATE_INIT
501
502 config TARGET_DRACO
503         bool "Support draco"
504         select ARCH_OMAP2
505         select BOARD_LATE_INIT
506         select DM
507         select DM_SERIAL
508         select DM_GPIO
509
510 config TARGET_THUBAN
511         bool "Support thuban"
512         select ARCH_OMAP2
513         select BOARD_LATE_INIT
514         select DM
515         select DM_SERIAL
516         select DM_GPIO
517
518 config TARGET_RASTABAN
519         bool "Support rastaban"
520         select ARCH_OMAP2
521         select BOARD_LATE_INIT
522         select DM
523         select DM_SERIAL
524         select DM_GPIO
525
526 config TARGET_ETAMIN
527         bool "Support etamin"
528         select ARCH_OMAP2
529         select BOARD_LATE_INIT
530         select DM
531         select DM_SERIAL
532         select DM_GPIO
533
534 config TARGET_PXM2
535         bool "Support pxm2"
536         select ARCH_OMAP2
537         select BOARD_LATE_INIT
538         select DM
539         select DM_SERIAL
540         select DM_GPIO
541
542 config TARGET_RUT
543         bool "Support rut"
544         select ARCH_OMAP2
545         select BOARD_LATE_INIT
546         select DM
547         select DM_SERIAL
548         select DM_GPIO
549
550 config TARGET_TI814X_EVM
551         bool "Support ti814x_evm"
552         select ARCH_OMAP2
553
554 config TARGET_TI816X_EVM
555         bool "Support ti816x_evm"
556         select ARCH_OMAP2
557
558 config TARGET_BCM23550_W1D
559         bool "Support bcm23550_w1d"
560         select CPU_V7
561
562 config TARGET_BCM28155_AP
563         bool "Support bcm28155_ap"
564         select CPU_V7
565
566 config TARGET_BCMCYGNUS
567         bool "Support bcmcygnus"
568         select CPU_V7
569
570 config TARGET_BCMNSP
571         bool "Support bcmnsp"
572         select CPU_V7
573
574 config TARGET_BCMNS2
575         bool "Support Broadcom Northstar2"
576         select ARM64
577         help
578           Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
579           ARMv8 Cortex-A57 processors targeting a broad range of networking
580           applications
581
582 config ARCH_EXYNOS
583         bool "Samsung EXYNOS"
584         select DM
585         select DM_I2C
586         select DM_SPI_FLASH
587         select DM_SERIAL
588         select DM_SPI
589         select DM_GPIO
590         select DM_KEYBOARD
591
592 config ARCH_S5PC1XX
593         bool "Samsung S5PC1XX"
594         select CPU_V7
595         select DM
596         select DM_SERIAL
597         select DM_GPIO
598         select DM_I2C
599
600 config ARCH_HIGHBANK
601         bool "Calxeda Highbank"
602         select CPU_V7
603
604 config ARCH_INTEGRATOR
605         bool "ARM Ltd. Integrator family"
606         select DM
607         select DM_SERIAL
608
609 config ARCH_KEYSTONE
610         bool "TI Keystone"
611         select CPU_V7
612         select SUPPORT_SPL
613         select SYS_THUMB_BUILD
614         select CMD_POWEROFF
615
616 config ARCH_MESON
617         bool "Amlogic Meson"
618         help
619           Support for the Meson SoC family developed by Amlogic Inc.,
620           targeted at media players and tablet computers. We currently
621           support the S905 (GXBaby) 64-bit SoC.
622
623 config ARCH_MX7ULP
624         bool "NXP MX7ULP"
625         select CPU_V7
626         select ROM_UNIFIED_SECTIONS
627
628 config ARCH_MX7
629         bool "Freescale MX7"
630         select CPU_V7
631         select SYS_FSL_HAS_SEC if SECURE_BOOT
632         select SYS_FSL_SEC_COMPAT_4
633         select SYS_FSL_SEC_LE
634         select BOARD_EARLY_INIT_F
635         select ARCH_MISC_INIT
636
637 config ARCH_MX6
638         bool "Freescale MX6"
639         select CPU_V7
640         select SYS_FSL_HAS_SEC if SECURE_BOOT
641         select SYS_FSL_SEC_COMPAT_4
642         select SYS_FSL_SEC_LE
643         select SYS_THUMB_BUILD if SPL
644
645 config ARCH_MX5
646         bool "Freescale MX5"
647         select CPU_V7
648         select BOARD_EARLY_INIT_F
649
650 config TARGET_M53EVK
651         bool "Support m53evk"
652         select CPU_V7
653         select SUPPORT_SPL
654         select BOARD_EARLY_INIT_F
655
656 config TARGET_MX51EVK
657         bool "Support mx51evk"
658         select BOARD_LATE_INIT
659         select CPU_V7
660         select BOARD_EARLY_INIT_F
661
662 config TARGET_MX53ARD
663         bool "Support mx53ard"
664         select CPU_V7
665         select BOARD_EARLY_INIT_F
666
667 config TARGET_MX53EVK
668         bool "Support mx53evk"
669         select BOARD_LATE_INIT
670         select CPU_V7
671         select BOARD_EARLY_INIT_F
672
673 config TARGET_MX53LOCO
674         bool "Support mx53loco"
675         select BOARD_LATE_INIT
676         select CPU_V7
677         select BOARD_EARLY_INIT_F
678
679 config TARGET_MX53SMD
680         bool "Support mx53smd"
681         select CPU_V7
682         select BOARD_EARLY_INIT_F
683
684 config OMAP34XX
685         bool "OMAP34XX SoC"
686         select ARCH_OMAP2
687         select ARM_ERRATA_430973
688         select ARM_ERRATA_454179
689         select ARM_ERRATA_621766
690         select ARM_ERRATA_725233
691         select USE_TINY_PRINTF
692         imply SPL_EXT_SUPPORT
693         imply SPL_FAT_SUPPORT
694         imply SPL_GPIO_SUPPORT
695         imply SPL_I2C_SUPPORT
696         imply SPL_LIBCOMMON_SUPPORT
697         imply SPL_LIBDISK_SUPPORT
698         imply SPL_LIBGENERIC_SUPPORT
699         imply SPL_MMC_SUPPORT
700         imply SPL_NAND_SUPPORT
701         imply SPL_POWER_SUPPORT
702         imply SPL_SERIAL_SUPPORT
703         imply SYS_THUMB_BUILD
704
705 config OMAP44XX
706         bool "OMAP44XX SoC"
707         select ARCH_OMAP2
708         select USE_TINY_PRINTF
709         imply SPL_DISPLAY_PRINT
710         imply SPL_EXT_SUPPORT
711         imply SPL_FAT_SUPPORT
712         imply SPL_GPIO_SUPPORT
713         imply SPL_I2C_SUPPORT
714         imply SPL_LIBCOMMON_SUPPORT
715         imply SPL_LIBDISK_SUPPORT
716         imply SPL_LIBGENERIC_SUPPORT
717         imply SPL_MMC_SUPPORT
718         imply SPL_NAND_SUPPORT
719         imply SPL_POWER_SUPPORT
720         imply SPL_SERIAL_SUPPORT
721         imply SYS_THUMB_BUILD
722
723 config OMAP54XX
724         bool "OMAP54XX SoC"
725         select ARCH_OMAP2
726         select ARM_ERRATA_798870
727         select SYS_THUMB_BUILD
728         imply SPL_DISPLAY_PRINT
729         imply SPL_ENV_SUPPORT
730         imply SPL_EXT_SUPPORT
731         imply SPL_FAT_SUPPORT
732         imply SPL_GPIO_SUPPORT
733         imply SPL_I2C_SUPPORT
734         imply SPL_LIBCOMMON_SUPPORT
735         imply SPL_LIBDISK_SUPPORT
736         imply SPL_LIBGENERIC_SUPPORT
737         imply SPL_MMC_SUPPORT
738         imply SPL_NAND_SUPPORT
739         imply SPL_POWER_SUPPORT
740         imply SPL_SERIAL_SUPPORT
741
742 config AM43XX
743         bool "AM43XX SoC"
744         select ARCH_OMAP2
745         imply SPL_DM
746         imply SPL_DM_SEQ_ALIAS
747         imply SPL_OF_CONTROL
748         imply SPL_OF_TRANSLATE
749         imply SPL_SEPARATE_BSS
750         imply SPL_SYS_MALLOC_SIMPLE
751         imply SYS_THUMB_BUILD
752         help
753           Support for AM43xx SOC from Texas Instruments.
754           The AM43xx high performance SOC features a Cortex-A9
755           ARM core, a quad core PRU-ICSS for industrial Ethernet
756           protocols, dual camera support, optional 3D graphics
757           and an optional customer programmable secure boot.
758
759 config AM33XX
760         bool "AM33XX SoC"
761         select ARCH_OMAP2
762         imply SYS_THUMB_BUILD
763         help
764           Support for AM335x SOC from Texas Instruments.
765           The AM335x high performance SOC features a Cortex-A8
766           ARM core, a dual core PRU-ICSS for industrial Ethernet
767           protocols, optional 3D graphics and an optional customer
768           programmable secure boot.
769
770 config ARCH_RMOBILE
771         bool "Renesas ARM SoCs"
772         select DM
773         select DM_SERIAL
774         select BOARD_EARLY_INIT_F
775         imply SYS_THUMB_BUILD
776
777 config TARGET_S32V234EVB
778         bool "Support s32v234evb"
779         select ARM64
780         select SYS_FSL_ERRATUM_ESDHC111
781
782 config ARCH_SNAPDRAGON
783         bool "Qualcomm Snapdragon SoCs"
784         select ARM64
785         select DM
786         select DM_GPIO
787         select DM_SERIAL
788         select SPMI
789         select OF_CONTROL
790         select OF_SEPARATE
791
792 config ARCH_SOCFPGA
793         bool "Altera SOCFPGA family"
794         select CPU_V7
795         select SUPPORT_SPL
796         select OF_CONTROL
797         select SPL_OF_CONTROL
798         select DM
799         select DM_SPI_FLASH
800         select DM_SPI
801         select ENABLE_ARM_SOC_BOOT0_HOOK
802         select ARCH_EARLY_INIT_R
803         select ARCH_MISC_INIT
804         select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
805         select SYS_THUMB_BUILD
806
807 config TARGET_CM_T43
808         bool "Support cm_t43"
809         select ARCH_OMAP2
810
811 config ARCH_SUNXI
812         bool "Support sunxi (Allwinner) SoCs"
813         select CMD_GPIO
814         select CMD_MMC if MMC
815         select CMD_USB if DISTRO_DEFAULTS
816         select DM
817         select DM_ETH
818         select DM_GPIO
819         select DM_KEYBOARD
820         select DM_SERIAL
821         select DM_USB if DISTRO_DEFAULTS
822         select OF_BOARD_SETUP
823         select OF_CONTROL
824         select OF_SEPARATE
825         select SPL_STACK_R if SUPPORT_SPL
826         select SPL_SYS_MALLOC_SIMPLE if SUPPORT_SPL
827         select SYS_NS16550
828         select SPL_SYS_THUMB_BUILD if !ARM64
829         select USB if DISTRO_DEFAULTS
830         select USB_STORAGE if DISTRO_DEFAULTS
831         select USB_KEYBOARD if DISTRO_DEFAULTS
832         select USE_TINY_PRINTF
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-tegra/Kconfig"
1238
1239 source "arch/arm/mach-uniphier/Kconfig"
1240
1241 source "arch/arm/cpu/armv7/vf610/Kconfig"
1242
1243 source "arch/arm/mach-zynq/Kconfig"
1244
1245 source "arch/arm/cpu/armv7/Kconfig"
1246
1247 source "arch/arm/cpu/armv8/zynqmp/Kconfig"
1248
1249 source "arch/arm/cpu/armv8/Kconfig"
1250
1251 source "arch/arm/imx-common/Kconfig"
1252
1253 source "board/aries/m28evk/Kconfig"
1254 source "board/aries/m53evk/Kconfig"
1255 source "board/bosch/shc/Kconfig"
1256 source "board/BuR/brxre1/Kconfig"
1257 source "board/BuR/brppt1/Kconfig"
1258 source "board/CarMediaLab/flea3/Kconfig"
1259 source "board/Marvell/aspenite/Kconfig"
1260 source "board/Marvell/gplugd/Kconfig"
1261 source "board/armadeus/apf27/Kconfig"
1262 source "board/armltd/vexpress/Kconfig"
1263 source "board/armltd/vexpress64/Kconfig"
1264 source "board/bluegiga/apx4devkit/Kconfig"
1265 source "board/broadcom/bcm23550_w1d/Kconfig"
1266 source "board/broadcom/bcm28155_ap/Kconfig"
1267 source "board/broadcom/bcmcygnus/Kconfig"
1268 source "board/broadcom/bcmnsp/Kconfig"
1269 source "board/broadcom/bcmns2/Kconfig"
1270 source "board/cavium/thunderx/Kconfig"
1271 source "board/cirrus/edb93xx/Kconfig"
1272 source "board/compulab/cm_t335/Kconfig"
1273 source "board/compulab/cm_t43/Kconfig"
1274 source "board/creative/xfi3/Kconfig"
1275 source "board/freescale/ls2080a/Kconfig"
1276 source "board/freescale/ls2080aqds/Kconfig"
1277 source "board/freescale/ls2080ardb/Kconfig"
1278 source "board/freescale/ls1021aqds/Kconfig"
1279 source "board/freescale/ls1043aqds/Kconfig"
1280 source "board/freescale/ls1021atwr/Kconfig"
1281 source "board/freescale/ls1021aiot/Kconfig"
1282 source "board/freescale/ls1046aqds/Kconfig"
1283 source "board/freescale/ls1043ardb/Kconfig"
1284 source "board/freescale/ls1046ardb/Kconfig"
1285 source "board/freescale/ls1012aqds/Kconfig"
1286 source "board/freescale/ls1012ardb/Kconfig"
1287 source "board/freescale/ls1012afrdm/Kconfig"
1288 source "board/freescale/mx23evk/Kconfig"
1289 source "board/freescale/mx25pdk/Kconfig"
1290 source "board/freescale/mx28evk/Kconfig"
1291 source "board/freescale/mx31ads/Kconfig"
1292 source "board/freescale/mx31pdk/Kconfig"
1293 source "board/freescale/mx35pdk/Kconfig"
1294 source "board/freescale/mx51evk/Kconfig"
1295 source "board/freescale/mx53ard/Kconfig"
1296 source "board/freescale/mx53evk/Kconfig"
1297 source "board/freescale/mx53loco/Kconfig"
1298 source "board/freescale/mx53smd/Kconfig"
1299 source "board/freescale/s32v234evb/Kconfig"
1300 source "board/gdsys/a38x/Kconfig"
1301 source "board/grinn/chiliboard/Kconfig"
1302 source "board/gumstix/pepper/Kconfig"
1303 source "board/h2200/Kconfig"
1304 source "board/hisilicon/hikey/Kconfig"
1305 source "board/imx31_phycore/Kconfig"
1306 source "board/isee/igep0033/Kconfig"
1307 source "board/olimex/mx23_olinuxino/Kconfig"
1308 source "board/phytec/pcm051/Kconfig"
1309 source "board/ppcag/bg0900/Kconfig"
1310 source "board/sandisk/sansa_fuze_plus/Kconfig"
1311 source "board/schulercontrol/sc_sps_1/Kconfig"
1312 source "board/siemens/draco/Kconfig"
1313 source "board/siemens/pxm2/Kconfig"
1314 source "board/siemens/rut/Kconfig"
1315 source "board/silica/pengwyn/Kconfig"
1316 source "board/spear/spear300/Kconfig"
1317 source "board/spear/spear310/Kconfig"
1318 source "board/spear/spear320/Kconfig"
1319 source "board/spear/spear600/Kconfig"
1320 source "board/spear/x600/Kconfig"
1321 source "board/st/stv0991/Kconfig"
1322 source "board/sunxi/Kconfig"
1323 source "board/syteco/zmx25/Kconfig"
1324 source "board/tcl/sl50/Kconfig"
1325 source "board/ti/am335x/Kconfig"
1326 source "board/ti/am43xx/Kconfig"
1327 source "board/birdland/bav335x/Kconfig"
1328 source "board/ti/ti814x/Kconfig"
1329 source "board/ti/ti816x/Kconfig"
1330 source "board/timll/devkit3250/Kconfig"
1331 source "board/toradex/colibri_pxa270/Kconfig"
1332 source "board/technologic/ts4600/Kconfig"
1333 source "board/technologic/ts4800/Kconfig"
1334 source "board/vscom/baltos/Kconfig"
1335 source "board/woodburn/Kconfig"
1336 source "board/work-microwave/work_92105/Kconfig"
1337 source "board/zipitz2/Kconfig"
1338
1339 source "arch/arm/Kconfig.debug"
1340
1341 endmenu