From: Jan Kiszka Date: Mon, 28 Feb 2022 16:06:20 +0000 (+0100) Subject: binman: Include also subnodes in generator nodes X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=b210661c8661ac843127a01fd0100ffceffb81d7;p=u-boot.git binman: Include also subnodes in generator nodes This allows to prefill fdt and config nodes with hash and signature subnodes. It's just important to place the child nodes last so that hashes do not come before the data - would be disliked by mkimage. Signed-off-by: Jan Kiszka Reviewed-by: Simon Glass --- diff --git a/tools/binman/etype/fit.py b/tools/binman/etype/fit.py index 2d4c5f6545..0ae696f9c2 100644 --- a/tools/binman/etype/fit.py +++ b/tools/binman/etype/fit.py @@ -269,6 +269,10 @@ class Entry_fit(Entry_section): # Add data for 'images' nodes (but not 'config') if depth == 1 and in_images: fsw.property('data', tools.read_file(fname)) + + for subnode in node.subnodes: + with fsw.add_node(subnode.name): + _add_node(node, depth + 1, subnode) else: if self._fdts is None: if self._fit_list_prop: diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index 8d41ab67c5..92d9dc0df9 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -4029,6 +4029,7 @@ class TestFunctional(unittest.TestCase): self.assertEqual(expected_data, fnode.props['data'].bytes) self.assertEqual('fdt-test-fdt%d.dtb' % seq, fnode.props['description'].value) + self.assertEqual(fnode.subnodes[0].name, 'hash') def _CheckConfig(seq, expected_data): """Check the configuration nodes diff --git a/tools/binman/test/170_fit_fdt.dts b/tools/binman/test/170_fit_fdt.dts index 99d710c57e..0197ffd159 100644 --- a/tools/binman/test/170_fit_fdt.dts +++ b/tools/binman/test/170_fit_fdt.dts @@ -36,6 +36,9 @@ description = "fdt-NAME.dtb"; type = "flat_dt"; compression = "none"; + hash { + algo = "sha256"; + }; }; };