On Wed, Jun 3, 2026 at 11:55 AM Sean Anderson <[email protected]> wrote: > On 6/3/26 13:51, Sean Anderson wrote: > > ... > > > > 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).
We currently have thirteen ZynqMP systems that all have different pin configurations, so we have a unified FSBL that uses the JTAG psu_init.tcl (and a small register initialization file) to initialize the part. I'm not aware of a clean way to do something similar in the SPL/U-Boot approach, without having a bunch of different u-boot builds, but I'm open to other suggestions. > 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. > ... We no longer include the bitstream in the boot.bin, so the time to load the boot.bin is not something that is a major concern for us. We're mostly trying to manage the complexity of having a bunch of differently-configured ZynqMP systems. Best, Erich

