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 select SYS_THUMB_BUILD 225 226config CPU_V7R 227 bool 228 select HAS_THUMB2 229 select SYS_CACHE_SHIFT_6 230 select SYS_ARM_MPU 231 select SYS_ARM_CACHE_CP15 232 233config CPU_PXA 234 bool 235 select SYS_CACHE_SHIFT_5 236 imply SYS_ARM_MMU 237 238config CPU_SA1100 239 bool 240 select SYS_CACHE_SHIFT_5 241 imply SYS_ARM_MMU 242 243config SYS_CPU 244 default "arm720t" if CPU_ARM720T 245 default "arm920t" if CPU_ARM920T 246 default "arm926ejs" if CPU_ARM926EJS 247 default "arm946es" if CPU_ARM946ES 248 default "arm1136" if CPU_ARM1136 249 default "arm1176" if CPU_ARM1176 250 default "armv7" if CPU_V7A 251 default "armv7" if CPU_V7R 252 default "armv7m" if CPU_V7M 253 default "pxa" if CPU_PXA 254 default "sa1100" if CPU_SA1100 255 default "armv8" if ARM64 256 257config SYS_ARM_ARCH 258 int 259 default 4 if CPU_ARM720T 260 default 4 if CPU_ARM920T 261 default 5 if CPU_ARM926EJS 262 default 5 if CPU_ARM946ES 263 default 6 if CPU_ARM1136 264 default 6 if CPU_ARM1176 265 default 7 if CPU_V7A 266 default 7 if CPU_V7M 267 default 7 if CPU_V7R 268 default 5 if CPU_PXA 269 default 4 if CPU_SA1100 270 default 8 if ARM64 271 272config SYS_CACHE_SHIFT_5 273 bool 274 275config SYS_CACHE_SHIFT_6 276 bool 277 278config SYS_CACHE_SHIFT_7 279 bool 280 281config SYS_CACHELINE_SIZE 282 int 283 default 128 if SYS_CACHE_SHIFT_7 284 default 64 if SYS_CACHE_SHIFT_6 285 default 32 if SYS_CACHE_SHIFT_5 286 287config SYS_ARCH_TIMER 288 bool "ARM Generic Timer support" 289 depends on CPU_V7A || ARM64 290 default y if ARM64 291 help 292 The ARM Generic Timer (aka arch-timer) provides an architected 293 interface to a timer source on an SoC. 294 It is mandantory for ARMv8 implementation and widely available 295 on ARMv7 systems. 296 297config ARM_SMCCC 298 bool "Support for ARM SMC Calling Convention (SMCCC)" 299 depends on CPU_V7A || ARM64 300 select ARM_PSCI_FW 301 help 302 Say Y here if you want to enable ARM SMC Calling Convention. 303 This should be enabled if U-Boot needs to communicate with system 304 firmware (for example, PSCI) according to SMCCC. 305 306config SEMIHOSTING 307 bool "support boot from semihosting" 308 help 309 In emulated environments, semihosting is a way for 310 the hosted environment to call out to the emulator to 311 retrieve files from the host machine. 312 313config SYS_THUMB_BUILD 314 bool "Build U-Boot using the Thumb instruction set" 315 depends on !ARM64 316 help 317 Use this flag to build U-Boot using the Thumb instruction set for 318 ARM architectures. Thumb instruction set provides better code 319 density. For ARM architectures that support Thumb2 this flag will 320 result in Thumb2 code generated by GCC. 321 322config SPL_SYS_THUMB_BUILD 323 bool "Build SPL using the Thumb instruction set" 324 default y if SYS_THUMB_BUILD 325 depends on !ARM64 326 help 327 Use this flag to build SPL using the Thumb instruction set for 328 ARM architectures. Thumb instruction set provides better code 329 density. For ARM architectures that support Thumb2 this flag will 330 result in Thumb2 code generated by GCC. 331 332config SYS_L2CACHE_OFF 333 bool "L2cache off" 334 help 335 If SoC does not support L2CACHE or one do not want to enable 336 L2CACHE, choose this option. 337 338config ENABLE_ARM_SOC_BOOT0_HOOK 339 bool "prepare BOOT0 header" 340 help 341 If the SoC's BOOT0 requires a header area filled with (magic) 342 values, then choose this option, and create a file included as 343 <asm/arch/boot0.h> which contains the required assembler code. 344 345config ARM_CORTEX_CPU_IS_UP 346 bool 347 default n 348 349config USE_ARCH_MEMCPY 350 bool "Use an assembly optimized implementation of memcpy" 351 default y 352 depends on !ARM64 353 help 354 Enable the generation of an optimized version of memcpy. 355 Such implementation may be faster under some conditions 356 but may increase the binary size. 357 358config SPL_USE_ARCH_MEMCPY 359 bool "Use an assembly optimized implementation of memcpy for SPL" 360 default y if USE_ARCH_MEMCPY 361 depends on !ARM64 362 help 363 Enable the generation of an optimized version of memcpy. 364 Such implementation may be faster under some conditions 365 but may increase the binary size. 366 367config USE_ARCH_MEMSET 368 bool "Use an assembly optimized implementation of memset" 369 default y 370 depends on !ARM64 371 help 372 Enable the generation of an optimized version of memset. 373 Such implementation may be faster under some conditions 374 but may increase the binary size. 375 376config SPL_USE_ARCH_MEMSET 377 bool "Use an assembly optimized implementation of memset for SPL" 378 default y if USE_ARCH_MEMSET 379 depends on !ARM64 380 help 381 Enable the generation of an optimized version of memset. 382 Such implementation may be faster under some conditions 383 but may increase the binary size. 384 385config ARM64_SUPPORT_AARCH32 386 bool "ARM64 system support AArch32 execution state" 387 default y if ARM64 && !TARGET_THUNDERX_88XX 388 help 389 This ARM64 system supports AArch32 execution state. 390 391choice 392 prompt "Target select" 393 default TARGET_HIKEY 394 395config ARCH_AT91 396 bool "Atmel AT91" 397 select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB 398 399config TARGET_EDB93XX 400 bool "Support edb93xx" 401 select CPU_ARM920T 402 select PL010_SERIAL 403 404config TARGET_ASPENITE 405 bool "Support aspenite" 406 select CPU_ARM926EJS 407 408config TARGET_GPLUGD 409 bool "Support gplugd" 410 select CPU_ARM926EJS 411 412config ARCH_DAVINCI 413 bool "TI DaVinci" 414 select CPU_ARM926EJS 415 imply CMD_SAVES 416 help 417 Support for TI's DaVinci platform. 418 419config KIRKWOOD 420 bool "Marvell Kirkwood" 421 select CPU_ARM926EJS 422 select BOARD_EARLY_INIT_F 423 select ARCH_MISC_INIT 424 425config ARCH_MVEBU 426 bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)" 427 select OF_CONTROL 428 select OF_SEPARATE 429 select DM 430 select DM_ETH 431 select DM_SERIAL 432 select DM_SPI 433 select DM_SPI_FLASH 434 select SPI 435 436config TARGET_DEVKIT3250 437 bool "Support devkit3250" 438 select CPU_ARM926EJS 439 select SUPPORT_SPL 440 441config TARGET_WORK_92105 442 bool "Support work_92105" 443 select CPU_ARM926EJS 444 select SUPPORT_SPL 445 446config TARGET_APF27 447 bool "Support apf27" 448 select CPU_ARM926EJS 449 select SUPPORT_SPL 450 451config ORION5X 452 bool "Marvell Orion" 453 select CPU_ARM926EJS 454 455config TARGET_SPEAR300 456 bool "Support spear300" 457 select CPU_ARM926EJS 458 select BOARD_EARLY_INIT_F 459 imply CMD_SAVES 460 select PL011_SERIAL 461 462config TARGET_SPEAR310 463 bool "Support spear310" 464 select CPU_ARM926EJS 465 select BOARD_EARLY_INIT_F 466 imply CMD_SAVES 467 select PL011_SERIAL 468 469config TARGET_SPEAR320 470 bool "Support spear320" 471 select CPU_ARM926EJS 472 select BOARD_EARLY_INIT_F 473 imply CMD_SAVES 474 select PL011_SERIAL 475 476config TARGET_SPEAR600 477 bool "Support spear600" 478 select CPU_ARM926EJS 479 select BOARD_EARLY_INIT_F 480 imply CMD_SAVES 481 select PL011_SERIAL 482 483config TARGET_STV0991 484 bool "Support stv0991" 485 select CPU_V7A 486 select DM 487 select DM_SERIAL 488 select DM_SPI 489 select DM_SPI_FLASH 490 select SPI 491 select SPI_FLASH 492 select PL01X_SERIAL 493 494config TARGET_X600 495 bool "Support x600" 496 select BOARD_LATE_INIT 497 select CPU_ARM926EJS 498 select SUPPORT_SPL 499 select PL011_SERIAL 500 501config TARGET_WOODBURN 502 bool "Support woodburn" 503 select CPU_ARM1136 504 505config TARGET_WOODBURN_SD 506 bool "Support woodburn_sd" 507 select CPU_ARM1136 508 select SUPPORT_SPL 509 510config TARGET_FLEA3 511 bool "Support flea3" 512 select CPU_ARM1136 513 514config TARGET_MX35PDK 515 bool "Support mx35pdk" 516 select BOARD_LATE_INIT 517 select CPU_ARM1136 518 519config ARCH_BCM283X 520 bool "Broadcom BCM283X family" 521 select DM 522 select DM_SERIAL 523 select DM_GPIO 524 select OF_CONTROL 525 select PL01X_SERIAL 526 select SERIAL_SEARCH_ALL 527 imply FAT_WRITE 528 529config TARGET_VEXPRESS_CA15_TC2 530 bool "Support vexpress_ca15_tc2" 531 select CPU_V7A 532 select CPU_V7_HAS_NONSEC 533 select CPU_V7_HAS_VIRT 534 select PL011_SERIAL 535 536config TARGET_VEXPRESS_CA5X2 537 bool "Support vexpress_ca5x2" 538 select CPU_V7A 539 select PL011_SERIAL 540 541config TARGET_VEXPRESS_CA9X4 542 bool "Support vexpress_ca9x4" 543 select CPU_V7A 544 select PL011_SERIAL 545 546config TARGET_BCM23550_W1D 547 bool "Support bcm23550_w1d" 548 select CPU_V7A 549 imply CRC32_VERIFY 550 imply FAT_WRITE 551 552config TARGET_BCM28155_AP 553 bool "Support bcm28155_ap" 554 select CPU_V7A 555 imply CRC32_VERIFY 556 imply FAT_WRITE 557 558config TARGET_BCMCYGNUS 559 bool "Support bcmcygnus" 560 select CPU_V7A 561 imply CRC32_VERIFY 562 imply CMD_HASH 563 imply FAT_WRITE 564 imply HASH_VERIFY 565 imply NETDEVICES 566 imply BCM_SF2_ETH 567 imply BCM_SF2_ETH_GMAC 568 569config TARGET_BCMNSP 570 bool "Support bcmnsp" 571 select CPU_V7A 572 573config TARGET_BCMNS2 574 bool "Support Broadcom Northstar2" 575 select ARM64 576 help 577 Support for Broadcom Northstar 2 SoCs. NS2 is a quad-core 64-bit 578 ARMv8 Cortex-A57 processors targeting a broad range of networking 579 applications 580 581config ARCH_EXYNOS 582 bool "Samsung EXYNOS" 583 select DM 584 select DM_I2C 585 select DM_SPI_FLASH 586 select DM_SERIAL 587 select DM_SPI 588 select DM_GPIO 589 select DM_KEYBOARD 590 select SPI 591 imply FAT_WRITE 592 593config ARCH_S5PC1XX 594 bool "Samsung S5PC1XX" 595 select CPU_V7A 596 select DM 597 select DM_SERIAL 598 select DM_GPIO 599 select DM_I2C 600 601config ARCH_HIGHBANK 602 bool "Calxeda Highbank" 603 select CPU_V7A 604 select PL011_SERIAL 605 606config ARCH_INTEGRATOR 607 bool "ARM Ltd. Integrator family" 608 select DM 609 select DM_SERIAL 610 select PL01X_SERIAL 611 612config ARCH_KEYSTONE 613 bool "TI Keystone" 614 select CPU_V7A 615 select SUPPORT_SPL 616 select SYS_THUMB_BUILD 617 select CMD_POWEROFF 618 select SYS_ARCH_TIMER 619 imply CMD_MTDPARTS 620 imply FIT 621 imply CMD_SAVES 622 623config ARCH_OMAP2PLUS 624 bool "TI OMAP2+" 625 select CPU_V7A 626 select SPL_BOARD_INIT if SPL 627 select SPL_STACK_R if SPL 628 select SUPPORT_SPL 629 imply FIT 630 631config ARCH_MESON 632 bool "Amlogic Meson" 633 imply DISTRO_DEFAULTS 634 help 635 Support for the Meson SoC family developed by Amlogic Inc., 636 targeted at media players and tablet computers. We currently 637 support the S905 (GXBaby) 64-bit SoC. 638 639config ARCH_MX8M 640 bool "NXP i.MX8M platform" 641 select ARM64 642 select DM 643 select SUPPORT_SPL 644 645config ARCH_MX23 646 bool "NXP i.MX23 family" 647 select CPU_ARM926EJS 648 select PL011_SERIAL 649 select SUPPORT_SPL 650 651config ARCH_MX25 652 bool "NXP MX25" 653 select CPU_ARM926EJS 654 imply MXC_GPIO 655 656config ARCH_MX28 657 bool "NXP i.MX28 family" 658 select CPU_ARM926EJS 659 select PL011_SERIAL 660 select SUPPORT_SPL 661 662config ARCH_MX31 663 bool "NXP i.MX31 family" 664 select CPU_ARM1136 665 666config ARCH_MX7ULP 667 bool "NXP MX7ULP" 668 select CPU_V7A 669 select ROM_UNIFIED_SECTIONS 670 imply MXC_GPIO 671 672config ARCH_MX7 673 bool "Freescale MX7" 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 BOARD_EARLY_INIT_F 679 select ARCH_MISC_INIT 680 imply MXC_GPIO 681 682config ARCH_MX6 683 bool "Freescale MX6" 684 select CPU_V7A 685 select SYS_FSL_HAS_SEC if SECURE_BOOT 686 select SYS_FSL_SEC_COMPAT_4 687 select SYS_FSL_SEC_LE 688 select SYS_THUMB_BUILD if SPL 689 imply MXC_GPIO 690 691if ARCH_MX6 692config SPL_LDSCRIPT 693 default "arch/arm/mach-omap2/u-boot-spl.lds" 694endif 695 696config ARCH_MX5 697 bool "Freescale MX5" 698 select CPU_V7A 699 select BOARD_EARLY_INIT_F 700 imply MXC_GPIO 701 702config ARCH_QEMU 703 bool "QEMU Virtual Platform" 704 select DM 705 select DM_SERIAL 706 select OF_CONTROL 707 select PL01X_SERIAL 708 709config ARCH_RMOBILE 710 bool "Renesas ARM SoCs" 711 select DM 712 select DM_SERIAL 713 select BOARD_EARLY_INIT_F 714 imply FAT_WRITE 715 imply SYS_THUMB_BUILD 716 717config TARGET_S32V234EVB 718 bool "Support s32v234evb" 719 select ARM64 720 select SYS_FSL_ERRATUM_ESDHC111 721 722config ARCH_SNAPDRAGON 723 bool "Qualcomm Snapdragon SoCs" 724 select ARM64 725 select DM 726 select DM_GPIO 727 select DM_SERIAL 728 select SPMI 729 select OF_CONTROL 730 select OF_SEPARATE 731 732config ARCH_SOCFPGA 733 bool "Altera SOCFPGA family" 734 select ARCH_EARLY_INIT_R 735 select ARCH_MISC_INIT 736 select CPU_V7A 737 select DM 738 select DM_SERIAL 739 select ENABLE_ARM_SOC_BOOT0_HOOK 740 select OF_CONTROL 741 select SPL_LIBCOMMON_SUPPORT 742 select SPL_LIBDISK_SUPPORT 743 select SPL_LIBGENERIC_SUPPORT 744 select SPL_MMC_SUPPORT if DM_MMC 745 select SPL_NAND_SUPPORT if SPL_NAND_DENALI 746 select SPL_OF_CONTROL 747 select SPL_SERIAL_SUPPORT 748 select SPL_DM_SERIAL 749 select SPL_SPI_FLASH_SUPPORT if SPL_SPI_SUPPORT 750 select SPL_SPI_SUPPORT if DM_SPI 751 select SPL_WATCHDOG_SUPPORT 752 select SUPPORT_SPL 753 select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE 754 select SYS_NS16550 755 select SYS_THUMB_BUILD 756 imply CMD_MTDPARTS 757 imply CRC32_VERIFY 758 imply DM_SPI 759 imply DM_SPI_FLASH 760 imply FAT_WRITE 761 imply HW_WATCHDOG 762 imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION 763 764config ARCH_SUNXI 765 bool "Support sunxi (Allwinner) SoCs" 766 select BINMAN 767 select CMD_GPIO 768 select CMD_MMC if MMC 769 select CMD_USB if DISTRO_DEFAULTS 770 select DM 771 select DM_ETH 772 select DM_GPIO 773 select DM_KEYBOARD 774 select DM_SERIAL 775 select DM_USB if DISTRO_DEFAULTS 776 select OF_BOARD_SETUP 777 select OF_CONTROL 778 select OF_SEPARATE 779 select SPECIFY_CONSOLE_INDEX 780 select SPL_STACK_R if SPL 781 select SPL_SYS_MALLOC_SIMPLE if SPL 782 select SYS_NS16550 783 select SPL_SYS_THUMB_BUILD if !ARM64 784 select SYS_THUMB_BUILD if !ARM64 785 select USB if DISTRO_DEFAULTS 786 select USB_STORAGE if DISTRO_DEFAULTS 787 select USB_KEYBOARD if DISTRO_DEFAULTS 788 select USE_TINY_PRINTF 789 imply CMD_GPT 790 imply DISTRO_DEFAULTS 791 imply FAT_WRITE 792 imply OF_LIBFDT_OVERLAY 793 imply PRE_CONSOLE_BUFFER 794 imply SPL_GPIO_SUPPORT 795 imply SPL_LIBCOMMON_SUPPORT 796 imply SPL_LIBDISK_SUPPORT 797 imply SPL_LIBGENERIC_SUPPORT 798 imply SPL_MMC_SUPPORT if MMC 799 imply SPL_POWER_SUPPORT 800 imply SPL_SERIAL_SUPPORT 801 imply USB_GADGET 802 803config ARCH_VF610 804 bool "Freescale Vybrid" 805 select CPU_V7A 806 select SYS_FSL_ERRATUM_ESDHC111 807 imply CMD_MTDPARTS 808 imply NAND 809 810config ARCH_ZYNQ 811 bool "Xilinx Zynq based platform" 812 select BOARD_LATE_INIT 813 select CPU_V7A 814 select SUPPORT_SPL 815 select OF_CONTROL 816 select SPL_BOARD_INIT if SPL 817 select BOARD_EARLY_INIT_F if WDT 818 select SPL_OF_CONTROL if SPL 819 select DM 820 select DM_ETH if NET 821 select SPL_DM if SPL 822 select DM_MMC if MMC 823 select DM_SPI 824 select DM_SERIAL 825 select DM_SPI_FLASH 826 select SPL_SEPARATE_BSS if SPL 827 select DM_USB if USB 828 select CLK 829 select SPL_CLK if SPL 830 select CLK_ZYNQ 831 select SPI 832 imply CMD_CLK 833 imply FAT_WRITE 834 imply CMD_SPL 835 imply ARCH_EARLY_INIT_R 836 837config ARCH_ZYNQMP_R5 838 bool "Xilinx ZynqMP R5 based platform" 839 select CPU_V7R 840 select OF_CONTROL 841 select DM 842 select DM_SERIAL 843 select CLK 844 845config ARCH_ZYNQMP 846 bool "Xilinx ZynqMP based platform" 847 select ARM64 848 select BOARD_LATE_INIT 849 select DM 850 select OF_CONTROL 851 select DM_SERIAL 852 select SUPPORT_SPL 853 select CLK 854 select SPL_BOARD_INIT if SPL 855 select SPL_CLK if SPL 856 select DM_USB if USB 857 imply FAT_WRITE 858 859config TEGRA 860 bool "NVIDIA Tegra" 861 imply DISTRO_DEFAULTS 862 imply FAT_WRITE 863 864config TARGET_VEXPRESS64_AEMV8A 865 bool "Support vexpress_aemv8a" 866 select ARM64 867 select PL01X_SERIAL 868 869config TARGET_VEXPRESS64_BASE_FVP 870 bool "Support Versatile Express ARMv8a FVP BASE model" 871 select ARM64 872 select SEMIHOSTING 873 select PL01X_SERIAL 874 875config TARGET_VEXPRESS64_BASE_FVP_DRAM 876 bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM" 877 select ARM64 878 select PL01X_SERIAL 879 help 880 This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides 881 the default config to allow the user to load the images directly into 882 DRAM using model parameters rather than by using semi-hosting to load 883 the files from the host filesystem. 884 885config TARGET_VEXPRESS64_JUNO 886 bool "Support Versatile Express Juno Development Platform" 887 select ARM64 888 select PL01X_SERIAL 889 890config TARGET_LS2080A_EMU 891 bool "Support ls2080a_emu" 892 select ARCH_LS2080A 893 select ARM64 894 select ARMV8_MULTIENTRY 895 select ARCH_MISC_INIT 896 help 897 Support for Freescale LS2080A_EMU platform 898 The LS2080A Development System (EMULATOR) is a pre silicon 899 development platform that supports the QorIQ LS2080A 900 Layerscape Architecture processor. 901 902config TARGET_LS2080A_SIMU 903 bool "Support ls2080a_simu" 904 select ARCH_LS2080A 905 select ARM64 906 select ARMV8_MULTIENTRY 907 select ARCH_MISC_INIT 908 help 909 Support for Freescale LS2080A_SIMU platform 910 The LS2080A Development System (QDS) is a pre silicon 911 development platform that supports the QorIQ LS2080A 912 Layerscape Architecture processor. 913 914config TARGET_LS1088AQDS 915 bool "Support ls1088aqds" 916 select ARCH_LS1088A 917 select ARM64 918 select ARMV8_MULTIENTRY 919 select ARCH_MISC_INIT 920 select BOARD_LATE_INIT 921 select SUPPORT_SPL 922 help 923 Support for NXP LS1088AQDS platform 924 The LS1088A Development System (QDS) is a high-performance 925 development platform that supports the QorIQ LS1088A 926 Layerscape Architecture processor. 927 928config TARGET_LS2080AQDS 929 bool "Support ls2080aqds" 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 imply SCSI 937 imply SCSI_AHCI 938 help 939 Support for Freescale LS2080AQDS platform 940 The LS2080A Development System (QDS) is a high-performance 941 development platform that supports the QorIQ LS2080A 942 Layerscape Architecture processor. 943 944config TARGET_LS2080ARDB 945 bool "Support ls2080ardb" 946 select ARCH_LS2080A 947 select ARM64 948 select ARMV8_MULTIENTRY 949 select BOARD_LATE_INIT 950 select SUPPORT_SPL 951 select ARCH_MISC_INIT 952 imply SCSI 953 imply SCSI_AHCI 954 help 955 Support for Freescale LS2080ARDB platform. 956 The LS2080A Reference design board (RDB) is a high-performance 957 development platform that supports the QorIQ LS2080A 958 Layerscape Architecture processor. 959 960config TARGET_LS2081ARDB 961 bool "Support ls2081ardb" 962 select ARCH_LS2080A 963 select ARM64 964 select ARMV8_MULTIENTRY 965 select BOARD_LATE_INIT 966 select SUPPORT_SPL 967 select ARCH_MISC_INIT 968 help 969 Support for Freescale LS2081ARDB platform. 970 The LS2081A Reference design board (RDB) is a high-performance 971 development platform that supports the QorIQ LS2081A/LS2041A 972 Layerscape Architecture processor. 973 974config TARGET_HIKEY 975 bool "Support HiKey 96boards Consumer Edition Platform" 976 select ARM64 977 select DM 978 select DM_GPIO 979 select DM_SERIAL 980 select OF_CONTROL 981 select PL01X_SERIAL 982 select SPECIFY_CONSOLE_INDEX 983 help 984 Support for HiKey 96boards platform. It features a HI6220 985 SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM. 986 987config TARGET_POPLAR 988 bool "Support Poplar 96boards Enterprise Edition Platform" 989 select ARM64 990 select DM 991 select OF_CONTROL 992 select DM_SERIAL 993 select DM_USB 994 select PL01X_SERIAL 995 help 996 Support for Poplar 96boards EE platform. It features a HI3798cv200 997 SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU 998 making it capable of running any commercial set-top solution based on 999 Linux or Android. 1000 1001config TARGET_LS1012AQDS 1002 bool "Support ls1012aqds" 1003 select ARCH_LS1012A 1004 select ARM64 1005 select BOARD_LATE_INIT 1006 help 1007 Support for Freescale LS1012AQDS platform. 1008 The LS1012A Development System (QDS) is a high-performance 1009 development platform that supports the QorIQ LS1012A 1010 Layerscape Architecture processor. 1011 1012config TARGET_LS1012ARDB 1013 bool "Support ls1012ardb" 1014 select ARCH_LS1012A 1015 select ARM64 1016 select BOARD_LATE_INIT 1017 imply SCSI 1018 imply SCSI_AHCI 1019 help 1020 Support for Freescale LS1012ARDB platform. 1021 The LS1012A Reference design board (RDB) is a high-performance 1022 development platform that supports the QorIQ LS1012A 1023 Layerscape Architecture processor. 1024 1025config TARGET_LS1012A2G5RDB 1026 bool "Support ls1012a2g5rdb" 1027 select ARCH_LS1012A 1028 select ARM64 1029 select BOARD_LATE_INIT 1030 imply SCSI 1031 help 1032 Support for Freescale LS1012A2G5RDB platform. 1033 The LS1012A 2G5 Reference design board (RDB) is a high-performance 1034 development platform that supports the QorIQ LS1012A 1035 Layerscape Architecture processor. 1036 1037config TARGET_LS1012AFRDM 1038 bool "Support ls1012afrdm" 1039 select ARCH_LS1012A 1040 select ARM64 1041 help 1042 Support for Freescale LS1012AFRDM platform. 1043 The LS1012A Freedom board (FRDM) is a high-performance 1044 development platform that supports the QorIQ LS1012A 1045 Layerscape Architecture processor. 1046 1047config TARGET_LS1088ARDB 1048 bool "Support ls1088ardb" 1049 select ARCH_LS1088A 1050 select ARM64 1051 select ARMV8_MULTIENTRY 1052 select ARCH_MISC_INIT 1053 select BOARD_LATE_INIT 1054 select SUPPORT_SPL 1055 help 1056 Support for NXP LS1088ARDB platform. 1057 The LS1088A Reference design board (RDB) is a high-performance 1058 development platform that supports the QorIQ LS1088A 1059 Layerscape Architecture processor. 1060 1061config TARGET_LS1021AQDS 1062 bool "Support ls1021aqds" 1063 select BOARD_LATE_INIT 1064 select CPU_V7A 1065 select CPU_V7_HAS_NONSEC 1066 select CPU_V7_HAS_VIRT 1067 select SUPPORT_SPL 1068 select ARCH_LS1021A 1069 select ARCH_SUPPORT_PSCI 1070 select LS1_DEEP_SLEEP 1071 select SYS_FSL_DDR 1072 select BOARD_EARLY_INIT_F 1073 imply SCSI 1074 1075config TARGET_LS1021ATWR 1076 bool "Support ls1021atwr" 1077 select BOARD_LATE_INIT 1078 select CPU_V7A 1079 select CPU_V7_HAS_NONSEC 1080 select CPU_V7_HAS_VIRT 1081 select SUPPORT_SPL 1082 select ARCH_LS1021A 1083 select ARCH_SUPPORT_PSCI 1084 select LS1_DEEP_SLEEP 1085 select BOARD_EARLY_INIT_F 1086 imply SCSI 1087 1088config TARGET_LS1021AIOT 1089 bool "Support ls1021aiot" 1090 select BOARD_LATE_INIT 1091 select CPU_V7A 1092 select CPU_V7_HAS_NONSEC 1093 select CPU_V7_HAS_VIRT 1094 select SUPPORT_SPL 1095 select ARCH_LS1021A 1096 select ARCH_SUPPORT_PSCI 1097 imply SCSI 1098 help 1099 Support for Freescale LS1021AIOT platform. 1100 The LS1021A Freescale board (IOT) is a high-performance 1101 development platform that supports the QorIQ LS1021A 1102 Layerscape Architecture processor. 1103 1104config TARGET_LS1043AQDS 1105 bool "Support ls1043aqds" 1106 select ARCH_LS1043A 1107 select ARM64 1108 select ARMV8_MULTIENTRY 1109 select BOARD_LATE_INIT 1110 select SUPPORT_SPL 1111 select BOARD_EARLY_INIT_F 1112 imply SCSI 1113 help 1114 Support for Freescale LS1043AQDS platform. 1115 1116config TARGET_LS1043ARDB 1117 bool "Support ls1043ardb" 1118 select ARCH_LS1043A 1119 select ARM64 1120 select ARMV8_MULTIENTRY 1121 select BOARD_LATE_INIT 1122 select SUPPORT_SPL 1123 select BOARD_EARLY_INIT_F 1124 imply SCSI 1125 help 1126 Support for Freescale LS1043ARDB platform. 1127 1128config TARGET_LS1046AQDS 1129 bool "Support ls1046aqds" 1130 select ARCH_LS1046A 1131 select ARM64 1132 select ARMV8_MULTIENTRY 1133 select BOARD_LATE_INIT 1134 select SUPPORT_SPL 1135 select DM_SPI_FLASH if DM_SPI 1136 select BOARD_EARLY_INIT_F 1137 imply SCSI 1138 help 1139 Support for Freescale LS1046AQDS platform. 1140 The LS1046A Development System (QDS) is a high-performance 1141 development platform that supports the QorIQ LS1046A 1142 Layerscape Architecture processor. 1143 1144config TARGET_LS1046ARDB 1145 bool "Support ls1046ardb" 1146 select ARCH_LS1046A 1147 select ARM64 1148 select ARMV8_MULTIENTRY 1149 select BOARD_LATE_INIT 1150 select SUPPORT_SPL 1151 select DM_SPI_FLASH if DM_SPI 1152 select POWER_MC34VR500 1153 select BOARD_EARLY_INIT_F 1154 imply SCSI 1155 help 1156 Support for Freescale LS1046ARDB platform. 1157 The LS1046A Reference Design Board (RDB) is a high-performance 1158 development platform that supports the QorIQ LS1046A 1159 Layerscape Architecture processor. 1160 1161config TARGET_H2200 1162 bool "Support h2200" 1163 select CPU_PXA 1164 1165config TARGET_ZIPITZ2 1166 bool "Support zipitz2" 1167 select CPU_PXA 1168 1169config TARGET_COLIBRI_PXA270 1170 bool "Support colibri_pxa270" 1171 select CPU_PXA 1172 1173config ARCH_UNIPHIER 1174 bool "Socionext UniPhier SoCs" 1175 select BOARD_LATE_INIT 1176 select DM 1177 select DM_GPIO 1178 select DM_I2C 1179 select DM_MMC 1180 select DM_RESET 1181 select DM_SERIAL 1182 select DM_USB 1183 select OF_CONTROL 1184 select OF_LIBFDT 1185 select PINCTRL 1186 select SPL_BOARD_INIT if SPL 1187 select SPL_DM if SPL 1188 select SPL_LIBCOMMON_SUPPORT if SPL 1189 select SPL_LIBGENERIC_SUPPORT if SPL 1190 select SPL_OF_CONTROL if SPL 1191 select SPL_PINCTRL if SPL 1192 select SUPPORT_SPL 1193 imply FAT_WRITE 1194 help 1195 Support for UniPhier SoC family developed by Socionext Inc. 1196 (formerly, System LSI Business Division of Panasonic Corporation) 1197 1198config STM32 1199 bool "Support STMicroelectronics STM32 MCU with cortex M" 1200 select CPU_V7M 1201 select DM 1202 select DM_SERIAL 1203 select SYS_THUMB_BUILD 1204 1205config ARCH_STI 1206 bool "Support STMicrolectronics SoCs" 1207 select CPU_V7A 1208 select DM 1209 select DM_SERIAL 1210 select BLK 1211 select DM_MMC 1212 select DM_RESET 1213 help 1214 Support for STMicroelectronics STiH407/10 SoC family. 1215 This SoC is used on Linaro 96Board STiH410-B2260 1216 1217config ARCH_STM32MP 1218 bool "Support STMicroelectronics STM32MP Socs with cortex A" 1219 select ARCH_MISC_INIT 1220 select BOARD_LATE_INIT 1221 select CLK 1222 select DM 1223 select DM_GPIO 1224 select DM_RESET 1225 select DM_SERIAL 1226 select OF_CONTROL 1227 select OF_LIBFDT 1228 select MISC 1229 select PINCTRL 1230 select REGMAP 1231 select SUPPORT_SPL 1232 select SYSCON 1233 select SYSRESET 1234 select SYS_THUMB_BUILD 1235 help 1236 Support for STM32MP SoC family developed by STMicroelectronics, 1237 MPUs based on ARM cortex A core 1238 U-BOOT is running in DDR and SPL support is the unsecure First Stage 1239 BootLoader (FSBL) 1240 1241config ARCH_ROCKCHIP 1242 bool "Support Rockchip SoCs" 1243 select OF_CONTROL 1244 select BLK 1245 select DM 1246 select SPL_DM if SPL 1247 select SYS_MALLOC_F 1248 select SYS_THUMB_BUILD if !ARM64 1249 select SPL_SYS_MALLOC_SIMPLE if SPL 1250 select DM_GPIO 1251 select DM_I2C 1252 select DM_MMC 1253 select DM_SERIAL 1254 select DM_SPI 1255 select DM_SPI_FLASH 1256 select DM_USB if USB 1257 select DM_PWM 1258 select DM_REGULATOR 1259 select ENABLE_ARM_SOC_BOOT0_HOOK 1260 select SPI 1261 imply DISTRO_DEFAULTS 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