sunxi: binman: Add U-Boot binary size check
[oweals/u-boot.git] / arch / arm / Kconfig
index a17ba2c60a54c55af61367ffe3409f70bf5e0712..83b7aa51dc2c22b5c365cd8091daed9ae1e1186a 100644 (file)
@@ -19,6 +19,15 @@ config HAS_VBAR
 config HAS_THUMB2
        bool
 
 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
 # 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_833471
        bool
 
+config ARM_ERRATA_845369
+       bool
+
 config ARM_ERRATA_852421
        bool
 
 config ARM_ERRATA_852421
        bool
 
@@ -128,6 +140,7 @@ config CPU_V7
 config CPU_V7M
        bool
        select HAS_THUMB2
 config CPU_V7M
        bool
        select HAS_THUMB2
+       select THUMB2_KERNEL
        select SYS_CACHE_SHIFT_5
 
 config CPU_PXA
        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
          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
        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
          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
        default y if USE_ARCH_MEMSET
        depends on !ARM64
        help
@@ -281,6 +294,7 @@ choice
 
 config ARCH_AT91
        bool "Atmel AT91"
 
 config ARCH_AT91
        bool "Atmel AT91"
+       select SPL_BOARD_INIT if SPL
 
 config TARGET_EDB93XX
        bool "Support edb93xx"
 
 config TARGET_EDB93XX
        bool "Support edb93xx"
@@ -297,6 +311,7 @@ config TARGET_GPLUGD
 config ARCH_DAVINCI
        bool "TI DaVinci"
        select CPU_ARM926EJS
 config ARCH_DAVINCI
        bool "TI DaVinci"
        select CPU_ARM926EJS
+       imply CMD_SAVES
        help
          Support for TI's DaVinci platform.
 
        help
          Support for TI's DaVinci platform.
 
@@ -398,21 +413,25 @@ config TARGET_SPEAR300
        bool "Support spear300"
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
        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
 
 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
 
 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
 
 config TARGET_SPEAR600
        bool "Support spear600"
        select CPU_ARM926EJS
        select BOARD_EARLY_INIT_F
+       imply CMD_SAVES
 
 config TARGET_STV0991
        bool "Support stv0991"
 
 config TARGET_STV0991
        bool "Support stv0991"
@@ -476,6 +495,7 @@ config ARCH_BCM283X
        select DM_SERIAL
        select DM_GPIO
        select OF_CONTROL
        select DM_SERIAL
        select DM_GPIO
        select OF_CONTROL
+       imply FAT_WRITE
 
 config TARGET_VEXPRESS_CA15_TC2
        bool "Support vexpress_ca15_tc2"
 
 config TARGET_VEXPRESS_CA15_TC2
        bool "Support vexpress_ca15_tc2"
@@ -494,14 +514,25 @@ config TARGET_VEXPRESS_CA9X4
 config TARGET_BCM23550_W1D
        bool "Support bcm23550_w1d"
        select CPU_V7
 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
 
 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
 
 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"
 
 config TARGET_BCMNSP
        bool "Support bcmnsp"
@@ -524,6 +555,7 @@ config ARCH_EXYNOS
        select DM_SPI
        select DM_GPIO
        select DM_KEYBOARD
        select DM_SPI
        select DM_GPIO
        select DM_KEYBOARD
+       imply FAT_WRITE
 
 config ARCH_S5PC1XX
        bool "Samsung S5PC1XX"
 
 config ARCH_S5PC1XX
        bool "Samsung S5PC1XX"
@@ -548,11 +580,15 @@ config ARCH_KEYSTONE
        select SUPPORT_SPL
        select SYS_THUMB_BUILD
        select CMD_POWEROFF
        select SUPPORT_SPL
        select SYS_THUMB_BUILD
        select CMD_POWEROFF
+       imply CMD_MTDPARTS
        imply FIT
        imply FIT
+       imply CMD_SAVES
 
 config ARCH_OMAP2PLUS
        bool "TI OMAP2+"
        select CPU_V7
 
 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
 
        select SUPPORT_SPL
        imply FIT
 
@@ -585,16 +621,30 @@ config ARCH_MX6
        select SYS_FSL_SEC_LE
        select SYS_THUMB_BUILD if SPL
 
        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_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
 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
        imply SYS_THUMB_BUILD
 
 config TARGET_S32V234EVB
@@ -626,6 +676,9 @@ config ARCH_SOCFPGA
        select ARCH_MISC_INIT
        select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
        select SYS_THUMB_BUILD
        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"
 
 config ARCH_SUNXI
        bool "Support sunxi (Allwinner) SoCs"
@@ -641,14 +694,17 @@ config ARCH_SUNXI
        select OF_BOARD_SETUP
        select OF_CONTROL
        select OF_SEPARATE
        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_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
        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
        imply PRE_CONSOLE_BUFFER
        imply SPL_GPIO_SUPPORT
        imply SPL_LIBCOMMON_SUPPORT
