diff options
author | H. Nikolaus Schaller <hns@goldelico.com> | 2011-02-24 13:21:40 +0100 |
---|---|---|
committer | H. Nikolaus Schaller <hns@goldelico.com> | 2011-02-24 13:21:40 +0100 |
commit | 67fa659acb97323da480a4a545560d4d27c5796a (patch) | |
tree | 648ab5e4cbcdf17bcfe0e79346e264c4f0187662 /common/env_nand.c | |
parent | 872ca46bf7ec07388fc06e687875204663f6080e (diff) | |
parent | c7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8 (diff) | |
download | bootable_bootloader_goldelico_gta04-67fa659acb97323da480a4a545560d4d27c5796a.zip bootable_bootloader_goldelico_gta04-67fa659acb97323da480a4a545560d4d27c5796a.tar.gz bootable_bootloader_goldelico_gta04-67fa659acb97323da480a4a545560d4d27c5796a.tar.bz2 |
git pull denx master
Diffstat (limited to 'common/env_nand.c')
-rw-r--r-- | common/env_nand.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/common/env_nand.c b/common/env_nand.c index dddd7c1..f25a31c 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; @@ -199,13 +202,13 @@ int saveenv(void) return 1; res = (char *)&env_new.data; - len = hexport('\0', &res, ENV_SIZE); + len = hexport_r(&env_htab, '\0', &res, ENV_SIZE); if (len < 0) { error("Cannot export environment: errno = %d\n", errno); return 1; } env_new.crc = crc32(0, env_new.data, ENV_SIZE); - env_new.flags = ACTIVE_FLAG; + env_new.flags = ++env_flags; /* increase the serial */ if(gd->env_valid == 1) { puts("Erasing redundant NAND...\n"); @@ -256,7 +259,7 @@ int saveenv(void) return 1; res = (char *)&env_new.data; - len = hexport('\0', &res, ENV_SIZE); + len = hexport_r(&env_htab, '\0', &res, ENV_SIZE); if (len < 0) { error("Cannot export environment: errno = %d\n", errno); return 1; @@ -403,6 +406,7 @@ void env_relocate_spec(void) else ep = tmp_env2; + env_flags = ep->flags; env_import((char *)ep, 0); free(tmp_env1); |