Print out CRC values for environment diff --git a/common/env_nand.c b/common/env_nand.c index 79e8033..9a9bac7 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -83,15 +83,22 @@ int env_init(void) #if defined(ENV_IS_EMBEDDED) || defined(CONFIG_NAND_ENV_DST) int crc1_ok = 0, crc2_ok = 0; env_t *tmp_env1; + uint32_t calc_crc; #ifdef CONFIG_ENV_OFFSET_REDUND env_t *tmp_env2; tmp_env2 = (env_t *)((ulong)env_ptr + CONFIG_ENV_SIZE); - crc2_ok = crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc; + calc_crc = crc32(0, tmp_env2->data, ENV_SIZE); + crc2_ok = calc_crc == tmp_env2->crc; + printf("env_relocate_spec: crc2_ok=%d saved crc=0x%x calculated crc=0x%x flags=%d\n", + crc2_ok,calc_crc,tmp_env2->crc,tmp_env2->flags); #endif tmp_env1 = env_ptr; - crc1_ok = crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc; + calc_crc = crc32(0, tmp_env1->data, ENV_SIZE); + crc1_ok = saved_crc == tmp_env1->crc; + printf("env_relocate_spec: crc1_ok=%d saved crc=0x%x calculated crc=0x%x flags=%d\n", + crc1_ok,calc_crc,tmp_env1->crc,tmp_env1->flags); if (!crc1_ok && !crc2_ok) { gd->env_addr = 0; @@ -333,6 +340,7 @@ void env_relocate_spec(void) #if !defined(ENV_IS_EMBEDDED) int crc1_ok = 0, crc2_ok = 0; env_t *ep, *tmp_env1, *tmp_env2; + uint32_t calc_crc; tmp_env1 = (env_t *)malloc(CONFIG_ENV_SIZE); tmp_env2 = (env_t *)malloc(CONFIG_ENV_SIZE); @@ -347,9 +355,14 @@ void env_relocate_spec(void) if (readenv(CONFIG_ENV_OFFSET_REDUND, (u_char *) tmp_env2)) puts("No Valid Redundant Environment Area found\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; + calc_crc = crc32(0, tmp_env1->data, ENV_SIZE); + crc1_ok = calc_crc == tmp_env1->crc; + printf("env_relocate_spec: crc1_ok=%d saved crc=0x%x calculated crc=0x%x flags=%d\n", + crc1_ok,calc_crc,tmp_env1->crc,tmp_env1->flags); + calc_crc = crc32(0, tmp_env2->data, ENV_SIZE); + crc2_ok = calc_crc == tmp_env2->crc; + printf("env_relocate_spec: crc2_ok=%d saved crc=0x%x calculated crc=0x%x flags=%d\n", + crc2_ok,calc_crc,tmp_env2->crc,tmp_env2->flags); if (!crc1_ok && !crc2_ok) { set_default_env("!bad CRC");