14.5.5 Double Error Detection (DED) Error Logging

A DED error is recorded and interrupt issued if it occurs as a result of a retry read to a TCM. When the ECC error event occurs, a capture request is performed by the module. The module will log the address, the TCM Host ID that caused the error, and error’s syndrome for ITCM or DnTCM.

The module will set the corresponding flags status bits in the INTFLAG and IFLTSYN or DFLTSYN registers.

  • For a ITCM DED event, INTFLAG.FTLCAP and INTFLAG.DERR will be set, and the module will capture the address (IFLTCAP register) at which the error occurred, the TCM Host ID that caused the error (IFLTCAP register), and the error’s syndrome (IFLTSYN register).
  • For a DnTCM DED event, INTFLAG.FTLCAP and INTFLAG.DnDERR will be set, and the module will capture the address (DFLTCAP register) at which the error occurred, the TCM Host ID (DFLTCAP register) that caused the error, and the error’s syndrome (DFLTSYN register).
  • The corresponding TCM error count will be incremented. If the count reaches the limit defined in the CTRLB.xERRCNT (x = I,D0,D1) then the interrupt flag INTFLAG.xECCECNT (x = I,D0,D1) will be set.

Once a double error status bit (IDERR or DxDERR) is set subsequent ECC SEC/DED errors will not be logged, but they will be detected, retried, and corrected if possible. If a SEC occurs and is logged and then a subsequent DED is logged the SEC information will be over written. The user must clear the flag bits in order to capture new ECC error events from that ECC source.

Note: When a DED is detected, after capture of the error, the module allows rewrites to the, allowing the application to write back to the same address the correct word with ECC calculated by the module to remove the DED condition.