env: mmc: add CONFIG_ENV_MMC_USE_DT
Add a new config CONFIG_ENV_MMC_USE_DT to force configuration of the U-Boot environment offset with device tree config node. This patch avoids issues when several CONFIG_ENV_IS_IN_XXX are activated, the defconfig file uses the same value for CONFIG_ENV_OFFSET or CONFIG_ENV_OFFSET_REDUND for the several ENV backends (SPI_FLASH, EEPROM NAND, SATA, MMC). After this patch a bad offset value is not possible when the selected partition in device tree is not found. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
This commit is contained in:
parent
8566050e24
commit
d2103e20a9
16
env/Kconfig
vendored
16
env/Kconfig
vendored
@ -244,6 +244,13 @@ config ENV_IS_IN_MMC
|
||||
This value is also in units of bytes, but must also be aligned to
|
||||
an MMC sector boundary.
|
||||
|
||||
CONFIG_ENV_MMC_USE_DT (optional):
|
||||
|
||||
These define forces the configuration by the config node in device
|
||||
tree with partition name: "u-boot,mmc-env-partition" or with
|
||||
offset: "u-boot,mmc-env-offset", "u-boot,mmc-env-offset-redundant".
|
||||
CONFIG_ENV_OFFSET and CONFIG_ENV_OFFSET_REDUND are not used.
|
||||
|
||||
config ENV_IS_IN_NAND
|
||||
bool "Environment in a NAND device"
|
||||
depends on !CHAIN_OF_TRUST
|
||||
@ -652,6 +659,15 @@ config SYS_MMC_ENV_PART
|
||||
partition 0 or the first boot partition, which is 1 or some other defined
|
||||
partition.
|
||||
|
||||
config ENV_MMC_USE_DT
|
||||
bool "Read partition name and offset in DT"
|
||||
depends on ENV_IS_IN_MMC && OF_CONTROL
|
||||
help
|
||||
Only use the device tree to get the environment location in MMC
|
||||
device, with partition name or with offset.
|
||||
The 2 defines CONFIG_ENV_OFFSET, CONFIG_ENV_OFFSET_REDUND
|
||||
are not used as fallback.
|
||||
|
||||
config USE_DEFAULT_ENV_FILE
|
||||
bool "Create default environment from file"
|
||||
help
|
||||
|
7
env/mmc.c
vendored
7
env/mmc.c
vendored
@ -26,6 +26,12 @@
|
||||
|
||||
#define ENV_MMC_INVALID_OFFSET ((s64)-1)
|
||||
|
||||
#if defined(CONFIG_ENV_MMC_USE_DT)
|
||||
/* ENV offset is invalid when not defined in Device Tree */
|
||||
#define ENV_MMC_OFFSET ENV_MMC_INVALID_OFFSET
|
||||
#define ENV_MMC_OFFSET_REDUND ENV_MMC_INVALID_OFFSET
|
||||
|
||||
#else
|
||||
/* Default ENV offset when not defined in Device Tree */
|
||||
#define ENV_MMC_OFFSET CONFIG_ENV_OFFSET
|
||||
|
||||
@ -34,6 +40,7 @@
|
||||
#else
|
||||
#define ENV_MMC_OFFSET_REDUND ENV_MMC_INVALID_OFFSET
|
||||
#endif
|
||||
#endif
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user