[PATCH 00/21] Migration to using binman to generate bootloader

Simon Glass sjg at chromium.org
Fri Jan 20 20:46:06 CET 2023


Hi Neha,

On Fri, 20 Jan 2023 at 03:19, Neha Malcom Francis <n-francis at ti.com> wrote:
>
> This series aims to eliminate the use of additional custom repositories
> such as k3-image-gen (K3 Image Generation) repo that was plumbed into
> the U-Boot build flow to generate boot images for TI K3 platform devices.
> And instead, we move towards using binman that aligns better with the
> community standard build flow.
>
> This series uses binman for all K3 platforms supported on U-Boot currently;
> both HS (High Security) and GP (General Purpose) devices.
>
> Background on using k3-image-gen:
>         * TI K3 devices require a SYSFW (System Firmware) image consisting
>         of a signed system firmware image and board configuration binaries,
>         this is needed to bring up system firmware during U-Boot R5 SPL
>         startup.
>         * Board configuration data contain board-specific information
>         such as resource management, power management and security.
>
> Series intends to use binman to take over the packaging and signing for
> the R5 bootloader images tiboot3.bin (and sysfw.itb, for non-combined
> boot flow) instead of k3-image-gen.
>
> Series also packages the A72/A53 bootloader images (tispl.bin and
> u-boot.img) using ATF, OPTEE and DM (Device Manager)
>
> Neha Malcom Francis (21):
>   ti: tools: config: Add board config class to generate config binaries
>   tools: sysfw: Add script for generating configuration blobs
>   tools: binman: add ti-secure entry type
>   ti: sysfw: tiboot3: Add support for packaging sysfw.itb and
>     tiboot3.bin
>   j721e: schema: yaml: Add general schema and J721E board config files
>   j721e: dts: binman: Package tiboot3.bin, sysfw.itb, tispl.bin,
>     u-boot.img
>   j7200: yaml: Add J7200 board config files
>   j7200: dts: binman: Package tiboot3.bin, tispl.bin, u-boot.img
>   am65x: yaml: Add AM65x board config files
>   am65: dts: binman: Package tiboot3.bin, sysfw.itb, tispl.bin,
>     u-boot.img
>   config: am64x: Add board config for AM64x
>   am64x: dts: binman: Package tiboot3.bin, tispl.bin u-boot.img
>   Makefile: Add DM, SYSFW_PATH, SYSFW_HS_INNER_CERT_PATH to
>     BINMAN_INDIRS
>   j721s2: yaml: Add board config for J721S2
>   j721s2: dts: binman: Package tiboot3.bin, tispl.bin and u-boot.img
>   am62: yaml: Add board config for AM62
>   am625: dts: binman: Package tiboot3.bin, tispl.bin and u-boot.img
>   am62a: yaml: Add board config for AM62ax
>   am62a: dts: binman: Package tiboot3.bin, tispl.bin, u-boot.img
>   k3: tools: config.mk: Update makefile and remove scripts
>   doc: board: ti: Update documentation for binman flow
>
>  Makefile                                      |   17 +
>  arch/arm/dts/k3-am625-r5-sk.dts               |    1 +
>  arch/arm/dts/k3-am625-sk-binman.dtsi          |  377 ++
>  arch/arm/dts/k3-am625-sk-u-boot.dtsi          |    2 +
>  arch/arm/dts/k3-am62a-sk-binman.dtsi          |  377 ++
>  arch/arm/dts/k3-am62a7-r5-sk.dts              |    1 +
>  arch/arm/dts/k3-am62a7-sk.dts                 |    1 +
>  arch/arm/dts/k3-am642-evm-u-boot.dtsi         |    2 +
>  arch/arm/dts/k3-am642-r5-evm.dts              |    1 +
>  arch/arm/dts/k3-am64x-binman.dtsi             |  440 +++
>  arch/arm/dts/k3-am654-base-board-u-boot.dtsi  |    1 +
>  .../dts/k3-am654-r5-base-board-u-boot.dtsi    |    1 +
>  arch/arm/dts/k3-am65x-binman.dtsi             |  482 +++
>  arch/arm/dts/k3-j7200-binman.dtsi             |  377 ++
>  .../k3-j7200-common-proc-board-u-boot.dtsi    |    2 +
>  arch/arm/dts/k3-j721e-binman.dtsi             |  605 +++
>  .../k3-j721e-common-proc-board-u-boot.dtsi    |    1 +
>  .../arm/dts/k3-j721e-r5-common-proc-board.dts |    1 +
>  arch/arm/dts/k3-j721s2-binman.dtsi            |  377 ++
>  .../k3-j721s2-common-proc-board-u-boot.dtsi   |    2 +
>  .../dts/k3-j721s2-r5-common-proc-board.dts    |    1 +
>  arch/arm/mach-k3/config.mk                    |  102 +-
>  board/ti/am62ax/Kconfig                       |    2 +
>  board/ti/am62ax/config.yaml                   | 1553 ++++++++
>  board/ti/am62x/Kconfig                        |    2 +
>  board/ti/am62x/config.yaml                    | 1490 ++++++++
>  board/ti/am64x/Kconfig                        |    2 +
>  board/ti/am64x/config.yaml                    | 1805 +++++++++
>  board/ti/am65x/Kconfig                        |    2 +
>  board/ti/am65x/config.yaml                    | 2469 ++++++++++++
>  board/ti/common/schema.yaml                   |  355 ++
>  board/ti/j721e/Kconfig                        |    4 +
>  board/ti/j721e/config.yaml                    | 3162 ++++++++++++++++
>  board/ti/j721e/config_j7200.yaml              | 2467 ++++++++++++
>  board/ti/j721s2/Kconfig                       |    2 +
>  board/ti/j721s2/config.yaml                   | 3303 +++++++++++++++++
>  doc/board/ti/am62x_sk.rst                     |   22 +-
>  doc/board/ti/j721e_evm.rst                    |   35 +-
>  doc/board/ti/k3.rst                           |   50 +-

