mkimage: allow zynqmp to use a register initialization file
Sean Anderson
seanga2 at gmail.com
Wed Jun 3 19:55:35 CEST 2026
On 6/3/26 13:51, Sean Anderson wrote:
> On 6/3/26 13:45, Erich E. Hoover wrote:
>> On Wed, Jun 3, 2026 at 11:34 AM Sean Anderson <seanga2 at gmail.com> wrote:
>>> On 6/3/26 12:25, Erich E. Hoover wrote:
>>>> ...
>>>> Yes, sort of, if you are using "zynqmpimage" instead of "zynqmpbif"
>>>
>>> I've never seen the point of BIFs; I've been able to do everything I
>>> want with zynqmpimage.
>>
>> My understanding is that "zynqmpimage" only works if you have one
>> "partition", so if you're passing the ATF or other partition data I
>> think that you have to use "zynqmpbif".
>>
>
> I used ATF, but this was with SPL. So the boot process went something like
>
> Boot ROM loads zynqmpimage
> - PMU firmware to PMU RAM
> - U-Boot SPL to OCRAM
>
> U-Boot SPL loads FIT
> - ATF to OCRAM
> - U-Boot/DTB to DDR
> - Bitstream to PL
>
> And ATF was configured to jump to DDR after initializing.
>
> I guess if you are using FSBL that doesn't work, but IMO FSBL is yet another
> incompatible bootloader to maintain. I'd rather have a shared codebase
> (SPL/U-Boot).
The other advantage of this is that the FIT is loaded with SPL (which can use
a faster bus than the boot ROM, although I think FSBL does this too) and the
images (especially the bitstream) can be compressed. Even something like LZO
is very effective at compressing the bitstream and sped up the boot by several
seconds.
>>> But this info would be good to put in the commit message.
>>
>> How's this sound?:
>> ===
>> The ZynqMP Boot Image Format allows specifying the register
>> initialization file with the "[init]" attribute. Since this
>> feature is already supported by the "zynqmpimage" backend, this
>> commit implements a binding to that existing support.
>> ===
>> ( https://lists.denx.de/pipermail/u-boot/2026-June/620814.html )
>> Please accept my apologies again for messing that up the first time around.
>
> Actually, I liked how you explained it in your previous email
>
> If you are using "zynqmpimage" instead of "zynqmpbif"
> then you can add the register initialization with -R. This patch
> leverages that existing capability to add support for the "[init]"
> attribute in the zynqmpbif backend:
> https://docs.amd.com/r/en-US/ug1283-bootgen-user-guide/init
>
> We are using this feature, in combination with other zynqmpbif options, like so:
> ===
> image : {
> [init] fsbl.int
> [bootloader] fsbl.elf
> [pmufw_image] pmufw.elf
> [destination_cpu=none] fsbl.tcl
> [destination_cpu=a53-0, exception_level=el-3] bl31.elf
> [destination_cpu=a53-0, exception_level=el-2, load=0x08000000,
> startup=0x08000000] u-boot.bin
> }
> ===
More information about the U-Boot
mailing list