|
@@ -11,6 +11,7 @@
|
|
|
#include <common.h>
|
|
|
#include <command.h>
|
|
|
#include <u-boot/md5.h>
|
|
|
+#include <asm/io.h>
|
|
|
|
|
|
/*
|
|
|
* Store the resulting sum to an address or variable
|
|
@@ -79,6 +80,7 @@ int do_md5sum(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
|
int verify = 0;
|
|
|
int ac;
|
|
|
char * const *av;
|
|
|
+ void *buf;
|
|
|
|
|
|
if (argc < 3)
|
|
|
return CMD_RET_USAGE;
|
|
@@ -96,7 +98,9 @@ int do_md5sum(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
|
addr = simple_strtoul(*av++, NULL, 16);
|
|
|
len = simple_strtoul(*av++, NULL, 16);
|
|
|
|
|
|
- md5_wd((unsigned char *) addr, len, output, CHUNKSZ_MD5);
|
|
|
+ buf = map_sysmem(addr, len);
|
|
|
+ md5_wd(buf, len, output, CHUNKSZ_MD5);
|
|
|
+ unmap_sysmem(buf);
|
|
|
|
|
|
if (!verify) {
|
|
|
printf("md5 for %08lx ... %08lx ==> ", addr, addr + len - 1);
|
|
@@ -135,6 +139,7 @@ static int do_md5sum(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
|
unsigned long addr, len;
|
|
|
unsigned int i;
|
|
|
u8 output[16];
|
|
|
+ void *buf;
|
|
|
|
|
|
if (argc < 3)
|
|
|
return CMD_RET_USAGE;
|
|
@@ -142,7 +147,10 @@ static int do_md5sum(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
|
addr = simple_strtoul(argv[1], NULL, 16);
|
|
|
len = simple_strtoul(argv[2], NULL, 16);
|
|
|
|
|
|
- md5_wd((unsigned char *) addr, len, output, CHUNKSZ_MD5);
|
|
|
+ buf = map_sysmem(addr, len);
|
|
|
+ md5_wd(buf, len, output, CHUNKSZ_MD5);
|
|
|
+ unmap_sysmem(buf);
|
|
|
+
|
|
|
printf("md5 for %08lx ... %08lx ==> ", addr, addr + len - 1);
|
|
|
for (i = 0; i < 16; i++)
|
|
|
printf("%02x", output[i]);
|