X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcmd_mem.c;h=98508003b0b56dd81c3a793c2f4b2dfc4256ecb6;hb=168f7cfe562001d5d7c2c724b8232a1dfb2d3463;hp=2d4fc2a419eb4702ea61d954b5bb9f4f9bc292df;hpb=ea393eb1d6a786fc2e895f90abb5f7e7541aef45;p=u-boot diff --git a/common/cmd_mem.c b/common/cmd_mem.c index 2d4fc2a419..98508003b0 100644 --- a/common/cmd_mem.c +++ b/common/cmd_mem.c @@ -34,6 +34,9 @@ #endif #include +#include +#include + #ifdef CMD_MEM_DEBUG #define PRINTF(fmt,args...) printf (fmt ,##args) #else @@ -1141,6 +1144,55 @@ int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) } #endif /* CONFIG_CRC32_VERIFY */ +#ifdef CONFIG_CMD_MD5SUM +int do_md5sum(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + unsigned long addr, len; + unsigned int i; + u8 output[16]; + + if (argc < 3) { + cmd_usage(cmdtp); + return 1; + } + + addr = simple_strtoul(argv[1], NULL, 16); + len = simple_strtoul(argv[2], NULL, 16); + + md5((unsigned char *) addr, len, output); + printf("md5 for %08lx ... %08lx ==> ", addr, addr + len - 1); + for (i = 0; i < 16; i++) + printf("%02x", output[i]); + printf("\n"); + + return 0; +} +#endif + +#ifdef CONFIG_CMD_SHA1 +int do_sha1sum(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + unsigned long addr, len; + unsigned int i; + u8 output[20]; + + if (argc < 3) { + cmd_usage(cmdtp); + return 1; + } + + addr = simple_strtoul(argv[1], NULL, 16); + len = simple_strtoul(argv[2], NULL, 16); + + sha1_csum((unsigned char *) addr, len, output); + printf("SHA1 for %08lx ... %08lx ==> ", addr, addr + len - 1); + for (i = 0; i < 20; i++) + printf("%02x", output[i]); + printf("\n"); + + return 0; +} +#endif #ifdef CONFIG_CMD_UNZIP int gunzip (void *, int, unsigned char *, unsigned long *); @@ -1172,39 +1224,39 @@ int do_unzip ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) U_BOOT_CMD( md, 3, 1, do_mem_md, "memory display", - "[.b, .w, .l] address [# of objects]\n - memory display\n" + "[.b, .w, .l] address [# of objects]" ); U_BOOT_CMD( mm, 2, 1, do_mem_mm, - "memory modify (auto-incrementing)", - "[.b, .w, .l] address\n" " - memory modify, auto increment address\n" + "memory modify (auto-incrementing address)", + "[.b, .w, .l] address" ); U_BOOT_CMD( nm, 2, 1, do_mem_nm, "memory modify (constant address)", - "[.b, .w, .l] address\n - memory modify, read and keep address\n" + "[.b, .w, .l] address" ); U_BOOT_CMD( mw, 4, 1, do_mem_mw, "memory write (fill)", - "[.b, .w, .l] address value [count]\n - write memory\n" + "[.b, .w, .l] address value [count]" ); U_BOOT_CMD( cp, 4, 1, do_mem_cp, "memory copy", - "[.b, .w, .l] source target count\n - copy memory\n" + "[.b, .w, .l] source target count" ); U_BOOT_CMD( cmp, 4, 1, do_mem_cmp, "memory compare", - "[.b, .w, .l] addr1 addr2 count\n - compare memory\n" + "[.b, .w, .l] addr1 addr2 count" ); #ifndef CONFIG_CRC32_VERIFY @@ -1212,7 +1264,7 @@ U_BOOT_CMD( U_BOOT_CMD( crc32, 4, 1, do_mem_crc, "checksum calculation", - "address count [addr]\n - compute CRC32 checksum [save at addr]\n" + "address count [addr]\n - compute CRC32 checksum [save at addr]" ); #else /* CONFIG_CRC32_VERIFY */ @@ -1221,7 +1273,7 @@ U_BOOT_CMD( crc32, 5, 1, do_mem_crc, "checksum calculation", "address count [addr]\n - compute CRC32 checksum [save at addr]\n" - "-v address count crc\n - verify crc of memory area\n" + "-v address count crc\n - verify crc of memory area" ); #endif /* CONFIG_CRC32_VERIFY */ @@ -1230,50 +1282,63 @@ U_BOOT_CMD( base, 2, 1, do_mem_base, "print or set address offset", "\n - print address offset for memory commands\n" - "base off\n - set address offset for memory commands to 'off'\n" + "base off\n - set address offset for memory commands to 'off'" ); U_BOOT_CMD( loop, 3, 1, do_mem_loop, "infinite loop on address range", - "[.b, .w, .l] address number_of_objects\n" - " - loop on a set of addresses\n" + "[.b, .w, .l] address number_of_objects" ); #ifdef CONFIG_LOOPW U_BOOT_CMD( loopw, 4, 1, do_mem_loopw, "infinite write loop on address range", - "[.b, .w, .l] address number_of_objects data_to_write\n" - " - loop on a set of addresses\n" + "[.b, .w, .l] address number_of_objects data_to_write" ); #endif /* CONFIG_LOOPW */ U_BOOT_CMD( mtest, 5, 1, do_mem_mtest, - "simple RAM test", - "[start [end [pattern [iterations]]]]\n" - " - simple RAM read/write test\n" + "simple RAM read/write test", + "[start [end [pattern [iterations]]]]" ); #ifdef CONFIG_MX_CYCLIC U_BOOT_CMD( mdc, 4, 1, do_mem_mdc, "memory display cyclic", - "[.b, .w, .l] address count delay(ms)\n - memory display cyclic\n" + "[.b, .w, .l] address count delay(ms)" ); U_BOOT_CMD( mwc, 4, 1, do_mem_mwc, "memory write cyclic", - "[.b, .w, .l] address value delay(ms)\n - memory write cyclic\n" + "[.b, .w, .l] address value delay(ms)" ); #endif /* CONFIG_MX_CYCLIC */ +#ifdef CONFIG_CMD_MD5SUM +U_BOOT_CMD( + md5sum, 3, 1, do_md5sum, + "compute MD5 message digest", + "address count" +); +#endif + +#ifdef CONFIG_CMD_SHA1SUM +U_BOOT_CMD( + sha1sum, 3, 1, do_sha1sum, + "compute SHA1 message digest", + "address count" +); +#endif /* CONFIG_CMD_SHA1 */ + #ifdef CONFIG_CMD_UNZIP U_BOOT_CMD( unzip, 4, 1, do_unzip, "unzip a memory region", - "srcaddr dstaddr [dstsize]\n" + "srcaddr dstaddr [dstsize]" ); #endif /* CONFIG_CMD_UNZIP */