diff options
Diffstat (limited to 'common/cmd_ide.c')
| -rw-r--r-- | common/cmd_ide.c | 12 | 
1 files changed, 4 insertions, 8 deletions
| diff --git a/common/cmd_ide.c b/common/cmd_ide.c index c38be4f1a..bcd132554 100644 --- a/common/cmd_ide.c +++ b/common/cmd_ide.c @@ -366,7 +366,7 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	char *boot_device = NULL;  	char *ep;  	int dev, part = 0; -	ulong addr, cnt, checksum; +	ulong addr, cnt;  	disk_partition_t info;  	image_header_t *hdr;  	int rcode = 0; @@ -448,27 +448,23 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	hdr = (image_header_t *)addr; -	if (ntohl(hdr->ih_magic) != IH_MAGIC) { +	if (!image_check_magic (hdr)) {  		printf("\n** Bad Magic Number **\n");  		show_boot_progress (-49);  		return 1;  	}  	show_boot_progress (49); -	checksum = ntohl(hdr->ih_hcrc); -	hdr->ih_hcrc = 0; - -	if (crc32 (0, (uchar *)hdr, sizeof(image_header_t)) != checksum) { +	if (!image_check_hcrc (hdr)) {  		puts ("\n** Bad Header Checksum **\n");  		show_boot_progress (-50);  		return 1;  	}  	show_boot_progress (50); -	hdr->ih_hcrc = htonl(checksum); /* restore checksum for later use */  	print_image_hdr (hdr); -	cnt = (ntohl(hdr->ih_size) + sizeof(image_header_t)); +	cnt = image_get_image_size (hdr);  	cnt += info.blksz - 1;  	cnt /= info.blksz;  	cnt -= 1; |