env_nand.c: clarify log messages when env reading fails
authorPhil Sutter <phil.sutter@viprinet.com>
Thu, 21 Feb 2013 17:21:55 +0000 (18:21 +0100)
committerScott Wood <scottwood@freescale.com>
Sat, 23 Feb 2013 01:34:53 +0000 (19:34 -0600)
The single message is misleading, since there is no equivalent success
note when reading the other copy succeeds. Instead, warn if one of the
redundant copies could not be loaded and emphasise on the error when
reading both fails.

Signed-off-by: Phil Sutter <phil.sutter@viprinet.com>
common/env_nand.c

index 22e72a20b07b74ce8552a31e2d02b4b619d9fe6e..382e8aec5e2554627801b7b93188538d9c38ecef 100644 (file)
@@ -331,6 +331,7 @@ int get_nand_env_oob(nand_info_t *nand, unsigned long *result)
 void env_relocate_spec(void)
 {
 #if !defined(ENV_IS_EMBEDDED)
+       int read1_fail = 0, read2_fail = 0;
        int crc1_ok = 0, crc2_ok = 0;
        env_t *ep, *tmp_env1, *tmp_env2;
 
@@ -342,11 +343,14 @@ void env_relocate_spec(void)
                goto done;
        }
 
-       if (readenv(CONFIG_ENV_OFFSET, (u_char *) tmp_env1))
-               puts("No Valid Environment Area found\n");
+       read1_fail = readenv(CONFIG_ENV_OFFSET, (u_char *) tmp_env1);
+       read2_fail = readenv(CONFIG_ENV_OFFSET_REDUND, (u_char *) tmp_env2);
 
-       if (readenv(CONFIG_ENV_OFFSET_REDUND, (u_char *) tmp_env2))
-               puts("No Valid Redundant Environment Area found\n");
+       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");
 
        crc1_ok = crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc;
        crc2_ok = crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc;