Sandbox wants to support commands which use memory. The map_physmen()
call provides this feature, so should be used more consistently in
U-Boot.

Note: We will need a utility function which includes the mapping and
printing of an error to avoid code size increase.

Signed-off-by: Simon Glass <s...@chromium.org>
---
 common/cmd_mem.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/common/cmd_mem.c b/common/cmd_mem.c
index 28476d7..cf59f6d 100644
--- a/common/cmd_mem.c
+++ b/common/cmd_mem.c
@@ -33,6 +33,7 @@
 #include <dataflash.h>
 #endif
 #include <watchdog.h>
+#include <asm/io.h>
 
 #ifdef CMD_MEM_DEBUG
 #define        PRINTF(fmt,args...)     printf (fmt ,##args)
@@ -141,9 +142,19 @@ int do_mem_md ( cmd_tbl_t *cmdtp, int flag, int argc, char 
* const argv[])
 # endif
 
        {
+               int bytes = size * length;
+               char *buf = map_physmem(addr, bytes, MAP_WRBACK);
+
+               /* TODO: create a utility function to map and print error */
+               if (!buf) {
+                       puts("Failed to map physical memory\n");
+                       return 1;
+               }
+
                /* Print the lines. */
-               print_buffer(addr, (void*)addr, size, length, 
DISP_LINE_LEN/size);
-               addr += size*length;
+               print_buffer(addr, buf, size, length, DISP_LINE_LEN / size);
+               addr += bytes;
+               unmap_physmem(buf, bytes);
        }
 #endif
 
-- 
1.7.3.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to