firmware: zynqmp: Add zynqmp-power support
[oweals/u-boot.git] / arch / arm / Kconfig
index 3f0e301d413d6e7298940dae43a29b8b73eaf0ea..0c41bc3e5b3836325e0a7a4b2037916e9d0954cb 100644 (file)
@@ -329,6 +329,12 @@ config SYS_CACHELINE_SIZE
        default 64 if SYS_CACHE_SHIFT_6
        default 32 if SYS_CACHE_SHIFT_5
 
        default 64 if SYS_CACHE_SHIFT_6
        default 32 if SYS_CACHE_SHIFT_5
 
+config ARCH_CPU_INIT
+       bool "Enable ARCH_CPU_INIT"
+       help
+         Some architectures require a call to arch_cpu_init()
+         Say Y here to enable it
+
 config SYS_ARCH_TIMER
        bool "ARM Generic Timer support"
        depends on CPU_V7A || ARM64
 config SYS_ARCH_TIMER
        bool "ARM Generic Timer support"
        depends on CPU_V7A || ARM64
@@ -367,7 +373,7 @@ config SYS_THUMB_BUILD
 config SPL_SYS_THUMB_BUILD
        bool "Build SPL using the Thumb instruction set"
        default y if SYS_THUMB_BUILD
 config SPL_SYS_THUMB_BUILD
        bool "Build SPL using the Thumb instruction set"
        default y if SYS_THUMB_BUILD
-       depends on !ARM64
+       depends on !ARM64 && SPL
        help
           Use this flag to build SPL using the Thumb instruction set for
           ARM architectures. Thumb instruction set provides better code
        help
           Use this flag to build SPL using the Thumb instruction set for
           ARM architectures. Thumb instruction set provides better code
@@ -414,7 +420,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
 config SPL_USE_ARCH_MEMCPY
        bool "Use an assembly optimized implementation of memcpy for SPL"
        default y if USE_ARCH_MEMCPY
-       depends on !ARM64
+       depends on !ARM64 && SPL
        help
          Enable the generation of an optimized version of memcpy.
          Such implementation may be faster under some conditions
        help
          Enable the generation of an optimized version of memcpy.
          Such implementation may be faster under some conditions
@@ -423,7 +429,7 @@ 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
 config TPL_USE_ARCH_MEMCPY
        bool "Use an assembly optimized implementation of memcpy for TPL"
        default y if USE_ARCH_MEMCPY
-       depends on !ARM64
+       depends on !ARM64 && TPL
        help
          Enable the generation of an optimized version of memcpy.
          Such implementation may be faster under some conditions
        help
          Enable the generation of an optimized version of memcpy.
          Such implementation may be faster under some conditions
@@ -441,7 +447,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
 config SPL_USE_ARCH_MEMSET
        bool "Use an assembly optimized implementation of memset for SPL"
        default y if USE_ARCH_MEMSET
-       depends on !ARM64
+       depends on !ARM64 && SPL
        help
          Enable the generation of an optimized version of memset.
          Such implementation may be faster under some conditions
        help
          Enable the generation of an optimized version of memset.
          Such implementation may be faster under some conditions
@@ -450,15 +456,32 @@ 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
 config TPL_USE_ARCH_MEMSET
        bool "Use an assembly optimized implementation of memset for TPL"
        default y if USE_ARCH_MEMSET
-       depends on !ARM64
+       depends on !ARM64 && TPL
        help
          Enable the generation of an optimized version of memset.
          Such implementation may be faster under some conditions
          but may increase the binary size.
 
        help
          Enable the generation of an optimized version of memset.
          Such implementation may be faster under some conditions
          but may increase the binary size.
 
+config SET_STACK_SIZE
+       bool "Enable an option to set max stack size that can be used"
+       default y if ARCH_VERSAL || ARCH_ZYNQMP
+       help
+         This will enable an option to set max stack size that can be
+         used by u-boot.
+
+config STACK_SIZE
+       hex "Define max stack size that can be used by u-boot"
+       depends on SET_STACK_SIZE
+       default 0x4000000 if ARCH_VERSAL || ARCH_ZYNQMP
+       help
+         Defines Max stack size that can be used by u-boot so that the
+         initrd_high will be calculated as base stack pointer minus this
+         stack size.
+
 config ARM64_SUPPORT_AARCH32
        bool "ARM64 system support AArch32 execution state"
 config ARM64_SUPPORT_AARCH32
        bool "ARM64 system support AArch32 execution state"
-       default y if ARM64 && !TARGET_THUNDERX_88XX
+       depends on ARM64
+       default y if !TARGET_THUNDERX_88XX
        help
          This ARM64 system supports AArch32 execution state.
 
        help
          This ARM64 system supports AArch32 execution state.
 
@@ -902,7 +925,7 @@ config ARCH_SOCFPGA
        select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
        select SYSRESET
        select SYSRESET_SOCFPGA if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
        select SYS_THUMB_BUILD if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
        select SYSRESET
        select SYSRESET_SOCFPGA if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10
-       select SYSRESET_SOCFPGA_STRATIX10 if TARGET_SOCFPGA_STRATIX10
+       select SYSRESET_SOCFPGA_S10 if TARGET_SOCFPGA_STRATIX10
        imply CMD_DM
        imply CMD_MTDPARTS
        imply CRC32_VERIFY
        imply CMD_DM
        imply CMD_MTDPARTS
        imply CRC32_VERIFY
