public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali@kernel.org>
To: Stefan Roese <sr@denx.de>, Martin Rowe <martin.p.rowe@gmail.com>
Cc: u-boot@lists.denx.de
Subject: [PATCH u-boot-mvebu 1/5] tools: kwbimage: Fix invalid UART kwbimage v1 headersz
Date: Thu, 23 Mar 2023 20:57:51 +0100	[thread overview]
Message-ID: <20230323195755.5131-2-pali@kernel.org> (raw)
In-Reply-To: <20230323195755.5131-1-pali@kernel.org>

Armada 385 BootROM ignores low 7 bits of headersz when parsing kwbimage
header of UART type, which effectively means that headersz is rounded down
to multiply of 128 bytes. For all other image types BootROM reads and use
all bits of headersz. Therefore fill into UART type of kwbimage v1 headersz
aligned to 128 bytes.

Fixes: 2b0980c24027 ("tools: kwbimage: Fill the real header size into the main header")
Signed-off-by: Pali Rohár <pali@kernel.org>
---
 tools/kwbimage.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index 309657a5637b..177084adf825 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -1231,6 +1231,16 @@ static size_t image_headersz_v1(int *hasext)
 	if (count > 0)
 		headersz += sizeof(struct register_set_hdr_v1) + 8 * count + 4;
 
+	/*
+	 * For all images except UART, headersz stored in header itself should
+	 * contains header size without padding. For UART image BootROM rounds
+	 * down headersz to multiply of 128 bytes. Therefore align UART headersz
+	 * to multiply of 128 bytes to ensure that remaining UART header bytes
+	 * are not ignored by BootROM.
+	 */
+	if (image_get_bootfrom() == IBR_HDR_UART_ID)
+		headersz = ALIGN(headersz, 128);
+
 	return headersz;
 }
 
-- 
2.20.1


  reply	other threads:[~2023-03-23 19:59 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-23 19:57 [PATCH u-boot-mvebu 0/5] mvebu: Fix UART booting Pali Rohár
2023-03-23 19:57 ` Pali Rohár [this message]
2023-03-24  8:22   ` [PATCH u-boot-mvebu 1/5] tools: kwbimage: Fix invalid UART kwbimage v1 headersz Stefan Roese
2023-03-23 19:57 ` [PATCH u-boot-mvebu 2/5] tools: kwboot: " Pali Rohár
2023-03-24  8:22   ` Stefan Roese
2023-03-23 19:57 ` [PATCH u-boot-mvebu 3/5] tools: kwboot: Fix inserting UART data checksum without -B option Pali Rohár
2023-03-24  8:23   ` Stefan Roese
2023-03-23 19:57 ` [PATCH u-boot-mvebu 4/5] tools: kwboot: Fix sending very small images Pali Rohár
2023-03-24  8:23   ` Stefan Roese
2023-03-23 19:57 ` [PATCH u-boot-mvebu 5/5] tools: kwboot: Workaround A38x BootROM bug for images with a gap Pali Rohár
2023-03-24  8:24   ` Stefan Roese
2023-03-24  3:31 ` [PATCH u-boot-mvebu 0/5] mvebu: Fix UART booting Martin Rowe
2023-03-24 14:44 ` Stefan Roese

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230323195755.5131-2-pali@kernel.org \
    --to=pali@kernel.org \
    --cc=martin.p.rowe@gmail.com \
    --cc=sr@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox