arm64: zynqmp: Add binman description for SOM
authorMichal Simek <michal.simek@amd.com>
Fri, 1 Nov 2024 09:17:57 +0000 (10:17 +0100)
committerMichal Simek <michal.simek@amd.com>
Wed, 27 Nov 2024 07:59:03 +0000 (08:59 +0100)
commit2eb8cd5bd4936a5eb2e77729855d946f6720921c
treee13d721684c07643eb81fd45be7466158a2e572b
parentafbc1fa5f18a2eebf1cf06f62574016edc093f50
arm64: zynqmp: Add binman description for SOM

There is necessary to do some steps to compose boot images. These steps
were in scripts in layers for a while. That's why introduce description via
binman to simplify wiring and remove all scripting around.
This should make sure that everybody is up2date with the latest versions.

The first step is to create fit image with DTBs with descriptions in
configuration node which is written as regular expression to match all SOM
versions.
Description is there for k24 and k26 in spite of low level psu_init
configuration is different. The reason is that it goes to u-boot.itb image
which is the same for k24 and k26.
u-boot.itb is another image which is generated. It is normally generated
via arch/arm/mach-zynqmp/mkimage_fit_atf.sh but this script is supposed to
be deprecated.
FIT image by purpose is using 64bit addresses to have default option to
move images to high DDR (above 4GB). TF-A and TEE are optional components
but in the most cases TF-A is present all the time and TEE(OP-TEE) is used
by some configurations too.

3rd generated image is boot.bin with updated user field which contains
version number. This image can be used with updated Image Selector
which supports A/B update mechanisms with rollback protection.

4th image is image.bin which binary file which contains boot.bin and
u-boot.itb together and can be programmed via origin Image Selector.
This image can be also used for creating one capsule which contains both
boot images (in SPL boot flow).

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/35bc47a4a4799c5f5dbea56a45340a2810538330.1730452668.git.michal.simek@amd.com
arch/arm/Kconfig
arch/arm/dts/Makefile
arch/arm/dts/zynqmp-binman-som.dts [new file with mode: 0644]
arch/arm/mach-zynqmp/Kconfig
configs/xilinx_zynqmp_kria_defconfig