@@ -973,6 +996,7 @@ config ARCH_VERSAL
        select DM_MMC if MMC
        select DM_SERIAL
        select OF_CONTROL
        select DM_MMC if MMC
        select DM_SERIAL
        select OF_CONTROL
+       imply BOARD_LATE_INIT
 
 config ARCH_VF610
        bool "Freescale Vybrid"
 
 config ARCH_VF610
        bool "Freescale Vybrid"
@@ -1027,6 +1051,7 @@ config ARCH_ZYNQMP
        select CLK
        select DM
        select DM_ETH if NET
        select CLK
        select DM
        select DM_ETH if NET
+       select DM_MAILBOX
        select DM_MMC if MMC
        select DM_SERIAL
        select DM_SPI if SPI
        select DM_MMC if MMC
        select DM_SERIAL
        select DM_SPI if SPI
@@ -1037,6 +1062,7 @@ config ARCH_ZYNQMP
        select SPL_CLK if SPL
        select SPL_SEPARATE_BSS if SPL
        select SUPPORT_SPL
        select SPL_CLK if SPL
        select SPL_SEPARATE_BSS if SPL
        select SUPPORT_SPL
+       select ZYNQMP_IPI
        imply BOARD_LATE_INIT
        imply CMD_DM
        imply FAT_WRITE
        imply BOARD_LATE_INIT
        imply CMD_DM
        imply FAT_WRITE
@@ -1059,16 +1085,6 @@ config TARGET_VEXPRESS64_BASE_FVP
        select PL01X_SERIAL
        select SEMIHOSTING
 
        select PL01X_SERIAL
        select SEMIHOSTING
 
-config TARGET_VEXPRESS64_BASE_FVP_DRAM
-       bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
-       select ARM64
-       select PL01X_SERIAL
-       help
-         This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
-         the default config to allow the user to load the images directly into
-         DRAM using model parameters rather than by using semi-hosting to load
-         the files from the host filesystem.
-
 config TARGET_VEXPRESS64_JUNO
        bool "Support Versatile Express Juno Development Platform"
        select ARM64
 config TARGET_VEXPRESS64_JUNO
        bool "Support Versatile Express Juno Development Platform"
        select ARM64
@@ -1093,6 +1109,7 @@ config TARGET_LS2080A_SIMU
        select ARCH_MISC_INIT
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_MISC_INIT
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        help
          Support for Freescale LS2080A_SIMU platform
          The LS2080A Development System (QDS) is a pre silicon
        help
          Support for Freescale LS2080A_SIMU platform
          The LS2080A Development System (QDS) is a pre silicon
@@ -1209,6 +1226,18 @@ config TARGET_HIKEY
          Support for HiKey 96boards platform. It features a HI6220
          SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
 
          Support for HiKey 96boards platform. It features a HI6220
          SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
 
+config TARGET_HIKEY960
+       bool "Support HiKey960 96boards Consumer Edition Platform"
+       select ARM64
+       select DM
+       select DM_SERIAL
+       select OF_CONTROL
+       select PL01X_SERIAL
+       imply CMD_DM
+         help
+         Support for HiKey960 96boards platform. It features a HI3660
+         SoC, with 4xA73 CPU, 4xA53 CPU, MALI-G71 GPU, and 3GB RAM.
+
 config TARGET_POPLAR
        bool "Support Poplar 96boards Enterprise Edition Platform"
        select ARM64
 config TARGET_POPLAR
        bool "Support Poplar 96boards Enterprise Edition Platform"
        select ARM64
@@ -1294,6 +1323,8 @@ config TARGET_LS1028AQDS
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
        select ARM64
        select ARMV8_MULTIENTRY
        select ARCH_SUPPORT_TFABOOT
+       select BOARD_LATE_INIT
+       select ARCH_MISC_INIT
        help
          Support for Freescale LS1028AQDS platform
          The LS1028A Development System (QDS) is a high-performance
        help
          Support for Freescale LS1028AQDS platform
          The LS1028A Development System (QDS) is a high-performance
@@ -1545,6 +1576,7 @@ config ARCH_STM32MP
        imply SPL_SYSRESET
        imply CMD_DM
        imply CMD_POWEROFF
        imply SPL_SYSRESET
        imply CMD_DM
        imply CMD_POWEROFF
+       imply OF_LIBFDT_OVERLAY
        imply ENV_VARS_UBOOT_RUNTIME_CONFIG
        imply USE_PREBOOT
        help
        imply ENV_VARS_UBOOT_RUNTIME_CONFIG
        imply USE_PREBOOT
        help
@@ -1778,6 +1810,7 @@ source "board/grinn/chiliboard/Kconfig"
 source "board/gumstix/pepper/Kconfig"
 source "board/h2200/Kconfig"
 source "board/hisilicon/hikey/Kconfig"
 source "board/gumstix/pepper/Kconfig"
 source "board/h2200/Kconfig"
 source "board/hisilicon/hikey/Kconfig"
+source "board/hisilicon/hikey960/Kconfig"
 source "board/hisilicon/poplar/Kconfig"
 source "board/isee/igep003x/Kconfig"
 source "board/phytec/pcm051/Kconfig"
 source "board/hisilicon/poplar/Kconfig"
 source "board/isee/igep003x/Kconfig"
 source "board/phytec/pcm051/Kconfig"