All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 00/13] binman: rockchip: Migrate from rockchip SPL_FIT_GENERATOR script
@ 2022-12-21 23:07 Simon Glass
  2022-12-21 23:07 ` [PATCH v8 01/13] binman: Allow writing section contents to a file Simon Glass
                   ` (12 more replies)
  0 siblings, 13 replies; 33+ messages in thread
From: Simon Glass @ 2022-12-21 23:07 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Tom Rini, huang lin, Jeffy Chen, Simon Glass, Kever Yang,
	Philipp Tomsich, Ivan Mikhaylov, Quentin Schulz, Roger Quadros,
	Philippe Reynes, Alper Nebi Yasak, Jerome Forissier, Peter Geis

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.

It also provides support for optional entries, by allowing them to be
marked absent when the contents are obtained.

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 is available at u-boot-dm/fit-working

Changes in v8:
- Move support for optional external blobs into this series
- Support optional FIT images
- Make OP-TEE image optional
- Specify an entry address for U-Boot

Changes in v7:
- Correct an rST formatting error
- Correct missing test coverage

Changes in v6:
- Add new patch to update entry docs
- Update op-tee to support new v1 binary header
- Add new patch to disable USE_SPL_FIT_GENERATOR by default
- Add new patch to allow a binman entry to be marked absent

Changes in v5:
- Update commit message to mention using parts of one image in another
- Rename from 'Include binman script in 64-bit boards'
- Drop duplicate #include in rk3368-u-boot.dtsi
- Keep the name as fit for puma
- Drop redundant check for CONFIG_ROCKCHIP_SPI_IMAGE
- Drop imply of BINMAN in Kconfig (rely on ARCH_ROCKCHIP instead)
- Rename blob to fit for puma and also SPI image

Changes in v3:
- Add an offset to the FIT description
- Add support for writing sections in binman
- Rebase to master

Changes in v2:
- Rename op-tee to tee-os
- Drop use of .itb2
- Drop patches previously applied
- Add various suggestions from Alper Nebi Yasak
- Add patches to refactor binman's FIT support

