[PATCH] binman: Increase default fitImage data section resize step from 1k to 64k

Simon Glass sjg at chromium.org
Tue Jul 26 21:52:53 CEST 2022


On Tue, 12 Jul 2022 at 11:41, Marek Vasut <marex at denx.de> wrote:
>
> Currently the fitImage data area is resized in 1 kiB steps. This works
> when bundling smaller images below some 1 MiB, but when bundling large
> images into the fitImage, this make binman spend extreme amount of time
> and CPU just spinning in pylibfdt FdtSw.check_space() until the size
> grows enough for the large image to fit into the data area. Increase
> the default step to 64 kiB, which is a reasonable compromise -- the
> U-Boot blobs are somewhere in the 64kiB...1MiB range, DT blob are just
> short of 64 kiB, and so are the other blobs. This reduces binman runtime
> with 32 MiB blob from 2.3 minutes to 5 seconds.
>
> The following can be used to trigger the problem if rand.bin is some 32 MiB.
> "
> / {
>   itb {
>     fit {
>       images {
>         test {
>           compression = "none";
>           description = "none";
>           type = "flat_dt";
>
>           blob {
>             filename = "rand.bin";
>             type = "blob-ext";
>           };
>         };
>       };
>     };
>   };
>
>   configurations {
>     binman_configuration: config {
>       loadables = "test";
>     };
>   };
> };
> "
>
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Alper Nebi Yasak <alpernebiyasak at gmail.com>
> Cc: Simon Glass <sjg at chromium.org>
> ---
>  tools/binman/etype/fit.py | 1 +
>  1 file changed, 1 insertion(+)

Reviewed-by: Simon Glass <sjg at chromium.org>

I wonder if pylibfdt should become a bit smarter and increase by the
correct amount?


>
Applied to u-boot-dm, thanks!


More information about the U-Boot mailing list