env_eeprom invalidates gd->env_addr by setting it to an offset value
Patch to fix boot hang when using env on i2c eeprom caused by invalid gd->env_addr Signed-off-by: Guy Thouret <guy.thouret@wems.co.uk> Cc: Heiko Schocher <hs@denx.de>
This commit is contained in:
parent
d3bafe32ca
commit
c00c29d8f7
|
@ -145,11 +145,6 @@ void env_relocate_spec(void)
|
||||||
gd->env_valid = 1;
|
gd->env_valid = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gd->env_valid == 2)
|
|
||||||
gd->env_addr = off_env[1] + offsetof(env_t, data);
|
|
||||||
else if (gd->env_valid == 1)
|
|
||||||
gd->env_addr = off_env[0] + offsetof(env_t, data);
|
|
||||||
|
|
||||||
#else /* CONFIG_ENV_OFFSET_REDUND */
|
#else /* CONFIG_ENV_OFFSET_REDUND */
|
||||||
ulong crc, len, new;
|
ulong crc, len, new;
|
||||||
uchar rdbuf[64];
|
uchar rdbuf[64];
|
||||||
|
@ -175,10 +170,8 @@ void env_relocate_spec(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (crc == new) {
|
if (crc == new) {
|
||||||
gd->env_addr = offsetof(env_t, data);
|
|
||||||
gd->env_valid = 1;
|
gd->env_valid = 1;
|
||||||
} else {
|
} else {
|
||||||
gd->env_addr = 0;
|
|
||||||
gd->env_valid = 0;
|
gd->env_valid = 0;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_ENV_OFFSET_REDUND */
|
#endif /* CONFIG_ENV_OFFSET_REDUND */
|
||||||
|
|
Loading…
Reference in New Issue