Re: zynqmpbif - sample

Jorge Ramirez-Ortiz, Foundries
2021-07-13T09:25:43Z

On 13/07/21, Jorge Ramirez-Ortiz, Foundries wrote:
> On 13/07/21, Michal Simek wrote:
> > Hi,
> >
> > On 7/12/21 7:40 PM, Jorge Ramirez-Ortiz, Foundries wrote:
> > > hi Michal,
> > >
> > > Would you have some sample/reference code to generate a SPL boot image
> > > using zynqmpbif instead of zynqmpimage? I cant find any documentation
> > > and I see no option to enable it (I was expecting to find some config
> > > in Makefile.spl but I see none).
> > >
> > > What is the expected way of building these images?
> >
> > Alex implemented it for Xilinx bif format after origin zynqmpimage
> > format. But usage is just like this.
> >
> > [u-boot](debian-sent)$ ./tools/mkimage -T zynqmpbif -d /tmp/bif
> > /tmp/boot.bin
> > Image Type : Xilinx ZynqMP Boot Image support
> > Image Offset : 0x000009c0
> > Image Size : 147216 bytes (147216 bytes packed)
> > PMUFW Size : 129792 bytes (129792 bytes packed)
> > Image Load : 0xfffc0000
> > Checksum : 0xfd15d661
> > [u-boot](debian-sent)$ cat /tmp/bif
> > image : {
> > [pmufw_image, load=0xffdc0000] /mnt/disk/u-boot-bins/zynqmp/pmu.elf
> > [destination_cpu=a53-0, load=0xfffc0000, bootloader] spl/u-boot-spl.bin
> > }
>
> awesome, exactly what I needed to start with.

So I can boot using the steps you mentioned above.

But shouldnt the same bif work with bootgen?

****** Xilinx Bootgen v2019.2
**** Build date : Oct 23 2019-22:59:42
** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

[TRACE] : Command Line parsing started
[TRACE] : Command: -arch zynqmp -image ./bif -w -o bootbif.bin -log trace
[INFO] : Command line parsing completed successfully
[TRACE] : BIF File: ./bif
[TRACE] : BIF file parsing started
[TRACE] : Setting PMU FW Image file as pmu.elf
[INFO] : BIF file parsing completed successfully
[INFO] : Parsing Partition Data to Image
[INFO] : Building image - image
[INFO] : Building the Partition Header Table
[INFO] : After build
-- Dump of Binary Image ----
00000000 Len: 000008b8 Res: 00000000 "BootHeader"
00000000 Len: 00000040 Res: 00000000 "ImageHeaderTable"
00000000 Len: 00000024 Res: 00000800 "ImageHeader u-boot-spl.bin"
00000000 Len: 00000040 Res: 00000000 "PartitionHeader u-boot-spl.bin.0"
00000000 Len: 00000040 Res: 000016c0 "PartitionHeader Null"
00000000 Len: 00020574 Res: 00000000 "u-boot-spl.bin.0"
-- End of Dump
[INFO] : After align
-- Dump of Binary Image ----
00000000 Len: 000008b8 Res: 00000000 "BootHeader"
000008c0 Len: 00000040 Res: 00000000 "ImageHeaderTable"
00000900 Len: 00000024 Res: 00000800 "ImageHeader u-boot-spl.bin"
00001100 Len: 00000040 Res: 00000000 "PartitionHeader u-boot-spl.bin.0"
00001140 Len: 00000040 Res: 000016c0 "PartitionHeader Null"
00002800 Len: 00020574 Res: 00000000 "u-boot-spl.bin.0"
-- End of Dump
[INFO] : Partition Information:
[INFO] : Image: u-boot-spl.bin
[INFO] : Partition 0: u-boot-spl.bin.0, Size: 132467
[INFO] : After Link
-- Dump of Binary Image ----
00000000 Len: 000008b8 Res: 00000000 "BootHeader"
000008c0 Len: 00000040 Res: 00000000 "ImageHeaderTable"
00000900 Len: 00000024 Res: 00000800 "ImageHeader u-boot-spl.bin"
00001100 Len: 00000040 Res: 00000000 "PartitionHeader u-boot-spl.bin.0"
00001140 Len: 00000040 Res: 000016c0 "PartitionHeader Null"
00002800 Len: 00020574 Res: 00000000 "u-boot-spl.bin.0"
-- End of Dump

however when I boot and inspect the processor state, xsdb returns "APU
L2 cache is held in reset"

Since the functionality to support RSA authentication is missing from
mkimage (I'll have to add that), I would first like to see it
functional with SPL using bootgen.

However the same bif doesnt even boot - is this to be expected?

also the layouts generated from the bif using mkimage and bootgen are
completely different (it seems that naively I expected them to be the
same); is there any information on the different layouts used for the
bootrom?

thanks
Jorge

>
>
> >
> > Thanks,
> > Michal