At present rockchip 64-bit boards make use of a FIT-generator script written in Python. The script supports splitting an ELF file into several 'loadable' nodes in the FIT. Binman does not current support this feature.
This series adds binman support for ELF splitting. This works by adding a new 'fit,operation' property to the FIT subnodes, allowing this new way of generating nodes. Some other fixes and improvements are needed along the way. A new, common binman description is added for 64-bit boards which includes the required u-boot.itb file. The existing script is removed, so that only a few zynq boards are now using a SPL_FIT_GENERATOR script: avnet_ultrazedev_cc_v1_0_ultrazedev_som_v1_0 xilinx_zynqmp_virt Migration of those is hopefully in progress. Note however that tools/k3_fit_atf.sh remains, used by a few boards that enable CONFIG_TI_SECURE_DEVICE so this series is copied there too: am335x_hs_evm am335x_hs_evm_uart am43xx_hs_evm am57xx_hs_evm am57xx_hs_evm_usb am65x_hs_evm_a53 am65x_hs_evm_r5 dra7xx_hs_evm dra7xx_hs_evm_usb j721e_hs_evm_a72 j721e_hs_evm_r5 k2e_hs_evm k2g_hs_evm k2hk_hs_evm k2l_hs_evm Ivan Mikhaylov has sent a patch to help with these, but I need to take a look at the testing side. In any case they should really be using binman for the image generation. This series also includes some moveconfig improvements that were used to create board lists in this cover letter. Simon Glass (24): moveconfig: Show the config name rather than the defconfig moveconfig: Allow regex matches when finding combinations spl: x86: Correct the binman symbols for SPL spl: Allow disabling binman symbols in SPL rockchip: evb-rk3288: Drop raw-image support dtoc: Support adding a string list to a device tree dtoc: Support deleting a node dtoc: Allow deleting nodes and adding them in the same sync dtoc: Support reading a list of arguments binman: Update docs to indicate mkimage is supported elf: Add a way to read segment information from an ELF file WIP: binman: Add support for OP-TEE binman: Add to the TODO binman: Support a list of strings with the mkimage etype binman: Add a ELF test file with disjoint text sections binman: Move entry-data collection into a Entry method binman: fit: Refactor to reduce function size binman: Tidy up the docs a little with fit binman: Allow different operations in FIT generator nodes binman: Support splitting an ELF file into multiple nodes rockchip: Include binman script in 64-bit boards rockchip: Support building the all output files in binman rockchip: Convert all boards to use binman rockchip: Drop the FIT generator script Makefile | 43 +- arch/arm/dts/px30-u-boot.dtsi | 2 + arch/arm/dts/rk3308-u-boot.dtsi | 2 + arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi | 2 + arch/arm/dts/rk3328-u-boot.dtsi | 2 + arch/arm/dts/rk3368-u-boot.dtsi | 1 + arch/arm/dts/rk3399-u-boot.dtsi | 5 +- arch/arm/dts/rk3568-u-boot.dtsi | 2 + arch/arm/dts/rockchip-u-boot.dtsi | 84 +++- arch/arm/mach-rockchip/Kconfig | 6 + arch/arm/mach-rockchip/make_fit_atf.py | 240 --------- arch/x86/dts/u-boot.dtsi | 2 +- boot/Kconfig | 3 +- common/spl/Kconfig | 24 + common/spl/spl.c | 12 +- configs/evb-rk3288_defconfig | 1 + include/spl.h | 4 +- tools/binman/binman.rst | 98 +++- tools/binman/elf.py | 37 ++ tools/binman/elf_test.py | 31 +- tools/binman/entries.rst | 260 +++++++++- tools/binman/entry.py | 28 ++ tools/binman/etype/fit.py | 490 ++++++++++++++++--- tools/binman/etype/mkimage.py | 27 +- tools/binman/etype/op_tee.py | 23 + tools/binman/ftest.py | 123 +++++ tools/binman/missing-blob-help | 4 + tools/binman/test/220_fit_bad_oper.dts | 27 + tools/binman/test/221_fit_split_elf.dts | 67 +++ tools/binman/test/222_fit_bad_dir.dts | 9 + tools/binman/test/223_fit_bad_dir_config.dts | 9 + tools/binman/test/Makefile | 6 +- tools/binman/test/elf_sections.c | 20 + tools/binman/test/elf_sections.lds | 31 ++ tools/dtoc/fdt.py | 37 ++ tools/dtoc/fdt_util.py | 12 + tools/dtoc/test/dtoc_test_simple.dts | 1 + tools/dtoc/test_fdt.py | 43 ++ tools/moveconfig.py | 39 +- 39 files changed, 1450 insertions(+), 407 deletions(-) delete mode 100755 arch/arm/mach-rockchip/make_fit_atf.py create mode 100644 tools/binman/etype/op_tee.py create mode 100644 tools/binman/test/220_fit_bad_oper.dts create mode 100644 tools/binman/test/221_fit_split_elf.dts create mode 100644 tools/binman/test/222_fit_bad_dir.dts create mode 100644 tools/binman/test/223_fit_bad_dir_config.dts create mode 100644 tools/binman/test/elf_sections.c create mode 100644 tools/binman/test/elf_sections.lds -- 2.35.0.263.gb82422642f-goog