Merge branch '2020-01-22-master-imports'
[oweals/u-boot.git] / env / Kconfig
index 35548721bdd6b49cb116700505bd2b38049bf48b..4661082f0e1c8bdd545ea44d847a38f8f901b60c 100644 (file)
@@ -1,21 +1,19 @@
 menu "Environment"
 
 menu "Environment"
 
+config ENV_SUPPORT
+       def_bool y
+
 config ENV_IS_NOWHERE
        bool "Environment is not stored"
 config ENV_IS_NOWHERE
        bool "Environment is not stored"
-       depends on !ENV_IS_IN_EEPROM
-       depends on !ENV_IS_IN_FAT
-       depends on !ENV_IS_IN_FLASH
-       depends on !ENV_IS_IN_MMC
-       depends on !ENV_IS_IN_NAND
-       depends on !ENV_IS_IN_NVRAM
-       depends on !ENV_IS_IN_ONENAND
-       depends on !ENV_IS_IN_REMOTE
-       depends on !ENV_IS_IN_SPI_FLASH
-       depends on !ENV_IS_IN_UBI
-       default y
+       default y if !ENV_IS_IN_EEPROM && !ENV_IS_IN_EXT4 && \
+                    !ENV_IS_IN_FAT && !ENV_IS_IN_FLASH && \
+                    !ENV_IS_IN_MMC && !ENV_IS_IN_NAND && \
+                    !ENV_IS_IN_NVRAM && !ENV_IS_IN_ONENAND && \
+                    !ENV_IS_IN_REMOTE && !ENV_IS_IN_SPI_FLASH && \
+                    !ENV_IS_IN_UBI
        help
          Define this if you don't want to or can't have an environment stored
        help
          Define this if you don't want to or can't have an environment stored
-         on a storage medium. In this case the environemnt will still exist
+         on a storage medium. In this case the environment will still exist
          while U-Boot is running, but once U-Boot exits it will not be
          stored. U-Boot will therefore always start up with a default
          environment.
          while U-Boot is running, but once U-Boot exits it will not be
          stored. U-Boot will therefore always start up with a default
          environment.
@@ -137,7 +135,6 @@ config ENV_IS_IN_FLASH
           RAM, your target system will be dead.
 
          CONFIG_ENV_ADDR_REDUND
           RAM, your target system will be dead.
 
          CONFIG_ENV_ADDR_REDUND
-         CONFIG_ENV_SIZE_REDUND
 
           These settings describe a second storage area used to hold
           a redundant copy of the environment data, so that there is
 
           These settings describe a second storage area used to hold
           a redundant copy of the environment data, so that there is
@@ -152,7 +149,6 @@ config ENV_IS_IN_MMC
        bool "Environment in an MMC device"
        depends on !CHAIN_OF_TRUST
        depends on MMC
        bool "Environment in an MMC device"
        depends on !CHAIN_OF_TRUST
        depends on MMC
-       default y if ARCH_SUNXI
        default y if ARCH_EXYNOS4
        default y if MX6SX || MX7D
        default y if TEGRA30 || TEGRA124
        default y if ARCH_EXYNOS4
        default y if MX6SX || MX7D
        default y if TEGRA30 || TEGRA124
@@ -201,12 +197,6 @@ config ENV_IS_IN_MMC
          This value is also in units of bytes, but must also be aligned to
          an MMC sector boundary.
 
          This value is also in units of bytes, but must also be aligned to
          an MMC sector boundary.
 
-         CONFIG_ENV_SIZE_REDUND (optional):
-
-         This value need not be set, even when CONFIG_ENV_OFFSET_REDUND is
-         set. If this value is set, it must be set to the same value as
-         CONFIG_ENV_SIZE.
-
 config ENV_IS_IN_NAND
        bool "Environment in a NAND device"
        depends on !CHAIN_OF_TRUST
 config ENV_IS_IN_NAND
        bool "Environment in a NAND device"
        depends on !CHAIN_OF_TRUST
