aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJan Kiszka2022-02-28 17:06:20 +0100
committerSimon Glass2022-03-18 19:24:24 -0600
commitb210661c8661ac843127a01fd0100ffceffb81d7 (patch)
tree2dea1fc75da420029bacb4cad72d3758a9a39d15 /tools
parent7aa288ef5ca45c38336f65d8ba2f62de9f984201 (diff)
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 <jan.kiszka@siemens.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rw-r--r--tools/binman/etype/fit.py4
-rw-r--r--tools/binman/ftest.py1
-rw-r--r--tools/binman/test/170_fit_fdt.dts3
3 files changed, 8 insertions, 0 deletions
diff --git a/tools/binman/etype/fit.py b/tools/binman/etype/fit.py
index 2d4c5f65451..0ae696f9c25 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 8d41ab67c50..92d9dc0df92 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 99d710c57e9..0197ffd1597 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";
+ };
};
};