zynqmpbif - sample

Michal Simek michal.simek at xilinx.com
Tue Jul 13 12:11:29 CEST 2021



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.

Thanks,
Michal



More information about the U-Boot mailing list