[PATCH v2 2/3] keymile: common: update to set_env_hex(), fix "pram" radix

Stefan Roese sr at denx.de
Mon Jan 25 07:37:26 CET 2021


On 21.01.21 13:19, Niel Fourie wrote:
> Replace instances of sprintf()/set_env() for setting hexadecimal
> values with set_env_hex().
> 
> In set_km_env() the "pram" variable was set to an hexadecimal
> value, while initr_mem() expects an unsigned decimal, so use
> set_env_ulong() instead.
> 
> Signed-off-by: Niel Fourie <lusus at denx.de>
> Cc: Holger Brunck <holger.brunck at hitachi-powergrids.com>
> Cc: Heiko Schocher <hs at denx.de>
> Cc: Priyanka Jain <priyanka.jain at nxp.com>
> Cc: Stefan Roese <sr at denx.de>

Reviewed-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan

> ---
> Changes in v2:
> - Replaced all relevant sprintf()/set_env() instances with
>    set_env_hex()/set_env_ulong(), instead of only correcting
>    the sprintf() formatting for "pram" radix to "%ul"
> 
>   board/keymile/common/common.c | 22 ++++++----------------
>   1 file changed, 6 insertions(+), 16 deletions(-)
> 
> diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c
> index df507e2790..71af1751ef 100644
> --- a/board/keymile/common/common.c
> +++ b/board/keymile/common/common.c
> @@ -41,7 +41,6 @@ DECLARE_GLOBAL_DATA_PTR;
>    */
>   int set_km_env(void)
>   {
> -	uchar buf[32];
>   	unsigned int pnvramaddr;
>   	unsigned int pram;
>   	unsigned int varaddr;
> @@ -51,8 +50,7 @@ int set_km_env(void)
>   
>   	pnvramaddr = gd->ram_size - CONFIG_KM_RESERVED_PRAM - CONFIG_KM_PHRAM
>   			- CONFIG_KM_PNVRAM;
> -	sprintf((char *)buf, "0x%x", pnvramaddr);
> -	env_set("pnvramaddr", (char *)buf);
> +	env_set_hex("pnvramaddr", pnvramaddr);
>   
>   	/* try to read rootfssize (ram image) from environment */
>   	p = env_get("rootfssize");
> @@ -60,16 +58,13 @@ int set_km_env(void)
>   		strict_strtoul(p, 16, &rootfssize);
>   	pram = (rootfssize + CONFIG_KM_RESERVED_PRAM + CONFIG_KM_PHRAM +
>   		CONFIG_KM_PNVRAM) / 0x400;
> -	sprintf((char *)buf, "0x%x", pram);
> -	env_set("pram", (char *)buf);
> +	env_set_ulong("pram", pram);
>   
>   	varaddr = gd->ram_size - CONFIG_KM_RESERVED_PRAM - CONFIG_KM_PHRAM;
> -	sprintf((char *)buf, "0x%x", varaddr);
> -	env_set("varaddr", (char *)buf);
> +	env_set_hex("varaddr", varaddr);
>   
>   	kernelmem = gd->ram_size - 0x400 * pram;
> -	sprintf((char *)buf, "0x%x", kernelmem);
> -	env_set("kernelmem", (char *)buf);
> +	env_set_hex("kernelmem", kernelmem);
>   
>   	return 0;
>   }
> @@ -243,7 +238,6 @@ static int do_checkboardidhwk(struct cmd_tbl *cmdtp, int flag, int argc,
>   	p = env_get("hwkey");
>   	if (p)
>   		rc = strict_strtoul(p, 16, &envhwkey);
> -
>   	if (rc != 0) {
>   		printf("strict_strtoul returns error: %d", rc);
>   		return rc;
> @@ -305,15 +299,11 @@ static int do_checkboardidhwk(struct cmd_tbl *cmdtp, int flag, int argc,
>   				 * set the values in environment variables.
>   				 */
>   				if (bid == ivmbid && hwkey == ivmhwkey) {
> -					char buf[10];
> -
>   					found = 1;
>   					envbid   = bid;
>   					envhwkey = hwkey;
> -					sprintf(buf, "%lx", bid);
> -					env_set("boardid", buf);
> -					sprintf(buf, "%lx", hwkey);
> -					env_set("hwkey", buf);
> +					env_set_hex("boardid", bid);
> +					env_set_hex("hwkey", hwkey);
>   				}
>   			} /* end while( ! found ) */
>   		}
> 


Viele Grüße,
Stefan

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de


More information about the U-Boot mailing list