[PATCH 06/25] binman: Use 'files-compress' to set compression for files
Alper Nebi Yasak
alpernebiyasak at gmail.com
Mon Oct 19 21:01:39 CEST 2020
On 19/10/2020 05:41, Simon Glass wrote:
> At present we use 'compress' as the property to set the compression of
> a 'files' entry. But this conflicts with the same property for entries,
> of which Entry_section is a subclass.
>
> Strictly speaking, since Entry_files is in fact a subclass of
> Entry_section, the files can be compressed individually but also the
> section (that contains all the files) can itself be compressed. With this
> change, it is possible to express that.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> tools/binman/README.entries | 15 ++++++++++++++-
> tools/binman/etype/files.py | 7 ++++---
> tools/binman/etype/section.py | 4 ++--
> tools/binman/test/085_files_compress.dts | 2 +-
> 4 files changed, 21 insertions(+), 7 deletions(-)
>
> diff --git a/tools/binman/README.entries b/tools/binman/README.entries
> index c1d436563e8..a3a314753c5 100644
> --- a/tools/binman/README.entries
> +++ b/tools/binman/README.entries
> @@ -299,7 +299,7 @@ Entry: files: Entry containing a set of files
>
> Properties / Entry arguments:
> - pattern: Filename pattern to match the files to include
> - - compress: Compression algorithm to use:
> + - files-compress: Compression algorithm to use:
> none: No compression
> lz4: Use lz4 compression (via 'lz4' command-line utility)
>
> @@ -406,6 +406,10 @@ The 'default' property, if present, will be automatically set to the name
> if of configuration whose devicetree matches the 'default-dt' entry
> argument, e.g. with '-a default-dt=sun50i-a64-pine64-lts'.
>
> +Available substitutions for '@' property values are:
> +
> + DEFAULT-SEQ Sequence number of the default fdt,as provided by the
> + 'default-dt' entry argument
I think this and the next hunk slipped in because you're regenerating a
stale file here, wanted to point it out in case you'd prefer them to be
in an independent commit.
> Properties (in the 'fit' node itself):
> fit,external-offset: Indicates that the contents of the FIT are external
> @@ -878,6 +882,15 @@ relocated to any address for execution.
>
>
>
> +Entry: u-boot-env: An entry which contains a U-Boot environment
> +---------------------------------------------------------------
> +
> +Properties / Entry arguments:
> + - filename: File containing the environment text, with each line in the
> + form var=value
> +
> +
> +
Same as above.
> Entry: u-boot-img: U-Boot legacy image
> --------------------------------------
>
> diff --git a/tools/binman/etype/files.py b/tools/binman/etype/files.py
> index 9adb3afeb14..ce3832e3cdd 100644
> --- a/tools/binman/etype/files.py
> +++ b/tools/binman/etype/files.py
> @@ -19,7 +19,7 @@ class Entry_files(Entry_section):
>
> Properties / Entry arguments:
> - pattern: Filename pattern to match the files to include
> - - compress: Compression algorithm to use:
> + - files-compress: Compression algorithm to use:
> none: No compression
> lz4: Use lz4 compression (via 'lz4' command-line utility)
>
> @@ -36,7 +36,8 @@ class Entry_files(Entry_section):
> self._pattern = fdt_util.GetString(self._node, 'pattern')
> if not self._pattern:
> self.Raise("Missing 'pattern' property")
> - self._compress = fdt_util.GetString(self._node, 'compress', 'none')
> + self._files_compress = fdt_util.GetString(self._node, 'files-compress',
> + 'none')
> self._require_matches = fdt_util.GetBool(self._node,
> 'require-matches')
>
> @@ -53,7 +54,7 @@ class Entry_files(Entry_section):
> subnode = state.AddSubnode(self._node, name)
> state.AddString(subnode, 'type', 'blob')
> state.AddString(subnode, 'filename', fname)
> - state.AddString(subnode, 'compress', self._compress)
> + state.AddString(subnode, 'compress', self._files_compress)
>
> # Read entries again, now that we have some
> self._ReadEntries()
> diff --git a/tools/binman/etype/section.py b/tools/binman/etype/section.py
> index a3e37c33c1b..9222042f5d8 100644
> --- a/tools/binman/etype/section.py
> +++ b/tools/binman/etype/section.py
> @@ -160,7 +160,7 @@ class Entry_section(Entry):
> section_data += tools.GetBytes(self._pad_byte, pad)
> self.Detail('GetData: %d entries, total size %#x' %
> (len(self._entries), len(section_data)))
> - return section_data
> + return self.CompressData(section_data)
>
> def GetOffsets(self):
> """Handle entries that want to set the offset/size of other entries
> @@ -414,7 +414,7 @@ class Entry_section(Entry):
> return None
>
> def GetEntryContents(self):
> - """Call ObtainContents() for the section
> + """Call ObtainContents() for each entry in the section
> """
> todo = self._entries.values()
> for passnum in range(3):
> diff --git a/tools/binman/test/085_files_compress.dts b/tools/binman/test/085_files_compress.dts
> index 847b398bf2b..5aeead2e6e9 100644
> --- a/tools/binman/test/085_files_compress.dts
> +++ b/tools/binman/test/085_files_compress.dts
> @@ -5,7 +5,7 @@
> binman {
> files {
> pattern = "files/*.dat";
> - compress = "lz4";
> + files-compress = "lz4";
> };
> };
> };
>
More information about the U-Boot
mailing list