Merge branch '2020-05-08-assorted-fixes'
[oweals/u-boot.git] / common / spl / Kconfig
index 562eafe2e5b2ef4d7cd450ccc912c1e2f0aea64f..9feadb5e43e7078268086d08af76c0c963422537 100644 (file)
@@ -91,20 +91,24 @@ config SPL_SYS_REPORT_STACK_F_USAGE
          occurrence of non 0xaa bytes.
          This default implementation works for stacks growing down only.
 
-menu "PowerPC SPL Boot options"
-       depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK)
+menu "PowerPC and LayerScape SPL Boot options"
 
 config SPL_NAND_BOOT
        bool "Load SPL from NAND flash"
+       depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK)
 
 config SPL_MMC_BOOT
        bool "Load SPL from SD Card / eMMC"
+       depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK)
 
 config SPL_SPI_BOOT
        bool "Load SPL from SPI flash"
+       depends on PPC && (SUPPORT_SPL && !SPL_FRAMEWORK)
 
 config SPL_FSL_PBL
        bool "Create SPL in Freescale PBI format"
+       depends on (PPC || ARCH_LS1021A || ARCH_LS1043A || ARCH_LS1046A) && \
+                   SUPPORT_SPL
        help
          Create boot binary having SPL binary in PBI format concatenated with
          u-boot binary.
@@ -135,7 +139,7 @@ config SPL_HANDOFF
 
 config SPL_LDSCRIPT
        string "Linker script for the SPL stage"
-       default "arch/$(ARCH)/cpu/u-boot-spl.lds"
+       default "arch/\$(ARCH)/cpu/u-boot-spl.lds"
        help
          The SPL stage will usually require a different linker-script
          (as it runs from a different memory region) than the regular
@@ -268,7 +272,7 @@ config SPL_BANNER_PRINT
        default y
        help
          If this option is enabled, SPL will print the banner with version
-         info. Disabling this option could be useful to reduce TPL boot time
+         info. Disabling this option could be useful to reduce SPL boot time
          (e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud).
 
 config TPL_BANNER_PRINT
@@ -276,8 +280,8 @@ config TPL_BANNER_PRINT
        depends on TPL
        default y
        help
-         If this option is enabled, SPL will not print the banner with version
-         info. Disabling this option could be useful to reduce SPL boot time
+         If this option is enabled, TPL will print the banner with version
+         info. Disabling this option could be useful to reduce TPL boot time
          (e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud).
 
 config SPL_EARLY_BSS
@@ -325,11 +329,17 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
          Address on the MMC to load U-Boot from, when the MMC is being used
          in raw mode. Units: MMC sectors (1 sector = 512 bytes).
 
-config SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION
-       int "Number of the eMMC boot partition to use"
-       default 1
+config SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET
+       hex "U-Boot main hardware partition image offset"
+       depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
+       default 0x0
        help
-         eMMC boot partition number to use when the eMMC in raw mode.
+         On some platforms SPL location depends on hardware partition. The ROM
+         code skips the MBR sector when loading SPL from main hardware data
+         partition. This adds offset to the main U-Boot image. Set this symbol
+         to the number of skipped sectors.
+
+         If unsure, leave the default.
 
 config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
        bool "MMC Raw mode: by partition"
@@ -359,6 +369,28 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE
          Partition Type on the MMC to load U-Boot from, when the MMC is being
          used in raw mode.
 
+config SUPPORT_EMMC_BOOT_OVERRIDE_PART_CONFIG
+       bool "Override eMMC EXT_CSC_PART_CONFIG by user defined partition"
+       depends on SUPPORT_EMMC_BOOT
+       help
+         eMMC boot partition is normally configured by the bits of the EXT_CSD
+         register (EXT_CSC_PART_CONFIG), BOOT_PARTITION_ENABLE field. In some
+         cases it might be required in SPL to load the image from different
+         partition than the partition selected by EXT_CSC_PART_CONFIG register.
+         Enable this option if you intend to use an eMMC boot partition other
+         then selected via EXT_CSC_PART_CONFIG register and specify the custom
+         partition number by the CONFIG_SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION
+         option.
+
+config SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION
+       int "Number of the eMMC boot partition to use"
+       depends on SUPPORT_EMMC_BOOT_OVERRIDE_PART_CONFIG
+       default 1
+       help
+         eMMC boot partition number to use when the eMMC in raw mode and
+         the eMMC EXT_CSC_PART_CONFIG selection should be overridden in SPL
+         by user defined partition number.
+
 config SPL_CRC32_SUPPORT
        bool "Support CRC32"
        default y if SPL_LEGACY_IMAGE_SUPPORT
@@ -423,6 +455,13 @@ config SPL_FIT_IMAGE_TINY
          ensure this information is available to the next image
          invoked).
 
+config SPL_CACHE_SUPPORT
+       bool "Support CACHE drivers"
+       help
+         Enable CACHE drivers in SPL. These drivers can keep data so that
+         future requests for that data can be served faster. Enable this option
+         to build the drivers in drivers/cache as part of an SPL build.
+
 config SPL_CPU_SUPPORT
        bool "Support CPU drivers"
        help
@@ -461,7 +500,7 @@ config TPL_HASH_SUPPORT
          this option to build system-specific drivers for hash acceleration
          as part of an SPL build.
 
-config SPL_DMA_SUPPORT
+config SPL_DMA
        bool "Support DMA drivers"
        help
          Enable DMA (direct-memory-access) drivers in SPL. These drivers
@@ -624,15 +663,6 @@ config SPL_MMC_SUPPORT
          this option to build the drivers in drivers/mmc as part of an SPL
          build.
 
-config SPL_FORCE_MMC_BOOT
-       bool "Force SPL booting from MMC"
-       depends on SPL_MMC_SUPPORT
-       default n
-       help
-         Force SPL to use MMC device for Linux kernel booting even when the
-         SoC ROM recognized boot medium is not eMMC/SD. This is crucial for
-         factory or 'falcon mode' booting.
-
 config SPL_MMC_TINY
        bool "Tiny MMC framework in SPL"
        depends on SPL_MMC_SUPPORT
@@ -698,6 +728,12 @@ config SPL_UBI
          README.ubispl for more info.
 
 if SPL_DM
+config SPL_CACHE
+       depends on CACHE
+       bool "Support cache drivers in SPL"
+       help
+         Enable support for cache drivers in SPL.
+
 config SPL_DM_SPI
        bool "Support SPI DM drivers in SPL"
        help
@@ -998,8 +1034,19 @@ config SPL_SERIAL_SUPPORT
          unless there are space reasons not to. Even then, consider
          enabling SPL_USE_TINY_PRINTF which is a small printf() version.
 
+config SPL_SPI_SUPPORT
+       bool "Support SPI drivers"
+       help
+         Enable support for using SPI in SPL. This is used for connecting
+         to SPI flash for loading U-Boot. See SPL_SPI_FLASH_SUPPORT for
+         more details on that. The SPI driver provides the transport for
+         data between the SPI flash and the CPU. This option can be used to
+         enable SPI drivers that are needed for other purposes also, such
+         as a SPI PMIC.
+
 config SPL_SPI_FLASH_SUPPORT
        bool "Support SPI flash drivers"
+       depends on SPL_SPI_SUPPORT
        help
          Enable support for using SPI flash in SPL, and loading U-Boot from
          SPI flash. SPI flash (Serial Peripheral Bus flash) is named after
@@ -1038,22 +1085,13 @@ endif # SPL_SPI_FLASH_SUPPORT
 
 config SYS_SPI_U_BOOT_OFFS
        hex "address of u-boot payload in SPI flash"
+       default 0x8000 if ARCH_SUNXI
        default 0x0
        depends on SPL_SPI_LOAD || SPL_SPI_SUNXI
        help
         Address within SPI-Flash from where the u-boot payload is fetched
         from.
 
-config SPL_SPI_SUPPORT
-       bool "Support SPI drivers"
-       help
-         Enable support for using SPI in SPL. This is used for connecting
-         to SPI flash for loading U-Boot. See SPL_SPI_FLASH_SUPPORT for
-         more details on that. The SPI driver provides the transport for
-         data between the SPI flash and the CPU. This option can be used to
-         enable SPI drivers that are needed for other purposes also, such
-         as a SPI PMIC.
-
 config SPL_THERMAL
        bool "Driver support for thermal devices"
        help
@@ -1216,6 +1254,22 @@ config TPL
 
 if TPL
 
+config TPL_SIZE_LIMIT
+       hex "Maximum size of TPL image"
+       depends on TPL
+       default 0
+       help
+         Specifies the maximum length of the U-Boot TPL image.
+         If this value is zero, it is ignored.
+
+config TPL_FRAMEWORK
+       bool "Support TPL based upon the common SPL framework"
+       default y if SPL_FRAMEWORK
+       help
+         Enable the SPL framework under common/spl/ for TPL builds.
+         This framework supports MMC, NAND and YMODEM and other methods
+         loading of U-Boot's SPL stage. If unsure, say Y.
+
 config TPL_HANDOFF
        bool "Pass hand-off information from TPL to SPL and U-Boot proper"
        depends on HANDOFF && TPL_BLOBLIST
@@ -1237,7 +1291,7 @@ config TPL_LDSCRIPT
         string "Linker script for the TPL stage"
        depends on TPL
        default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
-       default "arch/$(ARCH)/cpu/u-boot-spl.lds"
+       default "arch/\$(ARCH)/cpu/u-boot-spl.lds"
        help
          The TPL stage will usually require a different linker-script
          (as it runs from a different memory region) than the regular