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

Jan Kiszka jan.kiszka at siemens.com
Fri Feb 18 15:10:23 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>
---

Changes in v2:
 - local var renamed
 - added test case

 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 a56b0564f9a..981fac7f086 100644
--- a/tools/binman/etype/fit.py
+++ b/tools/binman/etype/fit.py
@@ -214,6 +214,10 @@ class Entry_fit(Entry_section):
                                 if depth == 1 and in_images:
                                     fsw.property('data',
                                                  tools.read_file(fname))
+
+                                for subsubnode in subnode.subnodes:
+                                    with fsw.add_node(subsubnode.name):
+                                        _AddNode(subnode, depth + 1, subsubnode)
                     else:
                         if self._fdts is None:
                             if self._fit_list_prop:
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 59b6d52fbe4..9de78272463 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -3915,6 +3915,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