From 1e8547fb4eaa964a27fbdfe5a87b4a9d4c28b1b7 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Sun, 10 Apr 2022 06:46:52 +0200 Subject: [PATCH] Revert "env: Load env when ENV_IS_NOWHERE is only location selected" This reverts commit 50292199aa5c8b1b073c93e4b349f52040d2abdf. This commit broke environment on literally every board I have access to, with this revert in place, environment works as it should again. The problem I observe with this patch is that saved environment in either SPI NOR or eMMC is never used, the system always falls back to default environment. The 'saveenv' command does succeed, but then after reset, the default env is again used. Furthermore, the commit introduced duplicate code in env_init(), this: " if (!prio) { gd->env_addr = (ulong)&default_environment[0]; gd->env_valid = ENV_INVALID; return 0; } if (ret == -ENOENT) { gd->env_addr = (ulong)&default_environment[0]; gd->env_valid = ENV_INVALID; return 0; } " Furthermore, the commit is missing DCO SoB line. Also note that upstream does not support UltraZed EG board, so this might have been a patch pulled from downstream which did depend on some other downstream behavior. Signed-off-by: Marek Vasut Cc: Felix.Vietmeyer@jila.colorado.edu Cc: Tom Rini --- env/env.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/env/env.c b/env/env.c index 7168cb9d31..e4dfb92e15 100644 --- a/env/env.c +++ b/env/env.c @@ -322,18 +322,17 @@ int env_init(void) debug("%s: Environment %s init done (ret=%d)\n", __func__, drv->name, ret); - } - - if (!prio) { - gd->env_addr = (ulong)&default_environment[0]; - gd->env_valid = ENV_INVALID; - return 0; + if (gd->env_valid == ENV_INVALID) + ret = -ENOENT; } + if (!prio) + return -ENODEV; + if (ret == -ENOENT) { gd->env_addr = (ulong)&default_environment[0]; - gd->env_valid = ENV_INVALID; + gd->env_valid = ENV_VALID; return 0; } -- 2.39.5