summaryrefslogtreecommitdiff
path: root/common/cmd_mem.c
diff options
context:
space:
mode:
authorJustin Waters <justin.waters@timesys.com>2012-04-17 13:43:17 -0400
committerJustin Waters <justin.waters@timesys.com>2012-04-17 13:43:17 -0400
commit4f60d7e7027af17ceffc1a38e6dbe4e3e95c71ec (patch)
treedd33f3760e08226d5c05036d664d2d68fb3765dc /common/cmd_mem.c
parentb1af6f532e0d348b153d5c148369229d24af361a (diff)
LogicPD Support for OMAP3/DM3/AM3 boards
From Logic BSP-2.0-5-01
Diffstat (limited to 'common/cmd_mem.c')
-rw-r--r--common/cmd_mem.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/common/cmd_mem.c b/common/cmd_mem.c
index a5576aaab00..b6804dd87e7 100644
--- a/common/cmd_mem.c
+++ b/common/cmd_mem.c
@@ -1264,3 +1264,50 @@ U_BOOT_CMD(
"[.b, .w, .l] address value delay(ms)"
);
#endif /* CONFIG_MX_CYCLIC */
+
+#ifdef CONFIG_CMD_HEXDUMP
+#include <linux/ctype.h>
+
+int do_hd ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+ char *src;
+ int i, j, len;
+ if (argc < 3) {
+ cmd_usage(cmdtp);
+ return 1;
+ }
+
+ src = (char *)simple_strtoul(argv[1], NULL, 16);
+ len = simple_strtoul(argv[2], NULL, 16);
+
+ while (len > 0) {
+ printf("%p ", src);
+ j = (len > 16) ? 16 : len;
+ for (i=0; i<16; ++i) {
+ if (i < j)
+ printf("%02x ", src[i]);
+ else
+ printf(" ");
+ if (i == 7)
+ printf(" ");
+ }
+ printf(" |");
+ for (i=0; i<j; ++i) {
+ if (isascii(src[i]) && isprint(src[i]))
+ printf("%c", src[i]);
+ else
+ printf(".");
+ }
+ printf("|\n");
+ src += j;
+ len -= j;
+ }
+ return 0;
+}
+
+U_BOOT_CMD(
+ hd, 3, 1, do_hd,
+ "hexdump a memory region",
+ "srcaddr length"
+);
+#endif