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
|
This value is also in units of bytes, but must also be aligned to
|
||||||
an MMC sector boundary.
|
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
|
config ENV_IS_IN_NAND
|
||||||
bool "Environment in a NAND device"
|
bool "Environment in a NAND device"
|
||||||
depends on !CHAIN_OF_TRUST
|
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 0 or the first boot partition, which is 1 or some other defined
|
||||||
partition.
|
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
|
config USE_DEFAULT_ENV_FILE
|
||||||
bool "Create default environment from file"
|
bool "Create default environment from file"
|
||||||
help
|
help
|
||||||
|
7
env/mmc.c
vendored
7
env/mmc.c
vendored
@ -26,6 +26,12 @@
|
|||||||
|
|
||||||
#define ENV_MMC_INVALID_OFFSET ((s64)-1)
|
#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 */
|
/* Default ENV offset when not defined in Device Tree */
|
||||||
#define ENV_MMC_OFFSET CONFIG_ENV_OFFSET
|
#define ENV_MMC_OFFSET CONFIG_ENV_OFFSET
|
||||||
|
|
||||||
@ -34,6 +40,7 @@
|
|||||||
#else
|
#else
|
||||||
#define ENV_MMC_OFFSET_REDUND ENV_MMC_INVALID_OFFSET
|
#define ENV_MMC_OFFSET_REDUND ENV_MMC_INVALID_OFFSET
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user