[U-Boot-Users] max gunzip output buffer size in do_bootm()

Wolfgang Denk wd at denx.de
Tue Jan 24 18:32:16 CET 2006

In message <43D655B2.6070204 at esd-electronics.com> you wrote:
> I ran into trouble when booting huge compressed images via bootm.
> do_bootm uses a fixed maximum size for the uncompressed data of 0x400000 
> bytes. That's not enough for our images (about uncompressed 9MB VxWorks 
> image).

That's a built-in reminder that  the  time  has  come  to  port  your
applications to Linux :-)

> Is there any reason for the 4MB limiting? I'd like to post a patch that 

As usual: hysteric reasons. There was a  time  when  nobody  imagined
that  a  Linux  kernel image would exceed that size (and at this time
Linux was all what we were concerned about). Given the size explosion
with 2.6 I fear that the 4 MB might not be enough for Linux any  more
soon, too :-(

> a) just increase the unc_len variable to e.g. 16MB
> b) add a define with default to board config file 
> (CONFIG_MAX_BOOTM_UNC_LEN). When not defined in config file, 0x400000 is 
> used
> c) set unc_len to mem size :-) So user must know what he is doing.
> What do you like best?

Looking at the gunzip() code I'm not sure we need this at all.

> BTW: When the uncompressed data is more than the unc_len limit no error 
> is reported. The uncompressed data is just truncated leading to 
> corrupted uncompressed data. Should that be fixed, too?

Maybe we should just get  rid  of  this  and  assume  that  there  is
sufficient space to uncompress the image.

Best regards,

Wolfgang Denk

Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Egotist: A person of low taste, more interested in  himself  than  in
me.                                                  - Ambrose Bierce

More information about the U-Boot mailing list