From 82c5a0ac713500f4da9d8562cd4764c733b65e56 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Pali=20Roh=C3=A1r?= Date: Mon, 25 Oct 2021 15:12:57 +0200 Subject: [PATCH] tools: kwboot: Recalculate 4-byte data checksum after injecting baudrate code MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If data part of image is modified, update 4-byte data checksum. It looks like A385 BootROM does not verify this checksum for image loaded via UART, but we do not know if other BootROMs are also ignoring it. It is always better to provide correct checksum. Signed-off-by: Pali Rohár [ refactored ] Signed-off-by: Marek Behún Reviewed-by: Stefan Roese --- tools/kwboot.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/kwboot.c b/tools/kwboot.c index bf26a667b7..1131c2eb1c 100644 --- a/tools/kwboot.c +++ b/tools/kwboot.c @@ -1544,6 +1544,9 @@ kwboot_img_patch(void *img, size_t *size, int baudrate) kwboot_printv("Injecting code for changing baudrate back\n"); _inject_baudrate_change_code(img, size, 1, baudrate, 115200); + /* Update the 32-bit data checksum */ + *kwboot_img_csum32_ptr(img) = kwboot_img_csum32(img); + /* recompute header size */ hdrsz = kwbheader_size(hdr); } -- 2.39.5