Merge tag 'u-boot-atmel-2020.04-a' of https://gitlab.denx.de/u-boot/custodians/u...
[oweals/u-boot.git] / arch / arm / Kconfig
index 4a23e327dfb486e041038ae3c34f53bec65a87d2..36c9c2fecd01599e176198879b77f0d07ab532e6 100644 (file)
@@ -17,18 +17,28 @@ config POSITION_INDEPENDENT
          be loaded to and run from that address. This option lifts that
          restriction, thus allowing the code to be loaded to and executed
          from almost any address. This logic relies on the relocation
-         information that is embedded into the binary to support U-Boot
+         information that is embedded in 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
+         into U-Boot, so that it can be loaded and executed at arbitrary
+         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.
@@ -47,7 +57,7 @@ config LNX_KRNL_IMG_TEXT_OFFSET_BASE
        hex
        help
          The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
-         TEXT_OFFSET value written in to the Linux kernel image header.
+         TEXT_OFFSET value written to the Linux kernel image header.
 endif
 endif
 
@@ -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
@@ -85,7 +121,7 @@ config SYS_ARM_MMU
        select SYS_ARM_CACHE_CP15
        help
          Select if you want MMU-based virtualised addressing space
-         support by paged memory management.
+         support via paged memory management.
 
 config SYS_ARM_MPU
        bool 'Use the ARM v7 PMSA Compliant MPU'
@@ -100,8 +136,8 @@ config SYS_ARM_MPU
 # startup. Note that in general these options force the workarounds to be
 # applied; no CPU-type/version detection exists, unlike the similar options in
 # the Linux kernel. Do not set these options unless they apply!  Also note that
-# the following can be machine specific errata. These do have ability to
-# provide rudimentary version and machine specific checks, but expect no
+# the following can be machine-specific errata. These do have ability to
+# provide rudimentary version and machine-specific checks, but expect no
 # product checks:
 # CONFIG_ARM_ERRATA_430973
 # CONFIG_ARM_ERRATA_454179
@@ -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
@@ -300,7 +342,7 @@ config SYS_ARCH_TIMER
        help
          The ARM Generic Timer (aka arch-timer) provides an architected
          interface to a timer source on an SoC.
-         It is mandantory for ARMv8 implementation and widely available
+         It is mandatory for ARMv8 implementation and widely available
          on ARMv7 systems.
 
 config ARM_SMCCC
@@ -331,17 +373,28 @@ 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 TPL 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
-         If SoC does not support L2CACHE or one do not want to enable
+         If SoC does not support L2CACHE or one does not want to enable
          L2CACHE, choose this option.
 
 config ENABLE_ARM_SOC_BOOT0_HOOK
@@ -361,16 +414,25 @@ config USE_ARCH_MEMCPY
        depends on !ARM64
        help
          Enable the generation of an optimized version of memcpy.
-         Such implementation may be faster under some conditions
+         Such an implementation may be faster under some conditions
          but may increase the binary size.
 
 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
+         Such an 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 an implementation may be faster under some conditions
          but may increase the binary size.
 
 config USE_ARCH_MEMSET
@@ -379,21 +441,47 @@ config USE_ARCH_MEMSET
        depends on !ARM64
        help
          Enable the generation of an optimized version of memset.
-         Such implementation may be faster under some conditions
+         Such an implementation may be faster under some conditions
          but may increase the binary size.
 
 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 an 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
+         Such an 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
+         Define 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.
 
@@ -601,7 +689,7 @@ config TARGET_BCMNS2
        help
          Support for Broadcom Northstar 2 SoCs.  NS2 is a quad-core 64-bit
          ARMv8 Cortex-A57 processors targeting a broad range of networking
-         applications
+         applications.
 
 config ARCH_EXYNOS
        bool "Samsung EXYNOS"
@@ -700,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"
@@ -740,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
@@ -748,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
@@ -775,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
@@ -785,7 +875,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,22 +919,29 @@ 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
        imply DM_SPI
        imply DM_SPI_FLASH
        imply FAT_WRITE
+       imply SPL
+       imply SPL_DM
        imply SPL_LIBDISK_SUPPORT
        imply SPL_MMC_SUPPORT
        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 L2X0_CACHE
 
 config ARCH_SUNXI
        bool "Support sunxi (Allwinner) SoCs"
@@ -857,6 +954,8 @@ config ARCH_SUNXI
        select DM_ETH
        select DM_GPIO
        select DM_KEYBOARD
+       select DM_MMC if MMC
+       select DM_SCSI if SCSI
        select DM_SERIAL
        select DM_USB if DISTRO_DEFAULTS
        select OF_BOARD_SETUP
@@ -866,15 +965,16 @@ 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
+       imply CMD_UBI if MTD_RAW_NAND
        imply DISTRO_DEFAULTS
        imply FAT_WRITE
        imply FIT
@@ -897,17 +997,17 @@ config ARCH_VERSAL
        select DM_MMC if MMC
        select DM_SERIAL
        select OF_CONTROL
+       imply BOARD_LATE_INIT
 
 config ARCH_VF610
        bool "Freescale Vybrid"
        select CPU_V7A
        select SYS_FSL_ERRATUM_ESDHC111
        imply CMD_MTDPARTS
-       imply NAND
+       imply MTD_RAW_NAND
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq based platform"
-       select BOARD_EARLY_INIT_F if WDT
        select CLK
        select CLK_ZYNQ
        select CPU_V7A
@@ -951,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
@@ -983,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
@@ -1006,8 +1101,8 @@ config TARGET_LS2080A_EMU
        select ARMV8_MULTIENTRY
        select FSL_DDR_SYNC_REFRESH
        help
