sunxi: binman: Add U-Boot binary size check
[oweals/u-boot.git] / arch / arm / Kconfig
index 2a3a36eba4b0be16cc20e7ac5a3054210ec01d83..83b7aa51dc2c22b5c365cd8091daed9ae1e1186a 100644 (file)
@@ -19,6 +19,15 @@ config HAS_VBAR
 config HAS_THUMB2
        bool
 
+# Used for compatibility with asm files copied from the kernel
+config ARM_ASM_UNIFIED
+       bool
+       default y
+
+# Used for compatibility with asm files copied from the kernel
+config THUMB2_KERNEL
+       bool
+
 # If set, the workarounds for these ARM errata are applied early during U-Boot
 # startup. Note that in general these options force the workarounds to be
 # applied; no CPU-type/version detection exists, unlike the similar options in
@@ -88,6 +97,9 @@ config ARM_ERRATA_833069
 config ARM_ERRATA_833471
        bool
 
+config ARM_ERRATA_845369
+       bool
+
 config ARM_ERRATA_852421
        bool
 
@@ -128,6 +140,7 @@ config CPU_V7
 config CPU_V7M
        bool
        select HAS_THUMB2
+       select THUMB2_KERNEL
        select SYS_CACHE_SHIFT_5
 
 config CPU_PXA
@@ -243,7 +256,7 @@ config USE_ARCH_MEMCPY
          but may increase the binary size.
 
 config SPL_USE_ARCH_MEMCPY
-       bool "Use an assembly optimized implementation of memcpy"
+       bool "Use an assembly optimized implementation of memcpy for SPL"
        default y if USE_ARCH_MEMCPY
        depends on !ARM64
        help
@@ -261,7 +274,7 @@ config USE_ARCH_MEMSET
          but may increase the binary size.
 
 config SPL_USE_ARCH_MEMSET
-       bool "Use an assembly optimized implementation of memset"
+       bool "Use an assembly optimized implementation of memset for SPL"
        default y if USE_ARCH_MEMSET
        depends on !ARM64
        help
@@ -298,6 +311,7 @@ config TARGET_GPLUGD
 config ARCH_DAVINCI
        bool "TI DaVinci"
        select CPU_ARM926EJS
+       imply CMD_SAVES
        help
          Support for TI's DaVinci platform.
 
@@ -399,21 +413,25 @@ config TARGET_SPEAR300
        bool "Support spear300"
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
+       imply CMD_SAVES
 
 config TARGET_SPEAR310
        bool "Support spear310"
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
+       imply CMD_SAVES
 
 config TARGET_SPEAR320
        bool "Support spear320"
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
+       imply CMD_SAVES
 
 config TARGET_SPEAR600
        bool "Support spear600"
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
+       imply CMD_SAVES
 
 config TARGET_STV0991
        bool "Support stv0991"
@@ -477,6 +495,7 @@ config ARCH_BCM283X
        select DM_SERIAL
        select DM_GPIO
        select OF_CONTROL
+       imply FAT_WRITE
 
 config TARGET_VEXPRESS_CA15_TC2
        bool "Support vexpress_ca15_tc2"
@@ -495,15 +514,25 @@ config TARGET_VEXPRESS_CA9X4
 config TARGET_BCM23550_W1D
        bool "Support bcm23550_w1d"
        select CPU_V7
+       imply CRC32_VERIFY
+       imply FAT_WRITE
 
 config TARGET_BCM28155_AP
        bool "Support bcm28155_ap"
        select CPU_V7
+       imply CRC32_VERIFY
+       imply FAT_WRITE
 
 config TARGET_BCMCYGNUS
        bool "Support bcmcygnus"
        select CPU_V7
+       imply CRC32_VERIFY
        imply CMD_HASH
+       imply FAT_WRITE
+       imply HASH_VERIFY
+       imply NETDEVICES
+       imply BCM_SF2_ETH
+       imply BCM_SF2_ETH_GMAC
 
 config TARGET_BCMNSP
        bool "Support bcmnsp"
@@ -526,6 +555,7 @@ config ARCH_EXYNOS
        select DM_SPI
        select DM_GPIO
        select DM_KEYBOARD
+       imply FAT_WRITE
 
 config ARCH_S5PC1XX
        bool "Samsung S5PC1XX"
@@ -550,12 +580,15 @@ config ARCH_KEYSTONE
        select SUPPORT_SPL
        select SYS_THUMB_BUILD
        select CMD_POWEROFF
+       imply CMD_MTDPARTS
        imply FIT
+       imply CMD_SAVES
 
 config ARCH_OMAP2PLUS
        bool "TI OMAP2+"
        select CPU_V7
        select SPL_BOARD_INIT if SPL
+       select SPL_STACK_R if SPL
        select SUPPORT_SPL
        imply FIT
 
