Make flash protection work, when the environment is in EEPROM
authorEric Schumann <E.Schumann@phytec.de>
Sat, 21 Mar 2009 13:59:34 +0000 (09:59 -0400)
committerStefan Roese <sr@denx.de>
Mon, 23 Mar 2009 08:50:45 +0000 (09:50 +0100)
On the pcm030 the environment is located in the onboard EEPROM. But we want
to handle flash sector protection in a safe manner. So we must read the
unlock environment variable from EEPROM instead from flash.

This patch is required as long the evironment is saved into the EEPROM.

Stefan: Additional change as suggested by Wolfgang, use bigger char array
(instead of 4).

Signed-off-by: Eric Schumann <E.Schumann@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Wolfgang Denk <wd@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
drivers/mtd/cfi_flash.c

index 391d169..631b969 100644 (file)
@@ -2009,7 +2009,9 @@ unsigned long flash_init (void)
 #endif
 
 #ifdef CONFIG_SYS_FLASH_PROTECTION
-       char *s = getenv("unlock");
+       /* read environment from EEPROM */
+       char s[64];
+       getenv_r ("unlock", s, sizeof(s));
 #endif
 
 #define BANK_BASE(i)   (((phys_addr_t [CFI_MAX_FLASH_BANKS])CONFIG_SYS_FLASH_BANKS_LIST)[i])