arm: Remove zmx25 board and ARCH_MX25
[platform/kernel/u-boot.git] / arch / arm / Kconfig
index 3b1e257..ebb1927 100644 (file)
@@ -9,9 +9,19 @@ config ARM64
        select PHYS_64BIT
        select SYS_CACHE_SHIFT_6
 
-if ARM64
+config ARM64_CRC32
+       bool "Enable support for CRC32 instruction"
+       depends on ARM64
+       default y
+       help
+         ARMv8 implements dedicated crc32 instruction for crc32 calculation.
+         This is faster than software crc32 calculation. This instruction may
+         not be present on all ARMv8.0, but is always present on ARMv8.1 and
+         newer.
+
 config POSITION_INDEPENDENT
        bool "Generate position-independent pre-relocation code"
+       depends on ARM64 || CPU_V7A
        help
          U-Boot expects to be linked to a specific hard-coded address, and to
          be loaded to and run from that address. This option lifts that
@@ -22,6 +32,7 @@ config POSITION_INDEPENDENT
 
 config INIT_SP_RELATIVE
        bool "Specify the early stack pointer relative to the .bss section"
+       depends on ARM64
        default n if ARCH_QEMU
        default y if POSITION_INDEPENDENT
        help
@@ -37,6 +48,7 @@ config INIT_SP_RELATIVE
 
 config SYS_INIT_SP_BSS_OFFSET
        int "Early stack offset from the .bss base address"
+       depends on ARM64
        depends on INIT_SP_RELATIVE
        default 524288
        help
@@ -46,6 +58,7 @@ config SYS_INIT_SP_BSS_OFFSET
          do not overlap any appended DTB.
 
 config LINUX_KERNEL_IMAGE_HEADER
+       depends on ARM64
        bool
        help
          Place a Linux kernel image header at the start of the U-Boot binary.
@@ -54,14 +67,12 @@ config LINUX_KERNEL_IMAGE_HEADER
          image header reports the amount of memory (BSS and similar) that
          U-Boot needs to use, but which isn't part of the binary.
 
-if LINUX_KERNEL_IMAGE_HEADER
 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
+       depends on LINUX_KERNEL_IMAGE_HEADER
        hex
        help
          The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
          TEXT_OFFSET value written to the Linux kernel image header.
-endif
-endif
 
 config GICV2
        bool
@@ -110,7 +121,6 @@ config THUMB2_KERNEL
 
 config SYS_ICACHE_OFF
        bool "Do not enable icache"
-       default n
        help
          Do not enable instruction cache in U-Boot.
 
@@ -123,7 +133,6 @@ config SPL_SYS_ICACHE_OFF
 
 config SYS_DCACHE_OFF
        bool "Do not enable dcache"
-       default n
        help
          Do not enable data cache in U-Boot.
 
@@ -443,12 +452,11 @@ config ENABLE_ARM_SOC_BOOT0_HOOK
 
 config ARM_CORTEX_CPU_IS_UP
        bool
-       default n
 
 config USE_ARCH_MEMCPY
        bool "Use an assembly optimized implementation of memcpy"
-       default y
-       depends on !ARM64
+       default y if !ARM64
+       depends on !ARM64 || (ARM64 && (GCC_VERSION >= 90400))
        help
          Enable the generation of an optimized version of memcpy.
          Such an implementation may be faster under some conditions
@@ -457,7 +465,7 @@ config USE_ARCH_MEMCPY
 config SPL_USE_ARCH_MEMCPY
        bool "Use an assembly optimized implementation of memcpy for SPL"
        default y if USE_ARCH_MEMCPY
-       depends on !ARM64 && SPL
+       depends on SPL
        help
          Enable the generation of an optimized version of memcpy.
          Such an implementation may be faster under some conditions
@@ -466,16 +474,43 @@ config SPL_USE_ARCH_MEMCPY
 config TPL_USE_ARCH_MEMCPY
        bool "Use an assembly optimized implementation of memcpy for TPL"
        default y if USE_ARCH_MEMCPY
-       depends on !ARM64 && TPL
+       depends on TPL
        help
          Enable the generation of an optimized version of memcpy.
          Such an implementation may be faster under some conditions
          but may increase the binary size.
 
