
When the configuration pointer block is erased, all entries are marked as unused. To add an application image to the list, the
client finds the first unused location and writes the application image address to this location. To remove an application image
from the list, the client finds the application image address in the pointer block list and writes this address to 0s.
If the configuration pointer block runs out of space for new application images, the client compresses the pointer block by
completing the following actions:
•
Erasing the pointer block
•
Copying all previously valid entries
•
Adding the new image
When using HPS to manage RSU, both the U-Boot and LIBRSU clients implement the block compression. For designs that
drive RSU from FPGA logic, you can implement pointer block compression many different ways, including Nios II code, a
scripting language, or a state machine.
Pointer block compression does not occur frequently because the pointer block has up to 508 available entries.
There are two configuration pointer blocks: a primary (CPB0) and a backup (CPB1). Two blocks enable the list of application
images to be protected if a power failure occurs just after erasing a one of them. For more information, refer to the Pointer
Block Layout topic. When compressing, the client compresses (erase and rewrite) the primary CPB completely. Once the
primary CPB is valid, it is safe to modify the secondary CPB. When rewriting, the magic number at the start of a CPB is the
last word written in the CPB. (After this number is written only image pointer slot values can be changed.)
When the client writes the application image to flash it ensures that the pointers within the main image pointer of its first
signature block are updated to point to the correct locations in flash. When using HPS to manage RSU, both the U-Boot and
LIBRSU clients implement the required pointer updates. For more information, refer to the Application Image Layout topic.
4.4.2.5. Application Image Layout
The application image comprises SDM firmware and the configuration data. The configuration data includes up to four
sections. The SDM firmware contains pointers to those sections. The table below shows the location of the number of sections
and the section pointers in a application image.
By default the first 16 bytes of the application image,
*.rpd
, starting at address offset 0x1FC0 are 0. However you can use
these 16 bytes to store a Version ID to identify your application image. Providing this Version ID allows you to verify the
images stored in flash memory at a later time.
4. Remote System Update (RSU)
UG-20205 | 2019.10.09
Intel
®
Agilex
™
Configuration User Guide
149