Intel Agilex® 7 Hard Processor System Remote System Update User Guide

ID 683184
Date 2/23/2024
Document Table of Contents

6.4. Sub-Partition Table

The Sub-partition table lists the flash partitions. These partitions include the BOOT_INFO, FACTORY_IMAGE, SPTs, CPBs and application image partitions. They also include any custom partitions defined at initial image creation time, or created at run time using U-Boot or LibRSU.

There are two SPT copies. Whenever one SPT is erased in order to write new content to it, the other SPT is left untouched so that if a power failure happens before the first SPT is fully written to flash, the second one remains valid. There is a magic field in the SPT header, which is written last, after a SPT is erased and re-populated correctly. An incorrect magic filed indicates that a power failure has occurred and that SPT copy is invalid.

The decision firmware does not use the SPTs, never reads, erases or writes to them. It only reports their location to HPS software. The decision firmware is not impacted by SPT corruptions.

When only one SPT is corrupted, the HPS software automatically detects the corruption and recovers the corrupt SPT from the other good copy. This happens at initialization time, both in U-Boot and LibRSU. The Decision firmware detects the CPBs that are corrupted and parses to get the application images.

In addition to the magic field, the HPS software checks SPT integrity by validating that partitions do not overlap. It also compares the two SPTs and if not identical it considers both corrupted.

Starting with Intel® Quartus® Prime Pro Edition software version 20.4, the SPTs are protected by a checksum in their header. The checksum is filled in at image creation time by the Programming File Generator. The HPS software can be enabled by a run-time configuration option to check and maintain the SPT checksums. The option is turned off by default, as it requires all the software components in the system to know about the checksum and maintain it appropriately, which may not be the case in all situations.

When both SPTs are corrupted, you are notified by both U-Boot and LibRSU, and you have access to reduced functionality. You can recover the SPTs by restoring a saved copy, from both U-Boot and Linux.
Note: If both SPTs are corrupted, the HPS software cannot locate the CPBs, and they are also considered corrupted. The available functionality is reduced even further in this case, until SPTs are restored.