[PATCH] imx: hab: fix size of IVT+CSF blob tacked on to u-boot.itb

Heiko Schocher hs at denx.de
Fri Oct 25 06:34:04 CEST 2024


Hello Rasmus,

On 24.10.24 14:27, Rasmus Villemoes wrote:
> 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 at prevas.dk>
> ---
> Heiko, can you check if this works for you?

Works fine for me, thanks!

> 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.

Hmm... I don not know if it is a fix value... added Simon,
may he knows how to use a CONFIG_ option in buildman. If I
find time, I will take a look...

bye,
Heiko
> 
>   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
> 

-- 
DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de


More information about the U-Boot mailing list