On Tue, 12 Jul 2022 at 11:41, Marek Vasut <ma...@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 <ma...@denx.de> > Cc: Alper Nebi Yasak <alpernebiya...@gmail.com> > Cc: Simon Glass <s...@chromium.org> > --- > tools/binman/etype/fit.py | 1 + > 1 file changed, 1 insertion(+)
Reviewed-by: Simon Glass <s...@chromium.org> I wonder if pylibfdt should become a bit smarter and increase by the correct amount? > Applied to u-boot-dm, thanks!