@@ -277,7 +267,7 @@ config ENV_IS_IN_ONENAND
          provision.
 
 config ENV_IS_IN_REMOTE
          provision.
 
 config ENV_IS_IN_REMOTE
-       bool "Environment is in remove memory space"
+       bool "Environment is in remote memory space"
        depends on !CHAIN_OF_TRUST
        help
          Define this if you have a remote memory space which you
        depends on !CHAIN_OF_TRUST
        help
          Define this if you have a remote memory space which you
@@ -293,7 +283,7 @@ config ENV_IS_IN_REMOTE
 
 config ENV_IS_IN_SPI_FLASH
        bool "Environment is in SPI flash"
 
 config ENV_IS_IN_SPI_FLASH
        bool "Environment is in SPI flash"
-       depends on !CHAIN_OF_TRUST
+       depends on !CHAIN_OF_TRUST && SPI
        default y if ARMADA_XP
        default y if INTEL_BAYTRAIL
        default y if INTEL_BRASWELL
        default y if ARMADA_XP
        default y if INTEL_BAYTRAIL
        default y if INTEL_BRASWELL
@@ -324,22 +314,63 @@ config ENV_IS_IN_SPI_FLASH
          during a "saveenv" operation. CONFIG_ENV_OFFSET_REDUND must be
          aligned to an erase sector boundary.
 
          during a "saveenv" operation. CONFIG_ENV_OFFSET_REDUND must be
          aligned to an erase sector boundary.
 
-         - CONFIG_ENV_SPI_BUS (optional):
-         - CONFIG_ENV_SPI_CS (optional):
+config USE_ENV_SPI_BUS
+       bool "SPI flash bus for environment"
+       depends on ENV_IS_IN_SPI_FLASH
+       help
+         Force the SPI bus for environment.
+         If not defined, use CONFIG_SF_DEFAULT_BUS.
+
+config ENV_SPI_BUS
+       int "Value of SPI flash bus for environment"
+       depends on USE_ENV_SPI_BUS
+       help
+         Value the SPI bus and chip select for environment.
+
+config USE_ENV_SPI_CS
+       bool "SPI flash chip select for environment"
+       depends on ENV_IS_IN_SPI_FLASH
+       help
+         Force the SPI chip select for environment.
+         If not defined, use CONFIG_SF_DEFAULT_CS.
 
 
-         Define the SPI bus and chip select. If not defined they will be 0.
+config ENV_SPI_CS
+       int "Value of SPI flash chip select for environment"
+       depends on USE_ENV_SPI_CS
+       help
+         Value of the SPI chip select for environment.
 
 
-         - CONFIG_ENV_SPI_MAX_HZ (optional):
+config USE_ENV_SPI_MAX_HZ
+       bool "SPI flash max frequency for environment"
+       depends on ENV_IS_IN_SPI_FLASH
+       help
+         Force the SPI max work clock for environment.
+         If not defined, use CONFIG_SF_DEFAULT_SPEED.
 
 
-         Define the SPI max work clock. If not defined then use 1MHz.
+config ENV_SPI_MAX_HZ
+       int "Value of SPI flash max frequency for environment"
+       depends on USE_ENV_SPI_MAX_HZ
+       help
+         Value of the SPI max work clock for environment.
 
 
-         - CONFIG_ENV_SPI_MODE (optional):
+config USE_ENV_SPI_MODE
+       bool "SPI flash mode for environment"
+       depends on ENV_IS_IN_SPI_FLASH
+       help
+         Force the SPI work mode for environment.
 
 
-         Define the SPI work mode. If not defined then use SPI_MODE_3.
+config ENV_SPI_MODE
+       hex "Value of SPI flash work mode for environment"
+       depends on USE_ENV_SPI_MODE
+       help
+         Value of the SPI work mode for environment.
+         See include/spi.h for value.
 
 config ENV_IS_IN_UBI
        bool "Environment in a UBI volume"
        depends on !CHAIN_OF_TRUST
 
 config ENV_IS_IN_UBI
        bool "Environment in a UBI volume"
        depends on !CHAIN_OF_TRUST
