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