]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - common/cmd_mem.c
Add md5sum and sha1 commands...
[people/ms/u-boot.git] / common / cmd_mem.c
index 2d4fc2a419eb4702ea61d954b5bb9f4f9bc292df..98508003b0b56dd81c3a793c2f4b2dfc4256ecb6 100644 (file)
@@ -34,6 +34,9 @@
 #endif
 #include <watchdog.h>
 
+#include <u-boot/md5.h>
+#include <sha1.h>
+
 #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 */