[PATCH] fwu: mtd: Fix dfu_alt_info generation for 2 images per bank

Code rewrites the last char of size with adding &. It is visible from dfu_alt_info print before this patch:
Make dfu_alt_info: 'mtd nor0=bank0 raw 2320000 80000;bank1 raw 27a0000 8000&mtd nor0=bank0 raw 23a0000 4000000;bank1 raw 2820000 4000000'
And after it: Make dfu_alt_info: 'mtd nor0=bank0 raw 2320000 80000;bank1 raw 27a0000 80000&mtd nor0=bank0 raw 23a0000 4000000;bank1 raw 2820000 4000000'
Size for bank0 and bank1 must be the same because it is the same image.
Signed-off-by: Michal Simek michal.simek@amd.com ---
lib/fwu_updates/fwu_mtd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/fwu_updates/fwu_mtd.c b/lib/fwu_updates/fwu_mtd.c index b73111ae24da..69cd3d7001f9 100644 --- a/lib/fwu_updates/fwu_mtd.c +++ b/lib/fwu_updates/fwu_mtd.c @@ -175,8 +175,10 @@ int fwu_gen_alt_info_from_mtd(char *buf, size_t len, struct mtd_info *mtd)
l = strlen(buf); /* Replace the last ';' with '&' if there is another image. */ - if (i != CONFIG_FWU_NUM_IMAGES_PER_BANK - 1 && l) - buf[l - 1] = '&'; + if (i != CONFIG_FWU_NUM_IMAGES_PER_BANK - 1 && l) { + buf[l] = '&'; + buf++; + } len -= l; buf += l; }

On Thu, 13 Jul 2023 at 09:36, Michal Simek michal.simek@amd.com wrote:
Code rewrites the last char of size with adding &. It is visible from dfu_alt_info print before this patch:
Make dfu_alt_info: 'mtd nor0=bank0 raw 2320000 80000;bank1 raw 27a0000 8000&mtd nor0=bank0 raw 23a0000 4000000;bank1 raw 2820000 4000000'
And after it: Make dfu_alt_info: 'mtd nor0=bank0 raw 2320000 80000;bank1 raw 27a0000 80000&mtd nor0=bank0 raw 23a0000 4000000;bank1 raw 2820000 4000000'
Size for bank0 and bank1 must be the same because it is the same image.
Signed-off-by: Michal Simek michal.simek@amd.com
Acked-by: Jassi Brar jaswinder.singh@linaro.org

On Thu, Jul 13, 2023 at 04:36:27PM +0200, Michal Simek wrote:
Code rewrites the last char of size with adding &. It is visible from dfu_alt_info print before this patch:
Make dfu_alt_info: 'mtd nor0=bank0 raw 2320000 80000;bank1 raw 27a0000 8000&mtd nor0=bank0 raw 23a0000 4000000;bank1 raw 2820000 4000000'
And after it: Make dfu_alt_info: 'mtd nor0=bank0 raw 2320000 80000;bank1 raw 27a0000 80000&mtd nor0=bank0 raw 23a0000 4000000;bank1 raw 2820000 4000000'
Size for bank0 and bank1 must be the same because it is the same image.
Signed-off-by: Michal Simek michal.simek@amd.com Acked-by: Jassi Brar jaswinder.singh@linaro.org
Applied to u-boot/master, thanks!
participants (3)
-
Jassi Brar
-
Michal Simek
-
Tom Rini