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