On 10.07.23 18:00, Simon Glass wrote: > Hi Jan, > > On Sun, 9 Jul 2023 at 23:21, Jan Kiszka <jan.kis...@siemens.com> wrote: >> >> On 10.07.23 04:40, Simon Glass wrote: >>> This series converts the mkimage entry type to be a section, i.e. based on >>> the entry_Section class. This makes it more consistent in its behaviour, >>> e.g. allowing symbol writing and expanded entries. >>> >>> A simple templating feature is also introduced, to reduce duplication >>> when a set of entries must be used in multiple images. >>> >>> In this version the nodes from the template are placed before any other >>> nodes, meaning that the template sets the node order. This seems more >>> consistent than other mechanisms. >>> >>> Changes in v3: >>> - Add new patch for elf to return number of written symbols >>> - Add new patch with more detail on how ObtainContents() works >>> - Fix up some tests which now need SPL and TPL >>> - Avoid calling ObtainContents() when not needed >>> - Fix 'specific' typo >>> - Add a new devicetree file especially for node copying >>> - Correct logic for merging nodes in order >>> - Tidy up some comments >>> - Adjust to use the new example file >>> - Drop duplicate dts-v1 header >>> - Add new test case for templating in a FIT >>> - Add new patch to support writing symbols inside a mkimage image >>> >>> Changes in v2: >>> - Drop now-unnecessary methods in mkimage etype >>> - Correct ordering of template nodes >>> - Fix 'preseverd' and 'inserter' typos >>> >>> Marek Vasut (1): >>> binman: Convert mkimage to Entry_section >>> >>> Simon Glass (18): >>> binman: Correct coverage gap in control >>> binman: Init align_default in entry_Section >>> binman: Use GetEntries() to obtain section contents >>> binman: Read _multiple_data_files in the correct place >>> binman: Allow disabling symbol writing >>> stm32mp15: Avoid writing symbols in SPL >>> binman: Update elf to return number of written symbols >>> binman: Add more detail on how ObtainContents() works >>> binman: Provide a way to specify the fdt-list directly >>> binman: Drop __bss_size variable in bss_data.c >>> binman: Correct handling of zero bss size >>> dtoc: Support copying the contents of a node into another >>> dtoc: Allow inserting a list of nodes into another >>> binman: Support simple templates >>> binman: Support templating with multiple images >>> binman: Add a test for templating in a FIT >>> binman: Support templates at any level >>> binman: Support writing symbols inside a mkimage image >>> >>> arch/arm/dts/stm32mp15-u-boot.dtsi | 1 + >>> tools/binman/binman.rst | 89 +++++++++ >>> tools/binman/control.py | 34 +++- >>> tools/binman/elf.py | 13 +- >>> tools/binman/elf_test.py | 13 +- >>> tools/binman/entries.rst | 6 + >>> tools/binman/entry.py | 11 +- >>> tools/binman/etype/blob_phase.py | 5 + >>> tools/binman/etype/fit.py | 9 + >>> tools/binman/etype/mkimage.py | 110 ++++++++--- >>> tools/binman/etype/section.py | 54 +++-- >>> tools/binman/etype/u_boot_spl_bss_pad.py | 2 +- >>> tools/binman/etype/u_boot_tpl_bss_pad.py | 2 +- >>> tools/binman/etype/u_boot_vpl_bss_pad.py | 2 +- >>> tools/binman/ftest.py | 218 ++++++++++++++++++++- >>> tools/binman/test/282_symbols_disable.dts | 25 +++ >>> tools/binman/test/283_mkimage_special.dts | 24 +++ >>> tools/binman/test/284_fit_fdt_list.dts | 58 ++++++ >>> tools/binman/test/285_spl_expand.dts | 13 ++ >>> tools/binman/test/286_template.dts | 42 ++++ >>> tools/binman/test/287_template_multi.dts | 27 +++ >>> tools/binman/test/288_template_fit.dts | 37 ++++ >>> tools/binman/test/289_template_section.dts | 52 +++++ >>> tools/binman/test/290_mkimage_sym.dts | 27 +++ >>> tools/binman/test/Makefile | 5 +- >>> tools/binman/test/bss_data.c | 3 +- >>> tools/binman/test/bss_data_zero.c | 16 ++ >>> tools/binman/test/bss_data_zero.lds | 15 ++ >>> tools/binman/test/embed_data.lds | 1 + >>> tools/dtoc/fdt.py | 122 +++++++++++- >>> tools/dtoc/test/dtoc_test_copy.dts | 86 ++++++++ >>> tools/dtoc/test_fdt.py | 93 +++++++++ >>> 32 files changed, 1147 insertions(+), 68 deletions(-) >>> create mode 100644 tools/binman/test/282_symbols_disable.dts >>> create mode 100644 tools/binman/test/283_mkimage_special.dts >>> create mode 100644 tools/binman/test/284_fit_fdt_list.dts >>> create mode 100644 tools/binman/test/285_spl_expand.dts >>> create mode 100644 tools/binman/test/286_template.dts >>> create mode 100644 tools/binman/test/287_template_multi.dts >>> create mode 100644 tools/binman/test/288_template_fit.dts >>> create mode 100644 tools/binman/test/289_template_section.dts >>> create mode 100644 tools/binman/test/290_mkimage_sym.dts >>> create mode 100644 tools/binman/test/bss_data_zero.c >>> create mode 100644 tools/binman/test/bss_data_zero.lds >>> create mode 100644 tools/dtoc/test/dtoc_test_copy.dts >>> >> >> Works much better! >> >> What does not work yet: >> >> /dts-v1/; >> >> / { >> binman: binman { >> multiple-images; >> >> my_template: template { >> size = <0x100>; >> pad-byte = <0xff>; >> >> blob@0 { >> filename = "my-blob.bin"; >> }; >> }; >> >> image { >> filename = "my-image.bin"; >> insert-template = <&my_template>; >> }; >> }; >> }; >> >> The properties size and pad-byte get lost in this case. > > Yes it does not copy the properties, only the subnodes. It could > certainly be implemented...is that needed?
I can duplicate the entries into the images, works but not nice. Or is it possible to pull them as defaults onto the binman level? Jan -- Siemens AG, Technology Competence Center Embedded Linux