]> git.sur5r.net Git - u-boot/blob - arch/arm/Kconfig
Merge git://git.denx.de/u-boot-imx
[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 SYS_ARCH_TIMER
246         bool "ARM Generic Timer support"
247         depends on CPU_V7 || ARM64
248         default y if ARM64
249         help
250           The ARM Generic Timer (aka arch-timer) provides an architected
251           interface to a timer source on an SoC.
252           It is mandantory for ARMv8 implementation and widely available
253           on ARMv7 systems.
254
255 config ARM_SMCCC
256         bool "Support for ARM SMC Calling Convention (SMCCC)"
257         depends on CPU_V7 || ARM64
258         select ARM_PSCI_FW
259         help
260           Say Y here if you want to enable ARM SMC Calling Convention.
261           This should be enabled if U-Boot needs to communicate with system
262           firmware (for example, PSCI) according to SMCCC.
263
264 config SEMIHOSTING
265         bool "support boot from semihosting"
266         help
267           In emulated environments, semihosting is a way for
268           the hosted environment to call out to the emulator to
269           retrieve files from the host machine.
270
271 config SYS_THUMB_BUILD
272         bool "Build U-Boot using the Thumb instruction set"
273         depends on !ARM64
274         help
275            Use this flag to build U-Boot 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 SPL_SYS_THUMB_BUILD
281         bool "Build SPL using the Thumb instruction set"
282         default y if SYS_THUMB_BUILD
283         depends on !ARM64
284         help
285            Use this flag to build SPL using the Thumb instruction set for
286            ARM architectures. Thumb instruction set provides better code
287            density. For ARM architectures that support Thumb2 this flag will
288            result in Thumb2 code generated by GCC.
289
290 config SYS_L2CACHE_OFF
291         bool "L2cache off"
292         help
293           If SoC does not support L2CACHE or one do not want to enable
294           L2CACHE, choose this option.
295
296 config ENABLE_ARM_SOC_BOOT0_HOOK
297         bool "prepare BOOT0 header"
298         help
299           If the SoC's BOOT0 requires a header area filled with (magic)
300           values, then choose this option, and create a file included as
301           <asm/arch/boot0.h> which contains the required assembler code.
302
303 config ARM_CORTEX_CPU_IS_UP
304         bool
305         default n
306
307 config USE_ARCH_MEMCPY
308         bool "Use an assembly optimized implementation of memcpy"
309         default y
310         depends on !ARM64
311         help
312           Enable the generation of an optimized version of memcpy.
313           Such implementation may be faster under some conditions
314           but may increase the binary size.
315
316 config SPL_USE_ARCH_MEMCPY
317         bool "Use an assembly optimized implementation of memcpy for SPL"
318         default y if USE_ARCH_MEMCPY
319         depends on !ARM64
320         help
321           Enable the generation of an optimized version of memcpy.
322           Such implementation may be faster under some conditions
323           but may increase the binary size.
324
325 config USE_ARCH_MEMSET
326         bool "Use an assembly optimized implementation of memset"
327         default y
328         depends on !ARM64
329         help
330           Enable the generation of an optimized version of memset.
331           Such implementation may be faster under some conditions
332           but may increase the binary size.
333
334 config SPL_USE_ARCH_MEMSET
335         bool "Use an assembly optimized implementation of memset for SPL"
336         default y if USE_ARCH_MEMSET
337         depends on !ARM64
338         help
339           Enable the generation of an optimized version of memset.
340           Such implementation may be faster under some conditions
341           but may increase the binary size.
342
343 config ARM64_SUPPORT_AARCH32
344         bool "ARM64 system support AArch32 execution state"
345         default y if ARM64 && !TARGET_THUNDERX_88XX
346         help
347           This ARM64 system supports AArch32 execution state.
348
349 choice
350         prompt "Target select"
351         default TARGET_HIKEY
352
353 config ARCH_AT91
354         bool "Atmel AT91"
355         select SPL_BOARD_INIT if SPL
356
357 config TARGET_EDB93XX
358         bool "Support edb93xx"
359         select CPU_ARM920T
360         select PL010_SERIAL
361
362 config TARGET_ASPENITE
363         bool "Support aspenite"
364         select CPU_ARM926EJS
365
366 config TARGET_GPLUGD
367         bool "Support gplugd"
368         select CPU_ARM926EJS
369
370 config ARCH_DAVINCI
371         bool "TI DaVinci"
372         select CPU_ARM926EJS
373         imply CMD_SAVES
374         help
375           Support for TI's DaVinci platform.
376
377 config KIRKWOOD
378         bool "Marvell Kirkwood"
379         select CPU_ARM926EJS
380         select BOARD_EARLY_INIT_F
381         select ARCH_MISC_INIT
382
383 config ARCH_MVEBU
384         bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
385         select OF_CONTROL
386         select OF_SEPARATE
387         select DM
388         select DM_ETH
389         select DM_SERIAL
390         select DM_SPI
391         select DM_SPI_FLASH
392         select SPI
393
394 config TARGET_DEVKIT3250
395         bool "Support devkit3250"
396         select CPU_ARM926EJS
397         select SUPPORT_SPL
398
399 config TARGET_WORK_92105
400         bool "Support work_92105"
401         select CPU_ARM926EJS
402         select SUPPORT_SPL
403
404 config TARGET_APF27
405         bool "Support apf27"
406         select CPU_ARM926EJS
407         select SUPPORT_SPL
408
409 config ORION5X
410         bool "Marvell Orion"
411         select CPU_ARM926EJS
412
413 config TARGET_SPEAR300
414         bool "Support spear300"
415         select CPU_ARM926EJS
416         select BOARD_EARLY_INIT_F
417         imply CMD_SAVES
418         select PL011_SERIAL
419
420 config TARGET_SPEAR310
421         bool "Support spear310"
422         select CPU_ARM926EJS
423         select BOARD_EARLY_INIT_F
424         imply CMD_SAVES
425         select PL011_SERIAL
426
427 config TARGET_SPEAR320
428         bool "Support spear320"
429         select CPU_ARM926EJS
430         select BOARD_EARLY_INIT_F
431         imply CMD_SAVES
432         select PL011_SERIAL
433
434 config TARGET_SPEAR600
435         bool "Support spear600"
436         select CPU_ARM926EJS
437         select BOARD_EARLY_INIT_F
438         imply CMD_SAVES
439         select PL011_SERIAL
440
441 config TARGET_STV0991
442         bool "Support stv0991"
443         select CPU_V7
444         select DM
445         select DM_SERIAL
446         select DM_SPI
447         select DM_SPI_FLASH
448         select SPI
449         select SPI_FLASH
450         select PL01X_SERIAL
451
452 config TARGET_X600
453         bool "Support x600"
454         select BOARD_LATE_INIT
455         select CPU_ARM926EJS
456         select SUPPORT_SPL
457         select PL011_SERIAL
458
459 config TARGET_MX31PDK
460         bool "Support mx31pdk"
461         select BOARD_LATE_INIT
462         select CPU_ARM1136
463         select SUPPORT_SPL
464         select BOARD_EARLY_INIT_F
465
466 config TARGET_WOODBURN
467         bool "Support woodburn"
468         select CPU_ARM1136
469
470 config TARGET_WOODBURN_SD
471         bool "Support woodburn_sd"
472         select CPU_ARM1136
473         select SUPPORT_SPL
474
475 config TARGET_FLEA3
476         bool "Support flea3"
477         select CPU_ARM1136
478
479 config TARGET_MX35PDK
480         bool "Support mx35pdk"
481         select BOARD_LATE_INIT
482         select CPU_ARM1136
483
484 config ARCH_BCM283X
485         bool "Broadcom BCM283X family"
486         select DM
487         select DM_SERIAL
488         select DM_GPIO
489         select OF_CONTROL
490         select PL01X_SERIAL
491         select SERIAL_SEARCH_ALL
492         imply FAT_WRITE
493
494 config TARGET_VEXPRESS_CA15_TC2
495         bool "Support vexpress_ca15_tc2"
496         select CPU_V7
497         select CPU_V7_HAS_NONSEC
498         select CPU_V7_HAS_VIRT
499         select PL011_SERIAL
500
501 config TARGET_VEXPRESS_CA5X2
502         bool "Support vexpress_ca5x2"
503         select CPU_V7
504         select PL011_SERIAL
505
506 config TARGET_VEXPRESS_CA9X4
507         bool "Support vexpress_ca9x4"
508         select CPU_V7
509         select PL011_SERIAL
510
511 config TARGET_BCM23550_W1D
512         bool "Support bcm23550_w1d"
513         select CPU_V7
514         imply CRC32_VERIFY
515         imply FAT_WRITE
516
517 config TARGET_BCM28155_AP
518         bool "Support bcm28155_ap"
519         select CPU_V7
520         imply CRC32_VERIFY
521         imply FAT_WRITE
522
523 config TARGET_BCMCYGNUS
524         bool "Support bcmcygnus"
525         select CPU_V7
526         imply CRC32_VERIFY
527         imply CMD_HASH
528         imply FAT_WRITE
529         imply HASH_VERIFY
530         imply NETDEVICES
531         imply BCM_SF2_ETH
532         imply BCM_SF2_ETH_GMAC
533
534 config TARGET_BCMNSP
535         bool "Support bcmnsp"
536         select CPU_V7
537
538 config TARGET_BCMNS2
539         bool "Support Broadcom Northstar2"
540         select ARM64
541         help
542           Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
543           ARMv8 Cortex-A57 processors targeting a broad range of networking
544           applications
545
546 config ARCH_EXYNOS
547         bool "Samsung EXYNOS"
548         select DM
549         select DM_I2C
550         select DM_SPI_FLASH
551         select DM_SERIAL
552         select DM_SPI
553         select DM_GPIO
554         select DM_KEYBOARD
555         select SPI
556         imply FAT_WRITE
557
558 config ARCH_S5PC1XX
559         bool "Samsung S5PC1XX"
560         select CPU_V7
561         select DM
562         select DM_SERIAL
563         select DM_GPIO
564         select DM_I2C
565
566 config ARCH_HIGHBANK
567         bool "Calxeda Highbank"
568         select CPU_V7
569         select PL011_SERIAL
570
571 config ARCH_INTEGRATOR
572         bool "ARM Ltd. Integrator family"
573         select DM
574         select DM_SERIAL
575         select PL01X_SERIAL
576
577 config ARCH_KEYSTONE
578         bool "TI Keystone"
579         select CPU_V7
580         select SUPPORT_SPL
581         select SYS_THUMB_BUILD
582         select CMD_POWEROFF
583         select SYS_ARCH_TIMER
584         imply CMD_MTDPARTS
585         imply FIT
586         imply CMD_SAVES
587
588 config ARCH_OMAP2PLUS
589         bool "TI OMAP2+"
590         select CPU_V7
591         select SPL_BOARD_INIT if SPL
592         select SPL_STACK_R if SPL
593         select SUPPORT_SPL
594         imply FIT
595
596 config ARCH_MESON
597         bool "Amlogic Meson"
598         imply DISTRO_DEFAULTS
599         help
600           Support for the Meson SoC family developed by Amlogic Inc.,
601           targeted at media players and tablet computers. We currently
602           support the S905 (GXBaby) 64-bit SoC.
603
604 config ARCH_MX8M
605         bool "NXP i.MX8M platform"
606         select ARM64
607         select DM
608         select SUPPORT_SPL
609
610 config ARCH_MX23
611         bool "NXP i.MX23 family"
612         select CPU_ARM926EJS
613         select PL011_SERIAL
614         select SUPPORT_SPL
615
616 config ARCH_MX25
617         bool "NXP MX25"
618         select CPU_ARM926EJS
619         imply MXC_GPIO
620
621 config ARCH_MX28
622         bool "NXP i.MX28 family"
623         select CPU_ARM926EJS
624         select PL011_SERIAL
625         select SUPPORT_SPL
626
627 config ARCH_MX7ULP
628         bool "NXP MX7ULP"
629         select CPU_V7
630         select ROM_UNIFIED_SECTIONS
631         imply MXC_GPIO
632
633 config ARCH_MX7
634         bool "Freescale MX7"
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 BOARD_EARLY_INIT_F
640         select ARCH_MISC_INIT
641         imply MXC_GPIO
642
643 config ARCH_MX6
644         bool "Freescale MX6"
645         select CPU_V7
646         select SYS_FSL_HAS_SEC if SECURE_BOOT
647         select SYS_FSL_SEC_COMPAT_4
648         select SYS_FSL_SEC_LE
649         select SYS_THUMB_BUILD if SPL
650         imply MXC_GPIO
651
652 if ARCH_MX6
653 config SPL_LDSCRIPT
654         default "arch/arm/mach-omap2/u-boot-spl.lds"
655 endif
656
657 config ARCH_MX5
658         bool "Freescale MX5"
659         select CPU_V7
660         select BOARD_EARLY_INIT_F
661         imply MXC_GPIO
662
663 config ARCH_QEMU
664         bool "QEMU Virtual Platform"
665         select DM
666         select DM_SERIAL
667         select OF_CONTROL
668         select PL01X_SERIAL
669
670 config ARCH_RMOBILE
671         bool "Renesas ARM SoCs"
672         select DM
673         select DM_SERIAL
674         select BOARD_EARLY_INIT_F
675         imply FAT_WRITE
676         imply SYS_THUMB_BUILD
677
678 config TARGET_S32V234EVB
679         bool "Support s32v234evb"
680         select ARM64
681         select SYS_FSL_ERRATUM_ESDHC111
682
683 config ARCH_SNAPDRAGON
684         bool "Qualcomm Snapdragon SoCs"
685         select ARM64
686         select DM
687         select DM_GPIO
688         select DM_SERIAL
689         select SPMI
690         select OF_CONTROL
691         select OF_SEPARATE
692
693 config ARCH_SOCFPGA
694         bool "Altera SOCFPGA family"
695         select CPU_V7
696         select SUPPORT_SPL
697         select OF_CONTROL
698         select SPL_OF_CONTROL
699         select DM
700         select ENABLE_ARM_SOC_BOOT0_HOOK
701         select ARCH_EARLY_INIT_R
702         select ARCH_MISC_INIT
703         select SYS_THUMB_BUILD
704         imply CMD_MTDPARTS
705         imply CRC32_VERIFY
706         imply DM_SPI
707         imply DM_SPI_FLASH
708         imply FAT_WRITE
709         imply HW_WATCHDOG
710         imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
711
712 config ARCH_SUNXI
713         bool "Support sunxi (Allwinner) SoCs"
714         select BINMAN
715         select CMD_GPIO
716         select CMD_MMC if MMC
717         select CMD_USB if DISTRO_DEFAULTS
718         select DM
719         select DM_ETH
720         select DM_GPIO
721         select DM_KEYBOARD
722         select DM_SERIAL
723         select DM_USB if DISTRO_DEFAULTS
724         select OF_BOARD_SETUP
725         select OF_CONTROL
726         select OF_SEPARATE
727         select SPECIFY_CONSOLE_INDEX
728         select SPL_STACK_R if SPL
729         select SPL_SYS_MALLOC_SIMPLE if SPL
730         select SYS_NS16550
731         select SPL_SYS_THUMB_BUILD if !ARM64
732         select SYS_THUMB_BUILD if !ARM64
733         select USB if DISTRO_DEFAULTS
734         select USB_STORAGE if DISTRO_DEFAULTS
735         select USB_KEYBOARD if DISTRO_DEFAULTS
736         select USE_TINY_PRINTF
737         imply CMD_GPT
738         imply DISTRO_DEFAULTS
739         imply FAT_WRITE
740         imply OF_LIBFDT_OVERLAY
741         imply PRE_CONSOLE_BUFFER
742         imply SPL_GPIO_SUPPORT
743         imply SPL_LIBCOMMON_SUPPORT
744         imply SPL_LIBDISK_SUPPORT
745         imply SPL_LIBGENERIC_SUPPORT
746         imply SPL_MMC_SUPPORT if MMC
747         imply SPL_POWER_SUPPORT
748         imply SPL_SERIAL_SUPPORT
749         imply USB_GADGET
750
751 config ARCH_VF610
752         bool "Freescale Vybrid"
753         select CPU_V7
754         select SYS_FSL_ERRATUM_ESDHC111
755         imply CMD_MTDPARTS
756         imply NAND
757
758 config ARCH_ZYNQ
759         bool "Xilinx Zynq based platform"
760         select BOARD_LATE_INIT
761         select CPU_V7
762         select SUPPORT_SPL
763         select OF_CONTROL
764         select SPL_BOARD_INIT if SPL
765         select BOARD_EARLY_INIT_F if WDT
766         select SPL_OF_CONTROL if SPL
767         select DM
768         select DM_ETH if NET
769         select SPL_DM if SPL
770         select DM_MMC if MMC
771         select DM_SPI
772         select DM_SERIAL
773         select DM_SPI_FLASH
774         select SPL_SEPARATE_BSS if SPL
775         select DM_USB if USB
776         select CLK
777         select SPL_CLK if SPL
778         select CLK_ZYNQ
779         select SPI
780         imply CMD_CLK
781         imply FAT_WRITE
782         imply CMD_SPL
783
784 config ARCH_ZYNQMP
785         bool "Xilinx ZynqMP based platform"
786         select ARM64
787         select BOARD_LATE_INIT
788         select DM
789         select OF_CONTROL
790         select DM_SERIAL
791         select SUPPORT_SPL
792         select CLK
793         select SPL_BOARD_INIT if SPL
794         select SPL_CLK if SPL
795         select DM_USB if USB
796         imply FAT_WRITE
797
798 config TEGRA
799         bool "NVIDIA Tegra"
800         imply DISTRO_DEFAULTS
801         imply FAT_WRITE
802
803 config TARGET_VEXPRESS64_AEMV8A
804         bool "Support vexpress_aemv8a"
805         select ARM64
806         select PL01X_SERIAL
807
808 config TARGET_VEXPRESS64_BASE_FVP
809         bool "Support Versatile Express ARMv8a FVP BASE model"
810         select ARM64
811         select SEMIHOSTING
812         select PL01X_SERIAL
813
814 config TARGET_VEXPRESS64_BASE_FVP_DRAM
815         bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
816         select ARM64
817         select PL01X_SERIAL
818         help
819           This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
820           the default config to allow the user to load the images directly into
821           DRAM using model parameters rather than by using semi-hosting to load
822           the files from the host filesystem.
823
824 config TARGET_VEXPRESS64_JUNO
825         bool "Support Versatile Express Juno Development Platform"
826         select ARM64
827         select PL01X_SERIAL
828
829 config TARGET_LS2080A_EMU
830         bool "Support ls2080a_emu"
831         select ARCH_LS2080A
832         select ARM64
833         select ARMV8_MULTIENTRY
834         select ARCH_MISC_INIT
835         help
836           Support for Freescale LS2080A_EMU platform
837           The LS2080A Development System (EMULATOR) is a pre silicon
838           development platform that supports the QorIQ LS2080A
839           Layerscape Architecture processor.
840
841 config TARGET_LS2080A_SIMU
842         bool "Support ls2080a_simu"
843         select ARCH_LS2080A
844         select ARM64
845         select ARMV8_MULTIENTRY
846         select ARCH_MISC_INIT
847         help
848           Support for Freescale LS2080A_SIMU platform
849           The LS2080A Development System (QDS) is a pre silicon
850           development platform that supports the QorIQ LS2080A
851           Layerscape Architecture processor.
852
853 config TARGET_LS1088AQDS
854         bool "Support ls1088aqds"
855         select ARCH_LS1088A
856         select ARM64
857         select ARMV8_MULTIENTRY
858         select ARCH_MISC_INIT
859         select BOARD_LATE_INIT
860         select SUPPORT_SPL
861         help
862           Support for NXP LS1088AQDS platform
863           The LS1088A Development System (QDS) is a high-performance
864           development platform that supports the QorIQ LS1088A
865           Layerscape Architecture processor.
866
867 config TARGET_LS2080AQDS
868         bool "Support ls2080aqds"
869         select ARCH_LS2080A
870         select ARM64
871         select ARMV8_MULTIENTRY
872         select BOARD_LATE_INIT
873         select SUPPORT_SPL
874         select ARCH_MISC_INIT
875         imply SCSI
876         imply SCSI_AHCI
877         help
878           Support for Freescale LS2080AQDS platform
879           The LS2080A Development System (QDS) is a high-performance
880           development platform that supports the QorIQ LS2080A
881           Layerscape Architecture processor.
882
883 config TARGET_LS2080ARDB
884         bool "Support ls2080ardb"
885         select ARCH_LS2080A
886         select ARM64
887         select ARMV8_MULTIENTRY
888         select BOARD_LATE_INIT
889         select SUPPORT_SPL
890         select ARCH_MISC_INIT
891         imply SCSI
892         imply SCSI_AHCI
893         help
894           Support for Freescale LS2080ARDB platform.
895           The LS2080A Reference design board (RDB) is a high-performance
896           development platform that supports the QorIQ LS2080A
897           Layerscape Architecture processor.
898
899 config TARGET_LS2081ARDB
900         bool "Support ls2081ardb"
901         select ARCH_LS2080A
902         select ARM64
903         select ARMV8_MULTIENTRY
904         select BOARD_LATE_INIT
905         select SUPPORT_SPL
906         select ARCH_MISC_INIT
907         help
908           Support for Freescale LS2081ARDB platform.
909           The LS2081A Reference design board (RDB) is a high-performance
910           development platform that supports the QorIQ LS2081A/LS2041A
911           Layerscape Architecture processor.
912
913 config TARGET_HIKEY
914         bool "Support HiKey 96boards Consumer Edition Platform"
915         select ARM64
916         select DM
917         select DM_GPIO
918         select DM_SERIAL
919         select OF_CONTROL
920         select PL01X_SERIAL
921         select SPECIFY_CONSOLE_INDEX
922           help
923           Support for HiKey 96boards platform. It features a HI6220
924           SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
925
926 config TARGET_POPLAR
927         bool "Support Poplar 96boards Enterprise Edition Platform"
928         select ARM64
929         select DM
930         select OF_CONTROL
931         select DM_SERIAL
932         select DM_USB
933         select PL01X_SERIAL
934           help
935           Support for Poplar 96boards EE platform. It features a HI3798cv200
936           SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
937           making it capable of running any commercial set-top solution based on
938           Linux or Android.
939
940 config TARGET_LS1012AQDS
941         bool "Support ls1012aqds"
942         select ARCH_LS1012A
943         select ARM64
944         select BOARD_LATE_INIT
945         help
946           Support for Freescale LS1012AQDS platform.
947           The LS1012A Development System (QDS) is a high-performance
948           development platform that supports the QorIQ LS1012A
949           Layerscape Architecture processor.
950
951 config TARGET_LS1012ARDB
952         bool "Support ls1012ardb"
953         select ARCH_LS1012A
954         select ARM64
955         select BOARD_LATE_INIT
956         imply SCSI
957         imply SCSI_AHCI
958         help
959           Support for Freescale LS1012ARDB platform.
960           The LS1012A Reference design board (RDB) is a high-performance
961           development platform that supports the QorIQ LS1012A
962           Layerscape Architecture processor.
963
964 config TARGET_LS1012A2G5RDB
965         bool "Support ls1012a2g5rdb"
966         select ARCH_LS1012A
967         select ARM64
968         select BOARD_LATE_INIT
969         imply SCSI
970         help
971           Support for Freescale LS1012A2G5RDB platform.
972           The LS1012A 2G5 Reference design board (RDB) is a high-performance
973           development platform that supports the QorIQ LS1012A
974           Layerscape Architecture processor.
975
976 config TARGET_LS1012AFRDM
977         bool "Support ls1012afrdm"
978         select ARCH_LS1012A
979         select ARM64
980         help
981           Support for Freescale LS1012AFRDM platform.
982           The LS1012A Freedom  board (FRDM) is a high-performance
983           development platform that supports the QorIQ LS1012A
984           Layerscape Architecture processor.
985
986 config TARGET_LS1088ARDB
987         bool "Support ls1088ardb"
988         select ARCH_LS1088A
989         select ARM64
990         select ARMV8_MULTIENTRY
991         select ARCH_MISC_INIT
992         select BOARD_LATE_INIT
993         select SUPPORT_SPL
994         help
995           Support for NXP LS1088ARDB platform.
996           The LS1088A Reference design board (RDB) is a high-performance
997           development platform that supports the QorIQ LS1088A
998           Layerscape Architecture processor.
999
1000 config TARGET_LS1021AQDS
1001         bool "Support ls1021aqds"
1002         select BOARD_LATE_INIT
1003         select CPU_V7
1004         select CPU_V7_HAS_NONSEC
1005         select CPU_V7_HAS_VIRT
1006         select SUPPORT_SPL
1007         select ARCH_LS1021A
1008         select ARCH_SUPPORT_PSCI
1009         select LS1_DEEP_SLEEP
1010         select SYS_FSL_DDR
1011         select BOARD_EARLY_INIT_F
1012         imply SCSI
1013
1014 config TARGET_LS1021ATWR
1015         bool "Support ls1021atwr"
1016         select BOARD_LATE_INIT
1017         select CPU_V7
1018         select CPU_V7_HAS_NONSEC
1019         select CPU_V7_HAS_VIRT
1020         select SUPPORT_SPL
1021         select ARCH_LS1021A
1022         select ARCH_SUPPORT_PSCI
1023         select LS1_DEEP_SLEEP
1024         select BOARD_EARLY_INIT_F
1025         imply SCSI
1026
1027 config TARGET_LS1021AIOT
1028         bool "Support ls1021aiot"
1029         select BOARD_LATE_INIT
1030         select CPU_V7
1031         select CPU_V7_HAS_NONSEC
1032         select CPU_V7_HAS_VIRT
1033         select SUPPORT_SPL
1034         select ARCH_LS1021A
1035         select ARCH_SUPPORT_PSCI
1036         imply SCSI
1037         help
1038           Support for Freescale LS1021AIOT platform.
1039           The LS1021A Freescale board (IOT) is a high-performance
1040           development platform that supports the QorIQ LS1021A
1041           Layerscape Architecture processor.
1042
1043 config TARGET_LS1043AQDS
1044         bool "Support ls1043aqds"
1045         select ARCH_LS1043A
1046         select ARM64
1047         select ARMV8_MULTIENTRY
1048         select BOARD_LATE_INIT
1049         select SUPPORT_SPL
1050         select BOARD_EARLY_INIT_F
1051         imply SCSI
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         imply SCSI
1064         help
1065           Support for Freescale LS1043ARDB platform.
1066
1067 config TARGET_LS1046AQDS
1068         bool "Support ls1046aqds"
1069         select ARCH_LS1046A
1070         select ARM64
1071         select ARMV8_MULTIENTRY
1072         select BOARD_LATE_INIT
1073         select SUPPORT_SPL
1074         select DM_SPI_FLASH if DM_SPI
1075         select BOARD_EARLY_INIT_F
1076         imply SCSI
1077         help
1078           Support for Freescale LS1046AQDS platform.
1079           The LS1046A Development System (QDS) is a high-performance
1080           development platform that supports the QorIQ LS1046A
1081           Layerscape Architecture processor.
1082
1083 config TARGET_LS1046ARDB
1084         bool "Support ls1046ardb"
1085         select ARCH_LS1046A
1086         select ARM64
1087         select ARMV8_MULTIENTRY
1088         select BOARD_LATE_INIT
1089         select SUPPORT_SPL
1090         select DM_SPI_FLASH if DM_SPI
1091         select POWER_MC34VR500
1092         select BOARD_EARLY_INIT_F
1093         imply SCSI
1094         help
1095           Support for Freescale LS1046ARDB platform.
1096           The LS1046A Reference Design Board (RDB) is a high-performance
1097           development platform that supports the QorIQ LS1046A
1098           Layerscape Architecture processor.
1099
1100 config TARGET_H2200
1101         bool "Support h2200"
1102         select CPU_PXA
1103
1104 config TARGET_ZIPITZ2
1105         bool "Support zipitz2"
1106         select CPU_PXA
1107
1108 config TARGET_COLIBRI_PXA270
1109         bool "Support colibri_pxa270"
1110         select CPU_PXA
1111
1112 config ARCH_UNIPHIER
1113         bool "Socionext UniPhier SoCs"
1114         select BOARD_LATE_INIT
1115         select DM
1116         select DM_GPIO
1117         select DM_I2C
1118         select DM_MMC
1119         select DM_RESET
1120         select DM_SERIAL
1121         select DM_USB
1122         select OF_CONTROL
1123         select OF_LIBFDT
1124         select PINCTRL
1125         select SPL_BOARD_INIT if SPL
1126         select SPL_DM if SPL
1127         select SPL_LIBCOMMON_SUPPORT if SPL
1128         select SPL_LIBGENERIC_SUPPORT if SPL
1129         select SPL_OF_CONTROL if SPL
1130         select SPL_PINCTRL if SPL
1131         select SUPPORT_SPL
1132         imply FAT_WRITE
1133         help
1134           Support for UniPhier SoC family developed by Socionext Inc.
1135           (formerly, System LSI Business Division of Panasonic Corporation)
1136
1137 config STM32
1138         bool "Support STMicroelectronics STM32 MCU with cortex M"
1139         select CPU_V7M
1140         select DM
1141         select DM_SERIAL
1142         select SYS_THUMB_BUILD
1143
1144 config ARCH_STI
1145         bool "Support STMicrolectronics SoCs"
1146         select CPU_V7
1147         select DM
1148         select DM_SERIAL
1149         select BLK
1150         select DM_MMC
1151         select DM_RESET
1152         help
1153           Support for STMicroelectronics STiH407/10 SoC family.
1154           This SoC is used on Linaro 96Board STiH410-B2260
1155
1156 config ARCH_STM32MP
1157         bool "Support STMicroelectronics STM32MP Socs with cortex A"
1158         select ARCH_MISC_INIT
1159         select BOARD_LATE_INIT
1160         select CLK
1161         select DM
1162         select DM_GPIO
1163         select DM_RESET
1164         select DM_SERIAL
1165         select OF_CONTROL
1166         select OF_LIBFDT
1167         select PINCTRL
1168         select REGMAP
1169         select SUPPORT_SPL
1170         select SYSCON
1171         select SYSRESET
1172         select SYS_THUMB_BUILD
1173         help
1174           Support for STM32MP SoC family developed by STMicroelectronics,
1175           MPUs based on ARM cortex A core
1176           U-BOOT is running in DDR and SPL support is the unsecure First Stage
1177           BootLoader (FSBL)
1178
1179 config ARCH_ROCKCHIP
1180         bool "Support Rockchip SoCs"
1181         select OF_CONTROL
1182         select BLK
1183         select DM
1184         select SPL_DM if SPL
1185         select SYS_MALLOC_F
1186         select SYS_THUMB_BUILD if !ARM64
1187         select SPL_SYS_MALLOC_SIMPLE if SPL
1188         select DM_GPIO
1189         select DM_I2C
1190         select DM_MMC
1191         select DM_SERIAL
1192         select DM_SPI
1193         select DM_SPI_FLASH
1194         select DM_USB if USB
1195         select DM_PWM
1196         select DM_REGULATOR
1197         select ENABLE_ARM_SOC_BOOT0_HOOK
1198         select SPI
1199         imply CMD_FASTBOOT
1200         imply DISTRO_DEFAULTS
1201         imply FASTBOOT
1202         imply FAT_WRITE
1203         imply USB_FUNCTION_FASTBOOT
1204         imply SPL_SYSRESET
1205         imply TPL_SYSRESET
1206         imply ADC
1207         imply SARADC_ROCKCHIP
1208         imply SYS_NS16550
1209
1210 config TARGET_THUNDERX_88XX
1211         bool "Support ThunderX 88xx"
1212         select ARM64
1213         select OF_CONTROL
1214         select SYS_CACHE_SHIFT_7
1215         select PL01X_SERIAL
1216
1217 config ARCH_ASPEED
1218         bool "Support Aspeed SoCs"
1219         select OF_CONTROL
1220         select DM
1221
1222 endchoice
1223
1224 config TI_SECURE_DEVICE
1225         bool "HS Device Type Support"
1226         depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS
1227         help
1228           If a high secure (HS) device type is being used, this config
1229           must be set. This option impacts various aspects of the
1230           build system (to create signed boot images that can be
1231           authenticated) and the code. See the doc/README.ti-secure
1232           file for further details.
1233
1234 source "arch/arm/mach-aspeed/Kconfig"
1235
1236 source "arch/arm/mach-at91/Kconfig"
1237
1238 source "arch/arm/mach-bcm283x/Kconfig"
1239
1240 source "arch/arm/mach-davinci/Kconfig"
1241
1242 source "arch/arm/mach-exynos/Kconfig"
1243
1244 source "arch/arm/mach-highbank/Kconfig"
1245
1246 source "arch/arm/mach-integrator/Kconfig"
1247
1248 source "arch/arm/mach-keystone/Kconfig"
1249
1250 source "arch/arm/mach-kirkwood/Kconfig"
1251
1252 source "arch/arm/mach-mvebu/Kconfig"
1253
1254 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
1255
1256 source "arch/arm/mach-imx/mx2/Kconfig"
1257
1258 source "arch/arm/mach-imx/mx5/Kconfig"
1259
1260 source "arch/arm/mach-imx/mx6/Kconfig"
1261
1262 source "arch/arm/mach-imx/mx7/Kconfig"
1263
1264 source "arch/arm/mach-imx/mx7ulp/Kconfig"
1265
1266 source "arch/arm/mach-imx/mx8m/Kconfig"
1267
1268 source "arch/arm/mach-imx/mxs/Kconfig"
1269
1270 source "arch/arm/mach-omap2/Kconfig"
1271
1272 source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
1273
1274 source "arch/arm/mach-orion5x/Kconfig"
1275
1276 source "arch/arm/mach-rmobile/Kconfig"
1277
1278 source "arch/arm/mach-meson/Kconfig"
1279
1280 source "arch/arm/mach-qemu/Kconfig"
1281
1282 source "arch/arm/mach-rockchip/Kconfig"
1283
1284 source "arch/arm/mach-s5pc1xx/Kconfig"
1285
1286 source "arch/arm/mach-snapdragon/Kconfig"
1287
1288 source "arch/arm/mach-socfpga/Kconfig"
1289
1290 source "arch/arm/mach-sti/Kconfig"
1291
1292 source "arch/arm/mach-stm32/Kconfig"
1293
1294 source "arch/arm/mach-stm32mp/Kconfig"
1295
1296 source "arch/arm/mach-sunxi/Kconfig"
1297
1298 source "arch/arm/mach-tegra/Kconfig"
1299
1300 source "arch/arm/mach-uniphier/Kconfig"
1301
1302 source "arch/arm/cpu/armv7/vf610/Kconfig"
1303
1304 source "arch/arm/mach-zynq/Kconfig"
1305
1306 source "arch/arm/cpu/armv7/Kconfig"
1307
1308 source "arch/arm/cpu/armv8/zynqmp/Kconfig"
1309
1310 source "arch/arm/cpu/armv8/Kconfig"
1311
1312 source "arch/arm/mach-imx/Kconfig"
1313
1314 source "board/bosch/shc/Kconfig"
1315 source "board/CarMediaLab/flea3/Kconfig"
1316 source "board/Marvell/aspenite/Kconfig"
1317 source "board/Marvell/gplugd/Kconfig"
1318 source "board/armadeus/apf27/Kconfig"
1319 source "board/armltd/vexpress/Kconfig"
1320 source "board/armltd/vexpress64/Kconfig"
1321 source "board/broadcom/bcm23550_w1d/Kconfig"
1322 source "board/broadcom/bcm28155_ap/Kconfig"
1323 source "board/broadcom/bcmcygnus/Kconfig"
1324 source "board/broadcom/bcmnsp/Kconfig"
1325 source "board/broadcom/bcmns2/Kconfig"
1326 source "board/cavium/thunderx/Kconfig"
1327 source "board/cirrus/edb93xx/Kconfig"
1328 source "board/eets/pdu001/Kconfig"
1329 source "board/freescale/ls2080a/Kconfig"
1330 source "board/freescale/ls2080aqds/Kconfig"
1331 source "board/freescale/ls2080ardb/Kconfig"
1332 source "board/freescale/ls1088a/Kconfig"
1333 source "board/freescale/ls1021aqds/Kconfig"
1334 source "board/freescale/ls1043aqds/Kconfig"
1335 source "board/freescale/ls1021atwr/Kconfig"
1336 source "board/freescale/ls1021aiot/Kconfig"
1337 source "board/freescale/ls1046aqds/Kconfig"
1338 source "board/freescale/ls1043ardb/Kconfig"
1339 source "board/freescale/ls1046ardb/Kconfig"
1340 source "board/freescale/ls1012aqds/Kconfig"
1341 source "board/freescale/ls1012ardb/Kconfig"
1342 source "board/freescale/ls1012afrdm/Kconfig"
1343 source "board/freescale/mx31pdk/Kconfig"
1344 source "board/freescale/mx35pdk/Kconfig"
1345 source "board/freescale/s32v234evb/Kconfig"
1346 source "board/gdsys/a38x/Kconfig"
1347 source "board/grinn/chiliboard/Kconfig"
1348 source "board/gumstix/pepper/Kconfig"
1349 source "board/h2200/Kconfig"
1350 source "board/hisilicon/hikey/Kconfig"
1351 source "board/hisilicon/poplar/Kconfig"
1352 source "board/isee/igep003x/Kconfig"
1353 source "board/phytec/pcm051/Kconfig"
1354 source "board/silica/pengwyn/Kconfig"
1355 source "board/spear/spear300/Kconfig"
1356 source "board/spear/spear310/Kconfig"
1357 source "board/spear/spear320/Kconfig"
1358 source "board/spear/spear600/Kconfig"
1359 source "board/spear/x600/Kconfig"
1360 source "board/st/stv0991/Kconfig"
1361 source "board/tcl/sl50/Kconfig"
1362 source "board/birdland/bav335x/Kconfig"
1363 source "board/timll/devkit3250/Kconfig"
1364 source "board/toradex/colibri_pxa270/Kconfig"
1365 source "board/vscom/baltos/Kconfig"
1366 source "board/woodburn/Kconfig"
1367 source "board/work-microwave/work_92105/Kconfig"
1368 source "board/xilinx/zynqmp/Kconfig"
1369 source "board/zipitz2/Kconfig"
1370
1371 source "arch/arm/Kconfig.debug"
1372
1373 endmenu
1374
1375 config SPL_LDSCRIPT
1376         default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
1377         default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
1378         default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
1379
1380