3.6.1 Power-On Reset Digest Check

The device may be configured to perform automatic component digest checks while powering up the user design (after power-on reset) to check the integrity of the selected components. The user can specify which digest to check. If any of the selected digest checks fails, a tamper event is generated to fabric for user action. A digest check failure is an indication that the programmed content currently in the device is not what was last programmed into the device and cannot be trusted and that the device must be reprogrammed. The power-on digest check can be enabled and monitored using PF_TAMPER macro for PolarFire FPGA and PFSoC_TAMPER for PolarFire SoC FPGA.

Figure 3-3. Power-On Reset Digest Check Controls for PolarFire® FPGA
Figure 3-4. Power-On Reset Digest Check Controls for PolarFire® SoC FPGA

For example, if the first-stage boot code for a soft CPU is stored in the sNVM or eNVM (for PolarFire SoC FPGA only), then the power-on reset digest check could be used to automatically provide a high level of assurance that the code had not been changed, either through a natural or malicious event, since the digest was stored.

The following table lists the digests of the POR Digest Check to the actual digests that are checked.
Table 3-3. POR Digest Check
Digest NamePOR Digest CheckComment
Fabric digest (CHECK FABRIC digest)Fabric
Fabric configuration data digest (CC Digest)Fabric
sNVM ROM pages digestsNVM
User security segment digest (UL Digest)Security
UKDIGEST0Not currently supported by Libero SoC
UKDIGEST1Not currently supported by Libero SoC
UKDIGEST2Security
UKDIGEST3Security
UKDIGEST4 Security
UKDIGEST5 Security
UKDIGEST6 Security
UPDIGEST (UPERM Digest)Security
FDIGEST (SYS Digest)AnyCheck when any POR Digest Enabled
UKDIGEST7 Security
ENVMDIGEST eNVM
UKDIGEST8 eNVM
UKDIGEST9 eNVM
UKDIGEST10eNVM

A read-endurance limit specifies how many times a digest of the FPGA fabric can be run before the long-term reliability of the FPGA configuration data could be affected. For more information about the FPGA configuration memory endurance limits, see respective PolarFire FPGA Datasheet or PolarFire SoC Datasheet. Therefore, depending upon how the system is deployed and used (for example, how often it is powered-up), the on-demand digest check may be more appropriate for testing the integrity of the FPGA fabric.