AR# 62081

2014.2/14.7 SDK, Bootgen - Incorrect load address in the partition header


My boot image includes Zynq FSBL and a user application.

After FSBL, the user application seems to hang.

When I Look at the CPU register, I can see that Data Abort is occurring.


This issue occurs because of an incorrect load address in the partition header.

Here is the partition header of the boot image.

0xC80 0xCBF: Partition Header for FSBL
0xCC0 0xCFF: Partition Header for the first section of the user application
0xD00 0xD3F: Partition Header for the second section of the user application
The load address in the third partition is incorrect.
Below is the section header of the user application elf.

There are 2 sections.
Program Header:
    LOAD off    0x00000074 vaddr 0x0fc00000 paddr 0x0fc00000 align 2**2
         filesz 0x000031e8 memsz 0x000031f0 flags rwx
    LOAD off    0x0000325c vaddr 0x01800000 paddr 0x0fc031f0 align 2**2
         filesz 0x00073ef0 memsz 0x0008db70 flags rw-
For the second section, the load address should be "paddr 0x0fc031f0" but "vaddr 0x01800000" is used in the partition header.
If the load address is corrected to 0x0fc031f0, the user application can be loaded correctly.
This issue has been fixed in Vivado 2014.3.
For IDS users, there is a patch for IDS 14.7.
Unzip and copy the corresponding platform binary/executable to the respective installation path:
<Installation folder>\14.7\ISE_DS\ISE\bin\<platform>\


Associated Attachments

Name File Size File Type 1 MB ZIP
AR# 62081
Date 03/19/2015
Status Active
Type General Article