diff --git a/common/env_flash.c b/common/env_flash.c index d9f8fcb1ef..e770ee6368 100644 --- a/common/env_flash.c +++ b/common/env_flash.c @@ -49,9 +49,7 @@ DECLARE_GLOBAL_DATA_PTR; char * env_name_spec = "Flash"; #ifdef ENV_IS_EMBEDDED - -extern uchar environment[]; -env_t *env_ptr = (env_t *)(&environment[0]); +env_t *env_ptr = &environment; static env_t *flash_addr = (env_t *)CONFIG_ENV_ADDR; diff --git a/common/env_mmc.c b/common/env_mmc.c index 78df808bbc..ef8186c2c7 100644 --- a/common/env_mmc.c +++ b/common/env_mmc.c @@ -35,8 +35,7 @@ char *env_name_spec = "MMC"; #ifdef ENV_IS_EMBEDDED -extern uchar environment[]; -env_t *env_ptr = (env_t *)(&environment[0]); +env_t *env_ptr = &environment; #else /* ! ENV_IS_EMBEDDED */ env_t *env_ptr = NULL; #endif /* ENV_IS_EMBEDDED */ diff --git a/common/env_nand.c b/common/env_nand.c index 1b12c68d68..65a867d500 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -59,8 +59,7 @@ char *env_name_spec = "NAND"; #if defined(ENV_IS_EMBEDDED) -extern uchar environment[]; -env_t *env_ptr = (env_t *)(&environment[0]); +env_t *env_ptr = &environment; #elif defined(CONFIG_NAND_ENV_DST) env_t *env_ptr = (env_t *)CONFIG_NAND_ENV_DST; #else /* ! ENV_IS_EMBEDDED */ diff --git a/common/env_onenand.c b/common/env_onenand.c index b7170e6c45..618c642f29 100644 --- a/common/env_onenand.c +++ b/common/env_onenand.c @@ -44,10 +44,6 @@ char *env_name_spec = "OneNAND"; #define ONENAND_MAX_ENV_SIZE 4096 #define ONENAND_ENV_SIZE(mtd) (ONENAND_MAX_ENV_SIZE - ENV_HEADER_SIZE) -#ifdef ENV_IS_EMBEDDED -extern uchar environment[]; -#endif /* ENV_IS_EMBEDDED */ - DECLARE_GLOBAL_DATA_PTR; uchar env_get_char_spec(int index) @@ -64,7 +60,7 @@ void env_relocate_spec(void) int rc; size_t retlen; #ifdef ENV_IS_EMBEDDED - char *buf = (char *)&environment[0]; + char *buf = (char *)&environment; #else loff_t env_addr = CONFIG_ENV_ADDR; char onenand_env[ONENAND_MAX_ENV_SIZE]; diff --git a/include/environment.h b/include/environment.h index 20775da701..951803f1b6 100644 --- a/include/environment.h +++ b/include/environment.h @@ -154,6 +154,10 @@ typedef struct environment_s { unsigned char data[ENV_SIZE]; /* Environment data */ } env_t; +#ifdef ENV_IS_EMBEDDED +extern env_t environment; +#endif /* ENV_IS_EMBEDDED */ + extern const unsigned char default_environment[]; #ifndef DO_DEPS_ONLY diff --git a/tools/envcrc.c b/tools/envcrc.c index feebbabea0..111d9f6289 100644 --- a/tools/envcrc.c +++ b/tools/envcrc.c @@ -61,6 +61,7 @@ #endif /* CONFIG_ENV_IS_IN_FLASH */ #if defined(ENV_IS_EMBEDDED) && !defined(CONFIG_BUILD_ENVCRC) +# include # define CONFIG_BUILD_ENVCRC 1 #endif @@ -77,7 +78,7 @@ extern uint32_t crc32 (uint32_t, const unsigned char *, unsigned int); #ifdef CONFIG_BUILD_ENVCRC extern unsigned int env_size; -extern unsigned char environment; +extern env_t environment; #endif /* CONFIG_BUILD_ENVCRC */ int main (int argc, char **argv) @@ -85,7 +86,7 @@ int main (int argc, char **argv) #ifdef CONFIG_BUILD_ENVCRC unsigned char pad = 0x00; uint32_t crc; - unsigned char *envptr = &environment, + unsigned char *envptr = (unsigned char *)&environment, *dataptr = envptr + ENV_HEADER_SIZE; unsigned int datasize = ENV_SIZE; unsigned int eoe;