From: Guy Thouret <guy.thouret@wems.co.uk>
Date: Fri, 11 Mar 2016 13:31:39 +0000 (+0000)
Subject: env_eeprom invalidates gd->env_addr by setting it to an offset value
X-Git-Tag: v2025.01-rc5-pxa1908~9663
X-Git-Url: http://git.dujemihanovic.xyz/projects?a=commitdiff_plain;h=c00c29d8f70533b8b59e48be207027e58c735d2b;p=u-boot.git

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>
---

diff --git a/common/env_eeprom.c b/common/env_eeprom.c
index 72b13734f2..5f63a6cd4a 100644
--- a/common/env_eeprom.c
+++ b/common/env_eeprom.c
@@ -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 */