tools: kwboot: Fix inserting UART data checksum without -B option
authorPali Rohár <pali@kernel.org>
Thu, 23 Mar 2023 19:57:53 +0000 (20:57 +0100)
committerStefan Roese <sr@denx.de>
Fri, 24 Mar 2023 12:13:41 +0000 (13:13 +0100)
Commit 7665ed2fa04e ("tools: kwboot: Fix parsing UART image without data
checksum") added fixup code to insert place for data checksum if UART image
does not have it. Together with option -B (change baudrate), kwboot
calculates this checksum. Without option -B, it inserts only place for
checksum but does not calculate it.

This commit fix above logic and calculate data checksum also when kwboot is
used without -B option.

Fixes: 7665ed2fa04e ("tools: kwboot: Fix parsing UART image without data checksum")
Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
tools/kwboot.c

index ef108c8..61a9c30 100644 (file)
@@ -2079,6 +2079,8 @@ kwboot_img_patch(void *img, size_t *size, int baudrate)
                        goto err;
                }
                kwboot_img_grow_data_right(img, size, sizeof(uint32_t));
+               /* Update the 32-bit data checksum */
+               *kwboot_img_csum32_ptr(img) = kwboot_img_csum32(img);
        }
 
        if (!kwboot_img_has_ddr_init(img) &&