From: Jasper Orschulko <jas...@fancydomain.eu> The A/B update strategy of the env's has a gap in the first 2 calls of saveenv. The env's are stored twice on the first memory area if: gd->env_valid == ENV_INVALID.
u-boot=> saveenv Saving Environment to MMC... Writing to MMC(1)... OK u-boot=> saveenv Saving Environment to MMC... Writing to MMC(1)... OK <-- !!! u-boot=> saveenv Saving Environment to MMC... Writing to redundant MMC(1)... OK u-boot=> saveenv Saving Environment to MMC... Writing to MMC(1)... OK Signed-off-by: Michael Glembotzki <michael.glembot...@iris-sensing.com> Signed-off-by: Jasper Orschulko <jas...@fancydomain.eu> --- env/mmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env/mmc.c b/env/mmc.c index 7afb733e890..2bef30c973c 100644 --- a/env/mmc.c +++ b/env/mmc.c @@ -299,7 +299,7 @@ static int env_mmc_save(void) ret = 0; if (IS_ENABLED(CONFIG_SYS_REDUNDAND_ENVIRONMENT)) - gd->env_valid = gd->env_valid == ENV_REDUND ? ENV_VALID : ENV_REDUND; + gd->env_valid = gd->env_valid == ENV_VALID ? ENV_REDUND : ENV_VALID; fini: fini_mmc_for_env(mmc); -- 2.45.0