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