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