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_LS1012AFRWY 1038 bool "Support ls1012afrwy" 1039 select ARCH_LS1012A 1040 select BOARD_LATE_INIT 1041 select ARM64 1042 imply SCSI 1043 imply SCSI_AHCI 1044 help 1045 Support for Freescale LS1012AFRWY platform. 1046 The LS1012A FRWY board (FRWY) is a high-performance 1047 development platform that supports the QorIQ LS1012A 1048 Layerscape Architecture processor. 1049 1050config TARGET_LS1012AFRDM 1051 bool "Support ls1012afrdm" 1052 select ARCH_LS1012A 1053 select ARM64 1054 help 1055 Support for Freescale LS1012AFRDM platform. 1056 The LS1012A Freedom board (FRDM) is a high-performance 1057 development platform that supports the QorIQ LS1012A 1058 Layerscape Architecture processor. 1059 1060config TARGET_LS1088ARDB 1061 bool "Support ls1088ardb" 1062 select ARCH_LS1088A 1063 select ARM64 1064 select ARMV8_MULTIENTRY 1065 select ARCH_MISC_INIT 1066 select BOARD_LATE_INIT 1067 select SUPPORT_SPL 1068 help 1069 Support for NXP LS1088ARDB platform. 1070 The LS1088A Reference design board (RDB) is a high-performance 1071 development platform that supports the QorIQ LS1088A 1072 Layerscape Architecture processor. 1073 1074config TARGET_LS1021AQDS 1075 bool "Support ls1021aqds" 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 SYS_FSL_DDR 1085 select BOARD_EARLY_INIT_F 1086 imply SCSI 1087 1088config TARGET_LS1021ATWR 1089 bool "Support ls1021atwr" 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 select LS1_DEEP_SLEEP 1098 select BOARD_EARLY_INIT_F 1099 imply SCSI 1100 1101config TARGET_LS1021AIOT 1102 bool "Support ls1021aiot" 1103 select BOARD_LATE_INIT 1104 select CPU_V7A 1105 select CPU_V7_HAS_NONSEC 1106 select CPU_V7_HAS_VIRT 1107 select SUPPORT_SPL 1108 select ARCH_LS1021A 1109 select ARCH_SUPPORT_PSCI 1110 imply SCSI 1111 help 1112 Support for Freescale LS1021AIOT platform. 1113 The LS1021A Freescale board (IOT) is a high-performance 1114 development platform that supports the QorIQ LS1021A 1115 Layerscape Architecture processor. 1116 1117config TARGET_LS1043AQDS 1118 bool "Support ls1043aqds" 1119 select ARCH_LS1043A 1120 select ARM64 1121 select ARMV8_MULTIENTRY 1122 select BOARD_LATE_INIT 1123 select SUPPORT_SPL 1124 select BOARD_EARLY_INIT_F 1125 imply SCSI 1126 help 1127 Support for Freescale LS1043AQDS platform. 1128 1129config TARGET_LS1043ARDB 1130 bool "Support ls1043ardb" 1131 select ARCH_LS1043A 1132 select ARM64 1133 select ARMV8_MULTIENTRY 1134 select BOARD_LATE_INIT 1135 select SUPPORT_SPL 1136 select BOARD_EARLY_INIT_F 1137 imply SCSI 1138 help 1139 Support for Freescale LS1043ARDB platform. 1140 1141config TARGET_LS1046AQDS 1142 bool "Support ls1046aqds" 1143 select ARCH_LS1046A 1144 select ARM64 1145 select ARMV8_MULTIENTRY 1146 select BOARD_LATE_INIT 1147 select SUPPORT_SPL 1148 select DM_SPI_FLASH if DM_SPI 1149 select BOARD_EARLY_INIT_F 1150 imply SCSI 1151 help 1152 Support for Freescale LS1046AQDS platform. 1153 The LS1046A Development System (QDS) is a high-performance 1154 development platform that supports the QorIQ LS1046A 1155 Layerscape Architecture processor. 1156 1157config TARGET_LS1046ARDB 1158 bool "Support ls1046ardb" 1159 select ARCH_LS1046A 1160 select ARM64 1161 select ARMV8_MULTIENTRY 1162 select BOARD_LATE_INIT 1163 select SUPPORT_SPL 1164 select DM_SPI_FLASH if DM_SPI 1165 select POWER_MC34VR500 1166 select BOARD_EARLY_INIT_F 1167 imply SCSI 1168 help 1169 Support for Freescale LS1046ARDB platform. 1170 The LS1046A Reference Design Board (RDB) is a high-performance 1171 development platform that supports the QorIQ LS1046A 1172 Layerscape Architecture processor. 1173 1174config TARGET_H2200 1175 bool "Support h2200" 1176 select CPU_PXA 1177 1178config TARGET_ZIPITZ2 1179 bool "Support zipitz2" 1180 select CPU_PXA 1181 1182config TARGET_COLIBRI_PXA270 1183 bool "Support colibri_pxa270" 1184 select CPU_PXA 1185 1186config ARCH_UNIPHIER 1187 bool "Socionext UniPhier SoCs" 1188 select BOARD_LATE_INIT 1189 select DM 1190 select DM_GPIO 1191 select DM_I2C 1192 select DM_MMC 1193 select DM_RESET 1194 select DM_SERIAL 1195 select DM_USB 1196 select OF_CONTROL 1197 select OF_LIBFDT 1198 select PINCTRL 1199 select SPL_BOARD_INIT if SPL 1200 select SPL_DM if SPL 1201 select SPL_LIBCOMMON_SUPPORT if SPL 1202 select SPL_LIBGENERIC_SUPPORT if SPL 1203 select SPL_OF_CONTROL if SPL 1204 select SPL_PINCTRL if SPL 1205 select SUPPORT_SPL 1206 imply FAT_WRITE 1207 help 1208 Support for UniPhier SoC family developed by Socionext Inc. 1209 (formerly, System LSI Business Division of Panasonic Corporation) 1210 1211config STM32 1212 bool "Support STMicroelectronics STM32 MCU with cortex M" 1213 select CPU_V7M 1214 select DM 1215 select DM_SERIAL 1216 select SYS_THUMB_BUILD 1217 1218config ARCH_STI 1219 bool "Support STMicrolectronics SoCs" 1220 select CPU_V7A 1221 select DM 1222 select DM_SERIAL 1223 select BLK 1224 select DM_MMC 1225 select DM_RESET 1226 help 1227 Support for STMicroelectronics STiH407/10 SoC family. 1228 This SoC is used on Linaro 96Board STiH410-B2260 1229 1230config ARCH_STM32MP 1231 bool "Support STMicroelectronics STM32MP Socs with cortex A" 1232 select ARCH_MISC_INIT 1233 select BOARD_LATE_INIT 1234 select CLK 1235 select DM 1236 select DM_GPIO 1237 select DM_RESET 1238 select DM_SERIAL 1239 select OF_CONTROL 1240 select OF_LIBFDT 1241 select MISC 1242 select PINCTRL 1243 select REGMAP 1244 select SUPPORT_SPL 1245 select SYSCON 1246 select SYSRESET 1247 select SYS_THUMB_BUILD 1248 help 1249 Support for STM32MP SoC family developed by STMicroelectronics, 1250 MPUs based on ARM cortex A core 1251 U-BOOT is running in DDR and SPL support is the unsecure First Stage 1252 BootLoader (FSBL) 1253 1254config ARCH_ROCKCHIP 1255 bool "Support Rockchip SoCs" 1256 select OF_CONTROL 1257 select BLK 1258 select DM 1259 select SPL_DM if SPL 1260 select SYS_MALLOC_F 1261 select SYS_THUMB_BUILD if !ARM64 1262 select SPL_SYS_MALLOC_SIMPLE if SPL 1263 select DM_GPIO 1264 select DM_I2C 1265 select DM_MMC 1266 select DM_SERIAL 1267 select DM_SPI 1268 select DM_SPI_FLASH 1269 select DM_USB if USB 1270 select DM_PWM 1271 select DM_REGULATOR 1272 select ENABLE_ARM_SOC_BOOT0_HOOK 1273 select SPI 1274 imply DISTRO_DEFAULTS 1275 imply FAT_WRITE 1276 imply USB_FUNCTION_FASTBOOT 1277 imply SPL_SYSRESET 1278 imply TPL_SYSRESET 1279 imply ADC 1280 imply SARADC_ROCKCHIP 1281 imply SYS_NS16550 1282 1283config TARGET_THUNDERX_88XX 1284 bool "Support ThunderX 88xx" 1285 select ARM64 1286 select OF_CONTROL 1287 select SYS_CACHE_SHIFT_7 1288 select PL01X_SERIAL 1289 1290config ARCH_ASPEED 1291 bool "Support Aspeed SoCs" 1292 select OF_CONTROL 1293 select DM 1294 1295endchoice 1296 1297config TI_SECURE_DEVICE 1298 bool "HS Device Type Support" 1299 depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS 1300 help 1301 If a high secure (HS) device type is being used, this config 1302 must be set. This option impacts various aspects of the 1303 build system (to create signed boot images that can be 1304 authenticated) and the code. See the doc/README.ti-secure 1305 file for further details. 1306 1307source "arch/arm/mach-aspeed/Kconfig" 1308 1309source "arch/arm/mach-at91/Kconfig" 1310 1311source "arch/arm/mach-bcm283x/Kconfig" 1312 1313source "arch/arm/mach-davinci/Kconfig" 1314 1315source "arch/arm/mach-exynos/Kconfig" 1316 1317source "arch/arm/mach-highbank/Kconfig" 1318 1319source "arch/arm/mach-integrator/Kconfig" 1320 1321source "arch/arm/mach-keystone/Kconfig" 1322 1323source "arch/arm/mach-kirkwood/Kconfig" 1324 1325source "arch/arm/mach-mvebu/Kconfig" 1326 1327source "arch/arm/cpu/armv7/ls102xa/Kconfig" 1328 1329source "arch/arm/mach-imx/mx2/Kconfig" 1330 1331source "arch/arm/mach-imx/mx3/Kconfig" 1332 1333source "arch/arm/mach-imx/mx5/Kconfig" 1334 1335source "arch/arm/mach-imx/mx6/Kconfig" 1336 1337source "arch/arm/mach-imx/mx7/Kconfig" 1338 1339source "arch/arm/mach-imx/mx7ulp/Kconfig" 1340 1341source "arch/arm/mach-imx/mx8m/Kconfig" 1342 1343source "arch/arm/mach-imx/mxs/Kconfig" 1344 1345source "arch/arm/mach-omap2/Kconfig" 1346 1347source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig" 1348 1349source "arch/arm/mach-orion5x/Kconfig" 1350 1351source "arch/arm/mach-rmobile/Kconfig" 1352 1353source "arch/arm/mach-meson/Kconfig" 1354 1355source "arch/arm/mach-qemu/Kconfig" 1356 1357source "arch/arm/mach-rockchip/Kconfig" 1358 1359source "arch/arm/mach-s5pc1xx/Kconfig" 1360 1361source "arch/arm/mach-snapdragon/Kconfig" 1362 1363source "arch/arm/mach-socfpga/Kconfig" 1364 1365source "arch/arm/mach-sti/Kconfig" 1366 1367source "arch/arm/mach-stm32/Kconfig" 1368 1369source "arch/arm/mach-stm32mp/Kconfig" 1370 1371source "arch/arm/mach-sunxi/Kconfig" 1372 1373source "arch/arm/mach-tegra/Kconfig" 1374 1375source "arch/arm/mach-uniphier/Kconfig" 1376 1377source "arch/arm/cpu/armv7/vf610/Kconfig" 1378 1379source "arch/arm/mach-zynq/Kconfig" 1380 1381source "arch/arm/mach-zynqmp-r5/Kconfig" 1382 1383source "arch/arm/cpu/armv7/Kconfig" 1384 1385source "arch/arm/cpu/armv8/zynqmp/Kconfig" 1386 1387source "arch/arm/cpu/armv8/Kconfig" 1388 1389source "arch/arm/mach-imx/Kconfig" 1390 1391source "board/bosch/shc/Kconfig" 1392source "board/CarMediaLab/flea3/Kconfig" 1393source "board/Marvell/aspenite/Kconfig" 1394source "board/Marvell/gplugd/Kconfig" 1395source "board/armadeus/apf27/Kconfig" 1396source "board/armltd/vexpress/Kconfig" 1397source "board/armltd/vexpress64/Kconfig" 1398source "board/broadcom/bcm23550_w1d/Kconfig" 1399source "board/broadcom/bcm28155_ap/Kconfig" 1400source "board/broadcom/bcmcygnus/Kconfig" 1401source "board/broadcom/bcmnsp/Kconfig" 1402source "board/broadcom/bcmns2/Kconfig" 1403source "board/cavium/thunderx/Kconfig" 1404source "board/cirrus/edb93xx/Kconfig" 1405source "board/eets/pdu001/Kconfig" 1406source "board/freescale/ls2080a/Kconfig" 1407source "board/freescale/ls2080aqds/Kconfig" 1408source "board/freescale/ls2080ardb/Kconfig" 1409source "board/freescale/ls1088a/Kconfig" 1410source "board/freescale/ls1021aqds/Kconfig" 1411source "board/freescale/ls1043aqds/Kconfig" 1412source "board/freescale/ls1021atwr/Kconfig" 1413source "board/freescale/ls1021aiot/Kconfig" 1414source "board/freescale/ls1046aqds/Kconfig" 1415source "board/freescale/ls1043ardb/Kconfig" 1416source "board/freescale/ls1046ardb/Kconfig" 1417source "board/freescale/ls1012aqds/Kconfig" 1418source "board/freescale/ls1012ardb/Kconfig" 1419source "board/freescale/ls1012afrdm/Kconfig" 1420source "board/freescale/mx35pdk/Kconfig" 1421source "board/freescale/s32v234evb/Kconfig" 1422source "board/gdsys/a38x/Kconfig" 1423source "board/grinn/chiliboard/Kconfig" 1424source "board/gumstix/pepper/Kconfig" 1425source "board/h2200/Kconfig" 1426source "board/hisilicon/hikey/Kconfig" 1427source "board/hisilicon/poplar/Kconfig" 1428source "board/isee/igep003x/Kconfig" 1429source "board/phytec/pcm051/Kconfig" 1430source "board/silica/pengwyn/Kconfig" 1431source "board/spear/spear300/Kconfig" 1432source "board/spear/spear310/Kconfig" 1433source "board/spear/spear320/Kconfig" 1434source "board/spear/spear600/Kconfig" 1435source "board/spear/x600/Kconfig" 1436source "board/st/stv0991/Kconfig" 1437source "board/tcl/sl50/Kconfig" 1438source "board/birdland/bav335x/Kconfig" 1439source "board/timll/devkit3250/Kconfig" 1440source "board/toradex/colibri_pxa270/Kconfig" 1441source "board/vscom/baltos/Kconfig" 1442source "board/woodburn/Kconfig" 1443source "board/work-microwave/work_92105/Kconfig" 1444source "board/xilinx/zynqmp/Kconfig" 1445source "board/zipitz2/Kconfig" 1446 1447source "arch/arm/Kconfig.debug" 1448 1449endmenu 1450 1451config SPL_LDSCRIPT 1452 default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK 1453 default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136 1454 default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64 1455 1456 1457