[U-Boot] [PATCH] tools/kwbimage.c: Fix generation of binary header

The binary header ends with one lword, defining if another header follows this one. This additions 4 bytes need to be taken into account in the generation of the header size. And the complete 4 bytes at the end of this binary header need to get cleared.
Signed-off-by: Stefan Roese sr@denx.de Cc: Luka Perkov luka.perkov@sartura.hr Cc: Kevin Smith kevin.smith@elecsyscorp.com --- tools/kwbimage.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/tools/kwbimage.c b/tools/kwbimage.c index d33f1b6..5f6d91c 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); }

On Wed, Oct 28, 2015 at 07:53:58AM +0100, Stefan Roese wrote:
The binary header ends with one lword, defining if another header follows this one. This additions 4 bytes need to be taken into account in the generation of the header size. And the complete 4 bytes at the end of this binary header need to get cleared.
Signed-off-by: Stefan Roese sr@denx.de Cc: Luka Perkov luka.perkov@sartura.hr Cc: Kevin Smith kevin.smith@elecsyscorp.com
tools/kwbimage.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
Applied to marvell/master.
Luka
participants (2)
-
Luka Perkov
-
Stefan Roese