All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] imx: hab: fix size of IVT+CSF blob tacked on to u-boot.itb
@ 2024-10-24 12:27 Rasmus Villemoes
  2024-10-24 14:07 ` Marek Vasut
  2024-10-25  4:34 ` Heiko Schocher
  0 siblings, 2 replies; 13+ messages in thread
From: Rasmus Villemoes @ 2024-10-24 12:27 UTC (permalink / raw)
  To: u-boot
  Cc: Heiko Schocher, Marek Vasut, Fabio Estevam, Tom Rini, Peng Fan,
	Rasmus Villemoes

Loading flash.bin using uuu fails when flash.bin does not have the
right size.

When flash.bin is loaded from some storage medium (sd card/emmc), SPL
just loads some random garbage bytes from beyond what has been
populated when flash.bin was written, but when loaded via uuu, SPL
hangs waiting for the host to send the expected number of bytes. Which
is (size of FIT image aligned to 0x1000)+CONFIG_CSF_SIZE. The
alignment to 0x1000 is already done and is necessary in all cases
because that's the exact expected location of the 32 byte IVT
header. But the IVT+CSF blob tacked onto the end must be a total of
CONFIG_CSF_SIZE.

This is exactly the same fix as 89f19f45d650, except that this time
around I don't know how to cleanly get CONFIG_CSF_SIZE.

Fixes: bc6beae7c55f (binman: Add nxp_imx8mcst etype for i.MX8M flash.bin signing)
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
---
Heiko, can you check if this works for you?

And if somebody wants to pick this up and knows how to get at CONFIG_
values, feel free to fix up and take authorship. But perhaps it's not
really configurable at all; imx8mimage.c has the value 0x2000
hard-coded, so I don't think anything good could ever come from
modifying CONFIG_CSF_SIZE. If so, the right fix is probably just to
make that knob non-settable.

 tools/binman/etype/nxp_imx8mcst.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/binman/etype/nxp_imx8mcst.py b/tools/binman/etype/nxp_imx8mcst.py
index 8221517b0c4..9a1974cc522 100644
--- a/tools/binman/etype/nxp_imx8mcst.py
+++ b/tools/binman/etype/nxp_imx8mcst.py
@@ -137,6 +137,8 @@ class Entry_nxp_imx8mcst(Entry_mkimage):
         args = ['-i', cfg_fname, '-o', output_fname]
         if self.cst.run_cmd(*args) is not None:
             outdata = tools.read_file(output_fname)
+            # fixme: 0x2000 should be CONFIG_CSF_SIZE
+            outdata += tools.get_bytes(0, 0x2000 - 0x20 - len(outdata))
             return data + outdata
         else:
             # Bintool is missing; just use the input data as the output
-- 
2.47.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2024-10-28 12:28 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-24 12:27 [PATCH] imx: hab: fix size of IVT+CSF blob tacked on to u-boot.itb Rasmus Villemoes
2024-10-24 14:07 ` Marek Vasut
2024-10-24 14:15   ` Fabio Estevam
2024-10-25  7:10   ` Rasmus Villemoes
2024-10-25 15:09     ` Marek Vasut
2024-10-27 18:38       ` Rasmus Villemoes
2024-10-27 21:02         ` Marek Vasut
2024-10-25  4:34 ` Heiko Schocher
2024-10-25 14:51   ` Fabio Estevam
2024-10-25 15:09     ` Fabio Estevam
2024-10-27 21:01       ` Marek Vasut
2024-10-28  5:13         ` Heiko Schocher
2024-10-28 11:57           ` Marek Vasut

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.