mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-09-24 15:21:43 +02:00
tools: kwbimage: Properly calculate and align kwbimage v0 header size
Kwbimage v0 has similar alignment requirements as v1. Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
2b0980c240
commit
851114be1a
@ -879,6 +879,20 @@ static size_t image_headersz_align(size_t headersz, uint8_t blockid)
|
|||||||
return headersz;
|
return headersz;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static size_t image_headersz_v0(int *hasext)
|
||||||
|
{
|
||||||
|
size_t headersz;
|
||||||
|
|
||||||
|
headersz = sizeof(struct main_hdr_v0);
|
||||||
|
if (image_count_options(IMAGE_CFG_DATA) > 0) {
|
||||||
|
headersz += sizeof(struct ext_hdr_v0);
|
||||||
|
if (hasext)
|
||||||
|
*hasext = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return image_headersz_align(headersz, image_get_bootfrom());
|
||||||
|
}
|
||||||
|
|
||||||
static void *image_create_v0(size_t *imagesz, struct image_tool_params *params,
|
static void *image_create_v0(size_t *imagesz, struct image_tool_params *params,
|
||||||
int payloadsz)
|
int payloadsz)
|
||||||
{
|
{
|
||||||
@ -892,12 +906,7 @@ static void *image_create_v0(size_t *imagesz, struct image_tool_params *params,
|
|||||||
* Calculate the size of the header and the size of the
|
* Calculate the size of the header and the size of the
|
||||||
* payload
|
* payload
|
||||||
*/
|
*/
|
||||||
headersz = sizeof(struct main_hdr_v0);
|
headersz = image_headersz_v0(&has_ext);
|
||||||
|
|
||||||
if (image_count_options(IMAGE_CFG_DATA) > 0) {
|
|
||||||
has_ext = 1;
|
|
||||||
headersz += sizeof(struct ext_hdr_v0);
|
|
||||||
}
|
|
||||||
|
|
||||||
image = malloc(headersz);
|
image = malloc(headersz);
|
||||||
if (!image) {
|
if (!image) {
|
||||||
@ -1854,8 +1863,7 @@ static int kwbimage_generate(struct image_tool_params *params,
|
|||||||
*/
|
*/
|
||||||
case -1:
|
case -1:
|
||||||
case 0:
|
case 0:
|
||||||
alloc_len = sizeof(struct main_hdr_v0) +
|
alloc_len = image_headersz_v0(NULL);
|
||||||
sizeof(struct ext_hdr_v0);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user