diff options
author | Emmanuel Di Fede | 2023-06-14 12:05:28 +0200 |
---|---|---|
committer | Tom Rini | 2023-07-14 15:21:07 -0400 |
commit | 9e70676cf5281f0e37736ea42b59ef2e02907051 (patch) | |
tree | 2cf15417f1656c0bd2d48c42074b914ec5d6f4d4 /env | |
parent | b1d774bb8749151293a700173c79b9501ac72a2c (diff) |
env: mmc: statically set the environment partition name
The new opt-out setting, CONFIG_ENV_MMC_PARTITION, statically sets
the MMC environment partition name. Prior to this patch, the only way
to declare this partition name was by creating a
'u-boot,mmc-env-partition' parameter in the device-tree's /config node.
This setting provides additional flexibility, particularly in cases
where accessing the device-tree is not straightforward (e.g. QEMU).
If undeclared, the device-tree's setting will be used.
Signed-off-by: Emmanuel Di Fede <emmanuel.difede@cysec.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
Diffstat (limited to 'env')
-rw-r--r-- | env/Kconfig | 12 | ||||
-rw-r--r-- | env/mmc.c | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/env/Kconfig b/env/Kconfig index 7342397e169..13e32104b4c 100644 --- a/env/Kconfig +++ b/env/Kconfig @@ -662,6 +662,18 @@ config SYS_MMC_ENV_PART partition 0 or the first boot partition, which is 1 or some other defined partition. +config USE_ENV_MMC_PARTITION + bool "use the mmc environment partition name" + depends on ENV_IS_IN_MMC + +config ENV_MMC_PARTITION + string "mmc environment partition name" + depends on USE_ENV_MMC_PARTITION + help + MMC partition name used to save environment variables. + If this variable is unset, u-boot will try to get the env partition name + from the device-tree's /config node. + config ENV_MMC_USE_DT bool "Read partition name and offset in DT" depends on ENV_IS_IN_MMC && OF_CONTROL diff --git a/env/mmc.c b/env/mmc.c index 7a5836ad66c..cb14bbb58f1 100644 --- a/env/mmc.c +++ b/env/mmc.c @@ -114,8 +114,13 @@ static inline s64 mmc_offset(struct mmc *mmc, int copy) if (IS_ENABLED(CONFIG_SYS_MMC_ENV_PART)) hwpart = mmc_get_env_part(mmc); +#if defined(CONFIG_ENV_MMC_PARTITION) + str = CONFIG_ENV_MMC_PARTITION; +#else /* look for the partition in mmc CONFIG_SYS_MMC_ENV_DEV */ str = ofnode_conf_read_str(dt_prop.partition); +#endif + if (str) { /* try to place the environment at end of the partition */ err = mmc_offset_try_partition(str, copy, &val); |