@@ -588,16 +621,30 @@ config ARCH_MX6
        select SYS_FSL_SEC_LE
        select SYS_THUMB_BUILD if SPL
 
+if ARCH_MX6
+config SPL_LDSCRIPT
+        default "arch/arm/mach-omap2/u-boot-spl.lds"
+endif
+
 config ARCH_MX5
        bool "Freescale MX5"
        select CPU_V7
        select BOARD_EARLY_INIT_F
 
+config ARCH_QEMU
+       bool "QEMU Virtual Platform"
+       select CPU_V7
+       select ARCH_SUPPORT_PSCI
+       select DM
+       select DM_SERIAL
+       select OF_CONTROL
+
 config ARCH_RMOBILE
        bool "Renesas ARM SoCs"
        select DM
        select DM_SERIAL
        select BOARD_EARLY_INIT_F
+       imply FAT_WRITE
        imply SYS_THUMB_BUILD
 
 config TARGET_S32V234EVB
@@ -629,6 +676,9 @@ config ARCH_SOCFPGA
        select ARCH_MISC_INIT
        select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
        select SYS_THUMB_BUILD
+       imply CMD_MTDPARTS
+       imply CRC32_VERIFY
+       imply FAT_WRITE
 
 config ARCH_SUNXI
        bool "Support sunxi (Allwinner) SoCs"
@@ -644,14 +694,17 @@ config ARCH_SUNXI
        select OF_BOARD_SETUP
        select OF_CONTROL
        select OF_SEPARATE
-       select SPL_STACK_R if SUPPORT_SPL
-       select SPL_SYS_MALLOC_SIMPLE if SUPPORT_SPL
+       select SPL_STACK_R if SPL
+       select SPL_SYS_MALLOC_SIMPLE if SPL
        select SYS_NS16550
        select SPL_SYS_THUMB_BUILD if !ARM64
+       select SYS_THUMB_BUILD if !ARM64
        select USB if DISTRO_DEFAULTS
        select USB_STORAGE if DISTRO_DEFAULTS
        select USB_KEYBOARD if DISTRO_DEFAULTS
        select USE_TINY_PRINTF
+       imply CMD_GPT
+       imply FAT_WRITE
        imply PRE_CONSOLE_BUFFER
        imply SPL_GPIO_SUPPORT
        imply SPL_LIBCOMMON_SUPPORT
@@ -660,6 +713,7 @@ config ARCH_SUNXI
        imply SPL_MMC_SUPPORT if MMC
        imply SPL_POWER_SUPPORT
        imply SPL_SERIAL_SUPPORT
+       imply USB_GADGET
 
 config TARGET_TS4600
        bool "Support TS4600"
@@ -670,6 +724,8 @@ config ARCH_VF610
        bool "Freescale Vybrid"
        select CPU_V7
        select SYS_FSL_ERRATUM_ESDHC111
+       imply CMD_MTDPARTS
+       imply NAND
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq Platform"
@@ -684,7 +740,6 @@ config ARCH_ZYNQ
        select DM_GPIO
        select SPL_DM if SPL
        select DM_MMC
-       select DM_MMC_OPS
        select DM_SPI
        select DM_SERIAL
        select DM_SPI_FLASH
@@ -695,6 +750,8 @@ config ARCH_ZYNQ
        select SPL_CLK
        select CLK_ZYNQ
        imply CMD_CLK
+       imply FAT_WRITE
+       imply CMD_SPL
 
 config ARCH_ZYNQMP
        bool "Support Xilinx ZynqMP Platform"
@@ -708,9 +765,11 @@ config ARCH_ZYNQMP
        select SPL_BOARD_INIT if SPL
        select SPL_CLK
        select DM_USB if USB
+       imply FAT_WRITE
 
 config TEGRA
        bool "NVIDIA Tegra"
+       imply FAT_WRITE
 
 config TARGET_VEXPRESS64_AEMV8A
        bool "Support vexpress_aemv8a"
@@ -758,6 +817,19 @@ config TARGET_LS2080A_SIMU
          development platform that supports the QorIQ LS2080A
          Layerscape Architecture processor.
 
+config TARGET_LS1088AQDS
+       bool "Support ls1088aqds"
+       select ARCH_LS1088A
+       select ARM64
+       select ARMV8_MULTIENTRY
+       select ARCH_MISC_INIT
+       select BOARD_LATE_INIT
+       help
+         Support for NXP LS1088AQDS platform
+         The LS1088A Development System (QDS) is a high-performance
+         development platform that supports the QorIQ LS1088A
+         Layerscape Architecture processor.
+
 config TARGET_LS2080AQDS
        bool "Support ls2080aqds"
        select ARCH_LS2080A
