[RFC PATCH] zynqmp: Add binman description for SOM

Simon Glass sjg at chromium.org
Sat Nov 2 17:28:04 CET 2024


Hi Michal,

On Fri, 1 Nov 2024 at 14:52, Tom Rini <trini at konsulko.com> wrote:
>
> On Fri, Nov 01, 2024 at 02:09:38PM +0100, Michal Simek wrote:
> > Hi Simon,
> >
> > On 11/1/24 09:27, Michal Simek wrote:
> > >
> > >
> > > On 10/31/24 19:03, Simon Glass wrote:
> > > > Hi Michal,
> > > >
> > > > On Wed, 9 Oct 2024 at 10:33, Michal Simek <michal.simek at amd.com> wrote:
> > > > >
> > > > > 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 at amd.com>
> > > > > ---
> > > > >
> > > > > Currently I have this for testing purpose only to find missing bits and
> > > > > pieces in binman for cases I want to support.
> > > > >
> > > > > This patch depends on
> > > > > https://lore.kernel.org/r/ fbed0251437b61a2f7a85596d7403b5b9c8237c1.1728306322.git.michal.simek at amd.com
> > > > >
> > > > > ---
> > > > >   arch/arm/dts/Makefile                |   1 +
> > > > >   arch/arm/dts/zynqmp-som-binman.dts   | 224 +++++++++++++++++++++++++++
> > > > >   arch/arm/mach-zynqmp/Kconfig         |  17 ++
> > > > >   configs/xilinx_zynqmp_kria_defconfig |   2 +
> > > > >   4 files changed, 244 insertions(+)
> > > > >   create mode 100644 arch/arm/dts/zynqmp-som-binman.dts
> > > >
> > > > I'm pleased to see this. My only suggestion is to use '/bits/ 64'
> > > > instead of the macros, for 64-bit values.
> > >
> > > When I was playing with it some time ago it didn't work but it works now
> > > that's why no issue with it.
> >
> > One more thing on this one. I pretty much dislike that images are generated
> > to u-boot root folder. Isn't there a way that they will be written to
> > separate folder (deploy for example)?
>
> Or perhaps $(obj) ?

Yes $(obj) is where they end up today. I consider output files from
binman to be on the same level as other files created by the build.
Then again, it does end up a bit of a mess, when mixed with the output
files.

I am not keen on 'deploy' as it nothing is being deployed - also it
sounds like a satellite or military attack.

One long-standing issue is that intermediate files are created in the
same directory. Perhaps we could put those in a binman-tmp directory?
They are necessary when things go wrong, but don't need to be used all
the time.

Regards,
Simon


More information about the U-Boot mailing list