Merge https://gitlab.denx.de/u-boot/custodians/u-boot-riscv
[platform/kernel/u-boot.git] / arch / arm / Kconfig
index 49f01f1..cbb2a2a 100644 (file)
@@ -20,15 +20,25 @@ config POSITION_INDEPENDENT
          information that is embedded into the binary to support U-Boot
          relocating itself to the top-of-RAM later during execution.
 
-config SYS_INIT_SP_BSS_OFFSET
-       int
+config INIT_SP_RELATIVE
+       bool "Specify the early stack pointer relative to the .bss section"
        help
          U-Boot typically uses a hard-coded value for the stack pointer
-         before relocation. Define this option to instead calculate the
+         before relocation. Enable this option to instead calculate the
          initial SP at run-time. This is useful to avoid hard-coding addresses
          into U-Boot, so that can be loaded and executed at arbitrary
-         addresses and thus avoid using arbitrary addresses at runtime. This
-         option's value is the offset added to &_bss_start in order to
+         addresses and thus avoid using arbitrary addresses at runtime.
+
+         If this option is enabled, the early stack pointer is set to
+         &_bss_start with a offset value added. The offset is specified by
+         SYS_INIT_SP_BSS_OFFSET.
+
+config SYS_INIT_SP_BSS_OFFSET
+       int "Early stack offset from the .bss base address"
+       depends on INIT_SP_RELATIVE
+       default 524288
+       help
+         This option's value is the offset added to &_bss_start in order to
          calculate the stack pointer. This offset should be large enough so
          that the early malloc region, global data (gd), and early stack usage
          do not overlap any appended DTB.
@@ -74,6 +84,32 @@ config ARM_ASM_UNIFIED
 config THUMB2_KERNEL
        bool
 
+config SYS_ICACHE_OFF
+       bool "Do not enable icache"
+       default n
+       help
+         Do not enable instruction cache in U-Boot.
+
+config SPL_SYS_ICACHE_OFF
+       bool "Do not enable icache in SPL"
+       depends on SPL
+       default SYS_ICACHE_OFF
+       help
+         Do not enable instruction cache in SPL.
+
+config SYS_DCACHE_OFF
+       bool "Do not enable dcache"
+       default n
+       help
+         Do not enable data cache in U-Boot.
+
+config SPL_SYS_DCACHE_OFF
+       bool "Do not enable dcache in SPL"
+       depends on SPL
+       default SYS_DCACHE_OFF
+       help
+         Do not enable data cache in SPL.
+
 config SYS_ARM_CACHE_CP15
        bool "CP15 based cache enabling support"
        help
@@ -293,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
@@ -331,13 +373,24 @@ 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
           density. For ARM architectures that support Thumb2 this flag will
           result in Thumb2 code generated by GCC.
 
+config TPL_SYS_THUMB_BUILD
+       bool "Build TPL using the Thumb instruction set"
+       default y if SYS_THUMB_BUILD
+       depends on TPL && !ARM64
+       help
+          Use this flag to build SPL using the Thumb instruction set for
+          ARM architectures. Thumb instruction set provides better code
+          density. For ARM architectures that support Thumb2 this flag will
+          result in Thumb2 code generated by GCC.
+
+
 config SYS_L2CACHE_OFF
        bool "L2cache off"
        help
@@ -367,7 +420,16 @@ 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
+         but may increase the binary size.
+
+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
        help
          Enable the generation of an optimized version of memcpy.
          Such implementation may be faster under some conditions
@@ -385,7 +447,16 @@ 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
+         but may increase the binary size.
+
+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
        help
          Enable the generation of an optimized version of memset.
          Such implementation may be faster under some conditions
@@ -393,7 +464,8 @@ config SPL_USE_ARCH_MEMSET
 
 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.
 
@@ -775,6 +847,7 @@ config ARCH_OWL
 
 config ARCH_QEMU
        bool "QEMU Virtual Platform"
+       select ARCH_SUPPORT_TFABOOT
        select DM
        select DM_SERIAL
        select OF_CONTROL
@@ -785,7 +858,7 @@ config ARCH_QEMU
 
 config ARCH_RMOBILE
        bool "Renesas ARM SoCs"
