ARM: imx: Fix bmode detection from grp10
[platform/kernel/u-boot.git] / arch / arm / Kconfig
index 8754197..629c5e8 100644 (file)
@@ -329,6 +329,12 @@ config SYS_CACHELINE_SIZE
        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
@@ -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
-       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
@@ -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
-       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
@@ -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
-       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
@@ -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
-       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
@@ -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
-       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.
 
+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"
-       default y if ARM64 && !TARGET_THUNDERX_88XX
+       depends on ARM64
+       default y if !TARGET_THUNDERX_88XX
        help
          This ARM64 system supports AArch32 execution state.
 
@@ -765,6 +788,7 @@ config ARCH_IMX8
        select ARM64
        select DM
        select OF_CONTROL
+       select ENABLE_ARM_SOC_BOOT0_HOOK
 
 config ARCH_IMX8M
        bool "NXP i.MX8M platform"
@@ -805,7 +829,7 @@ config ARCH_MX7
        select ARCH_MISC_INIT
        select BOARD_EARLY_INIT_F
        select CPU_V7A
-       select SYS_FSL_HAS_SEC if SECURE_BOOT
+       select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
        imply MXC_GPIO
@@ -813,7 +837,7 @@ config ARCH_MX7
 config ARCH_MX6
        bool "Freescale MX6"
        select CPU_V7A
-       select SYS_FSL_HAS_SEC if SECURE_BOOT
+       select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
        select SYS_THUMB_BUILD if SPL
@@ -840,6 +864,7 @@ config ARCH_OWL
 
 config ARCH_QEMU
        bool "QEMU Virtual Platform"
+       select ARCH_SUPPORT_TFABOOT
        select DM
        select DM_SERIAL
        select OF_CONTROL
@@ -894,10 +919,14 @@ config ARCH_SOCFPGA
        select SPL_OF_CONTROL
        select SPL_SEPARATE_BSS if TARGET_SOCFPGA_STRATIX10
        select SPL_SERIAL_SUPPORT
+       select SPL_SYSRESET
        select SPL_WATCHDOG_SUPPORT
        select SUPPORT_SPL
        select SYS_NS16550
        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_S10 if TARGET_SOCFPGA_STRATIX10
        imply CMD_DM
        imply CMD_MTDPARTS
        imply CRC32_VERIFY
@@ -936,12 +965,13 @@ config ARCH_SUNXI
        select SPL_STACK_R if SPL
        select SPL_SYS_MALLOC_SIMPLE if SPL
        select SPL_SYS_THUMB_BUILD if !ARM64
+       select SUNXI_GPIO
        select SYS_NS16550
        select SYS_THUMB_BUILD if !ARM64
        select USB if DISTRO_DEFAULTS
        select USB_KEYBOARD if DISTRO_DEFAULTS
        select USB_STORAGE if DISTRO_DEFAULTS
-       select USE_TINY_PRINTF
+       select SPL_USE_TINY_PRINTF
        imply CMD_DM
        imply CMD_GPT
        imply CMD_UBI if NAND
@@ -967,6 +997,7 @@ config ARCH_VERSAL
        select DM_MMC if MMC
        select DM_SERIAL
        select OF_CONTROL
+       imply BOARD_LATE_INIT
 
 config ARCH_VF610
        bool "Freescale Vybrid"
@@ -977,7 +1008,6 @@ config ARCH_VF610
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq based platform"
-       select BOARD_EARLY_INIT_F if WDT
        select CLK
        select CLK_ZYNQ
        select CPU_V7A
@@ -1021,16 +1051,21 @@ config ARCH_ZYNQMP
        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_SPI_FLASH if DM_SPI
        select DM_USB if USB
+       select FIRMWARE
        select OF_CONTROL
        select SPL_BOARD_INIT if SPL
        select SPL_CLK if SPL
+       select SPL_DM_MAILBOX if SPL
+       select SPL_FIRMWARE if SPL
        select SPL_SEPARATE_BSS if SPL
        select SUPPORT_SPL
+       select ZYNQMP_IPI
        imply BOARD_LATE_INIT
        imply CMD_DM
        imply FAT_WRITE
@@ -1053,16 +1088,6 @@ config TARGET_VEXPRESS64_BASE_FVP
        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
@@ -1087,6 +1112,7 @@ config TARGET_LS2080A_SIMU
        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
@@ -1099,6 +1125,7 @@ config TARGET_LS1088AQDS
        select ARCH_MISC_INIT
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select FSL_DDR_INTERACTIVE if !SD_BOOT
@@ -1114,6 +1141,7 @@ config TARGET_LS2080AQDS
        select ARCH_MISC_INIT
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        imply SCSI
@@ -1132,6 +1160,7 @@ config TARGET_LS2080ARDB
        select ARCH_MISC_INIT
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select FSL_DDR_BIST
@@ -1164,6 +1193,7 @@ config TARGET_LX2160ARDB
        select ARCH_MISC_INIT
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        help
          Support for NXP LX2160ARDB platform.
@@ -1177,6 +1207,7 @@ config TARGET_LX2160AQDS
        select ARCH_MISC_INIT
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        help
          Support for NXP LX2160AQDS platform.
@@ -1198,6 +1229,18 @@ config TARGET_HIKEY
          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
@@ -1217,6 +1260,7 @@ config TARGET_LS1012AQDS
        bool "Support ls1012aqds"
        select ARCH_LS1012A
        select ARM64
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        help
          Support for Freescale LS1012AQDS platform.