+       depends on MTD_UBI
+       depends on CMD_UBI
        help
          Define this if you have an UBI volume that you want to use for the
          environment.  This has the benefit of wear-leveling the environment
        help
          Define this if you have an UBI volume that you want to use for the
          environment.  This has the benefit of wear-leveling the environment
@@ -360,6 +391,16 @@ config ENV_IS_IN_UBI
          the environment in.  This will enable redundant environments in UBI.
          It is assumed that both volumes are in the same MTD partition.
 
          the environment in.  This will enable redundant environments in UBI.
          It is assumed that both volumes are in the same MTD partition.
 
+config SYS_REDUNDAND_ENVIRONMENT
+       bool "Enable redundant environment support"
+       depends on ENV_IS_IN_EEPROM || ENV_IS_IN_FLASH || ENV_IS_IN_MMC || \
+               ENV_IS_IN_NAND || ENV_IS_IN_SPI_FLASH || ENV_IS_IN_UBI
+       help
+         Normally, the environemt is stored in a single location.  By
+         selecting this option, you can then define where to hold a redundant
+         copy of the environment data, so that there is a valid backup copy in
+         case there is a power failure during a "saveenv" operation.
+
 config ENV_FAT_INTERFACE
        string "Name of the block device for the environment"
        depends on ENV_IS_IN_FAT
 config ENV_FAT_INTERFACE
        string "Name of the block device for the environment"
        depends on ENV_IS_IN_FAT
@@ -392,7 +433,7 @@ config ENV_FAT_DEVICE_AND_PART
                           partition table then means device D.
 
 config ENV_FAT_FILE
                           partition table then means device D.
 
 config ENV_FAT_FILE
-       string "Name of the FAT file to use for the environemnt"
+       string "Name of the FAT file to use for the environment"
        depends on ENV_IS_IN_FAT
        default "uboot.env"
        help
        depends on ENV_IS_IN_FAT
        default "uboot.env"
        help
@@ -424,30 +465,69 @@ config ENV_EXT4_DEVICE_AND_PART
                           partition table then means device D.
 
 config ENV_EXT4_FILE
                           partition table then means device D.
 
 config ENV_EXT4_FILE
-       string "Name of the EXT4 file to use for the environemnt"
+       string "Name of the EXT4 file to use for the environment"
        depends on ENV_IS_IN_EXT4
        default "uboot.env"
        help
          It's a string of the EXT4 file name. This file use to store the
          environment (explicit path to the file)
 
        depends on ENV_IS_IN_EXT4
        default "uboot.env"
        help
          It's a string of the EXT4 file name. This file use to store the
          environment (explicit path to the file)
 
-if ARCH_SUNXI
+config ENV_ADDR
+       hex "Environment address"
+       depends on ENV_IS_IN_FLASH || ENV_IS_IN_NVRAM || ENV_IS_IN_ONENAND || \
+                    ENV_IS_IN_REMOTE || ENV_IS_IN_SPI_FLASH
+       default 0x0 if ENV_IS_IN_SPI_FLASH
+       help
+         Offset from the start of the device (or partition)
+
+config ENV_ADDR_REDUND
+       hex "Redundant environment address"
+       depends on ENV_IS_IN_FLASH && SYS_REDUNDAND_ENVIRONMENT
+       help
+         Offset from the start of the device (or partition) of the redundant
+         environment location.
 
 config ENV_OFFSET
 
 config ENV_OFFSET
-       hex "Environment Offset"
-       depends on !ENV_IS_IN_UBI
-       depends on !ENV_IS_NOWHERE
+       hex "Environment offset"
+       depends on ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \
+                   ENV_IS_IN_SPI_FLASH
+       default 0x3f8000 if ARCH_ROCKCHIP
        default 0x88000 if ARCH_SUNXI
        default 0x88000 if ARCH_SUNXI
