From b210661c8661ac843127a01fd0100ffceffb81d7 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Mon, 28 Feb 2022 17:06:20 +0100 Subject: [PATCH] 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 --- tools/binman/etype/fit.py | 4 ++++ tools/binman/ftest.py | 1 + tools/binman/test/170_fit_fdt.dts | 3 +++ 3 files changed, 8 insertions(+) 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"; + }; }; }; -- 2.39.5