26.5.10.4.2 Reads From Memory

Upon reads in memory, if FLTCTRL.FLTEN = 1 and FLTCTRL.FLTMD is set to single fault injection on reads (FLTCTRL.FLTMD = 0x4) or double fault injection for reads (FLTCTRL.FLTMD =0x5), and a read is performed at the address defined in FFLTADR.FLTADR, the fault injection logic will then corrupt 1 or 2 bits in the 72-bit vector. The corruption happens after reading in memory and before syndrome and SECOUT computation.

When fault injection or capture is enabled in FLTCTRL.FLTMD and FLTEN, then FFLTCAP, FFLTPAR and FFLTSYN will only be updated when a SEC or DED error is found in the 72-bit vector available after the ‘fault injection on reads’ logic and before the potential ‘correction by the ECC’ logic. In case a SEC or DED is found:

  • FFLTPAR.SECIN shows the ECC bits of this 72-bit vector (note that these ECC bits may have been corrupted on purpose by the fault injection on writes and/or on reads)
  • FFLTPAR.SECOUT shows the ECC bits computed again on the 64 data bits of this 72-bit vector (note that these data bits may have been corrupted on purpose by the fault injection on writes and/or on reads)
  • FFLTCAP.FLTADR contains the address of the corrupted word
  • In case of a single error:
    • INTFLAG.SERR is set if SECCNT = 0
    • INTFLAG.FLTCAP are set and FFLTSYN.DERRSERR = 0x1
    • FFLTSYN.SECSYN provides the syndrome, which indicates which bit of the 72-bit vector has been corrupted. The look-up table below gives the correspondence between the syndrome value and the corresponding corrupted bit.
    • FFLTSYN, FFLTCAP, and FFLTPAR registers will be populated with the information related to this SEC error and locked until either INTFLAG.SERR and INTFLAG.FLTCAP are cleared and a new SEC error is logged, or a DED error occurs. Only then will the registers be updated.
  • In case of a double error:
    • INTFLAG.SERR, INTFLAG.DERR, INTFLAG.FLTCAP are set and FFLTSYN.DERRSERR 0x2 or 0x3
    • FFLTSYN, FFLTCAP, and FFLTPAR registers will be populated with the information related to this DED error and locked until INTFLAG.SERR, INTFLAG.DERR and INTFLAG.FLTCAP are cleared and a new SEC or DED error is logged. Only then will the registers be updated.
Table 26-5. Syndrome Versus Faulty Bit Location Look-Up Table
SECSYN

Value

Faulty BitSECSYN

Value

Faulty BitSECSYN

Value

Faulty Bit
0x23D[0]0x19D[24]0xC8D[48]
0x43D[1]0x1AD[25]0xD0D[49]
0x83D[2]0x1CD[26]0xE0D[50]
0x3DD[3]0xE9D[27]0x4FD[51]
0x45D[4]0x2AD[28]0x51D[52]
0x85D[5]0x2CD[29]0x61D[53]
0x89D[6]0x4CD[30]0x62D[54]
0x49D[7]0x4AD[31]0x52D[55]
0x46D[8]0x32D[32]0x91D[56]
0x86D[9]0x34D[33]0xA1D[57]
0x07D[10]0x38D[34]0xC1D[58]
0x7AD[11]0xD3D[35]0x9ED[59]
0x8AD[12]0x54D[36]0xA2D[60]
0x0BD[13]0x58D[37]0xC2D[61]
0x13D[14]0x98D[38]0xC4D[62]
0x92D[15]0x94D[39]0xA4D[63]
0x8CD[16]0x64D[40]0x01ECC[0]
0x0DD[17]0x68D[41]0x02ECC[1]
0x0ED[18]0x70D[42]0x04ECC[2]
0xF4D[19]0xA7D[43]0x08ECC[3]
0x15D[20]0xA8D[44]0x10ECC[4]
0x16D[21]0xB0D[45]0x20ECC[5]
0x26D[22]0x31D[46]0x40ECC[6]
0x25D[23]0x29D[47]0x80ECC[7]