diff --git a/tools/binman/etype/fit.py b/tools/binman/etype/fit.py index f0e3fd1a09..0e9d81b9e8 100644 --- a/tools/binman/etype/fit.py +++ b/tools/binman/etype/fit.py @@ -655,8 +655,7 @@ class Entry_fit(Entry_section): for subnode in node.subnodes: subnode_path = f'{rel_path}/{subnode.name}' - if has_images and not (subnode.name.startswith('hash') or - subnode.name.startswith('signature')): + if has_images and not self.IsSpecialSubnode(subnode): # This subnode is a content node not meant to appear in # the FIT (e.g. "/images/kernel/u-boot"), so don't call # fsw.add_node() or _add_node() for it. diff --git a/tools/binman/etype/section.py b/tools/binman/etype/section.py index 28f04cb84a..a22be7ec77 100644 --- a/tools/binman/etype/section.py +++ b/tools/binman/etype/section.py @@ -169,6 +169,17 @@ class Entry_section(Entry): self._ignore_missing = False self._filename = None + def IsSpecialSubnode(self, node): + """Check if a node is a special one used by the section itself + + Some notes are used for hashing / signatures and do not add entries to + the actual section. + + Returns: + bool: True if the node is a special one, else False + """ + return node.name.startswith('hash') or node.name.startswith('signature') + def ReadNode(self): """Read properties from the section node""" super().ReadNode() @@ -195,7 +206,7 @@ class Entry_section(Entry): def ReadEntries(self): for node in self._node.subnodes: - if node.name.startswith('hash') or node.name.startswith('signature'): + if self.IsSpecialSubnode(node): continue entry = Entry.Create(self, node, expanded=self.GetImage().use_expanded,