binman: Support templates at any level
Allow templates to be used inside a section, not just in the top-level
/binman node.
Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/tools/binman/control.py b/tools/binman/control.py
index f92c152..25e6681 100644
--- a/tools/binman/control.py
+++ b/tools/binman/control.py
@@ -493,8 +493,8 @@
Processing involves copying each subnode of the template node into the
target node.
- For now this is not done recursively, so templates must be at the top level
- of the binman image.
+ This is done recursively, so templates can be at any level of the binman
+ image, e.g. inside a section.
See 'Templates' in the Binman documnentation for details.
"""
@@ -502,6 +502,7 @@
tmpl = fdt_util.GetPhandleList(node, 'insert-template')
if tmpl:
node.copy_subnodes_from_phandles(tmpl)
+ _ProcessTemplates(node)
def PrepareImagesAndDtbs(dtb_fname, select_images, update_fdt, use_expanded):
"""Prepare the images to be processed and select the device tree