[PATCH] tools: kwbimage: Fix dumping DATA registers for v0 images

Pali Rohár pali at kernel.org
Sun Feb 13 01:04:33 CET 2022


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 at kernel.org>
Reported-by: Tony Dinh <mibodhi at gmail.com>
Tested-by: Tony Dinh <mibodhi at gmail.com>
---
 tools/kwbimage.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index 9b63ce80ff4e..99d38cd1cfb2 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");
 		}
 	}
 
-- 
2.20.1



More information about the U-Boot mailing list