zynqmpbif - sample

Jorge Ramirez-Ortiz, Foundries jorge at foundries.io
Tue Jul 13 13:33:32 CEST 2021


On 13/07/21, Michal Simek wrote:
> 
> 
> On 7/13/21 11:25 AM, Jorge Ramirez-Ortiz, Foundries wrote:
> > 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? 
> 
> 
> I tested it and it works fine for me. Take a look at the code what
> exactly is
> 
> [u-boot]$ cat /tmp/bif
> image : {
> 	[pmufw_image] /mnt/disk/u-boot-bins/zynqmp/pmu.bin
> 	[destination_cpu=a53-0, load=0xfffc0000, bootloader]
> spl/u-boot-spl-align.bin
> }
> 
> Didn't try the latest bootgen but format is changing over years but none
> is updating this tool. Feel free to take a look at it.

weird, I can not boot the bin when using bootgen 2019 nor 2021.

please can you send me the output of the following command so I can compare?
vivado at trex:~/deploy/bootgen_bif$ bootgen -read boot.bin 

also, are you booting from QSPI?

thanks a lot!

> 
> Thanks,
> Michal
> 


More information about the U-Boot mailing list