aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/env_nand.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/common/env_nand.c b/common/env_nand.c
index a4480cb22..980425a8e 100644
--- a/common/env_nand.c
+++ b/common/env_nand.c
@@ -181,7 +181,10 @@ int writeenv(size_t offset, u_char *buf)
return 0;
}
+
#ifdef CONFIG_ENV_OFFSET_REDUND
+static unsigned char env_flags;
+
int saveenv(void)
{
env_t env_new;
@@ -205,7 +208,7 @@ int saveenv(void)
return 1;
}
env_new.crc = crc32(0, env_new.data, ENV_SIZE);
- ++env_new.flags; /* increase the serial */
+ env_new.flags = ++env_flags; /* increase the serial */
if(gd->env_valid == 1) {
puts("Erasing redundant NAND...\n");
@@ -399,6 +402,7 @@ void env_relocate_spec(void)
else
ep = tmp_env2;
+ env_flags = ep->flags;
env_import((char *)ep, 0);
free(tmp_env1);