|
@@ -331,6 +331,7 @@ int get_nand_env_oob(nand_info_t *nand, unsigned long *result)
|
|
void env_relocate_spec(void)
|
|
void env_relocate_spec(void)
|
|
{
|
|
{
|
|
#if !defined(ENV_IS_EMBEDDED)
|
|
#if !defined(ENV_IS_EMBEDDED)
|
|
|
|
+ int read1_fail = 0, read2_fail = 0;
|
|
int crc1_ok = 0, crc2_ok = 0;
|
|
int crc1_ok = 0, crc2_ok = 0;
|
|
env_t *ep, *tmp_env1, *tmp_env2;
|
|
env_t *ep, *tmp_env1, *tmp_env2;
|
|
|
|
|
|
@@ -342,11 +343,14 @@ void env_relocate_spec(void)
|
|
goto done;
|
|
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;
|
|
crc1_ok = crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc;
|
|
crc2_ok = crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc;
|
|
crc2_ok = crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc;
|