common: Drop bootstage.h from common header
[oweals/u-boot.git] / env / Kconfig
index 1e10c7a4c46b1ea0370d5d8cb5d33d105e91eb15..ed94e83ec1e81b96426edfea153b40bd52ae27c4 100644 (file)
@@ -1,19 +1,19 @@
 menu "Environment"
 
 menu "Environment"
 
+config ENV_SUPPORT
+       def_bool y
+
+config SAVEENV
+       def_bool y if CMD_SAVEENV
+
 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_EXT4
-       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
          on a storage medium. In this case the environment will still exist
        help
          Define this if you don't want to or can't have an environment stored
          on a storage medium. In this case the environment will still exist
@@ -138,7 +138,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
@@ -201,12 +200,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
@@ -293,7 +286,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
@@ -379,6 +372,8 @@ config ENV_SPI_MODE
 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
@@ -399,11 +394,20 @@ 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
-       default "mmc" if ARCH_SUNXI
-       default "mmc" if TI_COMMON_CMD_OPTIONS || ARCH_ZYNQMP || ARCH_AT91
+       default "mmc"
        help
          Define this to a string that is the name of the block device.
 
        help
          Define this to a string that is the name of the block device.
 
@@ -470,34 +474,65 @@ config ENV_EXT4_FILE
          It's a string of the EXT4 file name. This file use to store the
          environment (explicit path to the file)
 
          It's a string of the EXT4 file name. This file use to store the
          environment (explicit path to the file)
 
-if ARCH_ROCKCHIP || ARCH_SUNXI || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARC || ARCH_STM32MP
+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
-       default 0x3f8000 if ARCH_ROCKCHIP
+       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 && ENV_IS_IN_MMC
+       default 0x140000 if ARCH_ROCKCHIP && ENV_IS_IN_SPI_FLASH
        default 0x88000 if ARCH_SUNXI
        default 0xE0000 if ARCH_ZYNQ
        default 0x1E00000 if ARCH_ZYNQMP
        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 0 if ARC
+       default 0x140000 if ARCH_AT91
+       default 0x260000 if ARCH_OMAP2PLUS
+       default 0x1080000 if MICROBLAZE && ENV_IS_IN_SPI_FLASH
        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"
        default 0x40000 if ENV_IS_IN_SPI_FLASH && ARCH_ZYNQMP
 config ENV_SIZE
        hex "Environment Size"
        default 0x40000 if ENV_IS_IN_SPI_FLASH && ARCH_ZYNQMP
-       default 0x20000 if ARCH_SUNXI || ARCH_ZYNQ
-       default 0x8000 if ARCH_ROCKCHIP || ARCH_ZYNQMP || ARCH_VERSAL
+       default 0x20000 if ARCH_SUNXI || ARCH_ZYNQ || ARCH_OMAP2PLUS || ARCH_AT91
+       default 0x8000 if ARCH_ROCKCHIP && ENV_IS_IN_MMC
+       default 0x2000 if ARCH_ROCKCHIP && ENV_IS_IN_SPI_FLASH
+       default 0x8000 if ARCH_ZYNQMP || ARCH_VERSAL
        default 0x4000 if ARC
        default 0x4000 if ARC
+       default 0x1f000
        help
          Size of the environment storage area
 
 config ENV_SECT_SIZE
        hex "Environment Sector-Size"
        help
          Size of the environment storage area
 
 config ENV_SECT_SIZE
        hex "Environment Sector-Size"
-       depends on !ENV_IS_NOWHERE && (ARCH_ZYNQ || ARCH_ZYNQMP)
-       default 0x40000 if ARCH_ZYNQMP
-       default 0x20000 if ARCH_ZYNQ
+       depends on ENV_IS_IN_FLASH || ENV_IS_IN_SPI_FLASH
+       default 0x2000 if ARCH_ROCKCHIP
+       default 0x40000 if ARCH_ZYNQMP || ARCH_VERSAL
+       default 0x20000 if ARCH_ZYNQ || ARCH_OMAP2PLUS || ARCH_AT91
+       default 0x20000 if MICROBLAZE && ENV_IS_IN_SPI_FLASH
        help
          Size of the sector containing the environment.
 
        help
          Size of the sector containing the environment.
 
@@ -513,7 +548,24 @@ 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.
 
-endif
+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"
 
 config USE_DEFAULT_ENV_FILE
        bool "Create default environment from file"
@@ -540,6 +592,18 @@ config ENV_VARS_UBOOT_RUNTIME_CONFIG
          run-time determined information about the hardware to the
          environment.  These will be named board_name, board_rev.
 
          run-time determined information about the hardware to the
          environment.  These will be named board_name, board_rev.
 
+config DELAY_ENVIRONMENT
+       bool "Delay environment loading"
+       depends on !OF_CONTROL
+       help
+         Enable this to inhibit loading the environment during board
+         initialization. This can address the security risk of untrusted data
+         being used during boot. Normally the environment is loaded when the
+         board is initialised so that it is available to U-Boot. This inhibits
+         that so that the environment is not available until explicitly loaded
+         later by U-Boot code. With CONFIG_OF_CONTROL this is instead
+         controlled by the value of /config/load-environment.
+
 if SPL_ENV_SUPPORT
 config SPL_ENV_IS_NOWHERE
        bool "SPL Environment is not stored"
 if SPL_ENV_SUPPORT
 config SPL_ENV_IS_NOWHERE
        bool "SPL Environment is not stored"