summaryrefslogtreecommitdiff
path: root/env/nand.c
diff options
context:
space:
mode:
Diffstat (limited to 'env/nand.c')
-rw-r--r--env/nand.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/env/nand.c b/env/nand.c
index 8058b55c50..3e8df39c26 100644
--- a/env/nand.c
+++ b/env/nand.c
@@ -320,7 +320,7 @@ static int env_nand_load(void)
#if defined(ENV_IS_EMBEDDED)
return 0;
#else
- int read1_fail = 0, read2_fail = 0;
+ int read1_fail, read2_fail;
env_t *tmp_env1, *tmp_env2;
int ret = 0;
@@ -336,24 +336,8 @@ static int env_nand_load(void)
read1_fail = readenv(CONFIG_ENV_OFFSET, (u_char *) tmp_env1);
read2_fail = readenv(CONFIG_ENV_OFFSET_REDUND, (u_char *) tmp_env2);
- if (read1_fail && read2_fail)
- puts("*** Error - No Valid Environment Area found\n");
- else if (read1_fail || read2_fail)
- puts("*** Warning - some problems detected "
- "reading environment; recovered successfully\n");
-
- if (read1_fail && read2_fail) {
- set_default_env("!bad env area");
- goto done;
- } else if (!read1_fail && read2_fail) {
- gd->env_valid = ENV_VALID;
- env_import((char *)tmp_env1, 1);
- } else if (read1_fail && !read2_fail) {
- gd->env_valid = ENV_REDUND;
- env_import((char *)tmp_env2, 1);
- } else {
- env_import_redund((char *)tmp_env1, (char *)tmp_env2);
- }
+ ret = env_import_redund((char *)tmp_env1, read1_fail, (char *)tmp_env2,
+ read2_fail);
done:
free(tmp_env1);