@@ -657,6 +713,7 @@ config ARCH_SUNXI
        imply SPL_MMC_SUPPORT if MMC
        imply SPL_POWER_SUPPORT
        imply SPL_SERIAL_SUPPORT
        imply SPL_MMC_SUPPORT if MMC
        imply SPL_POWER_SUPPORT
        imply SPL_SERIAL_SUPPORT
+       imply USB_GADGET
 
 config TARGET_TS4600
        bool "Support TS4600"
 
 config TARGET_TS4600
        bool "Support TS4600"
@@ -667,6 +724,8 @@ config ARCH_VF610
        bool "Freescale Vybrid"
        select CPU_V7
        select SYS_FSL_ERRATUM_ESDHC111
        bool "Freescale Vybrid"
        select CPU_V7
        select SYS_FSL_ERRATUM_ESDHC111
+       imply CMD_MTDPARTS
+       imply NAND
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq Platform"
 
 config ARCH_ZYNQ
        bool "Xilinx Zynq Platform"
@@ -674,13 +733,13 @@ config ARCH_ZYNQ
        select CPU_V7
        select SUPPORT_SPL
        select OF_CONTROL
        select CPU_V7
        select SUPPORT_SPL
        select OF_CONTROL
+       select SPL_BOARD_INIT if SPL
        select SPL_OF_CONTROL if SPL
        select DM
        select DM_ETH
        select DM_GPIO
        select SPL_DM if SPL
        select DM_MMC
        select SPL_OF_CONTROL if SPL
        select DM
        select DM_ETH
        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
        select DM_SPI
        select DM_SERIAL
        select DM_SPI_FLASH
@@ -691,6 +750,8 @@ config ARCH_ZYNQ
        select SPL_CLK
        select CLK_ZYNQ
        imply CMD_CLK
        select SPL_CLK
        select CLK_ZYNQ
        imply CMD_CLK
+       imply FAT_WRITE
+       imply CMD_SPL
 
 config ARCH_ZYNQMP
        bool "Support Xilinx ZynqMP Platform"
 
 config ARCH_ZYNQMP
        bool "Support Xilinx ZynqMP Platform"
@@ -701,11 +762,14 @@ config ARCH_ZYNQMP
        select DM_SERIAL
        select SUPPORT_SPL
        select CLK
        select DM_SERIAL
        select SUPPORT_SPL
        select CLK
+       select SPL_BOARD_INIT if SPL
        select SPL_CLK
        select DM_USB if USB
        select SPL_CLK
        select DM_USB if USB
+       imply FAT_WRITE
 
 config TEGRA
        bool "NVIDIA Tegra"
 
 config TEGRA
        bool "NVIDIA Tegra"
+       imply FAT_WRITE
 
 config TARGET_VEXPRESS64_AEMV8A
        bool "Support vexpress_aemv8a"
 
 config TARGET_VEXPRESS64_AEMV8A
        bool "Support vexpress_aemv8a"
@@ -753,6 +817,19 @@ config TARGET_LS2080A_SIMU
          development platform that supports the QorIQ LS2080A
          Layerscape Architecture processor.
 
          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
 config TARGET_LS2080AQDS
        bool "Support ls2080aqds"
        select ARCH_LS2080A
@@ -761,6 +838,7 @@ config TARGET_LS2080AQDS
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select ARCH_MISC_INIT
        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
        help
          Support for Freescale LS2080AQDS platform
          The LS2080A Development System (QDS) is a high-performance
@@ -775,12 +853,27 @@ config TARGET_LS2080ARDB
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select ARCH_MISC_INIT
        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.
 
        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
 config TARGET_HIKEY
        bool "Support HiKey 96boards Consumer Edition Platform"
        select ARM64
@@ -792,6 +885,19 @@ 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_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
 config TARGET_LS1012AQDS
        bool "Support ls1012aqds"
        select ARCH_LS1012A
@@ -808,6 +914,7 @@ config TARGET_LS1012ARDB
        select ARCH_LS1012A
        select ARM64
        select BOARD_LATE_INIT
        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
        help
          Support for Freescale LS1012ARDB platform.
          The LS1012A Reference design board (RDB) is a high-performance
@@ -824,6 +931,19 @@ config TARGET_LS1012AFRDM
          development platform that supports the QorIQ LS1012A
          Layerscape Architecture processor.
 
          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
 config TARGET_LS1021AQDS
        bool "Support ls1021aqds"
        select BOARD_LATE_INIT
@@ -836,6 +956,7 @@ config TARGET_LS1021AQDS
        select LS1_DEEP_SLEEP
        select SYS_FSL_DDR
        select BOARD_EARLY_INIT_F
        select LS1_DEEP_SLEEP
        select SYS_FSL_DDR
        select BOARD_EARLY_INIT_F
+       imply SCSI
 
 config TARGET_LS1021ATWR
        bool "Support ls1021atwr"
 
 config TARGET_LS1021ATWR
        bool "Support ls1021atwr"
@@ -848,6 +969,7 @@ config TARGET_LS1021ATWR
        select ARCH_SUPPORT_PSCI
        select LS1_DEEP_SLEEP
        select BOARD_EARLY_INIT_F
        select ARCH_SUPPORT_PSCI
        select LS1_DEEP_SLEEP
        select BOARD_EARLY_INIT_F
