]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/env_nand.c
"env grep" - add options to grep in name, value, or both.
[karo-tx-uboot.git] / common / env_nand.c
index 382e8aec5e2554627801b7b93188538d9c38ecef..b745822be781fe3e4f14c1682032a2448e4be4f7 100644 (file)
@@ -281,7 +281,8 @@ int readenv(size_t offset, u_char *buf)
                } else {
                        char_ptr = &buf[amount_loaded];
                        if (nand_read_skip_bad(&nand_info[0], offset,
-                                              &len, char_ptr))
+                                              &len, NULL,
+                                              nand_info[0].size, char_ptr))
                                return 1;
 
                        offset += blocksize;
@@ -352,8 +353,10 @@ void env_relocate_spec(void)
                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;
+       crc1_ok = !read1_fail &&
+               (crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc);
+       crc2_ok = !read2_fail &&
+               (crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc);
 
        if (!crc1_ok && !crc2_ok) {
                set_default_env("!bad CRC");