+       default 0xE0000 if ARCH_ZYNQ
+       default 0x1E00000 if ARCH_ZYNQMP
+       default 0x7F40000 if ARCH_VERSAL
+       default 0 if ARC
+       default 0x140000 if ARCH_AT91
+       default 0x260000 if ARCH_OMAP2PLUS
        help
          Offset from the start of the device (or partition)
 
        help
          Offset from the start of the device (or partition)
 
+config ENV_OFFSET_REDUND
+       hex "Redundant environment offset"
+       depends on (ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \
+                   ENV_IS_IN_SPI_FLASH) && SYS_REDUNDAND_ENVIRONMENT
+       help
+         Offset from the start of the device (or partition) of the redundant
+         environment location.
+
 config ENV_SIZE
        hex "Environment Size"
 config ENV_SIZE
        hex "Environment Size"
-       depends on !ENV_IS_NOWHERE
-       default 0x20000 if ARCH_SUNXI
+       default 0x40000 if ENV_IS_IN_SPI_FLASH && ARCH_ZYNQMP
+       default 0x20000 if ARCH_SUNXI || ARCH_ZYNQ || ARCH_OMAP2PLUS || ARCH_AT91
+       default 0x8000 if ARCH_ROCKCHIP || ARCH_ZYNQMP || ARCH_VERSAL
+       default 0x4000 if ARC
+       default 0x1f000
        help
          Size of the environment storage area
 
        help
          Size of the environment storage area
 
+config ENV_SECT_SIZE
+       hex "Environment Sector-Size"
+       depends on ENV_IS_IN_FLASH || ENV_IS_IN_SPI_FLASH
+       default 0x40000 if ARCH_ZYNQMP || ARCH_VERSAL
+       default 0x20000 if ARCH_ZYNQ || ARCH_OMAP2PLUS || ARCH_AT91
+       help
+         Size of the sector containing the environment.
+
 config ENV_UBI_PART
        string "UBI partition name"
        depends on ENV_IS_IN_UBI
 config ENV_UBI_PART
        string "UBI partition name"
        depends on ENV_IS_IN_UBI
@@ -460,23 +540,162 @@ config ENV_UBI_VOLUME
        help
          Name of the volume that you want to store the environment in.
 
        help
          Name of the volume that you want to store the environment in.
 
