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_WOODBURN 501 bool "Support woodburn" 502 select CPU_ARM1136 503 504config TARGET_WOODBURN_SD 505 bool "Support woodburn_sd" 506 select CPU_ARM1136 507 select SUPPORT_SPL 508 509config TARGET_FLEA3 510 bool "Support flea3" 511 select CPU_ARM1136 512 513config TARGET_MX35PDK 514 bool "Support mx35pdk" 515 select BOARD_LATE_INIT 516 select CPU_ARM1136 517 518config ARCH_BCM283X 519 bool "Broadcom BCM283X family" 520 select DM 521 select DM_SERIAL 522 select DM_GPIO 523 select OF_CONTROL 524 select PL01X_SERIAL 525 select SERIAL_SEARCH_ALL 526 imply FAT_WRITE 527 528config TARGET_VEXPRESS_CA15_TC2 529 bool "Support vexpress_ca15_tc2" 530 select CPU_V7A 531 select CPU_V7_HAS_NONSEC 532 select CPU_V7_HAS_VIRT 533 select PL011_SERIAL 534 535config TARGET_VEXPRESS_CA5X2 536 bool "Support vexpress_ca5x2" 537 select CPU_V7A 538 select PL011_SERIAL 539 540config TARGET_VEXPRESS_CA9X4 541 bool "Support vexpress_ca9x4" 542 select CPU_V7A 543 select PL011_SERIAL 544 545config TARGET_BCM23550_W1D 546 bool "Support bcm23550_w1d" 547 select CPU_V7A 548 imply CRC32_VERIFY 549 imply FAT_WRITE 550 551config TARGET_BCM28155_AP 552 bool "Support bcm28155_ap" 553 select CPU_V7A 554 imply CRC32_VERIFY 555 imply FAT_WRITE 556 557config TARGET_BCMCYGNUS 558 bool "Support bcmcygnus" 559 select CPU_V7A 560 imply CRC32_VERIFY 561 imply CMD_HASH 562 imply FAT_WRITE 563 imply HASH_VERIFY 564 imply NETDEVICES 565 imply BCM_SF2_ETH 566 imply BCM_SF2_ETH_GMAC 567 568config TARGET_BCMNSP 569 bool "Support bcmnsp" 570 select CPU_V7A 571 572config TARGET_BCMNS2 573 bool "Support Broadcom Northstar2" 574 select ARM64 575 help 576 Support for Broadcom Northstar 2 SoCs. NS2 is a quad-core 64-bit 577 ARMv8 Cortex-A57 processors targeting a broad range of networking 578 applications 579 580config ARCH_EXYNOS 581 bool "Samsung EXYNOS" 582 select DM 583 select DM_I2C 584 select DM_SPI_FLASH 585 select DM_SERIAL 586 select DM_SPI 587 select DM_GPIO 588 select DM_KEYBOARD 589 select SPI 590 imply FAT_WRITE 591 592config ARCH_S5PC1XX 593 bool "Samsung S5PC1XX" 594 select CPU_V7A 595 select DM 596 select DM_SERIAL 597 select DM_GPIO 598 select DM_I2C 599 600config ARCH_HIGHBANK 601 bool "Calxeda Highbank" 602 select CPU_V7A 603 select PL011_SERIAL 604 605config ARCH_INTEGRATOR 606 bool "ARM Ltd. Integrator family" 607 select DM 608 select DM_SERIAL 609 select PL01X_SERIAL 610 611config ARCH_KEYSTONE 612 bool "TI Keystone" 613 select CPU_V7A 614 select SUPPORT_SPL 615 select SYS_THUMB_BUILD 616 select CMD_POWEROFF 617 select SYS_ARCH_TIMER 618 imply CMD_MTDPARTS 619 imply FIT 620 imply CMD_SAVES 621 622config ARCH_OMAP2PLUS 623 bool "TI OMAP2+" 624 select CPU_V7A 625 select SPL_BOARD_INIT if SPL 626 select SPL_STACK_R if SPL 627 select SUPPORT_SPL 628 imply FIT 629 630config ARCH_MESON 631 bool "Amlogic Meson" 632 imply DISTRO_DEFAULTS 633 help 634 Support for the Meson SoC family developed by Amlogic Inc., 635 targeted at media players and tablet computers. We currently 636 support the S905 (GXBaby) 64-bit SoC. 637 638config ARCH_MX8M 639 bool "NXP i.MX8M platform" 640 select ARM64 641 select DM 642 select SUPPORT_SPL 643 644config ARCH_MX23 645 bool "NXP i.MX23 family" 646 select CPU_ARM926EJS 647 select PL011_SERIAL 648 select SUPPORT_SPL 649 650config ARCH_MX25 651 bool "NXP MX25" 652 select CPU_ARM926EJS 653 imply MXC_GPIO 654 655config ARCH_MX28 656 bool "NXP i.MX28 family" 657 select CPU_ARM926EJS 658 select PL011_SERIAL 659 select SUPPORT_SPL 660 661config ARCH_MX31 662 bool "NXP i.MX31 family" 663 select CPU_ARM1136 664 665config ARCH_MX7ULP 666 bool "NXP MX7ULP" 667 select CPU_V7A 668 select ROM_UNIFIED_SECTIONS 669 imply MXC_GPIO 670 671config ARCH_MX7 672 bool "Freescale MX7" 673 select CPU_V7A 674 select SYS_FSL_HAS_SEC if SECURE_BOOT 675 select SYS_FSL_SEC_COMPAT_4 676 select SYS_FSL_SEC_LE 677 select BOARD_EARLY_INIT_F 678 select ARCH_MISC_INIT 679 imply MXC_GPIO 680 681config ARCH_MX6 682 bool "Freescale MX6" 683 select CPU_V7A 684 select SYS_FSL_HAS_SEC if SECURE_BOOT 685 select SYS_FSL_SEC_COMPAT_4 686 select SYS_FSL_SEC_LE 687 select SYS_THUMB_BUILD if SPL 688 imply MXC_GPIO 689 690if ARCH_MX6 691config SPL_LDSCRIPT 692 default "arch/arm/mach-omap2/u-boot-spl.lds" 693endif 694 695config ARCH_MX5 696 bool "Freescale MX5" 697 select CPU_V7A 698 select BOARD_EARLY_INIT_F 699 imply MXC_GPIO 700 701config ARCH_QEMU 702 bool "QEMU Virtual Platform" 703 select DM 704 select DM_SERIAL 705 select OF_CONTROL 706 select PL01X_SERIAL 707 708config ARCH_RMOBILE 709 bool "Renesas ARM SoCs" 710 select DM 711 select DM_SERIAL 712 select BOARD_EARLY_INIT_F 713 imply FAT_WRITE 714 imply SYS_THUMB_BUILD 715 716config TARGET_S32V234EVB 717 bool "Support s32v234evb" 718 select ARM64 719 select SYS_FSL_ERRATUM_ESDHC111 720 721config ARCH_SNAPDRAGON 722 bool "Qualcomm Snapdragon SoCs" 723 select ARM64 724 select DM 725 select DM_GPIO 726 select DM_SERIAL 727 select SPMI 728 select OF_CONTROL 729 select OF_SEPARATE 730 731config ARCH_SOCFPGA 732 bool "Altera SOCFPGA family" 733 select ARCH_EARLY_INIT_R 734 select ARCH_MISC_INIT 735 select CPU_V7A 736 select DM 737 select DM_SERIAL 738 select ENABLE_ARM_SOC_BOOT0_HOOK 739 select OF_CONTROL 740 select SPL_LIBCOMMON_SUPPORT 741 select SPL_LIBDISK_SUPPORT 742 select SPL_LIBGENERIC_SUPPORT 743 select SPL_MMC_SUPPORT if DM_MMC 744 select SPL_NAND_SUPPORT if SPL_NAND_DENALI 745 select SPL_OF_CONTROL 746 select SPL_SERIAL_SUPPORT 747 select SPL_DM_SERIAL 748 select SPL_SPI_FLASH_SUPPORT if SPL_SPI_SUPPORT 749 select SPL_SPI_SUPPORT if DM_SPI 750 select SPL_WATCHDOG_SUPPORT 751 select SUPPORT_SPL 752 select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE 753 select SYS_NS16550 754 select SYS_THUMB_BUILD 755 imply CMD_MTDPARTS 756 imply CRC32_VERIFY 757 imply DM_SPI 758 imply DM_SPI_FLASH 759 imply FAT_WRITE 760 imply HW_WATCHDOG 761 imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION 762 763config ARCH_SUNXI 764 bool "Support sunxi (Allwinner) SoCs" 765 select BINMAN 766 select CMD_GPIO 767 select CMD_MMC if MMC 768 select CMD_USB if DISTRO_DEFAULTS 769 select DM 770 select DM_ETH 771 select DM_GPIO 772 select DM_KEYBOARD 773 select DM_SERIAL 774 select DM_USB if DISTRO_DEFAULTS 775 select OF_BOARD_SETUP 776 select OF_CONTROL 777 select OF_SEPARATE 778 select SPECIFY_CONSOLE_INDEX 779 select SPL_STACK_R if SPL 780 select SPL_SYS_MALLOC_SIMPLE if SPL 781 select SYS_NS16550 782 select SPL_SYS_THUMB_BUILD if !ARM64 783 select SYS_THUMB_BUILD if !ARM64 784 select USB if DISTRO_DEFAULTS 785 select USB_STORAGE if DISTRO_DEFAULTS 786 select USB_KEYBOARD if DISTRO_DEFAULTS 787 select USE_TINY_PRINTF 788 imply CMD_GPT 789 imply DISTRO_DEFAULTS 790 imply FAT_WRITE 791 imply OF_LIBFDT_OVERLAY 792 imply PRE_CONSOLE_BUFFER 793 imply SPL_GPIO_SUPPORT 794 imply SPL_LIBCOMMON_SUPPORT 795 imply SPL_LIBDISK_SUPPORT 796 imply SPL_LIBGENERIC_SUPPORT 797 imply SPL_MMC_SUPPORT if MMC 798 imply SPL_POWER_SUPPORT 799 imply SPL_SERIAL_SUPPORT 800 imply USB_GADGET 801 802config ARCH_VF610 803 bool "Freescale Vybrid" 804 select CPU_V7A 805 select SYS_FSL_ERRATUM_ESDHC111 806 imply CMD_MTDPARTS 807 imply NAND 808 809config ARCH_ZYNQ 810 bool "Xilinx Zynq based platform" 811 select BOARD_LATE_INIT 812 select CPU_V7A 813 select SUPPORT_SPL 814 select OF_CONTROL 815 select SPL_BOARD_INIT if SPL 816 select BOARD_EARLY_INIT_F if WDT 817 select SPL_OF_CONTROL if SPL 818 select DM 819 select DM_ETH if NET 820 select SPL_DM if SPL 821 select DM_MMC if MMC 822 select DM_SPI 823 select DM_SERIAL 824 select DM_SPI_FLASH 825 select SPL_SEPARATE_BSS if SPL 826 select DM_USB if USB 827 select CLK 828 select SPL_CLK if SPL 829 select CLK_ZYNQ 830 select SPI 831 imply CMD_CLK 832 imply FAT_WRITE 833 imply CMD_SPL 834 imply ARCH_EARLY_INIT_R 835 836config ARCH_ZYNQMP_R5 837 bool "Xilinx ZynqMP R5 based platform" 838 select CPU_V7R 839 select OF_CONTROL 840 select DM 841 select DM_SERIAL 842 select CLK 843 844config ARCH_ZYNQMP 845 bool "Xilinx ZynqMP based platform" 846 select ARM64 847 select BOARD_LATE_INIT 848 select DM 849 select OF_CONTROL 850 select DM_SERIAL 851 select SUPPORT_SPL 852 select CLK 853 select SPL_BOARD_INIT if SPL 854 select SPL_CLK if SPL 855 select DM_USB if USB 856 imply FAT_WRITE 857 858config TEGRA 859 bool "NVIDIA Tegra" 860 imply DISTRO_DEFAULTS 861 imply FAT_WRITE 862 863config TARGET_VEXPRESS64_AEMV8A 864 bool "Support vexpress_aemv8a" 865 select ARM64 866 select PL01X_SERIAL 867 868config TARGET_VEXPRESS64_BASE_FVP 869 bool "Support Versatile Express ARMv8a FVP BASE model" 870 select ARM64 871 select SEMIHOSTING 872 select PL01X_SERIAL 873 874config TARGET_VEXPRESS64_BASE_FVP_DRAM 875 bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM" 876 select ARM64 877 select PL01X_SERIAL 878 help 879 This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides 880 the default config to allow the user to load the images directly into 881 DRAM using model parameters rather than by using semi-hosting to load 882 the files from the host filesystem. 883 884config TARGET_VEXPRESS64_JUNO 885 bool "Support Versatile Express Juno Development Platform" 886 select ARM64 887 select PL01X_SERIAL 888 889config TARGET_LS2080A_EMU 890 bool "Support ls2080a_emu" 891 select ARCH_LS2080A 892 select ARM64 893 select ARMV8_MULTIENTRY 894 select ARCH_MISC_INIT 895 help 896 Support for Freescale LS2080A_EMU platform 897 The LS2080A Development System (EMULATOR) is a pre silicon 898 development platform that supports the QorIQ LS2080A 899 Layerscape Architecture processor. 900 901config TARGET_LS2080A_SIMU 902 bool "Support ls2080a_simu" 903 select ARCH_LS2080A 904 select ARM64 905 select ARMV8_MULTIENTRY 906 select ARCH_MISC_INIT 907 help 908 Support for Freescale LS2080A_SIMU platform 909 The LS2080A Development System (QDS) is a pre silicon 910 development platform that supports the QorIQ LS2080A 911 Layerscape Architecture processor. 912 913config TARGET_LS1088AQDS 914 bool "Support ls1088aqds" 915 select ARCH_LS1088A 916 select ARM64 917 select ARMV8_MULTIENTRY 918 select ARCH_MISC_INIT 919 select BOARD_LATE_INIT 920 select SUPPORT_SPL 921 help 922 Support for NXP LS1088AQDS platform 923 The LS1088A Development System (QDS) is a high-performance 924 development platform that supports the QorIQ LS1088A 925 Layerscape Architecture processor. 926 927config TARGET_LS2080AQDS 928 bool "Support ls2080aqds" 929 select ARCH_LS2080A 930 select ARM64 931 select ARMV8_MULTIENTRY 932 select BOARD_LATE_INIT 933 select SUPPORT_SPL 934 select ARCH_MISC_INIT 935 imply SCSI 936 imply SCSI_AHCI 937 help 938 Support for Freescale LS2080AQDS platform 939 The LS2080A Development System (QDS) is a high-performance 940 development platform that supports the QorIQ LS2080A 941 Layerscape Architecture processor. 942 943config TARGET_LS2080ARDB 944 bool "Support ls2080ardb" 945 select ARCH_LS2080A 946 select ARM64 947 select ARMV8_MULTIENTRY 948 select BOARD_LATE_INIT 949 select SUPPORT_SPL 950 select ARCH_MISC_INIT 951 imply SCSI 952 imply SCSI_AHCI 953 help 954 Support for Freescale LS2080ARDB platform. 955 The LS2080A Reference design board (RDB) is a high-performance 956 development platform that supports the QorIQ LS2080A 957 Layerscape Architecture processor. 958 959config TARGET_LS2081ARDB 960 bool "Support ls2081ardb" 961 select ARCH_LS2080A 962 select ARM64 963 select ARMV8_MULTIENTRY 964 select BOARD_LATE_INIT 965 select SUPPORT_SPL 966 select ARCH_MISC_INIT 967 help 968 Support for Freescale LS2081ARDB platform. 969 The LS2081A Reference design board (RDB) is a high-performance 970 development platform that supports the QorIQ LS2081A/LS2041A 971 Layerscape Architecture processor. 972 973config TARGET_HIKEY 974 bool "Support HiKey 96boards Consumer Edition Platform" 975 select ARM64 976 select DM 977 select DM_GPIO 978 select DM_SERIAL 979 select OF_CONTROL 980 select PL01X_SERIAL 981 select SPECIFY_CONSOLE_INDEX 982 help 983 Support for HiKey 96boards platform. It features a HI6220 984 SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM. 985 986config TARGET_POPLAR 987 bool "Support Poplar 96boards Enterprise Edition Platform" 988 select ARM64 989 select DM 990 select OF_CONTROL 991 select DM_SERIAL 992 select DM_USB 993 select PL01X_SERIAL 994 help 995 Support for Poplar 96boards EE platform. It features a HI3798cv200 996 SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU 997 making it capable of running any commercial set-top solution based on 998 Linux or Android. 999 1000config TARGET_LS1012AQDS 1001 bool "Support ls1012aqds" 1002 select ARCH_LS1012A 1003 select ARM64 1004 select BOARD_LATE_INIT 1005 help 1006 Support for Freescale LS1012AQDS platform. 1007 The LS1012A Development System (QDS) is a high-performance 1008 development platform that supports the QorIQ LS1012A 1009 Layerscape Architecture processor. 1010 1011config TARGET_LS1012ARDB 1012 bool "Support ls1012ardb" 1013 select ARCH_LS1012A 1014 select ARM64 1015 select BOARD_LATE_INIT 1016 imply SCSI 1017 imply SCSI_AHCI 1018 help 1019 Support for Freescale LS1012ARDB platform. 1020 The LS1012A Reference design board (RDB) is a high-performance 1021 development platform that supports the QorIQ LS1012A 1022 Layerscape Architecture processor. 1023 1024config TARGET_LS1012A2G5RDB 1025 bool "Support ls1012a2g5rdb" 1026 select ARCH_LS1012A 1027 select ARM64 1028 select BOARD_LATE_INIT 1029 imply SCSI 1030 help 1031 Support for Freescale LS1012A2G5RDB platform. 1032 The LS1012A 2G5 Reference design board (RDB) is a high-performance 1033 development platform that supports the QorIQ LS1012A 1034 Layerscape Architecture processor. 1035 1036config TARGET_LS1012AFRDM 1037 bool "Support ls1012afrdm" 1038 select ARCH_LS1012A 1039 select ARM64 1040 help 1041 Support for Freescale LS1012AFRDM platform. 1042 The LS1012A Freedom board (FRDM) is a high-performance 1043 development platform that supports the QorIQ LS1012A 1044 Layerscape Architecture processor. 1045 1046config TARGET_LS1088ARDB 1047 bool "Support ls1088ardb" 1048 select ARCH_LS1088A 1049 select ARM64 1050 select ARMV8_MULTIENTRY 1051 select ARCH_MISC_INIT 1052 select BOARD_LATE_INIT 1053 select SUPPORT_SPL 1054 help 1055 Support for NXP LS1088ARDB platform. 1056 The LS1088A Reference design board (RDB) is a high-performance 1057 development platform that supports the QorIQ LS1088A 1058 Layerscape Architecture processor. 1059 1060config TARGET_LS1021AQDS 1061 bool "Support ls1021aqds" 1062 select BOARD_LATE_INIT 1063 select CPU_V7A 1064 select CPU_V7_HAS_NONSEC 1065 select CPU_V7_HAS_VIRT 1066 select SUPPORT_SPL 1067 select ARCH_LS1021A 1068 select ARCH_SUPPORT_PSCI 1069 select LS1_DEEP_SLEEP 1070 select SYS_FSL_DDR 1071 select BOARD_EARLY_INIT_F 1072 imply SCSI 1073 1074config TARGET_LS1021ATWR 1075 bool "Support ls1021atwr" 1076 select BOARD_LATE_INIT 1077 select CPU_V7A 1078 select CPU_V7_HAS_NONSEC 1079 select CPU_V7_HAS_VIRT 1080 select SUPPORT_SPL 1081 select ARCH_LS1021A 1082 select ARCH_SUPPORT_PSCI 1083 select LS1_DEEP_SLEEP 1084 select BOARD_EARLY_INIT_F 1085 imply SCSI 1086 1087config TARGET_LS1021AIOT 1088 bool "Support ls1021aiot" 1089 select BOARD_LATE_INIT 1090 select CPU_V7A 1091 select CPU_V7_HAS_NONSEC 1092 select CPU_V7_HAS_VIRT 1093 select SUPPORT_SPL 1094 select ARCH_LS1021A 1095 select ARCH_SUPPORT_PSCI 1096 imply SCSI 1097 help 1098 Support for Freescale LS1021AIOT platform. 1099 The LS1021A Freescale board (IOT) is a high-performance 1100 development platform that supports the QorIQ LS1021A 1101 Layerscape Architecture processor. 1102 1103config TARGET_LS1043AQDS 1104 bool "Support ls1043aqds" 1105 select ARCH_LS1043A 1106 select ARM64 1107 select ARMV8_MULTIENTRY 1108 select BOARD_LATE_INIT 1109 select SUPPORT_SPL 1110 select BOARD_EARLY_INIT_F 1111 imply SCSI 1112 help 1113 Support for Freescale LS1043AQDS platform. 1114 1115config TARGET_LS1043ARDB 1116 bool "Support ls1043ardb" 1117 select ARCH_LS1043A 1118 select ARM64 1119 select ARMV8_MULTIENTRY 1120 select BOARD_LATE_INIT 1121 select SUPPORT_SPL 1122 select BOARD_EARLY_INIT_F 1123 imply SCSI 1124 help 1125 Support for Freescale LS1043ARDB platform. 1126 1127config TARGET_LS1046AQDS 1128 bool "Support ls1046aqds" 1129 select ARCH_LS1046A 1130 select ARM64 1131 select ARMV8_MULTIENTRY 1132 select BOARD_LATE_INIT 1133 select SUPPORT_SPL 1134 select DM_SPI_FLASH if DM_SPI 1135 select BOARD_EARLY_INIT_F 1136 imply SCSI 1137 help 1138 Support for Freescale LS1046AQDS platform. 1139 The LS1046A Development System (QDS) is a high-performance 1140 development platform that supports the QorIQ LS1046A 1141 Layerscape Architecture processor. 1142 1143config TARGET_LS1046ARDB 1144 bool "Support ls1046ardb" 1145 select ARCH_LS1046A 1146 select ARM64 1147 select ARMV8_MULTIENTRY 1148 select BOARD_LATE_INIT 1149 select SUPPORT_SPL 1150 select DM_SPI_FLASH if DM_SPI 1151 select POWER_MC34VR500 1152 select BOARD_EARLY_INIT_F 1153 imply SCSI 1154 help 1155 Support for Freescale LS1046ARDB platform. 1156 The LS1046A Reference Design Board (RDB) is a high-performance 1157 development platform that supports the QorIQ LS1046A 1158 Layerscape Architecture processor. 1159 1160config TARGET_H2200 1161 bool "Support h2200" 1162 select CPU_PXA 1163 1164config TARGET_ZIPITZ2 1165 bool "Support zipitz2" 1166 select CPU_PXA 1167 1168config TARGET_COLIBRI_PXA270 1169 bool "Support colibri_pxa270" 1170 select CPU_PXA 1171 1172config ARCH_UNIPHIER 1173 bool "Socionext UniPhier SoCs" 1174 select BOARD_LATE_INIT 1175 select DM 1176 select DM_GPIO 1177 select DM_I2C 1178 select DM_MMC 1179 select DM_RESET 1180 select DM_SERIAL 1181 select DM_USB 1182 select OF_CONTROL 1183 select OF_LIBFDT 1184 select PINCTRL 1185 select SPL_BOARD_INIT if SPL 1186 select SPL_DM if SPL 1187 select SPL_LIBCOMMON_SUPPORT if SPL 1188 select SPL_LIBGENERIC_SUPPORT if SPL 1189 select SPL_OF_CONTROL if SPL 1190 select SPL_PINCTRL if SPL 1191 select SUPPORT_SPL 1192 imply FAT_WRITE 1193 help 1194 Support for UniPhier SoC family developed by Socionext Inc. 1195 (formerly, System LSI Business Division of Panasonic Corporation) 1196 1197config STM32 1198 bool "Support STMicroelectronics STM32 MCU with cortex M" 1199 select CPU_V7M 1200 select DM 1201 select DM_SERIAL 1202 select SYS_THUMB_BUILD 1203 1204config ARCH_STI 1205 bool "Support STMicrolectronics SoCs" 1206 select CPU_V7A 1207 select DM 1208 select DM_SERIAL 1209 select BLK 1210 select DM_MMC 1211 select DM_RESET 1212 help 1213 Support for STMicroelectronics STiH407/10 SoC family. 1214 This SoC is used on Linaro 96Board STiH410-B2260 1215 1216config ARCH_STM32MP 1217 bool "Support STMicroelectronics STM32MP Socs with cortex A" 1218 select ARCH_MISC_INIT 1219 select BOARD_LATE_INIT 1220 select CLK 1221 select DM 1222 select DM_GPIO 1223 select DM_RESET 1224 select DM_SERIAL 1225 select OF_CONTROL 1226 select OF_LIBFDT 1227 select PINCTRL 1228 select REGMAP 1229 select SUPPORT_SPL 1230 select SYSCON 1231 select SYSRESET 1232 select SYS_THUMB_BUILD 1233 help 1234 Support for STM32MP SoC family developed by STMicroelectronics, 1235 MPUs based on ARM cortex A core 1236 U-BOOT is running in DDR and SPL support is the unsecure First Stage 1237 BootLoader (FSBL) 1238 1239config ARCH_ROCKCHIP 1240 bool "Support Rockchip SoCs" 1241 select OF_CONTROL 1242 select BLK 1243 select DM 1244 select SPL_DM if SPL 1245 select SYS_MALLOC_F 1246 select SYS_THUMB_BUILD if !ARM64 1247 select SPL_SYS_MALLOC_SIMPLE if SPL 1248 select DM_GPIO 1249 select DM_I2C 1250 select DM_MMC 1251 select DM_SERIAL 1252 select DM_SPI 1253 select DM_SPI_FLASH 1254 select DM_USB if USB 1255 select DM_PWM 1256 select DM_REGULATOR 1257 select ENABLE_ARM_SOC_BOOT0_HOOK 1258 select SPI 1259 imply CMD_FASTBOOT 1260 imply DISTRO_DEFAULTS 1261 imply FASTBOOT 1262 imply FAT_WRITE 1263 imply USB_FUNCTION_FASTBOOT 1264 imply SPL_SYSRESET 1265 imply TPL_SYSRESET 1266 imply ADC 1267 imply SARADC_ROCKCHIP 1268 imply SYS_NS16550 1269 1270config TARGET_THUNDERX_88XX 1271 bool "Support ThunderX 88xx" 1272 select ARM64 1273 select OF_CONTROL 1274 select SYS_CACHE_SHIFT_7 1275 select PL01X_SERIAL 1276 1277config ARCH_ASPEED 1278 bool "Support Aspeed SoCs" 1279 select OF_CONTROL 1280 select DM 1281 1282endchoice 1283 1284config TI_SECURE_DEVICE 1285 bool "HS Device Type Support" 1286 depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS 1287 help 1288 If a high secure (HS) device type is being used, this config 1289 must be set. This option impacts various aspects of the 1290 build system (to create signed boot images that can be 1291 authenticated) and the code. See the doc/README.ti-secure 1292 file for further details. 1293 1294source "arch/arm/mach-aspeed/Kconfig" 1295 1296source "arch/arm/mach-at91/Kconfig" 1297 1298source "arch/arm/mach-bcm283x/Kconfig" 1299 1300source "arch/arm/mach-davinci/Kconfig" 1301 1302source "arch/arm/mach-exynos/Kconfig" 1303 1304source "arch/arm/mach-highbank/Kconfig" 1305 1306source "arch/arm/mach-integrator/Kconfig" 1307 1308source "arch/arm/mach-keystone/Kconfig" 1309 1310source "arch/arm/mach-kirkwood/Kconfig" 1311 1312source "arch/arm/mach-mvebu/Kconfig" 1313 1314source "arch/arm/cpu/armv7/ls102xa/Kconfig" 1315 1316source "arch/arm/mach-imx/mx2/Kconfig" 1317 1318source "arch/arm/mach-imx/mx3/Kconfig" 1319 1320source "arch/arm/mach-imx/mx5/Kconfig" 1321 1322source "arch/arm/mach-imx/mx6/Kconfig" 1323 1324source "arch/arm/mach-imx/mx7/Kconfig" 1325 1326source "arch/arm/mach-imx/mx7ulp/Kconfig" 1327 1328source "arch/arm/mach-imx/mx8m/Kconfig" 1329 1330source "arch/arm/mach-imx/mxs/Kconfig" 1331 1332source "arch/arm/mach-omap2/Kconfig" 1333 1334source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig" 1335 1336source "arch/arm/mach-orion5x/Kconfig" 1337 1338source "arch/arm/mach-rmobile/Kconfig" 1339 1340source "arch/arm/mach-meson/Kconfig" 1341 1342source "arch/arm/mach-qemu/Kconfig" 1343 1344source "arch/arm/mach-rockchip/Kconfig" 1345 1346source "arch/arm/mach-s5pc1xx/Kconfig" 1347 1348source "arch/arm/mach-snapdragon/Kconfig" 1349 1350source "arch/arm/mach-socfpga/Kconfig" 1351 1352source "arch/arm/mach-sti/Kconfig" 1353 1354source "arch/arm/mach-stm32/Kconfig" 1355 1356source "arch/arm/mach-stm32mp/Kconfig" 1357 1358source "arch/arm/mach-sunxi/Kconfig" 1359 1360source "arch/arm/mach-tegra/Kconfig" 1361 1362source "arch/arm/mach-uniphier/Kconfig" 1363 1364source "arch/arm/cpu/armv7/vf610/Kconfig" 1365 1366source "arch/arm/mach-zynq/Kconfig" 1367 1368source "arch/arm/mach-zynqmp-r5/Kconfig" 1369 1370source "arch/arm/cpu/armv7/Kconfig" 1371 1372source "arch/arm/cpu/armv8/zynqmp/Kconfig" 1373 1374source "arch/arm/cpu/armv8/Kconfig" 1375 1376source "arch/arm/mach-imx/Kconfig" 1377 1378source "board/bosch/shc/Kconfig" 1379source "board/CarMediaLab/flea3/Kconfig" 1380source "board/Marvell/aspenite/Kconfig" 1381source "board/Marvell/gplugd/Kconfig" 1382source "board/armadeus/apf27/Kconfig" 1383source "board/armltd/vexpress/Kconfig" 1384source "board/armltd/vexpress64/Kconfig" 1385source "board/broadcom/bcm23550_w1d/Kconfig" 1386source "board/broadcom/bcm28155_ap/Kconfig" 1387source "board/broadcom/bcmcygnus/Kconfig" 1388source "board/broadcom/bcmnsp/Kconfig" 1389source "board/broadcom/bcmns2/Kconfig" 1390source "board/cavium/thunderx/Kconfig" 1391source "board/cirrus/edb93xx/Kconfig" 1392source "board/eets/pdu001/Kconfig" 1393source "board/freescale/ls2080a/Kconfig" 1394source "board/freescale/ls2080aqds/Kconfig" 1395source "board/freescale/ls2080ardb/Kconfig" 1396source "board/freescale/ls1088a/Kconfig" 1397source "board/freescale/ls1021aqds/Kconfig" 1398source "board/freescale/ls1043aqds/Kconfig" 1399source "board/freescale/ls1021atwr/Kconfig" 1400source "board/freescale/ls1021aiot/Kconfig" 1401source "board/freescale/ls1046aqds/Kconfig" 1402source "board/freescale/ls1043ardb/Kconfig" 1403source "board/freescale/ls1046ardb/Kconfig" 1404source "board/freescale/ls1012aqds/Kconfig" 1405source "board/freescale/ls1012ardb/Kconfig" 1406source "board/freescale/ls1012afrdm/Kconfig" 1407source "board/freescale/mx35pdk/Kconfig" 1408source "board/freescale/s32v234evb/Kconfig" 1409source "board/gdsys/a38x/Kconfig" 1410source "board/grinn/chiliboard/Kconfig" 1411source "board/gumstix/pepper/Kconfig" 1412source "board/h2200/Kconfig" 1413source "board/hisilicon/hikey/Kconfig" 1414source "board/hisilicon/poplar/Kconfig" 1415source "board/isee/igep003x/Kconfig" 1416source "board/phytec/pcm051/Kconfig" 1417source "board/silica/pengwyn/Kconfig" 1418source "board/spear/spear300/Kconfig" 1419source "board/spear/spear310/Kconfig" 1420source "board/spear/spear320/Kconfig" 1421source "board/spear/spear600/Kconfig" 1422source "board/spear/x600/Kconfig" 1423source "board/st/stv0991/Kconfig" 1424source "board/tcl/sl50/Kconfig" 1425source "board/birdland/bav335x/Kconfig" 1426source "board/timll/devkit3250/Kconfig" 1427source "board/toradex/colibri_pxa270/Kconfig" 1428source "board/vscom/baltos/Kconfig" 1429source "board/woodburn/Kconfig" 1430source "board/work-microwave/work_92105/Kconfig" 1431source "board/xilinx/zynqmp/Kconfig" 1432source "board/zipitz2/Kconfig" 1433 1434source "arch/arm/Kconfig.debug" 1435 1436endmenu 1437 1438config SPL_LDSCRIPT 1439 default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK 1440 default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136 1441 default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64 1442 1443 1444