+       imply SCSI
 
 config TARGET_LS1021AIOT
        bool "Support ls1021aiot"
 
 config TARGET_LS1021AIOT
        bool "Support ls1021aiot"
@@ -858,6 +980,7 @@ config TARGET_LS1021AIOT
        select SUPPORT_SPL
        select ARCH_LS1021A
        select ARCH_SUPPORT_PSCI
        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
        help
          Support for Freescale LS1021AIOT platform.
          The LS1021A Freescale board (IOT) is a high-performance
@@ -872,6 +995,7 @@ config TARGET_LS1043AQDS
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select BOARD_EARLY_INIT_F
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select BOARD_EARLY_INIT_F
+       imply SCSI
        help
          Support for Freescale LS1043AQDS platform.
 
        help
          Support for Freescale LS1043AQDS platform.
 
@@ -883,6 +1007,7 @@ config TARGET_LS1043ARDB
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select BOARD_EARLY_INIT_F
        select BOARD_LATE_INIT
        select SUPPORT_SPL
        select BOARD_EARLY_INIT_F
+       imply SCSI
        help
          Support for Freescale LS1043ARDB platform.
 
        help
          Support for Freescale LS1043ARDB platform.
 
@@ -895,6 +1020,7 @@ config TARGET_LS1046AQDS
        select SUPPORT_SPL
        select DM_SPI_FLASH if DM_SPI
        select BOARD_EARLY_INIT_F
        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
        help
          Support for Freescale LS1046AQDS platform.
          The LS1046A Development System (QDS) is a high-performance
@@ -911,6 +1037,7 @@ config TARGET_LS1046ARDB
        select DM_SPI_FLASH if DM_SPI
        select POWER_MC34VR500
        select BOARD_EARLY_INIT_F
        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
        help
          Support for Freescale LS1046ARDB platform.
          The LS1046A Reference Design Board (RDB) is a high-performance
@@ -932,7 +1059,6 @@ config TARGET_COLIBRI_PXA270
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
        select BOARD_LATE_INIT
 config ARCH_UNIPHIER
        bool "Socionext UniPhier SoCs"
        select BOARD_LATE_INIT
-       select CLK_UNIPHIER
        select DM
        select DM_GPIO
        select DM_I2C
        select DM
        select DM_GPIO
        select DM_I2C
@@ -943,12 +1069,14 @@ config ARCH_UNIPHIER
        select OF_CONTROL
        select OF_LIBFDT
        select PINCTRL
        select OF_CONTROL
        select OF_LIBFDT
        select PINCTRL
+       select SPL_BOARD_INIT if SPL
        select SPL_DM if SPL
        select SPL_LIBCOMMON_SUPPORT if SPL
        select SPL_LIBGENERIC_SUPPORT if SPL
        select SPL_OF_CONTROL if SPL
        select SPL_PINCTRL if SPL
        select SUPPORT_SPL
        select SPL_DM if SPL
        select SPL_LIBCOMMON_SUPPORT if SPL
        select SPL_LIBGENERIC_SUPPORT if SPL
        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)
        help
          Support for UniPhier SoC family developed by Socionext Inc.
          (formerly, System LSI Business Division of Panasonic Corporation)
@@ -984,13 +1112,20 @@ config ARCH_ROCKCHIP
        select DM_GPIO
        select DM_I2C
        select DM_MMC
        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
        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"
 
 config TARGET_THUNDERX_88XX
        bool "Support ThunderX 88xx"
@@ -1027,13 +1162,13 @@ source "arch/arm/mach-mvebu/Kconfig"
 
 source "arch/arm/cpu/armv7/ls102xa/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"
 
 
 source "arch/arm/mach-omap2/Kconfig"
 
@@ -1045,6 +1180,8 @@ source "arch/arm/mach-rmobile/Kconfig"
 
 source "arch/arm/mach-meson/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"
 source "arch/arm/mach-rockchip/Kconfig"
 
 source "arch/arm/mach-s5pc1xx/Kconfig"
@@ -1073,7 +1210,7 @@ source "arch/arm/cpu/armv8/zynqmp/Kconfig"
 
 source "arch/arm/cpu/armv8/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"
 
 source "board/aries/m28evk/Kconfig"
 source "board/bosch/shc/Kconfig"
@@ -1095,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/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"
 source "board/freescale/ls1021aqds/Kconfig"
 source "board/freescale/ls1043aqds/Kconfig"
 source "board/freescale/ls1021atwr/Kconfig"
@@ -1117,6 +1255,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/poplar/Kconfig"
 source "board/imx31_phycore/Kconfig"
 source "board/isee/igep003x/Kconfig"
 source "board/olimex/mx23_olinuxino/Kconfig"
 source "board/imx31_phycore/Kconfig"
 source "board/isee/igep003x/Kconfig"
 source "board/olimex/mx23_olinuxino/Kconfig"
@@ -1145,3 +1284,10 @@ source "board/zipitz2/Kconfig"
 source "arch/arm/Kconfig.debug"
 
 endmenu
 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
+
+