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