env_eeprom invalidates gd->env_addr by setting it to an offset value
authorGuy Thouret <guy.thouret@wems.co.uk>
Fri, 11 Mar 2016 13:31:39 +0000 (13:31 +0000)
committerTom Rini <trini@konsulko.com>
Mon, 11 Apr 2016 16:44:37 +0000 (12:44 -0400)
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>
common/env_eeprom.c

index 72b13734f287efb7ff5db24db617a09a1d2f5814..5f63a6cd4a98d71f9b10a924da02000e87667ed1 100644 (file)
@@ -145,11 +145,6 @@ void env_relocate_spec(void)
                        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 */
        ulong crc, len, new;
        uchar rdbuf[64];
@@ -175,10 +170,8 @@ void env_relocate_spec(void)
        }
 
        if (crc == new) {
-               gd->env_addr    = offsetof(env_t, data);
                gd->env_valid   = 1;
        } else {
-               gd->env_addr    = 0;
                gd->env_valid   = 0;
        }
 #endif /* CONFIG_ENV_OFFSET_REDUND */