[U-Boot] supported image compression types?

Tom Rini trini at konsulko.com
Mon Jul 18 17:52:47 CEST 2016


On Mon, Jul 18, 2016 at 06:16:15AM -0400, Robert P. J. Day wrote:

> 
>   reading u-boot wiki page on image formats:
> 
> http://www.denx.de/wiki/view/DULG/UBootImages
> 
> wherein one reads:
> 
> "Compression Type (Provisions for uncompressed, gzip, bzip2, lzo;
> Currently supported: uncompressed, gzip, bzip2, lzo)."
> 
> clearly, that wiki page list is incomplete, but there's more here.
> 
>   first, the full list appears to live in include/image.h:
> 
>   /*
>    * Compression Types
>    */
>   enum {
>         IH_COMP_NONE            = 0,    /*  No   Compression Used       */
>         IH_COMP_GZIP,                   /* gzip  Compression Used       */
>         IH_COMP_BZIP2,                  /* bzip2 Compression Used       */
>         IH_COMP_LZMA,                   /* lzma  Compression Used       */
>         IH_COMP_LZO,                    /* lzo   Compression Used       */
>         IH_COMP_LZ4,                    /* lz4   Compression Used       */
> 
>         IH_COMP_COUNT,
>   };
> 
> but how those types are selected seems a bit inconsistent.
> 
>   first, gzip appears to be automatic(?) for everyone, from
> include/config_defaults.h:
> 
>     #define CONFIG_GZIP 1
> 
> however, of all 5 types of compression, only one has a Kconfig file
> entry, LZ4, in lib/Kconfig:
> 
>   menu "Compression Support"
> 
>   config LZ4
>         bool "Enable LZ4 decompression support"
>         help
>           If this option is set, support for LZ4 compressed images
>           is included. The LZ4 algorithm can run in-place as long as the
>           compressed image is loaded to the end of the output buffer, and
>           trades lower compression ratios for much faster decompression.
> 
>           NOTE: This implements the release version of the LZ4 frame
>           format as generated by default by the 'lz4' command line tool.
>           This is not the same as the outdated, less efficient legacy
>           frame format currently (2015) implemented in the Linux kernel
>           (generated by 'lz4 -l'). The two formats are incompatible.
> 
>   endmenu
> 
> for consistency, isn't it standard for any CONFIG_* settings to be
> defined in Kconfig files? the other compression types seem to be
> selectable simply by manually setting them in config files, as in:
> 
>   $ grep -r "define CONFIG_LZMA" *
>   include/configs/bfin_adi_common.h:#define CONFIG_LZMA
>   include/configs/VCMA9.h:#define CONFIG_LZMA
>   include/configs/ap143.h:#define CONFIG_LZMA
>   include/configs/qemu-mips.h:#define CONFIG_LZMA
>   include/configs/iconnect.h:#define CONFIG_LZMA
>   include/configs/ap121.h:#define CONFIG_LZMA
>   include/configs/nsa310s.h:#define CONFIG_LZMA
>   include/configs/mv-plug-common.h:#define CONFIG_LZMA
>   include/configs/ib62x0.h:#define CONFIG_LZMA
>   include/configs/qemu-mips64.h:#define CONFIG_LZMA
>   include/configs/tplink_wdr4300.h:#define CONFIG_LZMA
>   include/configs/sandbox.h:#define CONFIG_LZMA
>   include/configs/smdk2410.h:#define CONFIG_LZMA
>   $
> 
> should not all compression types get their own entries in lib/Kconfig?
> anyway, i'll at least update the wiki page.

Yes, these should be converted over to Kconfig.  A patch sometime after
say -rc2 (when all new boards really really better be in..) would be
good :)  Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160718/33f38005/attachment.sig>


More information about the U-Boot mailing list