tools: binman: control.py: Delete template nodes after parsing
Dynamically going through the subnode array and deleting leads to templates being skipped from deletion when templates are consecutive in the subnode list. Prevent this from happening by first parsing the DT and then deleting the nodes. Add a testcase as well for this cornercase. Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
This commit is contained in:

committed by
Tom Rini

parent
0e1fc465fe
commit
42ce9ed7ff
@@ -522,8 +522,12 @@ def _ProcessTemplates(parent):
|
||||
def _RemoveTemplates(parent):
|
||||
"""Remove any templates in the binman description
|
||||
"""
|
||||
del_nodes = []
|
||||
for node in parent.subnodes:
|
||||
if node.name.startswith('template'):
|
||||
del_nodes.append(node)
|
||||
|
||||
for node in del_nodes:
|
||||
node.Delete()
|
||||
|
||||
def PrepareImagesAndDtbs(dtb_fname, select_images, update_fdt, use_expanded, indir):
|
||||
|
@@ -7990,5 +7990,12 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
|
||||
"""Test an image with an FIT with multiple FDT images using NAME"""
|
||||
self.CheckFitFdt('345_fit_fdt_name.dts', use_seq_num=False)
|
||||
|
||||
def testRemoveTemplate(self):
|
||||
"""Test whether template is removed"""
|
||||
TestFunctional._MakeInputFile('my-blob.bin', b'blob')
|
||||
TestFunctional._MakeInputFile('my-blob2.bin', b'other')
|
||||
self._DoTestFile('346_remove_template.dts',
|
||||
force_missing_bintools='openssl',)
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
49
tools/binman/test/346_remove_template.dts
Normal file
49
tools/binman/test/346_remove_template.dts
Normal file
@@ -0,0 +1,49 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
/dts-v1/;
|
||||
/ {
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
|
||||
template_1: template-1 {
|
||||
section {
|
||||
phandle1: my-blob.bin {
|
||||
filename = "my-blob.bin";
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
};
|
||||
template_2: template-2 {
|
||||
section {
|
||||
ti-secure {
|
||||
content = <&phandle2>;
|
||||
keyfile = "key.pem";
|
||||
};
|
||||
phandle2: my-blob.bin {
|
||||
filename = "my-blob.bin";
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
};
|
||||
template_3: template-3 {
|
||||
section {
|
||||
phandle3: my-blob.bin {
|
||||
filename = "my-blob.bin";
|
||||
type = "blob-ext";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
file1 {
|
||||
insert-template = <&template_1>;
|
||||
};
|
||||
|
||||
file2 {
|
||||
insert-template = <&template_2>;
|
||||
};
|
||||
|
||||
file3 {
|
||||
insert-template = <&template_3>;
|
||||
};
|
||||
};
|
||||
};
|
Reference in New Issue
Block a user