+config USE_ARCH_MEMMOVE
+       bool "Use an assembly optimized implementation of memmove" if !ARM64
+       default USE_ARCH_MEMCPY if ARM64
+       depends on ARM64
+       help
+         Enable the generation of an optimized version of memmove.
+         Such an implementation may be faster under some conditions
+         but may increase the binary size.
+
+config SPL_USE_ARCH_MEMMOVE
+       bool "Use an assembly optimized implementation of memmove for SPL" if !ARM64
+       default SPL_USE_ARCH_MEMCPY if ARM64
+       depends on SPL && ARM64
+       help
+         Enable the generation of an optimized version of memmove.
+         Such an implementation may be faster under some conditions
+         but may increase the binary size.
+
+config TPL_USE_ARCH_MEMMOVE
+       bool "Use an assembly optimized implementation of memmove for TPL" if !ARM64
+       default TPL_USE_ARCH_MEMCPY if ARM64
+       depends on TPL && ARM64
+       help
+         Enable the generation of an optimized version of memmove.
+         Such an implementation may be faster under some conditions
+         but may increase the binary size.
+
 config USE_ARCH_MEMSET
        bool "Use an assembly optimized implementation of memset"
-       default y
-       depends on !ARM64
+       default y if !ARM64
+       depends on !ARM64 || (ARM64 && (GCC_VERSION >= 90400))
        help
          Enable the generation of an optimized version of memset.
          Such an implementation may be faster under some conditions
@@ -484,7 +519,7 @@ config USE_ARCH_MEMSET
 config SPL_USE_ARCH_MEMSET
        bool "Use an assembly optimized implementation of memset for SPL"
        default y if USE_ARCH_MEMSET
-       depends on !ARM64 && SPL
+       depends on SPL
        help
          Enable the generation of an optimized version of memset.
          Such an implementation may be faster under some conditions
@@ -493,7 +528,7 @@ config SPL_USE_ARCH_MEMSET
 config TPL_USE_ARCH_MEMSET
        bool "Use an assembly optimized implementation of memset for TPL"
        default y if USE_ARCH_MEMSET
-       depends on !ARM64 && TPL
+       depends on TPL
        help
          Enable the generation of an optimized version of memset.
          Such an implementation may be faster under some conditions
@@ -516,11 +551,6 @@ config ARCH_AT91
        select SPL_BOARD_INIT if SPL && !TARGET_SMARTWEB
        select SPL_SEPARATE_BSS if SPL
 
-config TARGET_ASPENITE
-       bool "Support aspenite"
-       select CPU_ARM926EJS
-       select GPIO_EXTRA_HEADER
-
 config ARCH_DAVINCI
        bool "TI DaVinci"
        select CPU_ARM926EJS
@@ -570,11 +600,6 @@ config TARGET_STV0991
        select SPI_FLASH
        imply CMD_DM
 
-config TARGET_FLEA3
-       bool "Support flea3"
-       select CPU_ARM1136
-       select GPIO_EXTRA_HEADER
-
 config ARCH_BCM283X
        bool "Broadcom BCM283X family"
        select DM
@@ -617,6 +642,11 @@ config ARCH_BCMSTB
          This enables support for Broadcom ARM-based set-top box
          chipsets, including the 7445 family of chips.
 
+config TARGET_VEXPRESS_CA9X4
+       bool "Support vexpress_ca9x4"
+       select CPU_V7A
+       select PL011_SERIAL
+
 config TARGET_BCMCYGNUS
        bool "Support bcmcygnus"
        select CPU_V7A
@@ -824,13 +854,6 @@ config ARCH_MX23
        select PL011_SERIAL
        select SUPPORT_SPL
 
-config ARCH_MX25
-       bool "NXP MX25"
-       select CPU_ARM926EJS
-       select GPIO_EXTRA_HEADER
-       select MACH_IMX
-       imply MXC_GPIO
-
 config ARCH_MX28
        bool "NXP i.MX28 family"
        select CPU_ARM926EJS
@@ -968,7 +991,7 @@ config ARCH_SOCFPGA
        select SPL_NAND_SUPPORT if SPL_NAND_DENALI
        select SPL_OF_CONTROL
        select SPL_SEPARATE_BSS if TARGET_SOCFPGA_SOC64
-       select SPL_SERIAL_SUPPORT
+       select SPL_SERIAL
        select SPL_SYSRESET
        select SPL_WATCHDOG
        select SUPPORT_SPL
@@ -988,11 +1011,11 @@ config ARCH_SOCFPGA
        imply SPL_DM_SPI
        imply SPL_DM_SPI_FLASH
        imply SPL_LIBDISK_SUPPORT
-       imply SPL_MMC_SUPPORT
+       imply SPL_MMC
        imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
        imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
        imply SPL_SPI_FLASH_SUPPORT
