This example helps to understand how split works with offset attribute.
the_ROM_image:
{
[split]mode=slaveboot,fmt=bin
[bootloader, destination_cpu = a53-0] fsbl.elf
[destination_cpu = pmu, offset=0x3000000] pmufw.elf
[destination_device = pl, offset=0x4000000] design_1_wrapper.bit
[destination_cpu = a53-0, exception_level = el-3, trustzone, offset=0x6000000]\ hello.elf
}
When you specify an offset for a partition, the address of that partition in the boot image starts at the given offset. To cover any gap between the mentioned offset of the current partition and the previous partition, Bootgen appends 0xFFs to the previous partition. So now, when you try to split it, the tool splits the boot image based on that partition’s address. In this case, that address is the stated offset. So, you see the padded 0xFFs in the split partition outputs.