[PATCH RFC v3 00/11] Integration of tiboot3.bin, sysfw.itb and

Neha Malcom Francis
2022-06-15T06:48:23Z

Devices that belong to the K3 architecture require SYSFW which is a FIT
image consisting of a signed system firmware image and board config
binaries.

Board config binaries are needed to bring up SYSFW during U-Boot SPL
startup. The board config data is given in YAML as input. These board
configs contain board-specific information such as resource management,
power management and security.

The following series intends to plumb the system firmware generation
into U-Boot using binman for packaging. Thus it will eliminate the need
for additional custom repositories for SYSFW generation and also moves
towards the community standard build flow. We use binman to package
tiboot3.bin and sysfw.itb for J721E.

These images also require x509 certificates which are created using the
etype ti-x509-cert.

The series also plumbs the generation of tispl.bin which is required for
loading U-Boot in K3 devices. The image is packaged using ATF, OPTEE and
DM (Device Manager).

Please note that the implementation is for J721E GP (General Purpose)
devices.

Also note the introduction of three new etypes: ti-sysfw, ti-dm and
ti-x509-cert.

CI tests on Github have all passed but this is after the inclusion of
test/py/requirements.txt installation in Azure pipeline script for World
Build tests.

v3:
- Reformatted patches to make sure none of the existing board builds and
functionalities are broken
- x509-cert --> ti-x509-cert
- Avoided deletion of k3_fit_atf.sh and k3_gen_x509_cert.sh to make sure
no other builds fail
- Made change to Azure pipeline script to include installation of
test/py/requirements.txt in World Build test

v2:
- Added etype x509-cert for creating x509 Texas Instruments certificate
binary
- Added packaging of tiboot3.bin
- Packaging of tiboot3.bin and sysfw.itb using new etype x509
- sysfw --> ti-sysfw
- Reformatted and re-arranged patches
- Removed k3_fit_atf.sh and k3_gen_x509_cert.sh as their functionality
is provided by binman now

Neha Malcom Francis (11):
j721e_evm: schema: yaml: Add general schema and J721E board config
files
ti: tools: config: Add board config class to generate config binaries
ti: etype: sysfw: Add entry type for sysfw
ti: etype: dm: Add entry type for TI DM
ti: etype: x509: Add etype for x509 certificate for K3 devices
ti: sysfw: Add support for packaging sysfw.itb
ti: j721e: Exclude makefile tiboot3.bin target for J721E
ti: j721e: Exclude makefile tispl.bin target for J721E
ti: dtsi: j721e: Use binman to package sysfw.itb and tiboot3.bin
ti: dtsi: j721e: Use binman to package tispl.bin
ci: world_build: test: Add requirements.txt

.azure-pipelines.yml | 1 +
Makefile | 2 +
arch/arm/dts/k3-j721e-a72-binman.dtsi | 86 +
.../k3-j721e-common-proc-board-u-boot.dtsi | 1 +
arch/arm/dts/k3-j721e-r5-binman.dtsi | 88 +
.../k3-j721e-r5-common-proc-board-u-boot.dtsi | 1 +
arch/arm/mach-k3/config.mk | 26 +
board/ti/common/schema.yaml | 355 ++
board/ti/j721e/Kconfig | 2 +
board/ti/j721e/config.yaml | 3162 +++++++++++++++++
scripts/Makefile.spl | 2 +
test/py/requirements.txt | 2 +
tools/binman/entries.rst | 36 +
tools/binman/etype/ti_dm.py | 23 +
tools/binman/etype/ti_sysfw.py | 28 +
tools/binman/etype/ti_x509_cert.py | 241 ++
tools/binman/ftest.py | 20 +
tools/binman/test/225_ti_dm.dts | 13 +
tools/binman/test/232_ti_sysfw.dts | 13 +
tools/binman/test/232_x509_cert.dts | 18 +
tools/tibcfg_gen.py | 114 +
21 files changed, 4234 insertions(+)
create mode 100644 arch/arm/dts/k3-j721e-a72-binman.dtsi
create mode 100644 arch/arm/dts/k3-j721e-r5-binman.dtsi
create mode 100644 board/ti/common/schema.yaml
create mode 100644 board/ti/j721e/config.yaml
create mode 100644 tools/binman/etype/ti_dm.py
create mode 100644 tools/binman/etype/ti_sysfw.py
create mode 100644 tools/binman/etype/ti_x509_cert.py
create mode 100644 tools/binman/test/225_ti_dm.dts
create mode 100644 tools/binman/test/232_ti_sysfw.dts
create mode 100644 tools/binman/test/232_x509_cert.dts
create mode 100644 tools/tibcfg_gen.py

--
2.17.1