projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tricorder: add tricordereeprom command
[oweals/u-boot.git]
/
tools
/
mkimage.c
diff --git
a/tools/mkimage.c
b/tools/mkimage.c
index b700b9e8c0eb424b9022a2f21f54201d0cef3dee..7f221013e38cf20fe9bad4a42d1a7aca387e9924 100644
(file)
--- a/
tools/mkimage.c
+++ b/
tools/mkimage.c
@@
-137,6
+137,7
@@
main (int argc, char **argv)
char *ptr;
int retval = 0;
struct image_type_params *tparams = NULL;
char *ptr;
int retval = 0;
struct image_type_params *tparams = NULL;
+ int pad_len = 0;
/* Init Freescale PBL Boot image generation/list support */
init_pbl_image_type();
/* Init Freescale PBL Boot image generation/list support */
init_pbl_image_type();
@@
-144,6
+145,8
@@
main (int argc, char **argv)
init_kwb_image_type ();
/* Init Freescale imx Boot image generation/list support */
init_imx_image_type ();
init_kwb_image_type ();
/* Init Freescale imx Boot image generation/list support */
init_imx_image_type ();
+ /* Init Freescale mxs Boot image generation/list support */
+ init_mxs_image_type();
/* Init FIT image generation/list support */
init_fit_image_type ();
/* Init TI OMAP Boot image generation/list support */
/* Init FIT image generation/list support */
init_fit_image_type ();
/* Init TI OMAP Boot image generation/list support */
@@
-391,7
+394,7
@@
NXTARG: ;
* allocate memory for the header itself.
*/
if (tparams->vrec_header)
* allocate memory for the header itself.
*/
if (tparams->vrec_header)
- tparams->vrec_header(¶ms, tparams);
+
pad_len =
tparams->vrec_header(¶ms, tparams);
else
memset(tparams->hdr, 0, tparams->header_size);
else
memset(tparams->hdr, 0, tparams->header_size);
@@
-463,7
+466,7
@@
NXTARG: ;
/* PBL has special Image format, implements its' own */
pbl_load_uboot(ifd, ¶ms);
} else {
/* PBL has special Image format, implements its' own */
pbl_load_uboot(ifd, ¶ms);
} else {
- copy_file
(ifd, params.datafile, 0
);
+ copy_file
(ifd, params.datafile, pad_len
);
}
}
}
}
@@
-537,10
+540,19
@@
copy_file (int ifd, const char *datafile, int pad)
unsigned char *ptr;
int tail;
int zero = 0;
unsigned char *ptr;
int tail;
int zero = 0;
+ uint8_t zeros[4096];
int offset = 0;
int size;
struct image_type_params *tparams = mkimage_get_type (params.type);
int offset = 0;
int size;
struct image_type_params *tparams = mkimage_get_type (params.type);
+ if (pad >= sizeof(zeros)) {
+ fprintf(stderr, "%s: Can't pad to %d\n",
+ params.cmdname, pad);
+ exit(EXIT_FAILURE);
+ }
+
+ memset(zeros, 0, sizeof(zeros));
+
if (params.vflag) {
fprintf (stderr, "Adding Image %s\n", datafile);
}
if (params.vflag) {
fprintf (stderr, "Adding Image %s\n", datafile);
}
@@
-598,7
+610,8
@@
copy_file (int ifd, const char *datafile, int pad)
exit (EXIT_FAILURE);
}
exit (EXIT_FAILURE);
}
- if (pad && ((tail = size % 4) != 0)) {
+ tail = size % 4;
+ if ((pad == 1) && (tail != 0)) {
if (write(ifd, (char *)&zero, 4-tail) != 4-tail) {
fprintf (stderr, "%s: Write error on %s: %s\n",
if (write(ifd, (char *)&zero, 4-tail) != 4-tail) {
fprintf (stderr, "%s: Write error on %s: %s\n",
@@
-606,6
+619,13
@@
copy_file (int ifd, const char *datafile, int pad)
strerror(errno));
exit (EXIT_FAILURE);
}
strerror(errno));
exit (EXIT_FAILURE);
}
+ } else if (pad > 1) {
+ if (write(ifd, (char *)&zeros, pad) != pad) {
+ fprintf(stderr, "%s: Write error on %s: %s\n",
+ params.cmdname, params.imagefile,
+ strerror(errno));
+ exit(EXIT_FAILURE);
+ }
}
(void) munmap((void *)ptr, sbuf.st_size);
}
(void) munmap((void *)ptr, sbuf.st_size);