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