summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/common.h4
-rw-r--r--include/u-boot/crc.h33
-rw-r--r--tools/mkimage.c16
3 files changed, 43 insertions, 10 deletions
diff --git a/include/common.h b/include/common.h
index 35f12c0b03..f7c93bf5a6 100644
--- a/include/common.h
+++ b/include/common.h
@@ -624,9 +624,7 @@ int vsprintf(char *buf, const char *fmt, va_list args);
char * strmhz(char *buf, long hz);
/* lib_generic/crc32.c */
-uint32_t crc32 (uint32_t, const unsigned char *, uint);
-uint32_t crc32_wd (uint32_t, const unsigned char *, uint, uint);
-uint32_t crc32_no_comp (uint32_t, const unsigned char *, uint);
+#include <u-boot/crc.h>
/* common/console.c */
int console_init_f(void); /* Before relocation; uses the serial stuff */
diff --git a/include/u-boot/crc.h b/include/u-boot/crc.h
new file mode 100644
index 0000000000..61bce67914
--- /dev/null
+++ b/include/u-boot/crc.h
@@ -0,0 +1,33 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#ifndef _UBOOT_CRC_H
+#define _UBOOT_CRC_H
+
+/* lib_generic/crc32.c */
+uint32_t crc32 (uint32_t, const unsigned char *, uint);
+uint32_t crc32_wd (uint32_t, const unsigned char *, uint, uint);
+uint32_t crc32_no_comp (uint32_t, const unsigned char *, uint);
+
+#endif /* _UBOOT_CRC_H */
diff --git a/tools/mkimage.c b/tools/mkimage.c
index dc2d4c5386..b0c02ebcf3 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -23,8 +23,8 @@
#include "mkimage.h"
#include <image.h>
+#include <u-boot/crc.h>
-extern unsigned long crc32 (unsigned long crc, const char *buf, unsigned int len);
static void copy_file (int, const char *, int);
static void usage (void);
static int image_verify_header (char *, int);
@@ -59,7 +59,7 @@ main (int argc, char **argv)
struct stat sbuf;
unsigned char *ptr;
char *name = "";
- int retval;
+ int retval = 0;
cmdname = *argv;
@@ -333,7 +333,8 @@ NXTARG: ;
hdr = (image_header_t *)ptr;
checksum = crc32 (0,
- (const char *)(ptr + image_get_header_size ()),
+ (const unsigned char *)(ptr +
+ image_get_header_size ()),
sbuf.st_size - image_get_header_size ()
);
@@ -351,7 +352,8 @@ NXTARG: ;
image_set_name (hdr, name);
- checksum = crc32 (0, (const char *)hdr, image_get_header_size ());
+ checksum = crc32 (0, (const unsigned char *)hdr,
+ image_get_header_size ());
image_set_hcrc (hdr, checksum);
@@ -484,7 +486,7 @@ static int
image_verify_header (char *ptr, int image_size)
{
int len;
- char *data;
+ const unsigned char *data;
uint32_t checksum;
image_header_t header;
image_header_t *hdr = &header;
@@ -503,7 +505,7 @@ image_verify_header (char *ptr, int image_size)
return -FDT_ERR_BADMAGIC;
}
- data = (char *)hdr;
+ data = (const unsigned char *)hdr;
len = sizeof(image_header_t);
checksum = be32_to_cpu(hdr->ih_hcrc);
@@ -516,7 +518,7 @@ image_verify_header (char *ptr, int image_size)
return -FDT_ERR_BADSTATE;
}
- data = ptr + sizeof(image_header_t);
+ data = (const unsigned char *)ptr + sizeof(image_header_t);
len = image_size - sizeof(image_header_t) ;
if (crc32 (0, data, len) != be32_to_cpu(hdr->ih_dcrc)) {