]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/cmd_fdt.c
include/bitfield.h: Assure new bitfield value doesn't touch unwanted bits
[karo-tx-uboot.git] / common / cmd_fdt.c
index 25b4675744f57f8e58f7390159a88f5ea9b772d1..4c18962d853283b501729d0b36c6326548c00a1c 100644 (file)
@@ -15,6 +15,7 @@
 #include <asm/global_data.h>
 #include <libfdt.h>
 #include <fdt_support.h>
+#include <mapmem.h>
 #include <asm/io.h>
 
 #define MAX_LEVEL      32              /* how deeply nested we will go */
@@ -38,13 +39,13 @@ static int is_printable_string(const void *data, int len);
  */
 struct fdt_header *working_fdt;
 
-void set_working_fdt_addr(void *addr)
+void set_working_fdt_addr(ulong addr)
 {
        void *buf;
 
-       buf = map_sysmem((ulong)addr, 0);
+       buf = map_sysmem(addr, 0);
        working_fdt = buf;
-       setenv_addr("fdtaddr", addr);
+       setenv_hex("fdtaddr", addr);
 }
 
 /*
@@ -111,7 +112,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                        if (!blob || !fdt_valid(&blob))
                                return 1;
                        printf("The address of the fdt is %#08lx\n",
-                              control ? (ulong)blob :
+                              control ? (ulong)map_to_sysmem(blob) :
                                        getenv_hex("fdtaddr", 0));
                        return 0;
                }
@@ -123,7 +124,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                if (control)
                        gd->fdt_blob = blob;
                else
-                       set_working_fdt_addr(blob);
+                       set_working_fdt_addr(addr);
 
                if (argc >= 2) {
                        int  len;