-       imply SPL_SPI_SUPPORT
+       imply SPL_SPI
        imply L2X0_CACHE
 
 config ARCH_SUNXI
@@ -1038,9 +1061,9 @@ config ARCH_SUNXI
        imply SPL_GPIO
        imply SPL_LIBCOMMON_SUPPORT
        imply SPL_LIBGENERIC_SUPPORT
-       imply SPL_MMC_SUPPORT if MMC
+       imply SPL_MMC if MMC
        imply SPL_POWER
-       imply SPL_SERIAL_SUPPORT
+       imply SPL_SERIAL
        imply USB_GADGET
 
 config ARCH_U8500
@@ -1050,14 +1073,22 @@ config ARCH_U8500
        select DM_GPIO
        select DM_MMC if MMC
        select DM_SERIAL
+       select DM_USB_GADGET if DM_USB
        select OF_CONTROL
        select SYSRESET
        select TIMER
+       imply AB8500_USB_PHY
        imply ARM_PL180_MMCI
+       imply CLK
+       imply DM_PMIC
        imply DM_RTC
+       imply NOMADIK_GPIO
        imply NOMADIK_MTU_TIMER
+       imply PHY
        imply PL01X_SERIAL
+       imply PMIC_AB8500
        imply RTC_PL031
+       imply SYS_THUMB_BUILD
        imply SYSRESET_SYSCON
 
 config ARCH_VERSAL
@@ -1690,7 +1721,7 @@ config TARGET_SL28
        select DM_SPI_FLASH
        select DM_ETH
        select DM_MDIO
-       select DM_PCI
+       select PCI
        select DM_RNG
        select DM_RTC
        select DM_SCSI
@@ -1901,13 +1932,56 @@ config TARGET_XENGUEST_ARM64
        select SSCANF
 endchoice
 
+config SUPPORT_PASSING_ATAGS
+       bool "Support pre-devicetree ATAG-based booting"
+       depends on !ARM64
+       imply SETUP_MEMORY_TAGS
+       help
+         Support for booting older Linux kernels, using ATAGs rather than
+         passing a devicetree.  This is option is rarely used, and the
+         semantics are defined at
+         https://www.kernel.org/doc/Documentation/arm/Booting at section 4a.
+
+config SETUP_MEMORY_TAGS
+       bool "Pass memory size information via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config CMDLINE_TAG
+       bool "Pass Linux kernel cmdline via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config INITRD_TAG
+       bool "Pass initrd starting point and size via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config REVISION_TAG
+       bool "Pass system revision via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config SERIAL_TAG
+       bool "Pass system serial number via ATAG"
+       depends on SUPPORT_PASSING_ATAGS
+
+config STATIC_MACH_TYPE
+       bool "Statically define the Machine ID number"
+       help
+         When booting via ATAGs, enable this option if we know the correct
+         machine ID number to use at compile time.  Some systems will be
+         passed the number dynamically by whatever loads U-Boot.
+
+config MACH_TYPE
+       int "Machine ID number"
+       depends on STATIC_MACH_TYPE
+       help
+         When booting via ATAGs, the machine type must be passed as a number.
+         For the full list see https://www.arm.linux.org.uk/developer/machines
+
 config ARCH_SUPPORT_TFABOOT
        bool
 
 config TFABOOT
        bool "Support for booting from TF-A"
        depends on ARCH_SUPPORT_TFABOOT
-       default n
        help
          Some platforms support the setup of secure registers (for instance
          for CPU errata handling) or provide secure services like PSCI.
@@ -1976,8 +2050,6 @@ source "arch/arm/mach-octeontx2/Kconfig"
 
 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
 
-source "arch/arm/mach-imx/mx2/Kconfig"
-
 source "arch/arm/mach-imx/mx3/Kconfig"
 
 source "arch/arm/mach-imx/mx5/Kconfig"
@@ -2058,10 +2130,9 @@ source "board/armltd/total_compute/Kconfig"
 
 source "board/bosch/shc/Kconfig"
 source "board/bosch/guardian/Kconfig"
-source "board/CarMediaLab/flea3/Kconfig"
-source "board/Marvell/aspenite/Kconfig"
 source "board/Marvell/octeontx/Kconfig"
 source "board/Marvell/octeontx2/Kconfig"
+source "board/armltd/vexpress/Kconfig"
 source "board/armltd/vexpress64/Kconfig"
 source "board/cortina/presidio-asic/Kconfig"
 source "board/broadcom/bcm963158/Kconfig"