#endif
#include <watchdog.h>
+#include <u-boot/md5.h>
+#include <sha1.h>
+
#ifdef CMD_MEM_DEBUG
#define PRINTF(fmt,args...) printf (fmt ,##args)
#else
}
#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 *);
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
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 */
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 */
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 */