summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2022-02-13 01:04:33 +0100
committerStefan Roese <sr@denx.de>2022-02-17 14:17:07 +0100
commita2389213f2877967d2108dee61b86327048d0e18 (patch)
treefff0eb0ee28bf157b72ac40ca1a77f29445926d7
parent2a9059aef5e07baadf6a003c884bdb6056728783 (diff)
tools: kwbimage: Fix dumping DATA registers for v0 images
End of DATA register section is indicated by zero value in both raddr and rdata. So do not stop dumping registers with non-zero address and zero value. And also print end of DATA registers section. Fixes: 1a8e6b63e24f ("tools: kwbimage: Dump kwbimage config file on '-p -1' option") Signed-off-by: Pali Rohár <pali@kernel.org> Reported-by: Tony Dinh <mibodhi@gmail.com> Tested-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
-rw-r--r--tools/kwbimage.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index 9b63ce80ff..99d38cd1cf 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -2226,11 +2226,13 @@ static int kwbimage_generate_config(void *ptr, struct image_tool_params *params)
ehdr0 = (struct ext_hdr_v0 *)(mhdr0 + 1);
if (ehdr0->offset) {
for (regdata = (struct ext_hdr_v0_reg *)((uint8_t *)ptr + ehdr0->offset);
- (uint8_t *)regdata < (uint8_t *)ptr + header_size && regdata->raddr &&
- regdata->rdata;
+ (uint8_t *)regdata < (uint8_t *)ptr + header_size &&
+ (regdata->raddr || regdata->rdata);
regdata++)
fprintf(f, "DATA 0x%08x 0x%08x\n", le32_to_cpu(regdata->raddr),
le32_to_cpu(regdata->rdata));
+ if ((uint8_t *)regdata != (uint8_t *)ptr + ehdr0->offset)
+ fprintf(f, "DATA 0x0 0x0\n");
}
}