@@ -766,6 +838,7 @@ config TARGET_LS2080AQDS
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select ARCH_MISC_INIT
+       imply SCSI
        help
          Support for Freescale LS2080AQDS platform
          The LS2080A Development System (QDS) is a high-performance
@@ -780,12 +853,27 @@ config TARGET_LS2080ARDB
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select ARCH_MISC_INIT
+       imply SCSI
        help
          Support for Freescale LS2080ARDB platform.
          The LS2080A Reference design board (RDB) is a high-performance
          development platform that supports the QorIQ LS2080A
          Layerscape Architecture processor.
 
+config TARGET_LS2081ARDB
+       bool "Support ls2081ardb"
+       select ARCH_LS2080A
+       select ARM64
+       select ARMV8_MULTIENTRY
+       select BOARD_LATE_INIT
+       select SUPPORT_SPL
+       select ARCH_MISC_INIT
+       help
+         Support for Freescale LS2081ARDB platform.
+         The LS2081A Reference design board (RDB) is a high-performance
+         development platform that supports the QorIQ LS2081A/LS2041A
+         Layerscape Architecture processor.
+
 config TARGET_HIKEY
        bool "Support HiKey 96boards Consumer Edition Platform"
        select ARM64
@@ -797,6 +885,19 @@ config TARGET_HIKEY
          Support for HiKey 96boards platform. It features a HI6220
          SoC, with 8xA53 CPU, mali450 gpu, and 1GB RAM.
 
+config TARGET_POPLAR
+       bool "Support Poplar 96boards Enterprise Edition Platform"
+       select ARM64
+       select DM
+       select OF_CONTROL
+       select DM_SERIAL
+       select DM_USB
+         help
+         Support for Poplar 96boards EE platform. It features a HI3798cv200
+         SoC, with 4xA53 CPU, 1GB RAM and the high performance Mali T720 GPU
+         making it capable of running any commercial set-top solution based on
+         Linux or Android.
+
 config TARGET_LS1012AQDS
        bool "Support ls1012aqds"
        select ARCH_LS1012A
@@ -813,6 +914,7 @@ config TARGET_LS1012ARDB
        select ARCH_LS1012A
        select ARM64
        select BOARD_LATE_INIT
+       imply SCSI
        help
          Support for Freescale LS1012ARDB platform.
          The LS1012A Reference design board (RDB) is a high-performance
@@ -829,6 +931,19 @@ config TARGET_LS1012AFRDM
          development platform that supports the QorIQ LS1012A
          Layerscape Architecture processor.
 
+config TARGET_LS1088ARDB
+       bool "Support ls1088ardb"
+       select ARCH_LS1088A
+       select ARM64
+       select ARMV8_MULTIENTRY
+       select ARCH_MISC_INIT
+       select BOARD_LATE_INIT
+       help
+         Support for NXP LS1088ARDB platform.
+         The LS1088A Reference design board (RDB) is a high-performance
+         development platform that supports the QorIQ LS1088A
+         Layerscape Architecture processor.
+
 config TARGET_LS1021AQDS
        bool "Support ls1021aqds"
        select BOARD_LATE_INIT
@@ -841,6 +956,7 @@ config TARGET_LS1021AQDS
        select LS1_DEEP_SLEEP
        select SYS_FSL_DDR
        select BOARD_EARLY_INIT_F
+       imply SCSI
 
 config TARGET_LS1021ATWR
        bool "Support ls1021atwr"
@@ -853,6 +969,7 @@ config TARGET_LS1021ATWR
        select ARCH_SUPPORT_PSCI
        select LS1_DEEP_SLEEP
        select BOARD_EARLY_INIT_F
+       imply SCSI
 
 config TARGET_LS1021AIOT
        bool "Support ls1021aiot"
@@ -863,6 +980,7 @@ config TARGET_LS1021AIOT
        select SUPPORT_SPL
        select ARCH_LS1021A
        select ARCH_SUPPORT_PSCI
+       imply SCSI
        help
          Support for Freescale LS1021AIOT platform.
          The LS1021A Freescale board (IOT) is a high-performance
@@ -877,6 +995,7 @@ config TARGET_LS1043AQDS
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select BOARD_EARLY_INIT_F
+       imply SCSI
        help
          Support for Freescale LS1043AQDS platform.
 
@@ -888,6 +1007,7 @@ config TARGET_LS1043ARDB
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select BOARD_EARLY_INIT_F
+       imply SCSI
        help
          Support for Freescale LS1043ARDB platform.
 
@@ -900,6 +1020,7 @@ config TARGET_LS1046AQDS
        select SUPPORT_SPL
        select DM_SPI_FLASH if DM_SPI
        select BOARD_EARLY_INIT_F
+       imply SCSI
        help
          Support for Freescale LS1046AQDS platform.
          The LS1046A Development System (QDS) is a high-performance
