X-Git-Url: https://git.kernelconcepts.de/?a=blobdiff_plain;f=common%2Fenv_nand.c;h=4a97b6ca651c53b17f1f61d2e41edfa0a755aeef;hb=4d2d2ae559c14dee59f1b4db29181945eb98f734;hp=749605fe3fa89ab798a0ebde92f1f90e4a40fb2b;hpb=0ce4af99c07acebf4fce9a91f1099d2460629293;p=karo-tx-uboot.git diff --git a/common/env_nand.c b/common/env_nand.c index 749605fe3f..4a97b6ca65 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -44,8 +44,6 @@ char *env_name_spec = "NAND"; 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 */ -env_t *env_ptr; #endif /* ENV_IS_EMBEDDED */ DECLARE_GLOBAL_DATA_PTR; @@ -132,7 +130,7 @@ static int writeenv(size_t offset, u_char *buf) u_char *char_ptr; blocksize = nand_info[0].erasesize; - len = min(blocksize, CONFIG_ENV_SIZE); + len = min(blocksize, (size_t)CONFIG_ENV_SIZE); while (amount_saved < CONFIG_ENV_SIZE && offset < end) { if (nand_block_isbad(&nand_info[0], offset)) { @@ -233,6 +231,12 @@ int saveenv(void) } #endif /* CMD_SAVEENV */ +#if defined(CONFIG_SPL_BUILD) +static int readenv(size_t offset, u_char *buf) +{ + return nand_spl_load_image(offset, CONFIG_ENV_SIZE, buf); +} +#else static int readenv(size_t offset, u_char *buf) { size_t end = offset + CONFIG_ENV_RANGE; @@ -244,7 +248,7 @@ static int readenv(size_t offset, u_char *buf) if (!blocksize) return 1; - len = min(blocksize, CONFIG_ENV_SIZE); + len = min(blocksize, (size_t)CONFIG_ENV_SIZE); while (amount_loaded < CONFIG_ENV_SIZE && offset < end) { if (nand_block_isbad(&nand_info[0], offset)) { @@ -266,6 +270,7 @@ static int readenv(size_t offset, u_char *buf) return 0; } +#endif /* #if defined(CONFIG_SPL_BUILD) */ #ifdef CONFIG_ENV_OFFSET_OOB int get_nand_env_oob(nand_info_t *nand, unsigned long *result) @@ -350,7 +355,9 @@ void env_relocate_spec(void) gd->env_valid = 1; } +#ifdef CONFIG_NAND_ENV_DST free(env_ptr); +#endif if (gd->env_valid == 1) ep = tmp_env1;