aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2021-11-08 18:12:49 +0100
committerStefan Roese <sr@denx.de>2021-11-10 12:08:06 +0100
commit2b0980c24027ee00987b04c0c4dc18546a704c84 (patch)
treebe6cb6e17f57b5da73262ea7f84a63db5459bd79
parent5cad2e6ccee1e5a53107dd6c74c60a6d0da46690 (diff)
downloadu-boot-2b0980c24027ee00987b04c0c4dc18546a704c84.zip
u-boot-2b0980c24027ee00987b04c0c4dc18546a704c84.tar.gz
u-boot-2b0980c24027ee00987b04c0c4dc18546a704c84.tar.bz2
tools: kwbimage: Fill the real header size into the main header
Fill the real header size without padding into the main header This allows to reduce final image when converting image to another format which does not need additional padding. 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>
-rw-r--r--tools/kwbimage.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index 8dcfebc..114b313 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -1220,6 +1220,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
{
struct image_cfg_element *e;
struct main_hdr_v1 *main_hdr;
+ struct opt_hdr_v1 *ohdr;
struct register_set_hdr_v1 *register_set_hdr;
struct secure_hdr_v1 *secure_hdr = NULL;
size_t headersz;
@@ -1370,6 +1371,14 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
main_hdr->checksum = image_checksum8(main_hdr, headersz);
*imagesz = headersz;
+
+ /* Fill the real header size without padding into the main header */
+ headersz = sizeof(*main_hdr);
+ for_each_opt_hdr_v1 (ohdr, main_hdr)
+ headersz += opt_hdr_v1_size(ohdr);
+ main_hdr->headersz_lsb = cpu_to_le16(headersz & 0xFFFF);
+ main_hdr->headersz_msb = (headersz & 0xFFFF0000) >> 16;
+
return image;
}