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