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