[PATCH v3] binman: Include also subnodes in generator nodes

Jan Kiszka jan.kiszka at siemens.com
Mon Feb 28 17:06:20 CET 2022


From: Jan Kiszka <jan.kiszka at siemens.com>

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 at siemens.com>
---

Rebased over "binman: rockchip: Migrate from rockchip SPL_FIT_GENERATOR 
script"

 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 63d552ed192..a31498d5847 100644
--- a/tools/binman/etype/fit.py
+++ b/tools/binman/etype/fit.py
@@ -532,6 +532,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 ec8e3d4d91b..d296bf1a137 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -4037,6 +4037,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";
+					};
 				};
 			};
 
-- 
2.34.1


More information about the U-Boot mailing list