@@ -916,6 +1037,7 @@ config TARGET_LS1046ARDB
        select DM_SPI_FLASH if DM_SPI
        select POWER_MC34VR500
        select BOARD_EARLY_INIT_F
+       imply SCSI
        help
          Support for Freescale LS1046ARDB platform.
          The LS1046A Reference Design Board (RDB) is a high-performance
@@ -937,7 +1059,6 @@ config TARGET_COLIBRI_PXA270
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
        select BOARD_LATE_INIT
-       select CLK_UNIPHIER
        select DM
        select DM_GPIO
        select DM_I2C
@@ -955,6 +1076,7 @@ config ARCH_UNIPHIER
        select SPL_OF_CONTROL if SPL
        select SPL_PINCTRL if SPL
        select SUPPORT_SPL
+       imply FAT_WRITE
        help
          Support for UniPhier SoC family developed by Socionext Inc.
          (formerly, System LSI Business Division of Panasonic Corporation)
@@ -990,13 +1112,20 @@ config ARCH_ROCKCHIP
        select DM_GPIO
        select DM_I2C
        select DM_MMC
-       select DM_MMC_OPS
        select DM_SERIAL
        select DM_SPI
        select DM_SPI_FLASH
        select DM_USB if USB
        select DM_PWM
        select DM_REGULATOR
+       imply CMD_FASTBOOT
+       imply FASTBOOT
+       imply FAT_WRITE
+       imply USB_FUNCTION_FASTBOOT
+       imply SPL_SYSRESET
+       imply TPL_SYSRESET
+       imply ADC
+       imply SARADC_ROCKCHIP
 
 config TARGET_THUNDERX_88XX
        bool "Support ThunderX 88xx"
@@ -1033,13 +1162,13 @@ source "arch/arm/mach-mvebu/Kconfig"
 
 source "arch/arm/cpu/armv7/ls102xa/Kconfig"
 
-source "arch/arm/cpu/armv7/mx7ulp/Kconfig"
+source "arch/arm/mach-imx/mx7ulp/Kconfig"
 
-source "arch/arm/cpu/armv7/mx7/Kconfig"
+source "arch/arm/mach-imx/mx7/Kconfig"
 
-source "arch/arm/cpu/armv7/mx6/Kconfig"
+source "arch/arm/mach-imx/mx6/Kconfig"
 
-source "arch/arm/cpu/armv7/mx5/Kconfig"
+source "arch/arm/mach-imx/mx5/Kconfig"
 
 source "arch/arm/mach-omap2/Kconfig"
 
@@ -1051,6 +1180,8 @@ source "arch/arm/mach-rmobile/Kconfig"
 
 source "arch/arm/mach-meson/Kconfig"
 
+source "arch/arm/mach-qemu/Kconfig"
+
 source "arch/arm/mach-rockchip/Kconfig"
 
 source "arch/arm/mach-s5pc1xx/Kconfig"
@@ -1079,7 +1210,7 @@ source "arch/arm/cpu/armv8/zynqmp/Kconfig"
 
 source "arch/arm/cpu/armv8/Kconfig"
 
-source "arch/arm/imx-common/Kconfig"
+source "arch/arm/mach-imx/Kconfig"
 
 source "board/aries/m28evk/Kconfig"
 source "board/bosch/shc/Kconfig"
@@ -1101,6 +1232,7 @@ source "board/creative/xfi3/Kconfig"
 source "board/freescale/ls2080a/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
 source "board/freescale/ls2080ardb/Kconfig"
+source "board/freescale/ls1088a/Kconfig"
 source "board/freescale/ls1021aqds/Kconfig"
 source "board/freescale/ls1043aqds/Kconfig"
 source "board/freescale/ls1021atwr/Kconfig"
@@ -1123,6 +1255,7 @@ source "board/grinn/chiliboard/Kconfig"
 source "board/gumstix/pepper/Kconfig"
 source "board/h2200/Kconfig"
 source "board/hisilicon/hikey/Kconfig"
+source "board/hisilicon/poplar/Kconfig"
 source "board/imx31_phycore/Kconfig"
 source "board/isee/igep003x/Kconfig"
 source "board/olimex/mx23_olinuxino/Kconfig"
@@ -1151,3 +1284,10 @@ source "board/zipitz2/Kconfig"
 source "arch/arm/Kconfig.debug"
 
 endmenu
+
+config SPL_LDSCRIPT
+        default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if TARGET_APX4DEVKIT || TARGET_BG0900 || TARGET_M28EVK || TARGET_MX23_OLINUXINO || TARGET_MX23EVK || TARGET_MX28EVK || TARGET_SANSA_FUZE_PLUS || TARGET_SC_SPS_1 || TARGET_TS4600 || TARGET_XFI3
+        default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
+       default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
+
+