+config ENV_UBI_VOLUME_REDUND
+       string "UBI redundant volume name"
+       depends on ENV_IS_IN_UBI && SYS_REDUNDAND_ENVIRONMENT
+       help
+         Name of the redundant volume that you want to store the environment in.
+
+config ENV_UBI_VID_OFFSET
+       int "ubi environment VID offset"
+       depends on ENV_IS_IN_UBI
+       default 0
+       help
+         UBI VID offset for environment. If 0, no custom VID offset is used.
+
+config SYS_RELOC_GD_ENV_ADDR
+       bool "Relocate gd->en_addr"
+       help
+         Relocate the early env_addr pointer so we know it is not inside
+         the binary. Some systems need this and for the rest, it doesn't hurt.
+
+config USE_DEFAULT_ENV_FILE
+       bool "Create default environment from file"
+       help
+         Normally, the default environment is automatically generated
+         based on the settings of various CONFIG_* options, as well
+         as the CONFIG_EXTRA_ENV_SETTINGS. By selecting this option,
+         you can instead define the entire default environment in an
+         external file.
+
+config DEFAULT_ENV_FILE
+       string "Path to default environment file"
+       depends on USE_DEFAULT_ENV_FILE
+       help
+         The path containing the default environment. The format is
+         the same as accepted by the mkenvimage tool: lines
+         containing key=value pairs, blank lines and lines beginning
+         with # are ignored.
+
+config ENV_VARS_UBOOT_RUNTIME_CONFIG
+       bool "Add run-time information to the environment"
+       help
+         Enable this in order to add variables describing certain
+         run-time determined information about the hardware to the
+         environment.  These will be named board_name, board_rev.
+
+if SPL_ENV_SUPPORT
+config SPL_ENV_IS_NOWHERE
+       bool "SPL Environment is not stored"
+       default y if ENV_IS_NOWHERE
+       help
+         Similar to ENV_IS_NOWHERE, used for SPL environment.
+
+config SPL_ENV_IS_IN_MMC
+       bool "SPL Environment in an MMC device"
+       depends on !SPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_MMC
+       default y
+       help
+         Similar to ENV_IS_IN_MMC, used for SPL environment.
+
+config SPL_ENV_IS_IN_FAT
+       bool "SPL Environment is in a FAT filesystem"
+       depends on !SPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_FAT
+       default y
+       help
+         Similar to ENV_IS_IN_FAT, used for SPL environment.
+
+config SPL_ENV_IS_IN_EXT4
+       bool "SPL Environment is in a EXT4 filesystem"
+       depends on !SPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_EXT4
+       default y
+       help
+         Similar to ENV_IS_IN_EXT4, used for SPL environment.
+
+config SPL_ENV_IS_IN_NAND
+       bool "SPL Environment in a NAND device"
+       depends on !SPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_NAND
+       default y
+       help
+         Similar to ENV_IS_IN_NAND, used for SPL environment.
+
+config SPL_ENV_IS_IN_SPI_FLASH
+       bool "SPL Environment is in SPI flash"
+       depends on !SPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_SPI_FLASH
+       default y
+       help
+         Similar to ENV_IS_IN_SPI_FLASH, used for SPL environment.
+
+config SPL_ENV_IS_IN_FLASH
+       bool "SPL Environment in flash memory"
+       depends on !SPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_FLASH
+       default y
+       help
+         Similar to ENV_IS_IN_FLASH, used for SPL environment.
+
 endif
 
 endif
 
-if ARCH_ROCKCHIP
+if TPL_ENV_SUPPORT
 
 
-config ENV_OFFSET
-       hex
-       depends on !ENV_IS_IN_UBI
-       depends on !ENV_IS_NOWHERE
-       default 0x3f8000
+config TPL_ENV_IS_NOWHERE
+       bool "TPL Environment is not stored"
+       default y if ENV_IS_NOWHERE
        help
        help
-         Offset from the start of the device (or partition)
+         Similar to ENV_IS_NOWHERE, used for TPL environment.
 
 
-config ENV_SIZE
-       hex
-       default 0x8000
+config TPL_ENV_IS_IN_MMC
+       bool "TPL Environment in an MMC device"
+       depends on !TPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_MMC
+       default y
        help
        help
-         Size of the environment storage area
+         Similar to ENV_IS_IN_MMC, used for TPL environment.
+
+config TPL_ENV_IS_IN_FAT
+       bool "TPL Environment is in a FAT filesystem"
+       depends on !TPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_FAT
+       default y
+       help
+         Similar to ENV_IS_IN_FAT, used for TPL environment.
+
+config TPL_ENV_IS_IN_EXT4
+       bool "TPL Environment is in a EXT4 filesystem"
+       depends on !TPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_EXT4
+       default y
+       help
+         Similar to ENV_IS_IN_EXT4, used for TPL environment.
+
+config TPL_ENV_IS_IN_NAND
+       bool "TPL Environment in a NAND device"
+       depends on !TPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_NAND
+       default y
+       help
+         Similar to ENV_IS_IN_NAND, used for TPL environment.
+
+config TPL_ENV_IS_IN_SPI_FLASH
+       bool "TPL Environment is in SPI flash"
+       depends on !TPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_SPI_FLASH
+       default y
+       help
+         Similar to ENV_IS_IN_SPI_FLASH, used for TPL environment.
+
+config TPL_ENV_IS_IN_FLASH
+       bool "TPL Environment in flash memory"
+       depends on !TPL_ENV_IS_NOWHERE
+       depends on ENV_IS_IN_FLASH
+       default y
+       help
+         Similar to ENV_IS_IN_FLASH, used for TPL environment.
 
 endif
 
 
 endif