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