summaryrefslogtreecommitdiff
path: root/cmd/fdt.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/fdt.c')
-rw-r--r--cmd/fdt.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/cmd/fdt.c b/cmd/fdt.c
index 04b664e652c..aae3278526c 100644
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -36,16 +36,21 @@ static int is_printable_string(const void *data, int len);
*/
struct fdt_header *working_fdt;
-void set_working_fdt_addr(ulong addr)
+static void set_working_fdt_addr_quiet(ulong addr)
{
void *buf;
- printf("Working FDT set to %lx\n", addr);
buf = map_sysmem(addr, 0);
working_fdt = buf;
env_set_hex("fdtaddr", addr);
}
+void set_working_fdt_addr(ulong addr)
+{
+ printf("Working FDT set to %lx\n", addr);
+ set_working_fdt_addr_quiet(addr);
+}
+
/*
* Get a value from the fdt and format it to be set in the environment
*/
@@ -192,10 +197,14 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
if ((quiet && fdt_check_header(blob)) ||
(!quiet && !fdt_valid(&blob)))
return 1;
- if (control)
+ if (control) {
gd->fdt_blob = blob;
- else
- set_working_fdt_addr(addr);
+ } else {
+ if (quiet)
+ set_working_fdt_addr_quiet(addr);
+ else
+ set_working_fdt_addr(addr);
+ }
if (argc >= 2) {
int len;
@@ -475,18 +484,9 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
if (ret != 0)
return ret;
} else if (subcmd[0] == 'a') {
- /* Get address */
- char buf[19];
-
- snprintf(buf, sizeof(buf), "%lx",
- (ulong)map_to_sysmem(nodep));
- env_set(var, buf);
+ env_set_hex(var, (ulong)map_to_sysmem(nodep));
} else if (subcmd[0] == 's') {
- /* Get size */
- char buf[11];
-
- sprintf(buf, "0x%08X", len);
- env_set(var, buf);
+ env_set_hex(var, len);
} else
return CMD_RET_USAGE;
return 0;