[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