@@ -1228,6 +1272,7 @@ config TARGET_LS1012ARDB
        bool "Support ls1012ardb"
        select ARCH_LS1012A
        select ARM64
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        imply SCSI
        imply SCSI_AHCI
@@ -1241,6 +1286,7 @@ config TARGET_LS1012A2G5RDB
        bool "Support ls1012a2g5rdb"
        select ARCH_LS1012A
        select ARM64
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        imply SCSI
        help
@@ -1253,6 +1299,7 @@ config TARGET_LS1012AFRWY
        bool "Support ls1012afrwy"
        select ARCH_LS1012A
        select ARM64
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        imply SCSI
        imply SCSI_AHCI
@@ -1266,6 +1313,7 @@ config TARGET_LS1012AFRDM
        bool "Support ls1012afrdm"
        select ARCH_LS1012A
        select ARM64
+       select ARCH_SUPPORT_TFABOOT
        help
          Support for Freescale LS1012AFRDM platform.
          The LS1012A Freedom  board (FRDM) is a high-performance
@@ -1277,6 +1325,9 @@ config TARGET_LS1028AQDS
        select ARCH_LS1028A
        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
@@ -1288,6 +1339,7 @@ config TARGET_LS1028ARDB
        select ARCH_LS1028A
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        help
          Support for Freescale LS1028ARDB platform
          The LS1028A Development System (RDB) is a high-performance
@@ -1300,6 +1352,7 @@ config TARGET_LS1088ARDB
        select ARCH_MISC_INIT
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select FSL_DDR_INTERACTIVE if !SD_BOOT
@@ -1337,6 +1390,19 @@ config TARGET_LS1021ATWR
        select SUPPORT_SPL
        imply SCSI
 
+config TARGET_LS1021ATSN
+       bool "Support ls1021atsn"
+       select ARCH_LS1021A
+       select ARCH_SUPPORT_PSCI
+       select BOARD_EARLY_INIT_F
+       select BOARD_LATE_INIT
+       select CPU_V7A
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
+       select LS1_DEEP_SLEEP
+       select SUPPORT_SPL
+       imply SCSI
+
 config TARGET_LS1021AIOT
        bool "Support ls1021aiot"
        select ARCH_LS1021A
@@ -1358,6 +1424,7 @@ config TARGET_LS1043AQDS
        select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_EARLY_INIT_F
        select BOARD_LATE_INIT
        select SUPPORT_SPL
@@ -1372,6 +1439,7 @@ config TARGET_LS1043ARDB
        select ARCH_LS1043A
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_EARLY_INIT_F
        select BOARD_LATE_INIT
        select SUPPORT_SPL
@@ -1383,6 +1451,7 @@ config TARGET_LS1046AQDS
        select ARCH_LS1046A
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_EARLY_INIT_F
        select BOARD_LATE_INIT
        select DM_SPI_FLASH if DM_SPI
@@ -1402,6 +1471,7 @@ config TARGET_LS1046ARDB
        select ARCH_LS1046A
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_EARLY_INIT_F
        select BOARD_LATE_INIT
        select DM_SPI_FLASH if DM_SPI
@@ -1421,6 +1491,7 @@ config TARGET_LS1046AFRWY
        select ARCH_LS1046A
        select ARM64
        select ARMV8_MULTIENTRY
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_EARLY_INIT_F
        select BOARD_LATE_INIT
        select DM_SPI_FLASH if DM_SPI
@@ -1430,9 +1501,6 @@ config TARGET_LS1046AFRWY
          The LS1046A Freeway Board (FRWY) is a high-performance
          development platform that supports the QorIQ LS1046A
          Layerscape Architecture processor.
-config TARGET_H2200
-       bool "Support h2200"
-       select CPU_PXA
 
 config TARGET_COLIBRI_PXA270
        bool "Support colibri_pxa270"
@@ -1498,6 +1566,7 @@ config ARCH_STM32MP
        select MISC
        select OF_CONTROL
        select OF_LIBFDT
+       select OF_SYSTEM_SETUP
        select PINCTRL
        select REGMAP
        select SUPPORT_SPL
@@ -1507,6 +1576,7 @@ config ARCH_STM32MP
        imply SPL_SYSRESET
        imply CMD_DM
        imply CMD_POWEROFF
+       imply OF_LIBFDT_OVERLAY
        imply ENV_VARS_UBOOT_RUNTIME_CONFIG
        imply USE_PREBOOT
        help
@@ -1563,6 +1633,17 @@ config ARCH_ASPEED
 
 endchoice
 
+config ARCH_SUPPORT_TFABOOT
+       bool
+
+config TFABOOT
+       bool "Support for booting from TF-A"
+       depends on ARCH_SUPPORT_TFABOOT
+       default n
+       help
+         Enabling this will make a U-Boot binary that is capable of being
+         booted via TF-A.
+
 config TI_SECURE_DEVICE
        bool "HS Device Type Support"
        depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
@@ -1713,6 +1794,7 @@ source "board/freescale/ls1028a/Kconfig"
 source "board/freescale/ls1021aqds/Kconfig"
 source "board/freescale/ls1043aqds/Kconfig"
 source "board/freescale/ls1021atwr/Kconfig"
+source "board/freescale/ls1021atsn/Kconfig"
 source "board/freescale/ls1021aiot/Kconfig"
 source "board/freescale/ls1046aqds/Kconfig"
 source "board/freescale/ls1043ardb/Kconfig"
@@ -1726,8 +1808,8 @@ source "board/freescale/mx35pdk/Kconfig"
 source "board/freescale/s32v234evb/Kconfig"
 source "board/grinn/chiliboard/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"