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 imply ARCH_EARLY_INIT_R 825 826config ARCH_ZYNQMP 827 bool "Xilinx ZynqMP based platform" 828 select ARM64 829 select BOARD_LATE_INIT 830 select DM 831 select OF_CONTROL 832 select DM_SERIAL 833 select SUPPORT_SPL 834 select CLK 835 select SPL_BOARD_INIT if SPL 836 select SPL_CLK if SPL 837 select DM_USB if USB 838 imply FAT_WRITE 839 840config TEGRA 841 bool "NVIDIA Tegra" 842 imply DISTRO_DEFAULTS 843 imply FAT_WRITE 844 845config TARGET_VEXPRESS64_AEMV8A 846 bool "Support vexpress_aemv8a" 847 select ARM64 848 select PL01X_SERIAL 849 850config TARGET_VEXPRESS64_BASE_FVP 851 bool "Support Versatile Express ARMv8a FVP BASE model" 852 select ARM64 853 select SEMIHOSTING 854 select PL01X_SERIAL 855 856config TARGET_VEXPRESS64_BASE_FVP_DRAM 857 bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM" 858 select ARM64 859 select PL01X_SERIAL 860 help 861 This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides 862 the default config to allow the user to load the images directly into 863 DRAM using model parameters rather than by using semi-hosting to load 864 the files from the host filesystem. 865 866config TARGET_VEXPRESS64_JUNO 867 bool "Support Versatile Express Juno Development Platform" 868 select ARM64 869 select PL01X_SERIAL 870 871config TARGET_LS2080A_EMU 872 bool "Support ls2080a_emu" 873 select ARCH_LS2080A 874 select ARM64 875 select ARMV8_MULTIENTRY 876 select ARCH_MISC_INIT 877 help 878 Support for Freescale LS2080A_EMU platform 879 The LS2080A Development System (EMULATOR) is a pre silicon 880 development platform that supports the QorIQ LS2080A 881 Layerscape Architecture processor. 882 883config TARGET_LS2080A_SIMU 884 bool "Support ls2080a_simu" 885 select ARCH_LS2080A 886 select ARM64 887 select ARMV8_MULTIENTRY 888 select ARCH_MISC_INIT 889 help 890 Support for Freescale LS2080A_SIMU platform 891 The LS2080A Development System (QDS) is a pre silicon 892 development platform that supports the QorIQ LS2080A 893 Layerscape Architecture processor. 894 895config TARGET_LS1088AQDS 896 bool "Support ls1088aqds" 897 select ARCH_LS1088A 898 select ARM64 899 select ARMV8_MULTIENTRY 900 select ARCH_MISC_INIT 901 select BOARD_LATE_INIT 902 select SUPPORT_SPL 903 help 904 Support for NXP LS1088AQDS platform 905 The LS1088A Development System (QDS) is a high-performance 906 development platform that supports the QorIQ LS1088A 907 Layerscape Architecture processor. 908 909config TARGET_LS2080AQDS 910 bool "Support ls2080aqds" 911 select ARCH_LS2080A 912 select ARM64 913 select ARMV8_MULTIENTRY 914 select BOARD_LATE_INIT 915 select SUPPORT_SPL 916 select ARCH_MISC_INIT 917 imply SCSI 918 imply SCSI_AHCI 919 help 920 Support for Freescale LS2080AQDS platform 921 The LS2080A Development System (QDS) is a high-performance 922 development platform that supports the QorIQ LS2080A 923 Layerscape Architecture processor. 924 925config TARGET_LS2080ARDB 926 bool "Support ls2080ardb" 927 select ARCH_LS2080A 928 select ARM64 929 select ARMV8_MULTIENTRY 930 select BOARD_LATE_INIT 931 select SUPPORT_SPL 932 select ARCH_MISC_INIT 933 imply SCSI 934 imply SCSI_AHCI 935 help 936 Support for Freescale LS2080ARDB platform. 937 The LS2080A Reference design board (RDB) is a high-performance 938 development platform that supports the QorIQ LS2080A 939 Layerscape Architecture processor. 940 941config TARGET_LS2081ARDB 942 bool "Support ls2081ardb" 943 select ARCH_LS2080A 944 select ARM64 945 select ARMV8_MULTIENTRY 946 select BOARD_LATE_INIT 947 select SUPPORT_SPL 948 select ARCH_MISC_INIT 949 help 950 Support for Freescale LS2081ARDB platform. 951 The LS2081A Reference design board (RDB) is a high-performance 952 development platform that supports the QorIQ LS2081A/LS2041A 953 Layerscape Architecture processor. 954 955config TARGET_HIKEY 956 bool "Support HiKey 96boards Consumer Edition Platform" 957 select ARM64 958 select DM 959 select DM_GPIO 960 select DM_SERIAL 961 select OF_CONTROL 962 select PL01X_SERIAL 963 select SPECIFY_CONSOLE_INDEX 964 help 965 Support for HiKey 96boards platform. It features a HI6220 966 SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM. 967 968config TARGET_POPLAR 969 bool "Support Poplar 96boards Enterprise Edition Platform" 970 select ARM64 971 select DM 972 select OF_CONTROL 973 select DM_SERIAL 974 select DM_USB 975 select PL01X_SERIAL 976 help 977 Support for Poplar 96boards EE platform. It features a HI3798cv200 978 SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU 979 making it capable of running any commercial set-top solution based on 980 Linux or Android. 981 982config TARGET_LS1012AQDS 983 bool "Support ls1012aqds" 984 select ARCH_LS1012A 985 select ARM64 986 select BOARD_LATE_INIT 987 help 988 Support for Freescale LS1012AQDS platform. 989 The LS1012A Development System (QDS) is a high-performance 990 development platform that supports the QorIQ LS1012A 991 Layerscape Architecture processor. 992 993config TARGET_LS1012ARDB 994 bool "Support ls1012ardb" 995 select ARCH_LS1012A 996 select ARM64 997 select BOARD_LATE_INIT 998 imply SCSI 999 imply SCSI_AHCI 1000 help 1001 Support for Freescale LS1012ARDB platform. 1002 The LS1012A Reference design board (RDB) is a high-performance 1003 development platform that supports the QorIQ LS1012A 1004 Layerscape Architecture processor. 1005 1006config TARGET_LS1012A2G5RDB 1007 bool "Support ls1012a2g5rdb" 1008 select ARCH_LS1012A 1009 select ARM64 1010 select BOARD_LATE_INIT 1011 imply SCSI 1012 help 1013 Support for Freescale LS1012A2G5RDB platform. 1014 The LS1012A 2G5 Reference design board (RDB) is a high-performance 1015 development platform that supports the QorIQ LS1012A 1016 Layerscape Architecture processor. 1017 1018config TARGET_LS1012AFRDM 1019 bool "Support ls1012afrdm" 1020 select ARCH_LS1012A 1021 select ARM64 1022 help 1023 Support for Freescale LS1012AFRDM platform. 1024 The LS1012A Freedom board (FRDM) is a high-performance 1025 development platform that supports the QorIQ LS1012A 1026 Layerscape Architecture processor. 1027 1028config TARGET_LS1088ARDB 1029 bool "Support ls1088ardb" 1030 select ARCH_LS1088A 1031 select ARM64 1032 select ARMV8_MULTIENTRY 1033 select ARCH_MISC_INIT 1034 select BOARD_LATE_INIT 1035 select SUPPORT_SPL 1036 help 1037 Support for NXP LS1088ARDB platform. 1038 The LS1088A Reference design board (RDB) is a high-performance 1039 development platform that supports the QorIQ LS1088A 1040 Layerscape Architecture processor. 1041 1042config TARGET_LS1021AQDS 1043 bool "Support ls1021aqds" 1044 select BOARD_LATE_INIT 1045 select CPU_V7A 1046 select CPU_V7_HAS_NONSEC 1047 select CPU_V7_HAS_VIRT 1048 select SUPPORT_SPL 1049 select ARCH_LS1021A 1050 select ARCH_SUPPORT_PSCI 1051 select LS1_DEEP_SLEEP 1052 select SYS_FSL_DDR 1053 select BOARD_EARLY_INIT_F 1054 imply SCSI 1055 1056config TARGET_LS1021ATWR 1057 bool "Support ls1021atwr" 1058 select BOARD_LATE_INIT 1059 select CPU_V7A 1060 select CPU_V7_HAS_NONSEC 1061 select CPU_V7_HAS_VIRT 1062 select SUPPORT_SPL 1063 select ARCH_LS1021A 1064 select ARCH_SUPPORT_PSCI 1065 select LS1_DEEP_SLEEP 1066 select BOARD_EARLY_INIT_F 1067 imply SCSI 1068 1069config TARGET_LS1021AIOT 1070 bool "Support ls1021aiot" 1071 select BOARD_LATE_INIT 1072 select CPU_V7A 1073 select CPU_V7_HAS_NONSEC 1074 select CPU_V7_HAS_VIRT 1075 select SUPPORT_SPL 1076 select ARCH_LS1021A 1077 select ARCH_SUPPORT_PSCI 1078 imply SCSI 1079 help 1080 Support for Freescale LS1021AIOT platform. 1081 The LS1021A Freescale board (IOT) is a high-performance 1082 development platform that supports the QorIQ LS1021A 1083 Layerscape Architecture processor. 1084 1085config TARGET_LS1043AQDS 1086 bool "Support ls1043aqds" 1087 select ARCH_LS1043A 1088 select ARM64 1089 select ARMV8_MULTIENTRY 1090 select BOARD_LATE_INIT 1091 select SUPPORT_SPL 1092 select BOARD_EARLY_INIT_F 1093 imply SCSI 1094 help 1095 Support for Freescale LS1043AQDS platform. 1096 1097config TARGET_LS1043ARDB 1098 bool "Support ls1043ardb" 1099 select ARCH_LS1043A 1100 select ARM64 1101 select ARMV8_MULTIENTRY 1102 select BOARD_LATE_INIT 1103 select SUPPORT_SPL 1104 select BOARD_EARLY_INIT_F 1105 imply SCSI 1106 help 1107 Support for Freescale LS1043ARDB platform. 1108 1109config TARGET_LS1046AQDS 1110 bool "Support ls1046aqds" 1111 select ARCH_LS1046A 1112 select ARM64 1113 select ARMV8_MULTIENTRY 1114 select BOARD_LATE_INIT 1115 select SUPPORT_SPL 1116 select DM_SPI_FLASH if DM_SPI 1117 select BOARD_EARLY_INIT_F 1118 imply SCSI 1119 help 1120 Support for Freescale LS1046AQDS platform. 1121 The LS1046A Development System (QDS) is a high-performance 1122 development platform that supports the QorIQ LS1046A 1123 Layerscape Architecture processor. 1124 1125config TARGET_LS1046ARDB 1126 bool "Support ls1046ardb" 1127 select ARCH_LS1046A 1128 select ARM64 1129 select ARMV8_MULTIENTRY 1130 select BOARD_LATE_INIT 1131 select SUPPORT_SPL 1132 select DM_SPI_FLASH if DM_SPI 1133 select POWER_MC34VR500 1134 select BOARD_EARLY_INIT_F 1135 imply SCSI 1136 help 1137 Support for Freescale LS1046ARDB platform. 1138 The LS1046A Reference Design Board (RDB) is a high-performance 1139 development platform that supports the QorIQ LS1046A 1140 Layerscape Architecture processor. 1141 1142config TARGET_H2200 1143 bool "Support h2200" 1144 select CPU_PXA 1145 1146config TARGET_ZIPITZ2 1147 bool "Support zipitz2" 1148 select CPU_PXA 1149 1150config TARGET_COLIBRI_PXA270 1151 bool "Support colibri_pxa270" 1152 select CPU_PXA 1153 1154config ARCH_UNIPHIER 1155 bool "Socionext UniPhier SoCs" 1156 select BOARD_LATE_INIT 1157 select DM 1158 select DM_GPIO 1159 select DM_I2C 1160 select DM_MMC 1161 select DM_RESET 1162 select DM_SERIAL 1163 select DM_USB 1164 select OF_CONTROL 1165 select OF_LIBFDT 1166 select PINCTRL 1167 select SPL_BOARD_INIT if SPL 1168 select SPL_DM if SPL 1169 select SPL_LIBCOMMON_SUPPORT if SPL 1170 select SPL_LIBGENERIC_SUPPORT if SPL 1171 select SPL_OF_CONTROL if SPL 1172 select SPL_PINCTRL if SPL 1173 select SUPPORT_SPL 1174 imply FAT_WRITE 1175 help 1176 Support for UniPhier SoC family developed by Socionext Inc. 1177 (formerly, System LSI Business Division of Panasonic Corporation) 1178 1179config STM32 1180 bool "Support STMicroelectronics STM32 MCU with cortex M" 1181 select CPU_V7M 1182 select DM 1183 select DM_SERIAL 1184 select SYS_THUMB_BUILD 1185 1186config ARCH_STI 1187 bool "Support STMicrolectronics SoCs" 1188 select CPU_V7A 1189 select DM 1190 select DM_SERIAL 1191 select BLK 1192 select DM_MMC 1193 select DM_RESET 1194 help 1195 Support for STMicroelectronics STiH407/10 SoC family. 1196 This SoC is used on Linaro 96Board STiH410-B2260 1197 1198config ARCH_STM32MP 1199 bool "Support STMicroelectronics STM32MP Socs with cortex A" 1200 select ARCH_MISC_INIT 1201 select BOARD_LATE_INIT 1202 select CLK 1203 select DM 1204 select DM_GPIO 1205 select DM_RESET 1206 select DM_SERIAL 1207 select OF_CONTROL 1208 select OF_LIBFDT 1209 select PINCTRL 1210 select REGMAP 1211 select SUPPORT_SPL 1212 select SYSCON 1213 select SYSRESET 1214 select SYS_THUMB_BUILD 1215 help 1216 Support for STM32MP SoC family developed by STMicroelectronics, 1217 MPUs based on ARM cortex A core 1218 U-BOOT is running in DDR and SPL support is the unsecure First Stage 1219 BootLoader (FSBL) 1220 1221config ARCH_ROCKCHIP 1222 bool "Support Rockchip SoCs" 1223 select OF_CONTROL 1224 select BLK 1225 select DM 1226 select SPL_DM if SPL 1227 select SYS_MALLOC_F 1228 select SYS_THUMB_BUILD if !ARM64 1229 select SPL_SYS_MALLOC_SIMPLE if SPL 1230 select DM_GPIO 1231 select DM_I2C 1232 select DM_MMC 1233 select DM_SERIAL 1234 select DM_SPI 1235 select DM_SPI_FLASH 1236 select DM_USB if USB 1237 select DM_PWM 1238 select DM_REGULATOR 1239 select ENABLE_ARM_SOC_BOOT0_HOOK 1240 select SPI 1241 imply CMD_FASTBOOT 1242 imply DISTRO_DEFAULTS 1243 imply FASTBOOT 1244 imply FAT_WRITE 1245 imply USB_FUNCTION_FASTBOOT 1246 imply SPL_SYSRESET 1247 imply TPL_SYSRESET 1248 imply ADC 1249 imply SARADC_ROCKCHIP 1250 imply SYS_NS16550 1251 1252config TARGET_THUNDERX_88XX 1253 bool "Support ThunderX 88xx" 1254 select ARM64 1255 select OF_CONTROL 1256 select SYS_CACHE_SHIFT_7 1257 select PL01X_SERIAL 1258 1259config ARCH_ASPEED 1260 bool "Support Aspeed SoCs" 1261 select OF_CONTROL 1262 select DM 1263 1264endchoice 1265 1266config TI_SECURE_DEVICE 1267 bool "HS Device Type Support" 1268 depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS 1269 help 1270 If a high secure (HS) device type is being used, this config 1271 must be set. This option impacts various aspects of the 1272 build system (to create signed boot images that can be 1273 authenticated) and the code. See the doc/README.ti-secure 1274 file for further details. 1275 1276source "arch/arm/mach-aspeed/Kconfig" 1277 1278source "arch/arm/mach-at91/Kconfig" 1279 1280source "arch/arm/mach-bcm283x/Kconfig" 1281 1282source "arch/arm/mach-davinci/Kconfig" 1283 1284source "arch/arm/mach-exynos/Kconfig" 1285 1286source "arch/arm/mach-highbank/Kconfig" 1287 1288source "arch/arm/mach-integrator/Kconfig" 1289 1290source "arch/arm/mach-keystone/Kconfig" 1291 1292source "arch/arm/mach-kirkwood/Kconfig" 1293 1294source "arch/arm/mach-mvebu/Kconfig" 1295 1296source "arch/arm/cpu/armv7/ls102xa/Kconfig" 1297 1298source "arch/arm/mach-imx/mx2/Kconfig" 1299 1300source "arch/arm/mach-imx/mx5/Kconfig" 1301 1302source "arch/arm/mach-imx/mx6/Kconfig" 1303 1304source "arch/arm/mach-imx/mx7/Kconfig" 1305 1306source "arch/arm/mach-imx/mx7ulp/Kconfig" 1307 1308source "arch/arm/mach-imx/mx8m/Kconfig" 1309 1310source "arch/arm/mach-imx/mxs/Kconfig" 1311 1312source "arch/arm/mach-omap2/Kconfig" 1313 1314source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig" 1315 1316source "arch/arm/mach-orion5x/Kconfig" 1317 1318source "arch/arm/mach-rmobile/Kconfig" 1319 1320source "arch/arm/mach-meson/Kconfig" 1321 1322source "arch/arm/mach-qemu/Kconfig" 1323 1324source "arch/arm/mach-rockchip/Kconfig" 1325 1326source "arch/arm/mach-s5pc1xx/Kconfig" 1327 1328source "arch/arm/mach-snapdragon/Kconfig" 1329 1330source "arch/arm/mach-socfpga/Kconfig" 1331 1332source "arch/arm/mach-sti/Kconfig" 1333 1334source "arch/arm/mach-stm32/Kconfig" 1335 1336source "arch/arm/mach-stm32mp/Kconfig" 1337 1338source "arch/arm/mach-sunxi/Kconfig" 1339 1340source "arch/arm/mach-tegra/Kconfig" 1341 1342source "arch/arm/mach-uniphier/Kconfig" 1343 1344source "arch/arm/cpu/armv7/vf610/Kconfig" 1345 1346source "arch/arm/mach-zynq/Kconfig" 1347 1348source "arch/arm/cpu/armv7/Kconfig" 1349 1350source "arch/arm/cpu/armv8/zynqmp/Kconfig" 1351 1352source "arch/arm/cpu/armv8/Kconfig" 1353 1354source "arch/arm/mach-imx/Kconfig" 1355 1356source "board/bosch/shc/Kconfig" 1357source "board/CarMediaLab/flea3/Kconfig" 1358source "board/Marvell/aspenite/Kconfig" 1359source "board/Marvell/gplugd/Kconfig" 1360source "board/armadeus/apf27/Kconfig" 1361source "board/armltd/vexpress/Kconfig" 1362source "board/armltd/vexpress64/Kconfig" 1363source "board/broadcom/bcm23550_w1d/Kconfig" 1364source "board/broadcom/bcm28155_ap/Kconfig" 1365source "board/broadcom/bcmcygnus/Kconfig" 1366source "board/broadcom/bcmnsp/Kconfig" 1367source "board/broadcom/bcmns2/Kconfig" 1368source "board/cavium/thunderx/Kconfig" 1369source "board/cirrus/edb93xx/Kconfig" 1370source "board/eets/pdu001/Kconfig" 1371source "board/freescale/ls2080a/Kconfig" 1372source "board/freescale/ls2080aqds/Kconfig" 1373source "board/freescale/ls2080ardb/Kconfig" 1374source "board/freescale/ls1088a/Kconfig" 1375source "board/freescale/ls1021aqds/Kconfig" 1376source "board/freescale/ls1043aqds/Kconfig" 1377source "board/freescale/ls1021atwr/Kconfig" 1378source "board/freescale/ls1021aiot/Kconfig" 1379source "board/freescale/ls1046aqds/Kconfig" 1380source "board/freescale/ls1043ardb/Kconfig" 1381source "board/freescale/ls1046ardb/Kconfig" 1382source "board/freescale/ls1012aqds/Kconfig" 1383source "board/freescale/ls1012ardb/Kconfig" 1384source "board/freescale/ls1012afrdm/Kconfig" 1385source "board/freescale/mx31pdk/Kconfig" 1386source "board/freescale/mx35pdk/Kconfig" 1387source "board/freescale/s32v234evb/Kconfig" 1388source "board/gdsys/a38x/Kconfig" 1389source "board/grinn/chiliboard/Kconfig" 1390source "board/gumstix/pepper/Kconfig" 1391source "board/h2200/Kconfig" 1392source "board/hisilicon/hikey/Kconfig" 1393source "board/hisilicon/poplar/Kconfig" 1394source "board/isee/igep003x/Kconfig" 1395source "board/phytec/pcm051/Kconfig" 1396source "board/silica/pengwyn/Kconfig" 1397source "board/spear/spear300/Kconfig" 1398source "board/spear/spear310/Kconfig" 1399source "board/spear/spear320/Kconfig" 1400source "board/spear/spear600/Kconfig" 1401source "board/spear/x600/Kconfig" 1402source "board/st/stv0991/Kconfig" 1403source "board/tcl/sl50/Kconfig" 1404source "board/birdland/bav335x/Kconfig" 1405source "board/timll/devkit3250/Kconfig" 1406source "board/toradex/colibri_pxa270/Kconfig" 1407source "board/vscom/baltos/Kconfig" 1408source "board/woodburn/Kconfig" 1409source "board/work-microwave/work_92105/Kconfig" 1410source "board/xilinx/zynqmp/Kconfig" 1411source "board/zipitz2/Kconfig" 1412 1413source "arch/arm/Kconfig.debug" 1414 1415endmenu 1416 1417config SPL_LDSCRIPT 1418 default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK 1419 default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136 1420 default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64 1421 1422 1423