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