mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 00:48:52 +09:00
![Tom Rini](/assets/img/avatar_default.png)
The underlying implementation for ENV_AES has security complications and is not recommended for use. Please see CVE-2017-3225 and CVE-2017-3226 for more details. Mark this as deprecated now and delete this in the medium term if no one comes forward to re-work the support. Signed-off-by: Tom Rini <trini@konsulko.com>
454 lines
15 KiB
Plaintext
454 lines
15 KiB
Plaintext
menu "Environment"
|
|
|
|
choice
|
|
prompt "Select the location of the environment"
|
|
default ENV_IS_IN_MMC if ARCH_SUNXI
|
|
default ENV_IS_IN_MMC if ARCH_UNIPHIER
|
|
default ENV_IS_IN_MMC if ARCH_EXYNOS4
|
|
default ENV_IS_IN_MMC if MX6SX || MX7D
|
|
default ENV_IS_IN_MMC if TEGRA30 || TEGRA124
|
|
default ENV_IS_IN_MMC if TEGRA_ARMV8_COMMON
|
|
default ENV_IS_IN_FLASH if ARCH_CINTEGRATOR
|
|
default ENV_IS_IN_FLASH if ARCH_INTEGRATOR_CP
|
|
default ENV_IS_IN_FLASH if M548x || M547x || M5282 || MCF547x_8x
|
|
default ENV_IS_IN_FLASH if MCF532x || MCF52x2
|
|
default ENV_IS_IN_FLASH if MPC86xx || MPC83xx
|
|
default ENV_IS_IN_FLASH if ARCH_MPC8572 || ARCH_MPC8548 || ARCH_MPC8641
|
|
default ENV_IS_IN_FLASH if SH && !CPU_SH4
|
|
default ENV_IS_IN_SPI_FLASH if ARMADA_XP
|
|
default ENV_IS_IN_SPI_FLASH if INTEL_BAYTRAIL
|
|
default ENV_IS_IN_SPI_FLASH if INTEL_BROADWELL
|
|
default ENV_IS_IN_SPI_FLASH if NORTHBRIDGE_INTEL_IVYBRIDGE
|
|
default ENV_IS_IN_SPI_FLASH if INTEL_QUARK
|
|
default ENV_IS_IN_SPI_FLASH if INTEL_QUEENSBAY
|
|
default ENV_IS_IN_FAT if ARCH_BCM283X
|
|
default ENV_IS_IN_FAT if MMC_OMAP_HS && TI_COMMON_CMD_OPTIONS
|
|
default ENV_IS_NOWHERE
|
|
help
|
|
At present the environment can be stored in only one place. Use this
|
|
option to select the location. This is either a device (where the
|
|
environemnt information is simply written to a fixed location or
|
|
partition on the device) or a filesystem (where the environment
|
|
information is written to a file).
|
|
|
|
config ENV_IS_NOWHERE
|
|
bool "Environment is not 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
|
|
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.
|
|
|
|
config ENV_IS_IN_DATAFLASH
|
|
bool "Environment in dataflash"
|
|
depends on !CHAIN_OF_TRUST
|
|
help
|
|
Define this if you have a DataFlash memory device which you
|
|
want to use for the environment.
|
|
|
|
- CONFIG_ENV_OFFSET:
|
|
- CONFIG_ENV_ADDR:
|
|
- CONFIG_ENV_SIZE:
|
|
|
|
These three #defines specify the offset and size of the
|
|
environment area within the total memory of your DataFlash placed
|
|
at the specified address.
|
|
|
|
config ENV_IS_IN_EEPROM
|
|
bool "Environment in EEPROM"
|
|
depends on !CHAIN_OF_TRUST
|
|
help
|
|
Use this if you have an EEPROM or similar serial access
|
|
device and a driver for it.
|
|
|
|
- CONFIG_ENV_OFFSET:
|
|
- CONFIG_ENV_SIZE:
|
|
|
|
These two #defines specify the offset and size of the
|
|
environment area within the total memory of your EEPROM.
|
|
|
|
Note that we consider the length of the address field to
|
|
still be one byte because the extra address bits are hidden
|
|
in the chip address.
|
|
|
|
- CONFIG_ENV_EEPROM_IS_ON_I2C
|
|
define this, if you have I2C and SPI activated, and your
|
|
EEPROM, which holds the environment, is on the I2C bus.
|
|
|
|
- CONFIG_I2C_ENV_EEPROM_BUS
|
|
if you have an Environment on an EEPROM reached over
|
|
I2C muxes, you can define here, how to reach this
|
|
EEPROM. For example:
|
|
|
|
#define CONFIG_I2C_ENV_EEPROM_BUS 1
|
|
|
|
EEPROM which holds the environment, is reached over
|
|
a pca9547 i2c mux with address 0x70, channel 3.
|
|
|
|
config ENV_IS_IN_FAT
|
|
bool "Environment is in a FAT filesystem"
|
|
depends on !CHAIN_OF_TRUST
|
|
select FAT_WRITE
|
|
help
|
|
Define this if you want to use the FAT file system for the environment.
|
|
|
|
- CONFIG_FAT_WRITE:
|
|
This must be enabled. Otherwise it cannot save the environment file.
|
|
|
|
config ENV_IS_IN_FLASH
|
|
bool "Environment in flash memory"
|
|
depends on !CHAIN_OF_TRUST
|
|
help
|
|
Define this if you have a flash device which you want to use for the
|
|
environment.
|
|
|
|
a) The environment occupies one whole flash sector, which is
|
|
"embedded" in the text segment with the U-Boot code. This
|
|
happens usually with "bottom boot sector" or "top boot
|
|
sector" type flash chips, which have several smaller
|
|
sectors at the start or the end. For instance, such a
|
|
layout can have sector sizes of 8, 2x4, 16, Nx32 kB. In
|
|
such a case you would place the environment in one of the
|
|
4 kB sectors - with U-Boot code before and after it. With
|
|
"top boot sector" type flash chips, you would put the
|
|
environment in one of the last sectors, leaving a gap
|
|
between U-Boot and the environment.
|
|
|
|
CONFIG_ENV_OFFSET:
|
|
|
|
Offset of environment data (variable area) to the
|
|
beginning of flash memory; for instance, with bottom boot
|
|
type flash chips the second sector can be used: the offset
|
|
for this sector is given here.
|
|
|
|
CONFIG_ENV_OFFSET is used relative to CONFIG_SYS_FLASH_BASE.
|
|
|
|
CONFIG_ENV_ADDR:
|
|
|
|
This is just another way to specify the start address of
|
|
the flash sector containing the environment (instead of
|
|
CONFIG_ENV_OFFSET).
|
|
|
|
CONFIG_ENV_SECT_SIZE:
|
|
|
|
Size of the sector containing the environment.
|
|
|
|
|
|
b) Sometimes flash chips have few, equal sized, BIG sectors.
|
|
In such a case you don't want to spend a whole sector for
|
|
the environment.
|
|
|
|
CONFIG_ENV_SIZE:
|
|
|
|
If you use this in combination with CONFIG_ENV_IS_IN_FLASH
|
|
and CONFIG_ENV_SECT_SIZE, you can specify to use only a part
|
|
of this flash sector for the environment. This saves
|
|
memory for the RAM copy of the environment.
|
|
|
|
It may also save flash memory if you decide to use this
|
|
when your environment is "embedded" within U-Boot code,
|
|
since then the remainder of the flash sector could be used
|
|
for U-Boot code. It should be pointed out that this is
|
|
STRONGLY DISCOURAGED from a robustness point of view:
|
|
updating the environment in flash makes it always
|
|
necessary to erase the WHOLE sector. If something goes
|
|
wrong before the contents has been restored from a copy in
|
|
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
|
|
a valid backup copy in case there is a power failure during
|
|
a "saveenv" operation.
|
|
|
|
BE CAREFUL! Any changes to the flash layout, and some changes to the
|
|
source code will make it necessary to adapt <board>/u-boot.lds*
|
|
accordingly!
|
|
|
|
config ENV_IS_IN_MMC
|
|
bool "Environment in an MMC device"
|
|
depends on !CHAIN_OF_TRUST
|
|
help
|
|
Define this if you have an MMC device which you want to use for the
|
|
environment.
|
|
|
|
CONFIG_SYS_MMC_ENV_DEV:
|
|
|
|
Specifies which MMC device the environment is stored in.
|
|
|
|
CONFIG_SYS_MMC_ENV_PART (optional):
|
|
|
|
Specifies which MMC partition the environment is stored in. If not
|
|
set, defaults to partition 0, the user area. Common values might be
|
|
1 (first MMC boot partition), 2 (second MMC boot partition).
|
|
|
|
CONFIG_ENV_OFFSET:
|
|
CONFIG_ENV_SIZE:
|
|
|
|
These two #defines specify the offset and size of the environment
|
|
area within the specified MMC device.
|
|
|
|
If offset is positive (the usual case), it is treated as relative to
|
|
the start of the MMC partition. If offset is negative, it is treated
|
|
as relative to the end of the MMC partition. This can be useful if
|
|
your board may be fitted with different MMC devices, which have
|
|
different sizes for the MMC partitions, and you always want the
|
|
environment placed at the very end of the partition, to leave the
|
|
maximum possible space before it, to store other data.
|
|
|
|
These two values are in units of bytes, but must be aligned to an
|
|
MMC sector boundary.
|
|
|
|
CONFIG_ENV_OFFSET_REDUND (optional):
|
|
|
|
Specifies a second storage area, of CONFIG_ENV_SIZE size, used to
|
|
hold a redundant copy of the environment data. This provides a
|
|
valid backup copy in case the other copy is corrupted, e.g. due
|
|
to a power failure during a "saveenv" operation.
|
|
|
|
This value may also be positive or negative; this is handled in the
|
|
same way as CONFIG_ENV_OFFSET.
|
|
|
|
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
|
|
help
|
|
Define this if you have a NAND device which you want to use for the
|
|
environment.
|
|
|
|
- CONFIG_ENV_OFFSET:
|
|
- CONFIG_ENV_SIZE:
|
|
|
|
These two #defines specify the offset and size of the environment
|
|
area within the first NAND device. CONFIG_ENV_OFFSET must be
|
|
aligned to an erase block boundary.
|
|
|
|
- CONFIG_ENV_OFFSET_REDUND (optional):
|
|
|
|
This setting describes a second storage area of CONFIG_ENV_SIZE
|
|
size used 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_OFFSET_REDUND must be
|
|
aligned to an erase block boundary.
|
|
|
|
- CONFIG_ENV_RANGE (optional):
|
|
|
|
Specifies the length of the region in which the environment
|
|
can be written. This should be a multiple of the NAND device's
|
|
block size. Specifying a range with more erase blocks than
|
|
are needed to hold CONFIG_ENV_SIZE allows bad blocks within
|
|
the range to be avoided.
|
|
|
|
- CONFIG_ENV_OFFSET_OOB (optional):
|
|
|
|
Enables support for dynamically retrieving the offset of the
|
|
environment from block zero's out-of-band data. The
|
|
"nand env.oob" command can be used to record this offset.
|
|
Currently, CONFIG_ENV_OFFSET_REDUND is not supported when
|
|
using CONFIG_ENV_OFFSET_OOB.
|
|
|
|
config ENV_IS_IN_NVRAM
|
|
bool "Environment in a non-volatile RAM"
|
|
depends on !CHAIN_OF_TRUST
|
|
help
|
|
Define this if you have some non-volatile memory device
|
|
(NVRAM, battery buffered SRAM) which you want to use for the
|
|
environment.
|
|
|
|
- CONFIG_ENV_ADDR:
|
|
- CONFIG_ENV_SIZE:
|
|
|
|
These two #defines are used to determine the memory area you
|
|
want to use for environment. It is assumed that this memory
|
|
can just be read and written to, without any special
|
|
provision.
|
|
|
|
config ENV_IS_IN_ONENAND
|
|
bool "Environment is in OneNAND"
|
|
depends on !CHAIN_OF_TRUST
|
|
help
|
|
Define this if you want to put your local device's environment in
|
|
OneNAND.
|
|
|
|
- CONFIG_ENV_ADDR:
|
|
- CONFIG_ENV_SIZE:
|
|
|
|
These two #defines are used to determine the device range you
|
|
want to use for environment. It is assumed that this memory
|
|
can just be read and written to, without any special
|
|
provision.
|
|
|
|
config ENV_IS_IN_REMOTE
|
|
bool "Environment is in remove memory space"
|
|
depends on !CHAIN_OF_TRUST
|
|
help
|
|
Define this if you have a remote memory space which you
|
|
want to use for the local device's environment.
|
|
|
|
- CONFIG_ENV_ADDR:
|
|
- CONFIG_ENV_SIZE:
|
|
|
|
These two #defines specify the address and size of the
|
|
environment area within the remote memory space. The
|
|
local device can get the environment from remote memory
|
|
space by SRIO or PCIE links.
|
|
|
|
config ENV_IS_IN_SPI_FLASH
|
|
bool "Environment is in SPI flash"
|
|
depends on !CHAIN_OF_TRUST
|
|
help
|
|
Define this if you have a SPI Flash memory device which you
|
|
want to use for the environment.
|
|
|
|
- CONFIG_ENV_OFFSET:
|
|
- CONFIG_ENV_SIZE:
|
|
|
|
These two #defines specify the offset and size of the
|
|
environment area within the SPI Flash. CONFIG_ENV_OFFSET must be
|
|
aligned to an erase sector boundary.
|
|
|
|
- CONFIG_ENV_SECT_SIZE:
|
|
|
|
Define the SPI flash's sector size.
|
|
|
|
- CONFIG_ENV_OFFSET_REDUND (optional):
|
|
|
|
This setting describes a second storage area of CONFIG_ENV_SIZE
|
|
size used 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_OFFSET_REDUND must be
|
|
aligned to an erase sector boundary.
|
|
|
|
- CONFIG_ENV_SPI_BUS (optional):
|
|
- CONFIG_ENV_SPI_CS (optional):
|
|
|
|
Define the SPI bus and chip select. If not defined they will be 0.
|
|
|
|
- CONFIG_ENV_SPI_MAX_HZ (optional):
|
|
|
|
Define the SPI max work clock. If not defined then use 1MHz.
|
|
|
|
- CONFIG_ENV_SPI_MODE (optional):
|
|
|
|
Define the SPI work mode. If not defined then use SPI_MODE_3.
|
|
|
|
config ENV_IS_IN_UBI
|
|
bool "Environment in a UBI volume"
|
|
depends on !CHAIN_OF_TRUST
|
|
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
|
|
accesses, which is important on NAND.
|
|
|
|
- CONFIG_ENV_UBI_PART:
|
|
|
|
Define this to a string that is the mtd partition containing the UBI.
|
|
|
|
- CONFIG_ENV_UBI_VOLUME:
|
|
|
|
Define this to the name of the volume that you want to store the
|
|
environment in.
|
|
|
|
- CONFIG_ENV_UBI_VOLUME_REDUND:
|
|
|
|
Define this to the name of another volume to store a second copy of
|
|
the environment in. This will enable redundant environments in UBI.
|
|
It is assumed that both volumes are in the same MTD partition.
|
|
|
|
- CONFIG_UBI_SILENCE_MSG
|
|
- CONFIG_UBIFS_SILENCE_MSG
|
|
|
|
You will probably want to define these to avoid a really noisy system
|
|
when storing the env in UBI.
|
|
|
|
endchoice
|
|
|
|
config ENV_AES
|
|
bool "AES-128 encryption for stored environment (DEPRECATED)"
|
|
help
|
|
Enable this to have the on-device stored environment be encrypted
|
|
with AES-128. The implementation here however has security
|
|
complications and is not recommended for use. Please see
|
|
CVE-2017-3225 and CVE-2017-3226 for more details.
|
|
|
|
config ENV_FAT_INTERFACE
|
|
string "Name of the block device for the environment"
|
|
depends on ENV_IS_IN_FAT
|
|
default "mmc" if TI_COMMON_CMD_OPTIONS || ARCH_ZYNQMP || ARCH_AT91
|
|
help
|
|
Define this to a string that is the name of the block device.
|
|
|
|
config ENV_FAT_DEVICE_AND_PART
|
|
string "Device and partition for where to store the environemt in FAT"
|
|
depends on ENV_IS_IN_FAT
|
|
default "0:1" if TI_COMMON_CMD_OPTIONS
|
|
default "0:auto" if ARCH_ZYNQMP
|
|
default "0" if ARCH_AT91
|
|
help
|
|
Define this to a string to specify the partition of the device. It can
|
|
be as following:
|
|
|
|
"D:P", "D:0", "D", "D:" or "D:auto" (D, P are integers. And P >= 1)
|
|
- "D:P": device D partition P. Error occurs if device D has no
|
|
partition table.
|
|
- "D:0": device D.
|
|
- "D" or "D:": device D partition 1 if device D has partition
|
|
table, or the whole device D if has no partition
|
|
table.
|
|
- "D:auto": first partition in device D with bootable flag set.
|
|
If none, first valid partition in device D. If no
|
|
partition table then means device D.
|
|
|
|
config ENV_FAT_FILE
|
|
string "Name of the FAT file to use for the environemnt"
|
|
depends on ENV_IS_IN_FAT
|
|
default "uboot.env"
|
|
help
|
|
It's a string of the FAT file name. This file use to store the
|
|
environment.
|
|
|
|
if ARCH_SUNXI
|
|
|
|
config ENV_OFFSET
|
|
hex "Environment Offset"
|
|
depends on !ENV_IS_IN_UBI
|
|
depends on !ENV_IS_NOWHERE
|
|
default 0x88000 if ARCH_SUNXI
|
|
help
|
|
Offset from the start of the device (or partition)
|
|
|
|
config ENV_SIZE
|
|
hex "Environment Size"
|
|
depends on !ENV_IS_NOWHERE
|
|
default 0x20000 if ARCH_SUNXI
|
|
help
|
|
Size of the environment storage area
|
|
|
|
config ENV_UBI_PART
|
|
string "UBI partition name"
|
|
depends on ENV_IS_IN_UBI
|
|
help
|
|
MTD partition containing the UBI device
|
|
|
|
config ENV_UBI_VOLUME
|
|
string "UBI volume name"
|
|
depends on ENV_IS_IN_UBI
|
|
help
|
|
Name of the volume that you want to store the environment in.
|
|
|
|
endif
|
|
|
|
endmenu
|