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

Niel Fourie lusus at denx.de
Thu Jan 21 13:19:19 CET 2021


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>
---
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 ) */
 		}
-- 
2.29.2



More information about the U-Boot mailing list