-         Support for Freescale LS2080A_EMU platform
-         The LS2080A Development System (EMULATOR) is a pre silicon
+         Support for Freescale LS2080A_EMU platform.
+         The LS2080A Development System (EMULATOR) is a pre-silicon
          development platform that supports the QorIQ LS2080A
          Layerscape Architecture processor.
 
@@ -1017,8 +1112,9 @@ config TARGET_LS2080A_SIMU
        select ARCH_MISC_INIT
        select ARM64
        select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
        help
-         Support for Freescale LS2080A_SIMU platform
+         Support for Freescale LS2080A_SIMU platform.
          The LS2080A Development System (QDS) is a pre silicon
          development platform that supports the QorIQ LS2080A
          Layerscape Architecture processor.
@@ -1029,11 +1125,12 @@ 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
        help
-         Support for NXP LS1088AQDS platform
+         Support for NXP LS1088AQDS platform.
          The LS1088A Development System (QDS) is a high-performance
          development platform that supports the QorIQ LS1088A
          Layerscape Architecture processor.
@@ -1044,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
@@ -1051,7 +1149,7 @@ config TARGET_LS2080AQDS
        select FSL_DDR_BIST
        select FSL_DDR_INTERACTIVE if !SPL
        help
-         Support for Freescale LS2080AQDS platform
+         Support for Freescale LS2080AQDS platform.
          The LS2080A Development System (QDS) is a high-performance
          development platform that supports the QorIQ LS2080A
          Layerscape Architecture processor.
@@ -1062,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
@@ -1094,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.
@@ -1107,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.
@@ -1128,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
@@ -1147,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.
@@ -1158,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
@@ -1171,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
@@ -1183,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
@@ -1196,18 +1313,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
@@ -1245,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
@@ -1266,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
@@ -1280,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
@@ -1291,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
@@ -1310,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
@@ -1324,13 +1486,21 @@ config TARGET_LS1046ARDB
          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_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_COLIBRI_PXA270
        bool "Support colibri_pxa270"
@@ -1396,18 +1566,26 @@ 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 OF_LIBFDT_OVERLAY
+       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
-         U-BOOT is running in DDR and SPL support is the unsecure First Stage
-         BootLoader (FSBL)
+         U-BOOT is running in DDR, loaded by the First Stage BootLoader (FSBL).
+         FSBL can be TF-A: Trusted Firmware for Cortex A, for trusted boot
+         chain.
+         SPL is the unsecure FSBL for the basic boot chain.
 
 config ARCH_ROCKCHIP
        bool "Support Rockchip SoCs"
@@ -1426,15 +1604,16 @@ config ARCH_ROCKCHIP
        select OF_CONTROL
        select SPI
        select SPL_DM if SPL
-       select SPL_SYS_MALLOC_SIMPLE if SPL
        select SYS_MALLOC_F
        select SYS_THUMB_BUILD if !ARM64
        imply ADC
        imply CMD_DM
+       imply DEBUG_UART_BOARD_INIT
        imply DISTRO_DEFAULTS
        imply FAT_WRITE
        imply SARADC_ROCKCHIP
        imply SPL_SYSRESET
+       imply SPL_SYS_MALLOC_SIMPLE
        imply SYS_NS16550
        imply TPL_SYSRESET
        imply USB_FUNCTION_FASTBOOT
@@ -1452,11 +1631,29 @@ config ARCH_ASPEED
        select OF_CONTROL
        imply CMD_DM
 
+config TARGET_DURIAN
+       bool "Support Phytium Durian Platform"
+       select ARM64
+       help
+         Support for durian platform.
+         It has 2GB Sdram, uart and pcie.
+
 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 (Trusted Firmware for Cortex-A).
+
 config TI_SECURE_DEVICE
        bool "HS Device Type Support"
-       depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS
+       depends on ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
        help
          If a high secure (HS) device type is being used, this config
          must be set. This option impacts various aspects of the
@@ -1464,6 +1661,21 @@ config TI_SECURE_DEVICE
          authenticated) and the code. See the doc/README.ti-secure
          file for further details.
 
+if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
+config ISW_ENTRY_ADDR
+       hex "Address in memory or XIP address of bootloader entry point"
+       default 0x402F4000 if AM43XX
+       default 0x402F0400 if AM33XX
+       default 0x40301350 if OMAP54XX
+       help
+         After any reset, the boot ROM searches the boot media for a valid
+         boot image. For non-XIP devices, the ROM then copies the image into
+         internal memory. For all boot modes, after the ROM processes the
+         boot image it eventually computes the entry point address depending
+         on the device type (secure/non-secure), boot media (xip/non-xip) and
+         image headers.
+endif
+
 source "arch/arm/mach-aspeed/Kconfig"
 
 source "arch/arm/mach-at91/Kconfig"
@@ -1563,6 +1775,7 @@ source "arch/arm/cpu/armv8/Kconfig"
 source "arch/arm/mach-imx/Kconfig"
 
 source "board/bosch/shc/Kconfig"
+source "board/bosch/guardian/Kconfig"
 source "board/CarMediaLab/flea3/Kconfig"
 source "board/Marvell/aspenite/Kconfig"
 source "board/Marvell/gplugd/Kconfig"
@@ -1584,13 +1797,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"
@@ -1599,8 +1815,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"
@@ -1615,12 +1831,13 @@ source "board/tcl/sl50/Kconfig"
 source "board/ucRobotics/bubblegum_96/Kconfig"
 source "board/birdland/bav335x/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
+source "board/variscite/dart_6ul/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/xilinx/Kconfig"
 source "board/xilinx/zynq/Kconfig"
 source "board/xilinx/zynqmp/Kconfig"
-source "board/zipitz2/Kconfig"
+source "board/phytium/durian/Kconfig"
 
 source "arch/arm/Kconfig.debug"