Please move all of that into a separate patch. The binman changes
should be in their own 'binman:' patch, with tests and docs related
just to binman.

>  include/binman_sym.h                          |    2 +
>  scripts/Makefile.spl                          |    2 +
>  test/py/requirements.txt                      |    1 +
>  tools/binman/entries.rst                      |   15 +
>  tools/binman/etype/ti_secure.py               |  133 +
>  tools/binman/ftest.py                         |    8 +
>  tools/k3_fit_atf.sh                           |  123 -
>  tools/k3_gen_x509_cert.sh                     |  262 --
>  tools/k3_sysfw_boardcfg_blob_creator.py       |  116 +
>  tools/tibcfg_gen.py                           |  117 +
>  49 files changed, 20146 insertions(+), 529 deletions(-)
>  create mode 100644 arch/arm/dts/k3-am625-sk-binman.dtsi
>  create mode 100644 arch/arm/dts/k3-am62a-sk-binman.dtsi
>  create mode 100644 arch/arm/dts/k3-am64x-binman.dtsi
>  create mode 100644 arch/arm/dts/k3-am65x-binman.dtsi
>  create mode 100644 arch/arm/dts/k3-j7200-binman.dtsi
>  create mode 100644 arch/arm/dts/k3-j721e-binman.dtsi
>  create mode 100644 arch/arm/dts/k3-j721s2-binman.dtsi
>  create mode 100644 board/ti/am62ax/config.yaml
>  create mode 100644 board/ti/am62x/config.yaml
>  create mode 100644 board/ti/am64x/config.yaml
>  create mode 100644 board/ti/am65x/config.yaml
>  create mode 100644 board/ti/common/schema.yaml
>  create mode 100644 board/ti/j721e/config.yaml
>  create mode 100644 board/ti/j721e/config_j7200.yaml
>  create mode 100644 board/ti/j721s2/config.yaml
>  create mode 100644 tools/binman/etype/ti_secure.py
>  delete mode 100755 tools/k3_fit_atf.sh
>  delete mode 100755 tools/k3_gen_x509_cert.sh
>  create mode 100755 tools/k3_sysfw_boardcfg_blob_creator.py
>  create mode 100644 tools/tibcfg_gen.py
>
> --
> 2.34.1
>

It is great to see this and thank you for working on it.

My general comments are:

- we need to avoid adding new scripts (they should go into binman) so
please let me know what is needed there and how we can adjust it
- needs some work in testing - e.g. 'binman test' and 'binman test -T'
need to pass without errors

Regards,
Simon


More information about the U-Boot mailing list