[U-Boot] [PATCH 3/4] env_nand.c: do warn only if really no valid environment could be loaded

Scott Wood scottwood at freescale.com
Wed Feb 20 01:33:23 CET 2013


On 11/21/2012 06:59:20 AM, Phil Sutter wrote:
> The warning is misleading, since there is no equivalent success note
> when reading the other copy succeeds.
> 
> Signed-off-by: Phil Sutter <phil.sutter at viprinet.com>
> ---
>  common/env_nand.c |    9 +++++----
>  1 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/common/env_nand.c b/common/env_nand.c
> index 895532b..58ba558 100644
> --- a/common/env_nand.c
> +++ b/common/env_nand.c
> @@ -315,6 +315,7 @@ int get_nand_env_oob(nand_info_t *nand, unsigned  
> long *result)
>  void env_relocate_spec(void)
>  {
>  #if !defined(ENV_IS_EMBEDDED)
> +	int read1_fail = 0, read2_fail = 0;
>  	int crc1_ok = 0, crc2_ok = 0;
>  	env_t *ep, *tmp_env1, *tmp_env2;
> 
> @@ -326,11 +327,11 @@ void env_relocate_spec(void)
>  		goto done;
>  	}
> 
> -	if (readenv(CONFIG_ENV_OFFSET, (u_char *) tmp_env1))
> -		puts("No Valid Environment Area found\n");
> +	read1_fail = readenv(CONFIG_ENV_OFFSET, (u_char *) tmp_env1);
> +	read2_fail = readenv(CONFIG_ENV_OFFSET_REDUND, (u_char *)  
> tmp_env2);
> 
> -	if (readenv(CONFIG_ENV_OFFSET_REDUND, (u_char *) tmp_env2))
> -		puts("No Valid Redundant Environment Area found\n");
> +	if (read1_fail && read2_fail)
> +		puts("No Valid Environment Area found\n");
> 
>  	crc1_ok = crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc;
>  	crc2_ok = crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc;

We should still say something if one of the copies failed to load -- we  
just need to word it better (see env_flash.c for an example).

-Scott


More information about the U-Boot mailing list