-       select BOARD_EARLY_INIT_F
+       select BOARD_EARLY_INIT_F if !RZA1
        select DM
        select DM_SERIAL
        imply CMD_DM
@@ -829,10 +902,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
@@ -847,6 +924,7 @@ config ARCH_SOCFPGA
        imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
        imply SPL_SPI_FLASH_SUPPORT
        imply SPL_SPI_SUPPORT
+       imply L2X0_CACHE
 
 config ARCH_SUNXI
        bool "Support sunxi (Allwinner) SoCs"
@@ -870,6 +948,7 @@ 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
@@ -1021,6 +1100,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
@@ -1033,6 +1113,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
@@ -1048,6 +1129,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
@@ -1066,6 +1148,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
@@ -1098,6 +1181,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.
@@ -1111,6 +1195,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.
@@ -1132,6 +1217,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
@@ -1151,6 +1248,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.
@@ -1162,6 +1260,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
@@ -1175,6 +1274,7 @@ config TARGET_LS1012A2G5RDB
        bool "Support ls1012a2g5rdb"
        select ARCH_LS1012A
        select ARM64
+       select ARCH_SUPPORT_TFABOOT
        select BOARD_LATE_INIT
        imply SCSI
        help
@@ -1187,6 +1287,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
@@ -1200,18 +1301,46 @@ 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
          development platform that supports the QorIQ LS1012A
          Layerscape Architecture processor.
 
+config TARGET_LS1028AQDS
+       bool "Support 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
+         development platform that supports the QorIQ LS1028A
+         Layerscape Architecture processor.
+
+config TARGET_LS1028ARDB
+       bool "Support 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
+         development platform that supports the QorIQ LS1028A
+         Layerscape Architecture processor.
+
 config TARGET_LS1088ARDB
        bool "Support ls1088ardb"
        select ARCH_LS1088A
        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
@@ -1249,6 +1378,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
@@ -1270,6 +1412,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
@@ -1284,6 +1427,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
@@ -1295,6 +1439,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
@@ -1314,6 +1459,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
@@ -1328,14 +1474,25 @@ config TARGET_LS1046ARDB
          development platform that supports the QorIQ LS1046A
          Layerscape Architecture processor.
 
+config TARGET_LS1046AFRWY
+       bool "Support 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
+       imply SCSI
+       help
+         Support for Freescale LS1046AFRWY platform.
+         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_ZIPITZ2
-       bool "Support zipitz2"
-       select CPU_PXA
-
 config TARGET_COLIBRI_PXA270
        bool "Support colibri_pxa270"
        select CPU_PXA
@@ -1400,15 +1557,18 @@ config ARCH_STM32MP
        select MISC
        select OF_CONTROL
        select OF_LIBFDT
+       select OF_SYSTEM_SETUP
        select PINCTRL
        select REGMAP
        select SUPPORT_SPL
        select SYSCON
        select SYSRESET
        select SYS_THUMB_BUILD
+       imply SPL_SYSRESET
        imply CMD_DM
        imply CMD_POWEROFF
        imply ENV_VARS_UBOOT_RUNTIME_CONFIG
+       imply USE_PREBOOT
        help
          Support for STM32MP SoC family developed by STMicroelectronics,
          MPUs based on ARM cortex A core
@@ -1463,6 +1623,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
@@ -1609,13 +1780,16 @@ source "board/freescale/ls2080a/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
 source "board/freescale/ls2080ardb/Kconfig"
 source "board/freescale/ls1088a/Kconfig"
+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"
 source "board/freescale/ls1046ardb/Kconfig"
+source "board/freescale/ls1046afrwy/Kconfig"
 source "board/freescale/ls1012aqds/Kconfig"
 source "board/freescale/ls1012ardb/Kconfig"
 source "board/freescale/ls1012afrdm/Kconfig"
@@ -1626,6 +1800,7 @@ 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"
@@ -1646,7 +1821,6 @@ source "board/woodburn/Kconfig"
 source "board/xilinx/Kconfig"
 source "board/xilinx/zynq/Kconfig"
 source "board/xilinx/zynqmp/Kconfig"
-source "board/zipitz2/Kconfig"
 
 source "arch/arm/Kconfig.debug"