Update set_working_fdt_addr() to use setenv_addr()
authorSimon Glass <sjg@chromium.org>
Sun, 24 Feb 2013 17:33:21 +0000 (17:33 +0000)
committerSimon Glass <sjg@chromium.org>
Fri, 1 Mar 2013 03:09:23 +0000 (19:09 -0800)
We might as well use this common function instead of repeating the same
code.

Signed-off-by: Simon Glass <sjg@chromium.org>
common/cmd_fdt.c
common/cmd_nvedit.c
include/common.h

index 6eec947fcb3ecbf572120b0b9fce7c0de2d94587..ac77a08b77d41cbb8c3753570c04bc45d407989c 100644 (file)
@@ -55,12 +55,8 @@ struct fdt_header *working_fdt;
 
 void set_working_fdt_addr(void *addr)
 {
-       char buf[17];
-
        working_fdt = addr;
-
-       sprintf(buf, "%lx", (unsigned long)addr);
-       setenv("fdtaddr", buf);
+       setenv_addr("fdtaddr", addr);
 }
 
 /*
@@ -347,10 +343,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                        }
                        if (subcmd[0] == 's') {
                                /* get the num nodes at this level */
-                               char buf[11];
-
-                               sprintf(buf, "%d", curIndex + 1);
-                               setenv(var, buf);
+                               setenv_ulong(var, curIndex + 1);
                        } else {
                                /* node index not found */
                                printf("libfdt node not found\n");
index 7633f0c44a7e3ecb4c8828fbb62af4ede1d9fa21..44e88aa401a7d7cd8e73b03f4d9e87a7be0b5766 100644 (file)
@@ -295,17 +295,17 @@ int setenv_ulong(const char *varname, ulong value)
 }
 
 /**
- * Set an environment variable to an address in hex
+ * Set an environment variable to an value in hex
  *
  * @param varname      Environmet variable to set
- * @param addr         Value to set it to
+ * @param value                Value to set it to
  * @return 0 if ok, 1 on error
  */
-int setenv_addr(const char *varname, const void *addr)
+int setenv_hex(const char *varname, ulong value)
 {
        char str[17];
 
-       sprintf(str, "%lx", (uintptr_t)addr);
+       sprintf(str, "%lx", value);
        return setenv(varname, str);
 }
 
index 1d0728f847d174e17bbab69e0d809a5f2204e55a..6d5292422596c5df03f93b94a301ac8b20ffe506 100644 (file)
@@ -358,7 +358,19 @@ int getenv_yesno(const char *var);
 int    saveenv      (void);
 int    setenv       (const char *, const char *);
 int setenv_ulong(const char *varname, ulong value);
-int setenv_addr(const char *varname, const void *addr);
+int setenv_hex(const char *varname, ulong value);
+/**
+ * setenv_addr - Set an environment variable to an address in hex
+ *
+ * @varname:   Environmet variable to set
+ * @addr:      Value to set it to
+ * @return 0 if ok, 1 on error
+ */
+static inline int setenv_addr(const char *varname, const void *addr)
+{
+       return setenv_hex(varname, (ulong)addr);
+}
+
 #ifdef CONFIG_ARM
 # include <asm/mach-types.h>
 # include <asm/setup.h>