Simon Glass (13):
  binman: Allow writing section contents to a file
  binman: Tidy up comment in fit _gen_node
  binman: Update entry docs
  binman: Support optional entries
  binman: Add a way to check for a valid ELF file
  binman: Support new op-tee binary format
  binman: Support optional external blobs
  rockchip: evb-rk3288: Drop raw-image support
  rockchip: Use multiple-images for rk3399
  rockchip: Support building the all output files in binman
  rockchip: Convert all boards to use binman
  rockchip: Drop the FIT generator script
  treewide: Disable USE_SPL_FIT_GENERATOR by default

 Makefile                                      |  11 +-
 arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi   |   4 +-
 arch/arm/dts/rk3399-u-boot.dtsi               |   3 +-
 arch/arm/dts/rockchip-u-boot.dtsi             |  78 ++++-
 arch/arm/mach-rockchip/make_fit_atf.py        | 267 ------------------
 boot/Kconfig                                  |   6 +-
 configs/am335x_evm_defconfig                  |   1 -
 configs/am335x_hs_evm_defconfig               |   1 -
 configs/am335x_hs_evm_uart_defconfig          |   1 -
 configs/am43xx_evm_defconfig                  |   1 -
 configs/am43xx_evm_rtconly_defconfig          |   1 -
 configs/am43xx_evm_usbhost_boot_defconfig     |   1 -
 configs/am43xx_hs_evm_defconfig               |   1 -
 configs/am57xx_evm_defconfig                  |   1 -
 configs/am57xx_hs_evm_defconfig               |   1 -
 configs/am57xx_hs_evm_usb_defconfig           |   1 -
 configs/am65x_evm_a53_defconfig               |   1 -
 configs/am65x_evm_r5_defconfig                |   1 -
 configs/am65x_hs_evm_a53_defconfig            |   1 -
 configs/am65x_hs_evm_r5_defconfig             |   1 -
 ...edev_cc_v1_0_ultrazedev_som_v1_0_defconfig |   1 +
 configs/cgtqmx8_defconfig                     |   1 -
 configs/chromebook_link64_defconfig           |   1 -
 configs/dh_imx6_defconfig                     |   1 -
 configs/display5_defconfig                    |   1 -
 configs/display5_factory_defconfig            |   1 -
 configs/dra7xx_evm_defconfig                  |   1 -
 configs/dra7xx_hs_evm_defconfig               |   1 -
 configs/dra7xx_hs_evm_usb_defconfig           |   1 -
 configs/evb-ast2600_defconfig                 |   1 -
 configs/evb-rk3229_defconfig                  |   1 -
 configs/evb-rk3288_defconfig                  |   2 +-
 configs/gwventana_emmc_defconfig              |   1 -
 configs/gwventana_gw5904_defconfig            |   1 -
 configs/gwventana_nand_defconfig              |   1 -
 configs/imx6qdl_icore_mipi_defconfig          |   1 -
 configs/imx6qdl_icore_mmc_defconfig           |   1 -
 configs/imx6qdl_icore_rqs_defconfig           |   1 -
 configs/imx8mm-cl-iot-gate-optee_defconfig    |   1 -
 configs/imx8mm-cl-iot-gate_defconfig          |   1 -
 configs/imx8mm-icore-mx8mm-ctouch2_defconfig  |   1 -
 configs/imx8mm-icore-mx8mm-edimm2.2_defconfig |   1 -
 configs/imx8mm-mx8menlo_defconfig             |   1 -
 configs/imx8mm_beacon_defconfig               |   1 -
 configs/imx8mm_data_modul_edm_sbc_defconfig   |   1 -
 configs/imx8mm_evk_defconfig                  |   1 -
 configs/imx8mm_evk_fspi_defconfig             |   1 -
 configs/imx8mm_venice_defconfig               |   1 -
 configs/imx8mn_beacon_2g_defconfig            |   1 -
 configs/imx8mn_beacon_defconfig               |   1 -
 configs/imx8mn_bsh_smm_s2_defconfig           |   1 -
 configs/imx8mn_bsh_smm_s2pro_defconfig        |   1 -
 configs/imx8mn_ddr4_evk_defconfig             |   1 -
 configs/imx8mn_evk_defconfig                  |   1 -
 configs/imx8mn_var_som_defconfig              |   1 -
 configs/imx8mn_venice_defconfig               |   1 -
 configs/imx8mp-icore-mx8mp-edimm2.2_defconfig |   1 -
 configs/imx8mp_dhcom_pdk2_defconfig           |   1 -
 configs/imx8mp_evk_defconfig                  |   1 -
 configs/imx8mp_rsb3720a1_4G_defconfig         |   1 -
 configs/imx8mp_rsb3720a1_6G_defconfig         |   1 -
 configs/imx8mp_venice_defconfig               |   1 -
 configs/imx8mq_cm_defconfig                   |   1 -
 configs/imx8mq_evk_defconfig                  |   1 -
 configs/imx8mq_phanbell_defconfig             |   1 -
 configs/imx8qm_rom7720_a1_4G_defconfig        |   1 -
 configs/iot2050_defconfig                     |   1 -
 configs/j7200_evm_a72_defconfig               |   1 -
 configs/j7200_evm_r5_defconfig                |   1 -
 configs/j7200_hs_evm_a72_defconfig            |   1 -
 configs/j7200_hs_evm_r5_defconfig             |   1 -
 configs/j721e_evm_a72_defconfig               |   1 -
 configs/j721e_evm_r5_defconfig                |   1 -
 configs/j721e_hs_evm_a72_defconfig            |   1 -
 configs/j721e_hs_evm_r5_defconfig             |   1 -
 configs/j721s2_evm_a72_defconfig              |   1 -
 configs/j721s2_evm_r5_defconfig               |   1 -
 configs/j721s2_hs_evm_a72_defconfig           |   1 -
 configs/j721s2_hs_evm_r5_defconfig            |   1 -
 configs/kontron-sl-mx6ul_defconfig            |   1 -
 configs/kontron-sl-mx8mm_defconfig            |   1 -
 configs/kontron_pitx_imx8m_defconfig          |   1 -
 configs/kontron_sl28_defconfig                |   1 -
 configs/librem5_defconfig                     |   1 -
 configs/ls1046ardb_qspi_spl_defconfig         |   1 -
 configs/mccmon6_nor_defconfig                 |   1 -
 configs/mccmon6_sd_defconfig                  |   1 -
 configs/mx6sabreauto_defconfig                |   1 -
 configs/mx6sabresd_defconfig                  |   1 -
 configs/phycore-imx8mm_defconfig              |   1 -
 configs/phycore-imx8mp_defconfig              |   1 -
 configs/pico-imx6_defconfig                   |   1 -
 configs/pico-imx8mq_defconfig                 |   1 -
 configs/qemu-x86_64_defconfig                 |   1 -
 configs/sandbox_noinst_defconfig              |   1 -
 configs/sandbox_spl_defconfig                 |   1 -
 configs/sandbox_vpl_defconfig                 |   1 -
 configs/socfpga_agilex_atf_defconfig          |   1 -
 configs/socfpga_agilex_vab_defconfig          |   1 -
 configs/socfpga_arria10_defconfig             |   1 -
 configs/socfpga_chameleonv3_defconfig         |   1 -
 configs/socfpga_n5x_atf_defconfig             |   1 -
 configs/socfpga_n5x_vab_defconfig             |   1 -
 configs/socfpga_stratix10_atf_defconfig       |   1 -
 configs/stm32mp15_dhcom_basic_defconfig       |   1 -
 configs/stm32mp15_dhcor_basic_defconfig       |   1 -
 configs/verdin-imx8mm_defconfig               |   1 -
 configs/verdin-imx8mp_defconfig               |   1 -
 configs/wandboard_defconfig                   |   1 -
 configs/xilinx_zynq_virt_defconfig            |   1 -
 configs/xilinx_zynqmp_virt_defconfig          |   1 +
 tools/binman/binman.rst                       |  36 +++
 tools/binman/control.py                       |  12 +
 tools/binman/elf.py                           |  16 ++
 tools/binman/elf_test.py                      |  10 +
 tools/binman/entries.rst                      | 206 ++++++++++++--
 tools/binman/entry.py                         |  47 ++-
 tools/binman/etype/_testing.py                |   3 +
 tools/binman/etype/blob.py                    |   2 +-
 tools/binman/etype/fit.py                     |  96 ++++---
 tools/binman/etype/mkimage.py                 |  28 +-
 tools/binman/etype/section.py                 |  42 ++-
 tools/binman/etype/tee_os.py                  |  68 ++++-
 tools/binman/ftest.py                         | 112 ++++++++
 tools/binman/image.py                         |   3 -
 tools/binman/test/261_section_fname.dts       |  29 ++
 tools/binman/test/262_absent.dts              |  20 ++
 tools/binman/test/263_tee_os_opt.dts          |  22 ++
 tools/binman/test/264_tee_os_opt_fit.dts      |  33 +++
 tools/binman/test/265_tee_os_opt_fit_bad.dts  |  40 +++
 tools/binman/test/266_blob_ext_opt.dts        |  21 ++
 131 files changed, 847 insertions(+), 474 deletions(-)
 delete mode 100755 arch/arm/mach-rockchip/make_fit_atf.py
 create mode 100644 tools/binman/test/261_section_fname.dts
 create mode 100644 tools/binman/test/262_absent.dts
 create mode 100644 tools/binman/test/263_tee_os_opt.dts
 create mode 100644 tools/binman/test/264_tee_os_opt_fit.dts
 create mode 100644 tools/binman/test/265_tee_os_opt_fit_bad.dts
 create mode 100644 tools/binman/test/266_blob_ext_opt.dts

