1menu "Environment" 2 3config ENV_IS_NOWHERE 4 bool "Environment is not stored" 5 default y if !ENV_IS_IN_EEPROM && !ENV_IS_IN_EXT4 && \ 6 !ENV_IS_IN_FAT && !ENV_IS_IN_FLASH && \ 7 !ENV_IS_IN_MMC && !ENV_IS_IN_NAND && \ 8 !ENV_IS_IN_NVRAM && !ENV_IS_IN_ONENAND && \ 9 !ENV_IS_IN_REMOTE && !ENV_IS_IN_SPI_FLASH && \ 10 !ENV_IS_IN_UBI 11 help 12 Define this if you don't want to or can't have an environment stored 13 on a storage medium. In this case the environment will still exist 14 while U-Boot is running, but once U-Boot exits it will not be 15 stored. U-Boot will therefore always start up with a default 16 environment. 17 18config ENV_IS_IN_EEPROM 19 bool "Environment in EEPROM" 20 depends on !CHAIN_OF_TRUST 21 help 22 Use this if you have an EEPROM or similar serial access 23 device and a driver for it. 24 25 - CONFIG_ENV_OFFSET: 26 - CONFIG_ENV_SIZE: 27 28 These two #defines specify the offset and size of the 29 environment area within the total memory of your EEPROM. 30 31 Note that we consider the length of the address field to 32 still be one byte because the extra address bits are hidden 33 in the chip address. 34 35 - CONFIG_ENV_EEPROM_IS_ON_I2C 36 define this, if you have I2C and SPI activated, and your 37 EEPROM, which holds the environment, is on the I2C bus. 38 39 - CONFIG_I2C_ENV_EEPROM_BUS 40 if you have an Environment on an EEPROM reached over 41 I2C muxes, you can define here, how to reach this 42 EEPROM. For example: 43 44 #define CONFIG_I2C_ENV_EEPROM_BUS 1 45 46 EEPROM which holds the environment, is reached over 47 a pca9547 i2c mux with address 0x70, channel 3. 48 49config ENV_IS_IN_FAT 50 bool "Environment is in a FAT filesystem" 51 depends on !CHAIN_OF_TRUST 52 default y if ARCH_BCM283X 53 default y if ARCH_SUNXI && MMC 54 default y if MMC_OMAP_HS && TI_COMMON_CMD_OPTIONS 55 select FS_FAT 56 select FAT_WRITE 57 help 58 Define this if you want to use the FAT file system for the environment. 59 60config ENV_IS_IN_EXT4 61 bool "Environment is in a EXT4 filesystem" 62 depends on !CHAIN_OF_TRUST 63 select EXT4_WRITE 64 help 65 Define this if you want to use the EXT4 file system for the environment. 66 67config ENV_IS_IN_FLASH 68 bool "Environment in flash memory" 69 depends on !CHAIN_OF_TRUST 70 default y if ARCH_CINTEGRATOR 71 default y if ARCH_INTEGRATOR_CP 72 default y if M548x || M547x || M5282 || MCF547x_8x 73 default y if MCF532x || MCF52x2 74 default y if MPC86xx || MPC83xx 75 default y if ARCH_MPC8572 || ARCH_MPC8548 || ARCH_MPC8641 76 default y if SH && !CPU_SH4 77 help 78 Define this if you have a flash device which you want to use for the 79 environment. 80 81 a) The environment occupies one whole flash sector, which is 82 "embedded" in the text segment with the U-Boot code. This 83 happens usually with "bottom boot sector" or "top boot 84 sector" type flash chips, which have several smaller 85 sectors at the start or the end. For instance, such a 86 layout can have sector sizes of 8, 2x4, 16, Nx32 kB. In 87 such a case you would place the environment in one of the 88 4 kB sectors - with U-Boot code before and after it. With 89 "top boot sector" type flash chips, you would put the 90 environment in one of the last sectors, leaving a gap 91 between U-Boot and the environment. 92 93 CONFIG_ENV_OFFSET: 94 95 Offset of environment data (variable area) to the 96 beginning of flash memory; for instance, with bottom boot 97 type flash chips the second sector can be used: the offset 98 for this sector is given here. 99 100 CONFIG_ENV_OFFSET is used relative to CONFIG_SYS_FLASH_BASE. 101 102 CONFIG_ENV_ADDR: 103 104 This is just another way to specify the start address of 105 the flash sector containing the environment (instead of 106 CONFIG_ENV_OFFSET). 107 108 CONFIG_ENV_SECT_SIZE: 109 110 Size of the sector containing the environment. 111 112 113 b) Sometimes flash chips have few, equal sized, BIG sectors. 114 In such a case you don't want to spend a whole sector for 115 the environment. 116 117 CONFIG_ENV_SIZE: 118 119 If you use this in combination with CONFIG_ENV_IS_IN_FLASH 120 and CONFIG_ENV_SECT_SIZE, you can specify to use only a part 121 of this flash sector for the environment. This saves 122 memory for the RAM copy of the environment. 123 124 It may also save flash memory if you decide to use this 125 when your environment is "embedded" within U-Boot code, 126 since then the remainder of the flash sector could be used 127 for U-Boot code. It should be pointed out that this is 128 STRONGLY DISCOURAGED from a robustness point of view: 129 updating the environment in flash makes it always 130 necessary to erase the WHOLE sector. If something goes 131 wrong before the contents has been restored from a copy in 132 RAM, your target system will be dead. 133 134 CONFIG_ENV_ADDR_REDUND 135 CONFIG_ENV_SIZE_REDUND 136 137 These settings describe a second storage area used to hold 138 a redundant copy of the environment data, so that there is 139 a valid backup copy in case there is a power failure during 140 a "saveenv" operation. 141 142 BE CAREFUL! Any changes to the flash layout, and some changes to the 143 source code will make it necessary to adapt <board>/u-boot.lds* 144 accordingly! 145 146config ENV_IS_IN_MMC 147 bool "Environment in an MMC device" 148 depends on !CHAIN_OF_TRUST 149 depends on MMC 150 default y if ARCH_EXYNOS4 151 default y if MX6SX || MX7D 152 default y if TEGRA30 || TEGRA124 153 default y if TEGRA_ARMV8_COMMON 154 help 155 Define this if you have an MMC device which you want to use for the 156 environment. 157 158 CONFIG_SYS_MMC_ENV_DEV: 159 160 Specifies which MMC device the environment is stored in. 161 162 CONFIG_SYS_MMC_ENV_PART (optional): 163 164 Specifies which MMC partition the environment is stored in. If not 165 set, defaults to partition 0, the user area. Common values might be 166 1 (first MMC boot partition), 2 (second MMC boot partition). 167 168 CONFIG_ENV_OFFSET: 169 CONFIG_ENV_SIZE: 170 171 These two #defines specify the offset and size of the environment 172 area within the specified MMC device. 173 174 If offset is positive (the usual case), it is treated as relative to 175 the start of the MMC partition. If offset is negative, it is treated 176 as relative to the end of the MMC partition. This can be useful if 177 your board may be fitted with different MMC devices, which have 178 different sizes for the MMC partitions, and you always want the 179 environment placed at the very end of the partition, to leave the 180 maximum possible space before it, to store other data. 181 182 These two values are in units of bytes, but must be aligned to an 183 MMC sector boundary. 184 185 CONFIG_ENV_OFFSET_REDUND (optional): 186 187 Specifies a second storage area, of CONFIG_ENV_SIZE size, used to 188 hold a redundant copy of the environment data. This provides a 189 valid backup copy in case the other copy is corrupted, e.g. due 190 to a power failure during a "saveenv" operation. 191 192 This value may also be positive or negative; this is handled in the 193 same way as CONFIG_ENV_OFFSET. 194 195 This value is also in units of bytes, but must also be aligned to 196 an MMC sector boundary. 197 198 CONFIG_ENV_SIZE_REDUND (optional): 199 200 This value need not be set, even when CONFIG_ENV_OFFSET_REDUND is 201 set. If this value is set, it must be set to the same value as 202 CONFIG_ENV_SIZE. 203 204config ENV_IS_IN_NAND 205 bool "Environment in a NAND device" 206 depends on !CHAIN_OF_TRUST 207 help 208 Define this if you have a NAND device which you want to use for the 209 environment. 210 211 - CONFIG_ENV_OFFSET: 212 - CONFIG_ENV_SIZE: 213 214 These two #defines specify the offset and size of the environment 215 area within the first NAND device. CONFIG_ENV_OFFSET must be 216 aligned to an erase block boundary. 217 218 - CONFIG_ENV_OFFSET_REDUND (optional): 219 220 This setting describes a second storage area of CONFIG_ENV_SIZE 221 size used to hold a redundant copy of the environment data, so 222 that there is a valid backup copy in case there is a power failure 223 during a "saveenv" operation. CONFIG_ENV_OFFSET_REDUND must be 224 aligned to an erase block boundary. 225 226 - CONFIG_ENV_RANGE (optional): 227 228 Specifies the length of the region in which the environment 229 can be written. This should be a multiple of the NAND device's 230 block size. Specifying a range with more erase blocks than 231 are needed to hold CONFIG_ENV_SIZE allows bad blocks within 232 the range to be avoided. 233 234 - CONFIG_ENV_OFFSET_OOB (optional): 235 236 Enables support for dynamically retrieving the offset of the 237 environment from block zero's out-of-band data. The 238 "nand env.oob" command can be used to record this offset. 239 Currently, CONFIG_ENV_OFFSET_REDUND is not supported when 240 using CONFIG_ENV_OFFSET_OOB. 241 242config ENV_IS_IN_NVRAM 243 bool "Environment in a non-volatile RAM" 244 depends on !CHAIN_OF_TRUST 245 help 246 Define this if you have some non-volatile memory device 247 (NVRAM, battery buffered SRAM) which you want to use for the 248 environment. 249 250 - CONFIG_ENV_ADDR: 251 - CONFIG_ENV_SIZE: 252 253 These two #defines are used to determine the memory area you 254 want to use for environment. It is assumed that this memory 255 can just be read and written to, without any special 256 provision. 257 258config ENV_IS_IN_ONENAND 259 bool "Environment is in OneNAND" 260 depends on !CHAIN_OF_TRUST 261 help 262 Define this if you want to put your local device's environment in 263 OneNAND. 264 265 - CONFIG_ENV_ADDR: 266 - CONFIG_ENV_SIZE: 267 268 These two #defines are used to determine the device range you 269 want to use for environment. It is assumed that this memory 270 can just be read and written to, without any special 271 provision. 272 273config ENV_IS_IN_REMOTE 274 bool "Environment is in remote memory space" 275 depends on !CHAIN_OF_TRUST 276 help 277 Define this if you have a remote memory space which you 278 want to use for the local device's environment. 279 280 - CONFIG_ENV_ADDR: 281 - CONFIG_ENV_SIZE: 282 283 These two #defines specify the address and size of the 284 environment area within the remote memory space. The 285 local device can get the environment from remote memory 286 space by SRIO or PCIE links. 287 288config ENV_IS_IN_SPI_FLASH 289 bool "Environment is in SPI flash" 290 depends on !CHAIN_OF_TRUST && SPI 291 default y if ARMADA_XP 292 default y if INTEL_BAYTRAIL 293 default y if INTEL_BRASWELL 294 default y if INTEL_BROADWELL 295 default y if NORTHBRIDGE_INTEL_IVYBRIDGE 296 default y if INTEL_QUARK 297 default y if INTEL_QUEENSBAY 298 help 299 Define this if you have a SPI Flash memory device which you 300 want to use for the environment. 301 302 - CONFIG_ENV_OFFSET: 303 - CONFIG_ENV_SIZE: 304 305 These two #defines specify the offset and size of the 306 environment area within the SPI Flash. CONFIG_ENV_OFFSET must be 307 aligned to an erase sector boundary. 308 309 - CONFIG_ENV_SECT_SIZE: 310 311 Define the SPI flash's sector size. 312 313 - CONFIG_ENV_OFFSET_REDUND (optional): 314 315 This setting describes a second storage area of CONFIG_ENV_SIZE 316 size used to hold a redundant copy of the environment data, so 317 that there is a valid backup copy in case there is a power failure 318 during a "saveenv" operation. CONFIG_ENV_OFFSET_REDUND must be 319 aligned to an erase sector boundary. 320 321config USE_ENV_SPI_BUS 322 bool "SPI flash bus for environment" 323 depends on ENV_IS_IN_SPI_FLASH 324 help 325 Force the SPI bus for environment. 326 If not defined, use CONFIG_SF_DEFAULT_BUS. 327 328config ENV_SPI_BUS 329 int "Value of SPI flash bus for environment" 330 depends on USE_ENV_SPI_BUS 331 help 332 Value the SPI bus and chip select for environment. 333 334config USE_ENV_SPI_CS 335 bool "SPI flash chip select for environment" 336 depends on ENV_IS_IN_SPI_FLASH 337 help 338 Force the SPI chip select for environment. 339 If not defined, use CONFIG_SF_DEFAULT_CS. 340 341config ENV_SPI_CS 342 int "Value of SPI flash chip select for environment" 343 depends on USE_ENV_SPI_CS 344 help 345 Value of the SPI chip select for environment. 346 347config USE_ENV_SPI_MAX_HZ 348 bool "SPI flash max frequency for environment" 349 depends on ENV_IS_IN_SPI_FLASH 350 help 351 Force the SPI max work clock for environment. 352 If not defined, use CONFIG_SF_DEFAULT_SPEED. 353 354config ENV_SPI_MAX_HZ 355 int "Value of SPI flash max frequency for environment" 356 depends on USE_ENV_SPI_MAX_HZ 357 help 358 Value of the SPI max work clock for environment. 359 360config USE_ENV_SPI_MODE 361 bool "SPI flash mode for environment" 362 depends on ENV_IS_IN_SPI_FLASH 363 help 364 Force the SPI work mode for environment. 365 366config ENV_SPI_MODE 367 hex "Value of SPI flash work mode for environment" 368 depends on USE_ENV_SPI_MODE 369 help 370 Value of the SPI work mode for environment. 371 See include/spi.h for value. 372 373config ENV_IS_IN_UBI 374 bool "Environment in a UBI volume" 375 depends on !CHAIN_OF_TRUST 376 help 377 Define this if you have an UBI volume that you want to use for the 378 environment. This has the benefit of wear-leveling the environment 379 accesses, which is important on NAND. 380 381 - CONFIG_ENV_UBI_PART: 382 383 Define this to a string that is the mtd partition containing the UBI. 384 385 - CONFIG_ENV_UBI_VOLUME: 386 387 Define this to the name of the volume that you want to store the 388 environment in. 389 390 - CONFIG_ENV_UBI_VOLUME_REDUND: 391 392 Define this to the name of another volume to store a second copy of 393 the environment in. This will enable redundant environments in UBI. 394 It is assumed that both volumes are in the same MTD partition. 395 396config ENV_FAT_INTERFACE 397 string "Name of the block device for the environment" 398 depends on ENV_IS_IN_FAT 399 default "mmc" if ARCH_SUNXI 400 default "mmc" if TI_COMMON_CMD_OPTIONS || ARCH_ZYNQMP || ARCH_AT91 401 help 402 Define this to a string that is the name of the block device. 403 404config ENV_FAT_DEVICE_AND_PART 405 string "Device and partition for where to store the environemt in FAT" 406 depends on ENV_IS_IN_FAT 407 default "0:1" if TI_COMMON_CMD_OPTIONS 408 default "0:auto" if ARCH_ZYNQMP 409 default "0:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA = -1 410 default "1:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA != -1 411 default "0" if ARCH_AT91 412 help 413 Define this to a string to specify the partition of the device. It can 414 be as following: 415 416 "D:P", "D:0", "D", "D:" or "D:auto" (D, P are integers. And P >= 1) 417 - "D:P": device D partition P. Error occurs if device D has no 418 partition table. 419 - "D:0": device D. 420 - "D" or "D:": device D partition 1 if device D has partition 421 table, or the whole device D if has no partition 422 table. 423 - "D:auto": first partition in device D with bootable flag set. 424 If none, first valid partition in device D. If no 425 partition table then means device D. 426 427config ENV_FAT_FILE 428 string "Name of the FAT file to use for the environment" 429 depends on ENV_IS_IN_FAT 430 default "uboot.env" 431 help 432 It's a string of the FAT file name. This file use to store the 433 environment. 434 435config ENV_EXT4_INTERFACE 436 string "Name of the block device for the environment" 437 depends on ENV_IS_IN_EXT4 438 help 439 Define this to a string that is the name of the block device. 440 441config ENV_EXT4_DEVICE_AND_PART 442 string "Device and partition for where to store the environemt in EXT4" 443 depends on ENV_IS_IN_EXT4 444 help 445 Define this to a string to specify the partition of the device. It can 446 be as following: 447 448 "D:P", "D:0", "D", "D:" or "D:auto" (D, P are integers. And P >= 1) 449 - "D:P": device D partition P. Error occurs if device D has no 450 partition table. 451 - "D:0": device D. 452 - "D" or "D:": device D partition 1 if device D has partition 453 table, or the whole device D if has no partition 454 table. 455 - "D:auto": first partition in device D with bootable flag set. 456 If none, first valid partition in device D. If no 457 partition table then means device D. 458 459config ENV_EXT4_FILE 460 string "Name of the EXT4 file to use for the environment" 461 depends on ENV_IS_IN_EXT4 462 default "uboot.env" 463 help 464 It's a string of the EXT4 file name. This file use to store the 465 environment (explicit path to the file) 466 467if ARCH_ROCKCHIP || ARCH_SUNXI || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARC || ARCH_STM32MP 468 469config ENV_OFFSET 470 hex "Environment Offset" 471 depends on !ENV_IS_IN_UBI 472 depends on !ENV_IS_NOWHERE 473 default 0x3f8000 if ARCH_ROCKCHIP 474 default 0x88000 if ARCH_SUNXI 475 default 0xE0000 if ARCH_ZYNQ 476 default 0x1E00000 if ARCH_ZYNQMP 477 default 0 if ARC 478 help 479 Offset from the start of the device (or partition) 480 481config ENV_SIZE 482 hex "Environment Size" 483 default 0x40000 if ENV_IS_IN_SPI_FLASH && ARCH_ZYNQMP 484 default 0x20000 if ARCH_SUNXI || ARCH_ZYNQ 485 default 0x8000 if ARCH_ROCKCHIP || ARCH_ZYNQMP || ARCH_VERSAL 486 default 0x4000 if ARC 487 help 488 Size of the environment storage area 489 490config ENV_SECT_SIZE 491 hex "Environment Sector-Size" 492 depends on !ENV_IS_NOWHERE && (ARCH_ZYNQ || ARCH_ZYNQMP) 493 default 0x40000 if ARCH_ZYNQMP 494 default 0x20000 if ARCH_ZYNQ 495 help 496 Size of the sector containing the environment. 497 498config ENV_UBI_PART 499 string "UBI partition name" 500 depends on ENV_IS_IN_UBI 501 help 502 MTD partition containing the UBI device 503 504config ENV_UBI_VOLUME 505 string "UBI volume name" 506 depends on ENV_IS_IN_UBI 507 help 508 Name of the volume that you want to store the environment in. 509 510endif 511 512config USE_DEFAULT_ENV_FILE 513 bool "Create default environment from file" 514 help 515 Normally, the default environment is automatically generated 516 based on the settings of various CONFIG_* options, as well 517 as the CONFIG_EXTRA_ENV_SETTINGS. By selecting this option, 518 you can instead define the entire default environment in an 519 external file. 520 521config DEFAULT_ENV_FILE 522 string "Path to default environment file" 523 depends on USE_DEFAULT_ENV_FILE 524 help 525 The path containing the default environment. The format is 526 the same as accepted by the mkenvimage tool: lines 527 containing key=value pairs, blank lines and lines beginning 528 with # are ignored. 529 530config ENV_VARS_UBOOT_RUNTIME_CONFIG 531 bool "Add run-time information to the environment" 532 help 533 Enable this in order to add variables describing certain 534 run-time determined information about the hardware to the 535 environment. These will be named board_name, board_rev. 536 537if SPL_ENV_SUPPORT 538config SPL_ENV_IS_NOWHERE 539 bool "SPL Environment is not stored" 540 default y if ENV_IS_NOWHERE 541 help 542 Similar to ENV_IS_NOWHERE, used for SPL environment. 543 544config SPL_ENV_IS_IN_MMC 545 bool "SPL Environment in an MMC device" 546 depends on !SPL_ENV_IS_NOWHERE 547 depends on ENV_IS_IN_MMC 548 default y 549 help 550 Similar to ENV_IS_IN_MMC, used for SPL environment. 551 552config SPL_ENV_IS_IN_FAT 553 bool "SPL Environment is in a FAT filesystem" 554 depends on !SPL_ENV_IS_NOWHERE 555 depends on ENV_IS_IN_FAT 556 default y 557 help 558 Similar to ENV_IS_IN_FAT, used for SPL environment. 559 560config SPL_ENV_IS_IN_EXT4 561 bool "SPL Environment is in a EXT4 filesystem" 562 depends on !SPL_ENV_IS_NOWHERE 563 depends on ENV_IS_IN_EXT4 564 default y 565 help 566 Similar to ENV_IS_IN_EXT4, used for SPL environment. 567 568config SPL_ENV_IS_IN_NAND 569 bool "SPL Environment in a NAND device" 570 depends on !SPL_ENV_IS_NOWHERE 571 depends on ENV_IS_IN_NAND 572 default y 573 help 574 Similar to ENV_IS_IN_NAND, used for SPL environment. 575 576config SPL_ENV_IS_IN_SPI_FLASH 577 bool "SPL Environment is in SPI flash" 578 depends on !SPL_ENV_IS_NOWHERE 579 depends on ENV_IS_IN_SPI_FLASH 580 default y 581 help 582 Similar to ENV_IS_IN_SPI_FLASH, used for SPL environment. 583 584config SPL_ENV_IS_IN_FLASH 585 bool "SPL Environment in flash memory" 586 depends on !SPL_ENV_IS_NOWHERE 587 depends on ENV_IS_IN_FLASH 588 default y 589 help 590 Similar to ENV_IS_IN_FLASH, used for SPL environment. 591 592endif 593 594if TPL_ENV_SUPPORT 595 596config TPL_ENV_IS_NOWHERE 597 bool "TPL Environment is not stored" 598 default y if ENV_IS_NOWHERE 599 help 600 Similar to ENV_IS_NOWHERE, used for TPL environment. 601 602config TPL_ENV_IS_IN_MMC 603 bool "TPL Environment in an MMC device" 604 depends on !TPL_ENV_IS_NOWHERE 605 depends on ENV_IS_IN_MMC 606 default y 607 help 608 Similar to ENV_IS_IN_MMC, used for TPL environment. 609 610config TPL_ENV_IS_IN_FAT 611 bool "TPL Environment is in a FAT filesystem" 612 depends on !TPL_ENV_IS_NOWHERE 613 depends on ENV_IS_IN_FAT 614 default y 615 help 616 Similar to ENV_IS_IN_FAT, used for TPL environment. 617 618config TPL_ENV_IS_IN_EXT4 619 bool "TPL Environment is in a EXT4 filesystem" 620 depends on !TPL_ENV_IS_NOWHERE 621 depends on ENV_IS_IN_EXT4 622 default y 623 help 624 Similar to ENV_IS_IN_EXT4, used for TPL environment. 625 626config TPL_ENV_IS_IN_NAND 627 bool "TPL Environment in a NAND device" 628 depends on !TPL_ENV_IS_NOWHERE 629 depends on ENV_IS_IN_NAND 630 default y 631 help 632 Similar to ENV_IS_IN_NAND, used for TPL environment. 633 634config TPL_ENV_IS_IN_SPI_FLASH 635 bool "TPL Environment is in SPI flash" 636 depends on !TPL_ENV_IS_NOWHERE 637 depends on ENV_IS_IN_SPI_FLASH 638 default y 639 help 640 Similar to ENV_IS_IN_SPI_FLASH, used for TPL environment. 641 642config TPL_ENV_IS_IN_FLASH 643 bool "TPL Environment in flash memory" 644 depends on !TPL_ENV_IS_NOWHERE 645 depends on ENV_IS_IN_FLASH 646 default y 647 help 648 Similar to ENV_IS_IN_FLASH, used for TPL environment. 649 650endif 651 652endmenu 653