
On 07.07.23 14:40, Simon Glass wrote:
Allow a template to appear in the top level description when using multiple images.
Signed-off-by: Simon Glass sjg@chromium.org
tools/binman/control.py | 5 ++-- tools/binman/ftest.py | 12 ++++++++++ tools/binman/test/287_template_multi.dts | 29 ++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 tools/binman/test/287_template_multi.dts
diff --git a/tools/binman/control.py b/tools/binman/control.py index 0f98e9904fb1..b334fbc8ac8f 100644 --- a/tools/binman/control.py +++ b/tools/binman/control.py @@ -57,8 +57,9 @@ def _ReadImageDesc(binman_node, use_expanded): images = OrderedDict() if 'multiple-images' in binman_node.props: for node in binman_node.subnodes:
images[node.name] = Image(node.name, node,
use_expanded=use_expanded)
if 'template' not in node.name:
images[node.name] = Image(node.name, node,
else: images['image'] = Image('image', binman_node, use_expanded=use_expanded) return imagesuse_expanded=use_expanded)
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index 389d3906371a..c783424c91da 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -6771,6 +6771,18 @@ fdt fdtmap Extract the devicetree blob from the fdtmap second = U_BOOT_DATA + b'#' + VGA_DATA + U_BOOT_DTB_DATA self.assertEqual(U_BOOT_IMG_DATA + first + second, data)
- def testEntryTemplateBlobMulti(self):
"""Test using a template with 'multiple-images' enabled"""
TestFunctional._MakeInputFile('my-blob.bin', b'blob')
TestFunctional._MakeInputFile('my-blob2.bin', b'other')
retcode = self._DoTestFile('287_template_multi.dts')
self.assertEqual(0, retcode)
image = control.images['image']
image_fname = tools.get_output_filename('my-image.bin')
data = tools.read_file(image_fname)
self.assertEqual(b'blob@@@@other', data)
if __name__ == "__main__": unittest.main() diff --git a/tools/binman/test/287_template_multi.dts b/tools/binman/test/287_template_multi.dts new file mode 100644 index 000000000000..15bd8701c671 --- /dev/null +++ b/tools/binman/test/287_template_multi.dts @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-2.0+
+/dts-v1/;
+/dts-v1/;
Duplicate.
+/ {
- binman: binman {
multiple-images;
my_template: template {
blob-ext@0 {
filename = "my-blob.bin";
offset = <0>;
};
blob-ext@8 {
offset = <8>;
};
};
image {
pad-byte = <0x40>;
filename = "my-image.bin";
insert-template = <&my_template>;
blob-ext@8 {
filename = "my-blob2.bin";
};
};
- };
+};
For the sake of context:
echo 1234 > my-blob.bin echo 5678 > my-blob2.bin dtc tools/binman/test/287_template_multi.dts -o binman-test.dtb tools/binman/binman build -d binman-test.dtb -O .
binman: Node '/binman/image/blob-ext@0': Offset 0x0 (0) overlaps with previous entry '/binman/image/blob-ext@8' ending at 0xd (13)
Jan