diff options
author | Justin Waters <justin.waters@timesys.com> | 2012-04-17 13:43:17 -0400 |
---|---|---|
committer | Justin Waters <justin.waters@timesys.com> | 2012-04-17 13:43:17 -0400 |
commit | 4f60d7e7027af17ceffc1a38e6dbe4e3e95c71ec (patch) | |
tree | dd33f3760e08226d5c05036d664d2d68fb3765dc /common/cmd_mem.c | |
parent | b1af6f532e0d348b153d5c148369229d24af361a (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.c | 47 |
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 |