A recent U-Boot discussion[1] yielded a suggestion to allow an entry to be positioned by an ELF symbol.
A similar need has come up in ChromiumOS' use of Zephyr[2], this time with an additional offset added in. This series adds support for this along with a few other things: - Generic support for updating ELF symbols (such that it can be used by Zephyr) - Support for 'null' entries which have no contents, but do appear in the fdtmap or FMAP - Support for overlapping entries [1] https://lore.kernel.org/all/20221230191238.6rcnia6rzoqcezx6@pali/ [2] https://issuetracker.google.com/264910598 Simon Glass (8): binman: Add a test for an inner section with a size binman: Clarify use of False when obtaining data binman: Add a null entry binman: Add a function to check for special section nodes binman: Support overlapping entries binman: Provide general support for updating ELF symbols dtoc: Add a way to read a phandle with params binman: Support positioning an entry by and ELF symbol tools/binman/binman.rst | 41 +++++++- tools/binman/elf.py | 31 +++++- tools/binman/entries.rst | 13 +++ tools/binman/entry.py | 33 +++++- tools/binman/etype/blob.py | 6 ++ tools/binman/etype/fit.py | 3 +- tools/binman/etype/null.py | 25 +++++ tools/binman/etype/section.py | 51 +++++++-- tools/binman/etype/u_boot_spl.py | 1 - tools/binman/ftest.py | 121 ++++++++++++++++++++++ tools/binman/test/267_section_inner.dts | 16 +++ tools/binman/test/268_null.dts | 19 ++++ tools/binman/test/269_overlap.dts | 21 ++++ tools/binman/test/270_overlap_null.dts | 24 +++++ tools/binman/test/271_overlap_bad.dts | 21 ++++ tools/binman/test/272_overlap_no_size.dts | 19 ++++ tools/binman/test/273_blob_symbol.dts | 24 +++++ tools/binman/test/274_offset_from_elf.dts | 30 ++++++ tools/binman/test/Makefile | 9 +- tools/binman/test/blob_syms.c | 20 ++++ tools/binman/test/blob_syms.lds | 30 ++++++ tools/dtoc/fdt_util.py | 28 +++++ tools/dtoc/test/dtoc_test_phandle.dts | 1 + tools/dtoc/test_fdt.py | 11 ++ 24 files changed, 577 insertions(+), 21 deletions(-) create mode 100644 tools/binman/etype/null.py create mode 100644 tools/binman/test/267_section_inner.dts create mode 100644 tools/binman/test/268_null.dts create mode 100644 tools/binman/test/269_overlap.dts create mode 100644 tools/binman/test/270_overlap_null.dts create mode 100644 tools/binman/test/271_overlap_bad.dts create mode 100644 tools/binman/test/272_overlap_no_size.dts create mode 100644 tools/binman/test/273_blob_symbol.dts create mode 100644 tools/binman/test/274_offset_from_elf.dts create mode 100644 tools/binman/test/blob_syms.c create mode 100644 tools/binman/test/blob_syms.lds -- 2.39.0.314.g84b9a713c41-goog