diff options
| author | Tom Rini <[email protected]> | 2015-11-17 17:57:32 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2015-11-17 17:57:32 -0500 |
| commit | fe524569d4a7eea66475d5815be75660e59b6ee4 (patch) | |
| tree | b9c9c5db567947ea5415a33a5190034177853677 /tools | |
| parent | fb2dea60e8f355ae00d427db09112a90839c96ec (diff) | |
| parent | 6a26748c5e5558073b72ff55de4dc3ea245d3726 (diff) | |
Merge git://git.denx.de/u-boot-marvell
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/kwbimage.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/tools/kwbimage.c b/tools/kwbimage.c index d33f1b6974f..5f6d91c4865 100644 --- a/tools/kwbimage.c +++ b/tools/kwbimage.c @@ -417,7 +417,13 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, binhdrsz = sizeof(struct opt_hdr_v1) + (binarye->binary.nargs + 1) * sizeof(unsigned int) + s.st_size; - binhdrsz = ALIGN_SUP(binhdrsz, 32); + + /* + * The size includes the binary image size, rounded + * up to a 4-byte boundary. Plus 4 bytes for the + * next-header byte and 3-byte alignment at the end. + */ + binhdrsz = ALIGN_SUP(binhdrsz, 4) + 4; hdr->headersz_lsb = binhdrsz & 0xFFFF; hdr->headersz_msb = (binhdrsz & 0xFFFF0000) >> 16; @@ -441,7 +447,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, fclose(bin); - cur += s.st_size; + cur += ALIGN_SUP(s.st_size, 4); /* * For now, we don't support more than one binary @@ -449,7 +455,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, * supported. So, the binary header is necessarily the * last one */ - *((unsigned char *)cur) = 0; + *((uint32_t *)cur) = 0x00000000; cur += sizeof(uint32_t); } |
