[U-Boot] [PATCH] RFC: sandbox: Change md command to use map_physmem
Simon Glass
sjg at chromium.org
Tue Oct 25 14:59:41 CEST 2011
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 <sjg at 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
More information about the U-Boot
mailing list