uboot/env/Kconfig
<<
>>
Prefs
   1menu "Environment"
   2
   3config ENV_SUPPORT
   4        def_bool y
   5
   6config ENV_SOURCE_FILE
   7        string "Environment file to use"
   8        default ""
   9        help
  10          This sets the basename to use to generate the default environment.
  11          This a text file as described in doc/usage/environment.rst
  12
  13          The file must be in the board directory and have a .env extension, so
  14          the resulting filename is typically
  15          board/<vendor>/<board>/<CONFIG_ENV_SOURCE_FILE>.env
  16
  17          If the file is not present, an error is produced.
  18
  19          If this CONFIG is empty, U-Boot uses CONFIG SYS_BOARD as a default, if
  20          the file board/<vendor>/<board>/<SYS_BOARD>.env exists. Otherwise the
  21          environment is assumed to come from the ad-hoc
  22          CFG_EXTRA_ENV_SETTINGS #define
  23
  24config ENV_CALLBACK_LIST_STATIC
  25        string "Static callbacks list"
  26        default ""
  27        help
  28          The environment callbacks are associated with variables in a
  29          static list. Define this list in the following format:
  30
  31          entry = variable_name[:callback_name]
  32          list = entry[,list]
  33
  34          If the callback name is not specified, then the callback is deleted.
  35          Spaces are also allowed anywhere in the list.
  36
  37config SAVEENV
  38        def_bool y if CMD_SAVEENV
  39
  40config ENV_OVERWRITE
  41        bool "Enable overwriting environment"
  42        help
  43          Use this to permit overriding of certain environmental variables
  44          like Ethernet and Serial
  45
  46config OVERWRITE_ETHADDR_ONCE
  47        bool "Enable overwriting ethaddr environment variables once"
  48        depends on !ENV_OVERWRITE
  49        help
  50          Enable this to allow for the ethaddr environment variables to be
  51          overwritten one time per boot, only. This allows for a default
  52          to be installed in the environment, which can be changed exactly ONCE
  53          by the user.
  54
  55config ENV_MIN_ENTRIES
  56        int "Minimum number of entries in the environment hashtable"
  57        default 64
  58        help
  59          Minimum number of entries in the hash table that is used internally
  60          to store the environment settings.
  61
  62config ENV_MAX_ENTRIES
  63        int "Maximum number of entries in the environment hashtable"
  64        default 512
  65        help
  66          Maximum number of entries in the hash table that is used internally
  67          to store the environment settings. The default setting is supposed to
  68          be generous and should work in most cases. This setting can be used
  69          to tune behaviour; see lib/hashtable.c for details.
  70
  71config ENV_IS_DEFAULT
  72        def_bool y if !ENV_IS_IN_EEPROM && !ENV_IS_IN_EXT4 && \
  73                     !ENV_IS_IN_FAT && !ENV_IS_IN_FLASH && \
  74                     !ENV_IS_IN_MMC && !ENV_IS_IN_NAND && \
  75                     !ENV_IS_IN_NVRAM && !ENV_IS_IN_ONENAND && \
  76                     !ENV_IS_IN_REMOTE && !ENV_IS_IN_SPI_FLASH && \
  77                     !ENV_IS_IN_UBI && !ENV_IS_IN_MTD
  78        select ENV_IS_NOWHERE
  79
  80config ENV_IS_NOWHERE
  81        bool "Environment is not stored"
  82        help
  83          Define this if you don't care whether or not an environment is stored
  84          on a storage medium. In this case the environment will still exist
  85          while U-Boot is running, but once U-Boot exits it may not be
  86          stored. If no other ENV_IS_IN_ is defined, U-Boot will always start
  87          up with the default environment.
  88
  89config ENV_IS_IN_EEPROM
  90        bool "Environment in EEPROM"
  91        depends on !CHAIN_OF_TRUST
  92        help
  93          Use this if you have an EEPROM or similar serial access
  94          device and a driver for it.
  95
  96          - CONFIG_ENV_OFFSET:
  97          - CONFIG_ENV_SIZE:
  98
  99          These two #defines specify the offset and size of the
 100          environment area within the total memory of your EEPROM.
 101
 102          Note that we consider the length of the address field to
 103          still be one byte because the extra address bits are hidden
 104          in the chip address.
 105
 106          EEPROM which holds the environment, is reached over
 107          a pca9547 i2c mux with address 0x70, channel 3.
 108
 109config ENV_IS_IN_FAT
 110        bool "Environment is in a FAT filesystem"
 111        depends on !CHAIN_OF_TRUST
 112        default y if ARCH_BCM283X
 113        default y if ARCH_SUNXI && MMC
 114        default y if MMC_OMAP_HS && TI_COMMON_CMD_OPTIONS
 115        select FS_FAT
 116        select FAT_WRITE
 117        help
 118          Define this if you want to use the FAT file system for the environment.
 119
 120config ENV_IS_IN_EXT4
 121        bool "Environment is in a EXT4 filesystem"
 122        depends on !CHAIN_OF_TRUST
 123        select FS_EXT4
 124        select EXT4_WRITE
 125        help
 126          Define this if you want to use the EXT4 file system for the environment.
 127
 128config ENV_IS_IN_FLASH
 129        bool "Environment in flash memory"
 130        depends on !CHAIN_OF_TRUST
 131        default y if ARCH_CINTEGRATOR
 132        default y if ARCH_INTEGRATOR_CP
 133        default y if M548x || M547x || M5282
 134        default y if MCF532x || MCF52x2
 135        default y if MPC86xx || MPC83xx
 136        default y if ARCH_MPC8548
 137        default y if SH && !CPU_SH4
 138        help
 139          Define this if you have a flash device which you want to use for the
 140          environment.
 141
 142          a) The environment occupies one whole flash sector, which is
 143           "embedded" in the text segment with the U-Boot code. This
 144           happens usually with "bottom boot sector" or "top boot
 145           sector" type flash chips, which have several smaller
 146           sectors at the start or the end. For instance, such a
 147           layout can have sector sizes of 8, 2x4, 16, Nx32 kB. In
 148           such a case you would place the environment in one of the
 149           4 kB sectors - with U-Boot code before and after it. With
 150           "top boot sector" type flash chips, you would put the
 151           environment in one of the last sectors, leaving a gap
 152           between U-Boot and the environment.
 153
 154          CONFIG_ENV_OFFSET:
 155
 156           Offset of environment data (variable area) to the
 157           beginning of flash memory; for instance, with bottom boot
 158           type flash chips the second sector can be used: the offset
 159           for this sector is given here.
 160
 161           CONFIG_ENV_OFFSET is used relative to CFG_SYS_FLASH_BASE.
 162
 163          CONFIG_ENV_ADDR:
 164
 165           This is just another way to specify the start address of
 166           the flash sector containing the environment (instead of
 167           CONFIG_ENV_OFFSET).
 168
 169          CONFIG_ENV_SECT_SIZE:
 170
 171           Size of the sector containing the environment.
 172
 173
 174          b) Sometimes flash chips have few, equal sized, BIG sectors.
 175           In such a case you don't want to spend a whole sector for
 176           the environment.
 177
 178          CONFIG_ENV_SIZE:
 179
 180           If you use this in combination with CONFIG_ENV_IS_IN_FLASH
 181           and CONFIG_ENV_SECT_SIZE, you can specify to use only a part
 182           of this flash sector for the environment. This saves
 183           memory for the RAM copy of the environment.
 184
 185           It may also save flash memory if you decide to use this
 186           when your environment is "embedded" within U-Boot code,
 187           since then the remainder of the flash sector could be used
 188           for U-Boot code. It should be pointed out that this is
 189           STRONGLY DISCOURAGED from a robustness point of view:
 190           updating the environment in flash makes it always
 191           necessary to erase the WHOLE sector. If something goes
 192           wrong before the contents has been restored from a copy in
 193           RAM, your target system will be dead.
 194
 195          CONFIG_ENV_ADDR_REDUND
 196
 197           These settings describe a second storage area used to hold
 198           a redundant copy of the environment data, so that there is
 199           a valid backup copy in case there is a power failure during
 200           a "saveenv" operation.
 201
 202          BE CAREFUL! Any changes to the flash layout, and some changes to the
 203          source code will make it necessary to adapt <board>/u-boot.lds*
 204          accordingly!
 205
 206config ENV_IS_IN_MMC
 207        bool "Environment in an MMC device"
 208        depends on !CHAIN_OF_TRUST
 209        depends on MMC
 210        default y if ARCH_EXYNOS4
 211        default y if MX6SX || MX7D
 212        default y if TEGRA30 || TEGRA124
 213        default y if TEGRA_ARMV8_COMMON
 214        help
 215          Define this if you have an MMC device which you want to use for the
 216          environment.
 217
 218          CONFIG_SYS_MMC_ENV_DEV:
 219
 220          Specifies which MMC device the environment is stored in.
 221
 222          CONFIG_SYS_MMC_ENV_PART (optional):
 223
 224          Specifies which MMC partition the environment is stored in. If not
 225          set, defaults to partition 0, the user area. Common values might be
 226          1 (first MMC boot partition), 2 (second MMC boot partition).
 227
 228          CONFIG_ENV_OFFSET:
 229          CONFIG_ENV_SIZE:
 230
 231          These two #defines specify the offset and size of the environment
 232          area within the specified MMC device.
 233
 234          If offset is positive (the usual case), it is treated as relative to
 235          the start of the MMC partition. If offset is negative, it is treated
 236          as relative to the end of the MMC partition. This can be useful if
 237          your board may be fitted with different MMC devices, which have
 238          different sizes for the MMC partitions, and you always want the
 239          environment placed at the very end of the partition, to leave the
 240          maximum possible space before it, to store other data.
 241
 242          These two values are in units of bytes, but must be aligned to an
 243          MMC sector boundary.
 244
 245          CONFIG_ENV_OFFSET_REDUND (optional):
 246
 247          Specifies a second storage area, of CONFIG_ENV_SIZE size, used to
 248          hold a redundant copy of the environment data. This provides a
 249          valid backup copy in case the other copy is corrupted, e.g. due
 250          to a power failure during a "saveenv" operation.
 251
 252          This value may also be positive or negative; this is handled in the
 253          same way as CONFIG_ENV_OFFSET.
 254
 255          In case CONFIG_SYS_MMC_ENV_PART is 1 (i.e. environment in eMMC boot
 256          partition) then setting CONFIG_ENV_OFFSET_REDUND to the same value
 257          as CONFIG_ENV_OFFSET makes use of the second eMMC boot partition for
 258          the redundant environment copy.
 259
 260          This value is also in units of bytes, but must also be aligned to
 261          an MMC sector boundary.
 262
 263          CONFIG_ENV_MMC_USE_DT (optional):
 264
 265          These define forces the configuration by the config node in device
 266          tree with partition name: "u-boot,mmc-env-partition" or with
 267          offset: "u-boot,mmc-env-offset", "u-boot,mmc-env-offset-redundant".
 268          CONFIG_ENV_OFFSET and CONFIG_ENV_OFFSET_REDUND are not used.
 269
 270config ENV_IS_IN_NAND
 271        bool "Environment in a NAND device"
 272        depends on !CHAIN_OF_TRUST
 273        help
 274          Define this if you have a NAND device which you want to use for the
 275          environment.
 276
 277          - CONFIG_ENV_OFFSET:
 278          - CONFIG_ENV_SIZE:
 279
 280          These two #defines specify the offset and size of the environment
 281          area within the first NAND device.  CONFIG_ENV_OFFSET must be
 282          aligned to an erase block boundary.
 283
 284          - CONFIG_ENV_OFFSET_REDUND (optional):
 285
 286          This setting describes a second storage area of CONFIG_ENV_SIZE
 287          size used to hold a redundant copy of the environment data, so
 288          that there is a valid backup copy in case there is a power failure
 289          during a "saveenv" operation.  CONFIG_ENV_OFFSET_REDUND must be
 290          aligned to an erase block boundary.
 291
 292          - CONFIG_ENV_OFFSET_OOB (optional):
 293
 294          Enables support for dynamically retrieving the offset of the
 295          environment from block zero's out-of-band data.  The
 296          "nand env.oob" command can be used to record this offset.
 297          Currently, CONFIG_ENV_OFFSET_REDUND is not supported when
 298          using CONFIG_ENV_OFFSET_OOB.
 299
 300config ENV_RANGE
 301        hex "Length of the region in which the environment can be written"
 302        depends on ENV_IS_IN_NAND
 303        range ENV_SIZE 0x7fffffff
 304        default ENV_SIZE
 305        help
 306          This should be a multiple of the NAND device's block size.
 307          Specifying a range with more erase blocks than are needed to hold
 308          CONFIG_ENV_SIZE allows bad blocks within the range to be avoided.
 309
 310config ENV_IS_IN_NVRAM
 311        bool "Environment in a non-volatile RAM"
 312        depends on !CHAIN_OF_TRUST
 313        help
 314          Define this if you have some non-volatile memory device
 315          (NVRAM, battery buffered SRAM) which you want to use for the
 316          environment.
 317
 318          - CONFIG_ENV_ADDR:
 319          - CONFIG_ENV_SIZE:
 320
 321          These two #defines are used to determine the memory area you
 322          want to use for environment. It is assumed that this memory
 323          can just be read and written to, without any special
 324          provision.
 325
 326config ENV_IS_IN_ONENAND
 327        bool "Environment is in OneNAND"
 328        depends on !CHAIN_OF_TRUST && CMD_ONENAND
 329        help
 330          Define this if you want to put your local device's environment in
 331          OneNAND.
 332
 333          - CONFIG_ENV_ADDR:
 334          - CONFIG_ENV_SIZE:
 335
 336          These two #defines are used to determine the device range you
 337          want to use for environment. It is assumed that this memory
 338          can just be read and written to, without any special
 339          provision.
 340
 341config ENV_IS_IN_REMOTE
 342        bool "Environment is in remote memory space"
 343        depends on !CHAIN_OF_TRUST
 344        help
 345          Define this if you have a remote memory space which you
 346          want to use for the local device's environment.
 347
 348          - CONFIG_ENV_ADDR:
 349          - CONFIG_ENV_SIZE:
 350
 351          These two #defines specify the address and size of the
 352          environment area within the remote memory space. The
 353          local device can get the environment from remote memory
 354          space by SRIO or PCIE links.
 355
 356config ENV_IS_IN_SPI_FLASH
 357        bool "Environment is in SPI flash"
 358        depends on !CHAIN_OF_TRUST && (SPI_FLASH || DM_SPI_FLASH)
 359        default y if ARMADA_XP
 360        default y if INTEL_BAYTRAIL
 361        default y if INTEL_BRASWELL
 362        default y if INTEL_BROADWELL
 363        default y if NORTHBRIDGE_INTEL_IVYBRIDGE
 364        default y if INTEL_QUARK
 365        default y if INTEL_QUEENSBAY
 366        default y if ARCH_SUNXI
 367        help
 368          Define this if you have a SPI Flash memory device which you
 369          want to use for the environment.
 370
 371          - CONFIG_ENV_OFFSET:
 372          - CONFIG_ENV_SIZE:
 373
 374          These two #defines specify the offset and size of the
 375          environment area within the SPI Flash. CONFIG_ENV_OFFSET must be
 376          aligned to an erase sector boundary.
 377
 378          - CONFIG_ENV_SECT_SIZE:
 379
 380          Define the SPI flash's sector size.
 381
 382          - CONFIG_ENV_OFFSET_REDUND (optional):
 383
 384          This setting describes a second storage area of CONFIG_ENV_SIZE
 385          size used to hold a redundant copy of the environment data, so
 386          that there is a valid backup copy in case there is a power failure
 387          during a "saveenv" operation. CONFIG_ENV_OFFSET_REDUND must be
 388          aligned to an erase sector boundary.
 389
 390config ENV_IS_IN_MTD
 391        bool "Environment is in MTD flash"
 392        depends on !CHAIN_OF_TRUST && MTD
 393        default y if ARCH_AIROHA
 394        help
 395          Define this if you have a MTD Flash memory device which you
 396          want to use for the environment.
 397
 398          - CONFIG_ENV_MTD_DEV:
 399
 400          Specifies which SPI NAND device the environment is stored in.
 401
 402          - CONFIG_ENV_OFFSET:
 403          - CONFIG_ENV_SIZE:
 404
 405          These two #defines specify the offset and size of the
 406          environment area within the MTD Flash.
 407          CONFIG_ENV_OFFSET must be aligned to an erase sector boundary.
 408
 409config ENV_SECT_SIZE_AUTO
 410        bool "Use automatically detected sector size"
 411        depends on ENV_IS_IN_SPI_FLASH
 412        help
 413          Some boards exist in multiple variants, with different
 414          flashes having different sector sizes. In such cases, you
 415          can select this option to make U-Boot use the actual sector
 416          size when figuring out how much to erase, which can thus be
 417          more efficient on the flashes with smaller erase size. Since
 418          the environment must always be aligned on a sector boundary,
 419          CONFIG_ENV_OFFSET must be aligned to the largest of the
 420          different sector sizes, and CONFIG_ENV_SECT_SIZE should be
 421          set to that value.
 422
 423config ENV_SPI_BUS
 424        int "Value of SPI flash bus for environment"
 425        depends on ENV_IS_IN_SPI_FLASH
 426        default SF_DEFAULT_BUS
 427        help
 428          Value the SPI bus and chip select for environment.
 429
 430config ENV_SPI_CS
 431        int "Value of SPI flash chip select for environment"
 432        depends on ENV_IS_IN_SPI_FLASH
 433        default SF_DEFAULT_CS
 434        help
 435          Value of the SPI chip select for environment.
 436
 437config ENV_SPI_MAX_HZ
 438        int "Value of SPI flash max frequency for environment"
 439        depends on ENV_IS_IN_SPI_FLASH
 440        default SF_DEFAULT_SPEED
 441        help
 442          Value of the SPI max work clock for environment.
 443
 444config ENV_SPI_MODE
 445        hex "Value of SPI flash work mode for environment"
 446        depends on ENV_IS_IN_SPI_FLASH
 447        default SF_DEFAULT_MODE
 448        help
 449          Value of the SPI work mode for environment.
 450          See include/spi.h for value.
 451
 452config ENV_SPI_EARLY
 453        bool "Access Environment in SPI flashes before relocation"
 454        depends on ENV_IS_IN_SPI_FLASH
 455        help
 456          Enable this if you want to use Environment in SPI flash
 457          before relocation. Call env_init() and than you can use
 458          env_get_f() for accessing Environment variables.
 459
 460config ENV_IS_IN_UBI
 461        bool "Environment in a UBI volume"
 462        depends on !CHAIN_OF_TRUST
 463        depends on MTD_UBI
 464        depends on CMD_UBI
 465        help
 466          Define this if you have an UBI volume that you want to use for the
 467          environment.  This has the benefit of wear-leveling the environment
 468          accesses, which is important on NAND.
 469
 470          - CONFIG_ENV_UBI_PART:
 471
 472          Define this to a string that is the mtd partition containing the UBI.
 473
 474          - CONFIG_ENV_UBI_VOLUME:
 475
 476          Define this to the name of the volume that you want to store the
 477          environment in.
 478
 479          - CONFIG_ENV_UBI_VOLUME_REDUND:
 480
 481          Define this to the name of another volume to store a second copy of
 482          the environment in.  This will enable redundant environments in UBI.
 483          It is assumed that both volumes are in the same MTD partition.
 484
 485config SYS_REDUNDAND_ENVIRONMENT
 486        bool "Enable redundant environment support"
 487        help
 488          Normally, the environemt is stored in a single location.  By
 489          selecting this option, you can then define where to hold a redundant
 490          copy of the environment data, so that there is a valid backup copy in
 491          case there is a power failure during a "saveenv" operation.
 492          Also this config changes the binary environment structure handling
 493          which is used by env import/export commands which are independent of
 494          storing variables to redundant location on a non volatile device.
 495
 496config ENV_FAT_INTERFACE
 497        string "Name of the block device for the environment"
 498        depends on ENV_IS_IN_FAT
 499        default "mmc"
 500        help
 501          Define this to a string that is the name of the block device.
 502
 503config ENV_FAT_DEVICE_AND_PART
 504        string "Device and partition for where to store the environemt in FAT"
 505        depends on ENV_IS_IN_FAT
 506        default "0:1" if TI_COMMON_CMD_OPTIONS
 507        default "0:auto" if ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
 508        default ":auto" if ARCH_SUNXI
 509        default "0" if ARCH_AT91
 510        help
 511          Define this to a string to specify the partition of the device. It can
 512          be as following:
 513
 514            "D:P", "D:0", "D", "D:" or "D:auto" (D, P are integers. And P >= 1)
 515               - "D:P": device D partition P. Error occurs if device D has no
 516                        partition table.
 517               - "D:0": device D.
 518               - "D" or "D:": device D partition 1 if device D has partition
 519                              table, or the whole device D if has no partition
 520                              table.
 521               - "D:auto": first partition in device D with bootable flag set.
 522                           If none, first valid partition in device D. If no
 523                           partition table then means device D.
 524
 525          If ENV_FAT_INTERFACE is set to "mmc" then device 'D' can be omitted,
 526          leaving the string starting with a colon, and the boot device will
 527          be used.
 528
 529config ENV_FAT_FILE
 530        string "Name of the FAT file to use for the environment"
 531        depends on ENV_IS_IN_FAT
 532        default "uboot.env"
 533        help
 534          It's a string of the FAT file name. This file use to store the
 535          environment.
 536
 537config ENV_FAT_FILE_REDUND
 538        string "Name of the FAT file to use for the environment"
 539        depends on ENV_IS_IN_FAT && SYS_REDUNDAND_ENVIRONMENT
 540        default "uboot-redund.env"
 541        help
 542          It's a string of the FAT file name. This file use to store the
 543          redundant environment.
 544
 545config ENV_EXT4_INTERFACE
 546        string "Name of the block device for the environment"
 547        depends on ENV_IS_IN_EXT4
 548        help
 549          Define this to a string that is the name of the block device.
 550
 551config ENV_EXT4_DEVICE_AND_PART
 552        string "Device and partition for where to store the environemt in EXT4"
 553        depends on ENV_IS_IN_EXT4
 554        help
 555          Define this to a string to specify the partition of the device. It can
 556          be as following:
 557
 558            "D:P", "D:0", "D", "D:" or "D:auto" (D, P are integers. And P >= 1)
 559               - "D:P": device D partition P. Error occurs if device D has no
 560                        partition table.
 561               - "D:0": device D.
 562               - "D" or "D:": device D partition 1 if device D has partition
 563                              table, or the whole device D if has no partition
 564                              table.
 565               - "D:auto": first partition in device D with bootable flag set.
 566                           If none, first valid partition in device D. If no
 567                           partition table then means device D.
 568
 569          If ENV_EXT4_INTERFACE is set to "mmc" then device 'D' can be omitted,
 570          leaving the string starting with a colon, and the boot device will
 571          be used.
 572
 573config ENV_EXT4_FILE
 574        string "Name of the EXT4 file to use for the environment"
 575        depends on ENV_IS_IN_EXT4
 576        default "/uboot.env"
 577        help
 578          It's a string of the EXT4 file name. This file use to store the
 579          environment (explicit path to the file)
 580
 581config ENV_ADDR
 582        hex "Environment address"
 583        depends on ENV_IS_IN_FLASH || ENV_IS_IN_NVRAM || ENV_IS_IN_ONENAND || \
 584                     ENV_IS_IN_REMOTE || ENV_IS_IN_SPI_FLASH || ENV_IS_IN_MTD
 585        default 0x0 if ENV_IS_IN_SPI_FLASH || ENV_IS_IN_MTD
 586        help
 587          Offset from the start of the device (or partition)
 588
 589config ENV_ADDR_REDUND
 590        hex "Redundant environment address"
 591        depends on ENV_IS_IN_FLASH && SYS_REDUNDAND_ENVIRONMENT
 592        help
 593          Offset from the start of the device (or partition) of the redundant
 594          environment location.
 595
 596config ENV_OFFSET
 597        hex "Environment offset"
 598        depends on ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \
 599                    ENV_IS_IN_SPI_FLASH || ENV_IS_IN_MTD
 600        default 0x3f8000 if ARCH_ROCKCHIP && ENV_IS_IN_MMC
 601        default 0x140000 if ARCH_ROCKCHIP && ENV_IS_IN_SPI_FLASH
 602        default 0xF0000 if ARCH_SUNXI
 603        default 0xE0000 if ARCH_ZYNQ
 604        default 0x1E00000 if ARCH_ZYNQMP
 605        default 0x7F40000 if ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
 606        default 0x0 if ARC
 607        default 0x140000 if ARCH_AT91
 608        default 0x260000 if ARCH_OMAP2PLUS
 609        default 0x1080000 if MICROBLAZE && ENV_IS_IN_SPI_FLASH
 610        help
 611          Offset from the start of the device (or partition).
 612
 613          This offset may be interpreted differently depending on the chosen
 614          ENV_IS_IN_* options. For example, for ENV_IS_IN_MMC=y, this offset may
 615          be negative to indicate an offset backwards from the end of the
 616          partition. See the relevant help messages for more details.
 617
 618config ENV_OFFSET_REDUND
 619        hex "Redundant environment offset"
 620        depends on (ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \
 621                    ENV_IS_IN_SPI_FLASH) && SYS_REDUNDAND_ENVIRONMENT
 622        default 0x10C0000 if MICROBLAZE
 623        default 0x0
 624        help
 625          Offset from the start of the device (or partition) of the redundant
 626          environment location.
 627
 628          This offset may be interpreted differently depending on the chosen
 629          ENV_IS_IN_* options. For example, for ENV_IS_IN_MMC=y, this offset may
 630          be negative to indicate an offset backwards from the end of the
 631          partition. See the relevant help messages for more details.
 632
 633config ENV_SIZE
 634        hex "Environment Size"
 635        default 0x40000 if ENV_IS_IN_SPI_FLASH && ARCH_ZYNQMP
 636        default 0x20000 if ARCH_ZYNQ || ARCH_OMAP2PLUS || ARCH_AT91
 637        default 0x10000 if ARCH_SUNXI
 638        default 0x8000 if ARCH_ROCKCHIP && ENV_IS_IN_MMC
 639        default 0x2000 if ARCH_ROCKCHIP && ENV_IS_IN_SPI_FLASH
 640        default 0x8000 if ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
 641        default 0x4000 if ARC
 642        default 0x1f000
 643        help
 644          Size of the environment storage area
 645
 646config ENV_SECT_SIZE
 647        hex "Environment Sector-Size"
 648        depends on ENV_IS_IN_FLASH || ENV_IS_IN_SPI_FLASH
 649        default 0x2000 if ARCH_ROCKCHIP
 650        default 0x40000 if ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
 651        default 0x20000 if ARCH_ZYNQ || ARCH_OMAP2PLUS || ARCH_AT91
 652        default 0x20000 if MICROBLAZE && ENV_IS_IN_SPI_FLASH
 653        default 0x10000 if ARCH_SUNXI && ENV_IS_IN_SPI_FLASH
 654        help
 655          Size of the sector containing the environment.
 656
 657config ENV_UBI_PART
 658        string "UBI partition name"
 659        depends on ENV_IS_IN_UBI
 660        help
 661          MTD partition containing the UBI device
 662
 663config ENV_UBI_VOLUME
 664        string "UBI volume name"
 665        depends on ENV_IS_IN_UBI
 666        help
 667          Name of the volume that you want to store the environment in.
 668
 669config ENV_UBI_VOLUME_REDUND
 670        string "UBI redundant volume name"
 671        depends on ENV_IS_IN_UBI && SYS_REDUNDAND_ENVIRONMENT
 672        help
 673          Name of the redundant volume that you want to store the environment in.
 674
 675config ENV_UBI_VID_OFFSET
 676        int "ubi environment VID offset"
 677        depends on ENV_IS_IN_UBI
 678        default 0
 679        help
 680          UBI VID offset for environment. If 0, no custom VID offset is used.
 681
 682config SYS_RELOC_GD_ENV_ADDR
 683        bool "Relocate gd->env_addr"
 684        help
 685          Relocate the early env_addr pointer so we know it is not inside
 686          the binary. Some systems need this and for the rest, it doesn't hurt.
 687
 688config ENV_MTD_DEV
 689        string "mtd device name"
 690        depends on ENV_IS_IN_MTD
 691        help
 692          MTD device name on the platform where the environment is stored.
 693
 694config SYS_MMC_ENV_DEV
 695        int "mmc device number"
 696        depends on ENV_IS_IN_MMC || ENV_IS_IN_FAT || ENV_IS_IN_EXT4 || \
 697                CMD_MVEBU_BUBT || FMAN_ENET || QE || PHY_CORTINA
 698        default 0
 699        help
 700          MMC device number on the platform where the environment is stored.
 701
 702config SYS_MMC_ENV_PART
 703        int "mmc partition number"
 704        depends on ENV_IS_IN_MMC || ENV_IS_IN_FAT
 705        default 0
 706        help
 707          MMC hardware partition device number on the platform where the
 708          environment is stored.  Note that this is not related to any software
 709          defined partition table but instead if we are in the user area, which is
 710          partition 0 or the first boot partition, which is 1 or some other defined
 711          partition.
 712
 713config USE_ENV_MMC_PARTITION
 714        bool "use the mmc environment partition name"
 715        depends on ENV_IS_IN_MMC
 716
 717config ENV_MMC_PARTITION
 718        string "mmc environment partition name"
 719        depends on USE_ENV_MMC_PARTITION
 720        help
 721          MMC partition name used to save environment variables.
 722          If this variable is unset, u-boot will try to get the env partition name
 723          from the device-tree's /config node.
 724
 725config ENV_MMC_USE_DT
 726        bool "Read partition name and offset in DT"
 727        depends on ENV_IS_IN_MMC && OF_CONTROL
 728        help
 729          Only use the device tree to get the environment location in MMC
 730          device, with partition name or with offset.
 731          The 2 defines CONFIG_ENV_OFFSET, CONFIG_ENV_OFFSET_REDUND
 732          are not used as fallback.
 733
 734config USE_DEFAULT_ENV_FILE
 735        bool "Create default environment from file"
 736        help
 737          Normally, the default environment is automatically generated
 738          based on the settings of various CONFIG_* options, as well
 739          as the CFG_EXTRA_ENV_SETTINGS. By selecting this option,
 740          you can instead define the entire default environment in an
 741          external file.
 742
 743config DEFAULT_ENV_FILE
 744        string "Path to default environment file"
 745        depends on USE_DEFAULT_ENV_FILE
 746        help
 747          The path containing the default environment. The format is
 748          the same as accepted by the mkenvimage tool: lines
 749          containing key=value pairs, blank lines and lines beginning
 750          with # are ignored.
 751
 752config ENV_VARS_UBOOT_RUNTIME_CONFIG
 753        bool "Add run-time information to the environment"
 754        help
 755          Enable this in order to add variables describing certain
 756          run-time determined information about the hardware to the
 757          environment.  These will be named board_name, board_rev.
 758
 759config DELAY_ENVIRONMENT
 760        bool "Delay environment loading"
 761        depends on !OF_CONTROL
 762        help
 763          Enable this to inhibit loading the environment during board
 764          initialization. This can address the security risk of untrusted data
 765          being used during boot. Normally the environment is loaded when the
 766          board is initialised so that it is available to U-Boot. This inhibits
 767          that so that the environment is not available until explicitly loaded
 768          later by U-Boot code. With CONFIG_OF_CONTROL this is instead
 769          controlled by the value of /config/load-environment.
 770
 771config ENV_IMPORT_FDT
 772        bool "Amend environment by FDT properties"
 773        depends on OF_CONTROL
 774        help
 775          If selected, after the environment has been loaded from its
 776          persistent location, the "env_fdt_path" variable is looked
 777          up and used as a path to a node in the control DTB. The
 778          property/value pairs in that node is then used to update the
 779          run-time environment. This can be useful to use the same
 780          U-Boot binary with different board variants.
 781
 782config ENV_FDT_PATH
 783        string "Default value for env_fdt_path variable"
 784        depends on ENV_IMPORT_FDT
 785        default "/config/environment"
 786        help
 787          The initial value of the env_fdt_path variable.
 788
 789config ENV_APPEND
 790        bool "Always append the environment with new data"
 791        help
 792          If defined, the environment hash table is only ever appended with new
 793          data, but the existing hash table can never be dropped and reloaded
 794          with newly imported data. This may be used in combination with static
 795          flags to e.g. to protect variables which must not be modified.
 796
 797config ENV_WRITEABLE_LIST
 798        bool "Permit write access only to listed variables"
 799        select ENV_APPEND
 800        help
 801          If defined, only environment variables which explicitly set the 'w'
 802          writeable flag can be written and modified at runtime. No variables
 803          can be otherwise created, written or imported into the environment.
 804
 805config ENV_ACCESS_IGNORE_FORCE
 806        bool "Block forced environment operations"
 807        help
 808          If defined, don't allow the -f switch to env set override variable
 809          access flags.
 810
 811if SPL_ENV_SUPPORT
 812config SPL_ENV_IS_NOWHERE
 813        bool "SPL Environment is not stored"
 814        default y if ENV_IS_NOWHERE
 815        help
 816          Similar to ENV_IS_NOWHERE, used for SPL environment.
 817
 818config SPL_ENV_IS_IN_MMC
 819        bool "SPL Environment in an MMC device"
 820        depends on !SPL_ENV_IS_NOWHERE
 821        depends on ENV_IS_IN_MMC
 822        default y
 823        help
 824          Similar to ENV_IS_IN_MMC, used for SPL environment.
 825
 826config SPL_ENV_IS_IN_FAT
 827        bool "SPL Environment is in a FAT filesystem"
 828        depends on !SPL_ENV_IS_NOWHERE
 829        depends on ENV_IS_IN_FAT
 830        default y
 831        help
 832          Similar to ENV_IS_IN_FAT, used for SPL environment.
 833
 834config SPL_ENV_IS_IN_EXT4
 835        bool "SPL Environment is in a EXT4 filesystem"
 836        depends on !SPL_ENV_IS_NOWHERE
 837        depends on ENV_IS_IN_EXT4
 838        default y
 839        help
 840          Similar to ENV_IS_IN_EXT4, used for SPL environment.
 841
 842config SPL_ENV_IS_IN_NAND
 843        bool "SPL Environment in a NAND device"
 844        depends on !SPL_ENV_IS_NOWHERE
 845        depends on ENV_IS_IN_NAND
 846        default y
 847        help
 848          Similar to ENV_IS_IN_NAND, used for SPL environment.
 849
 850config SPL_ENV_IS_IN_SPI_FLASH
 851        bool "SPL Environment is in SPI flash"
 852        depends on !SPL_ENV_IS_NOWHERE
 853        depends on ENV_IS_IN_SPI_FLASH
 854        default y
 855        help
 856          Similar to ENV_IS_IN_SPI_FLASH, used for SPL environment.
 857
 858config SPL_ENV_IS_IN_FLASH
 859        bool "SPL Environment in flash memory"
 860        depends on !SPL_ENV_IS_NOWHERE
 861        depends on ENV_IS_IN_FLASH
 862        default y
 863        help
 864          Similar to ENV_IS_IN_FLASH, used for SPL environment.
 865
 866endif
 867
 868if TPL_ENV_SUPPORT
 869
 870config TPL_ENV_IS_NOWHERE
 871        bool "TPL Environment is not stored"
 872        default y if ENV_IS_NOWHERE
 873        help
 874          Similar to ENV_IS_NOWHERE, used for TPL environment.
 875
 876config TPL_ENV_IS_IN_MMC
 877        bool "TPL Environment in an MMC device"
 878        depends on !TPL_ENV_IS_NOWHERE
 879        depends on ENV_IS_IN_MMC
 880        default y
 881        help
 882          Similar to ENV_IS_IN_MMC, used for TPL environment.
 883
 884config TPL_ENV_IS_IN_FAT
 885        bool "TPL Environment is in a FAT filesystem"
 886        depends on !TPL_ENV_IS_NOWHERE
 887        depends on ENV_IS_IN_FAT
 888        default y
 889        help
 890          Similar to ENV_IS_IN_FAT, used for TPL environment.
 891
 892config TPL_ENV_IS_IN_EXT4
 893        bool "TPL Environment is in a EXT4 filesystem"
 894        depends on !TPL_ENV_IS_NOWHERE
 895        depends on ENV_IS_IN_EXT4
 896        default y
 897        help
 898          Similar to ENV_IS_IN_EXT4, used for TPL environment.
 899
 900config TPL_ENV_IS_IN_NAND
 901        bool "TPL Environment in a NAND device"
 902        depends on !TPL_ENV_IS_NOWHERE
 903        depends on ENV_IS_IN_NAND
 904        default y
 905        help
 906          Similar to ENV_IS_IN_NAND, used for TPL environment.
 907
 908config TPL_ENV_IS_IN_SPI_FLASH
 909        bool "TPL Environment is in SPI flash"
 910        depends on !TPL_ENV_IS_NOWHERE
 911        depends on ENV_IS_IN_SPI_FLASH
 912        default y
 913        help
 914          Similar to ENV_IS_IN_SPI_FLASH, used for TPL environment.
 915
 916config TPL_ENV_IS_IN_FLASH
 917        bool "TPL Environment in flash memory"
 918        depends on !TPL_ENV_IS_NOWHERE
 919        depends on ENV_IS_IN_FLASH
 920        default y
 921        help
 922          Similar to ENV_IS_IN_FLASH, used for TPL environment.
 923
 924endif
 925
 926if VPL_ENV_SUPPORT
 927
 928config VPL_ENV_IS_NOWHERE
 929        bool "VPL Environment is not stored"
 930        default y if ENV_IS_NOWHERE
 931        help
 932          Similar to ENV_IS_NOWHERE, used for VPL environment.
 933
 934endif  # VPL_ENV_SUPPORT
 935
 936config USE_BOOTFILE
 937        bool "Add a 'bootfile' environment variable"
 938        help
 939          The "bootfile" variable is used in some cases to allow for
 940          controlling what file U-Boot will attempt to load and boot.  To set
 941          this, enable this option and set the value in the next question.
 942
 943config BOOTFILE
 944        string "'bootfile' environment variable value"
 945        depends on USE_BOOTFILE
 946        help
 947          The value to set the "bootfile" variable to.
 948
 949config USE_ETHPRIME
 950        bool "Add an 'ethprime' environment variable"
 951        help
 952          The "ethprime" variable is used in some cases to control which
 953          network interface is used first.
 954
 955config ETHPRIME
 956        string "'ethprime' environment variable value"
 957        depends on USE_ETHPRIME
 958        help
 959          The value to set the "ethprime" variable to.
 960
 961config USE_HOSTNAME
 962        bool "Set a default 'hostname' value in the environment"
 963        default y if X86
 964
 965config HOSTNAME
 966        string "Value of the default 'hostname' value in the environment"
 967        depends on USE_HOSTNAME
 968        default "x86" if X86
 969        default "unknown"
 970
 971config VERSION_VARIABLE
 972        bool "Add a 'ver' environment variable with the U-Boot version"
 973        help
 974          If this variable is defined, an environment variable
 975          named "ver" is created by U-Boot showing the U-Boot
 976          version as printed by the "version" command.
 977          Any change to this variable will be reverted at the
 978          next reset.
 979
 980endmenu
 981