-- 
2.39.0.314.g84b9a713c41-goog


^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2023-01-07 21:58 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-21 23:07 [PATCH v8 00/13] binman: rockchip: Migrate from rockchip SPL_FIT_GENERATOR script Simon Glass
2022-12-21 23:07 ` [PATCH v8 01/13] binman: Allow writing section contents to a file Simon Glass
2022-12-21 23:07 ` [PATCH v8 02/13] binman: Tidy up comment in fit _gen_node Simon Glass
2022-12-21 23:07 ` [PATCH v8 03/13] binman: Update entry docs Simon Glass
2023-01-02 16:19   ` Quentin Schulz
2022-12-21 23:07 ` [PATCH v8 04/13] binman: Support optional entries Simon Glass
2022-12-21 23:07 ` [PATCH v8 05/13] binman: Add a way to check for a valid ELF file Simon Glass
2023-01-02 16:26   ` Quentin Schulz
2022-12-21 23:07 ` [PATCH v8 06/13] binman: Support new op-tee binary format Simon Glass
2022-12-22 15:36   ` Jerome Forissier
2022-12-22 20:18     ` Simon Glass
2022-12-22 20:23       ` Simon Glass
2022-12-22 22:20         ` Jerome Forissier
2023-01-07 18:55           ` Simon Glass
2023-01-07 21:58             ` Jerome Forissier
2023-01-02 17:53   ` Quentin Schulz
2023-01-07 18:55     ` Simon Glass
2023-01-07 21:51       ` Jerome Forissier
2022-12-21 23:07 ` [PATCH v8 07/13] binman: Support optional external blobs Simon Glass
2022-12-21 23:07 ` [PATCH v8 08/13] rockchip: evb-rk3288: Drop raw-image support Simon Glass
2022-12-21 23:07 ` [PATCH v8 09/13] rockchip: Use multiple-images for rk3399 Simon Glass
2023-01-02 16:42   ` Quentin Schulz
2023-01-04 20:01     ` Simon Glass
2023-01-05  9:47       ` Quentin Schulz
2023-01-07  0:13         ` Simon Glass
2022-12-21 23:07 ` [PATCH v8 10/13] rockchip: Support building the all output files in binman Simon Glass
2022-12-21 23:07 ` [PATCH v8 11/13] rockchip: Convert all boards to use binman Simon Glass
2022-12-21 23:07 ` [PATCH v8 12/13] rockchip: Drop the FIT generator script Simon Glass
2022-12-21 23:07 ` [PATCH v8 13/13] treewide: Disable USE_SPL_FIT_GENERATOR by default Simon Glass
2022-12-21 23:11   ` Tom Rini
2022-12-22 17:41     ` Simon Glass
2022-12-22 17:57       ` Tom Rini
2022-12-22 19:25         ` Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.