@ -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 ] ) ;