mkimage: allow zynqmp to use a register initialization file

Sean Anderson seanga2 at gmail.com
Wed Jun 3 19:51:07 CEST 2026


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).

>> 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