mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 22:49:02 +00:00
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>
This commit is contained in:
parent
490753ace3
commit
ea8b6877a8
1 changed files with 9 additions and 3 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue