This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS570LC4357: TMS ECC VIM RAM test procedure in TRM doesn't work by corrupting one data bit

Part Number: TMS570LC4357

Hello,

We want to test ECC VIM  RAM mechanism by corrupting single bit in the Data as described in TRM p.675

"The following sequence should be used for injecting faults to data bits and testing the ECC check feature.
1. Write the data locations of VIM RAM with the required patterns while keeping ECCENA active. The
ECC bits will be automatically initialized along with data bits.
2. Disable ECC by setting ECCENA=0 in ECCCTRL register. In this mode, writing to data bits does not
automatically update ECC bits.
3. In this mode, it is possible to corrupt data bits using any of the following methods.
• Read the data bits, flip one bit and write back
4. Depending on the kind corruption created, read back the data bits and check for the correction error
(single-bit error or double-bit error or no error ).
5. Read the UERRADDR and SBERRADDR registers and check for the correct address capture as well"

When we try this procedure, Single bit error on Data is not corrected and SBER bit = 0'.

1st question:

Between step 3 and 4, we think there's an error in TRM, ECC_ENA must be activated to verify that SBER bit is  correcty setting with 1 bit in error. Can you confirm it?

2nd question:

When we activate  ECC_ENA bit register (between step 3 and 4), Single bit error and Double bit errors are detected (SBER bit = 1  and  UERR bit = 1).

We don't understand why UERR bit setting? According to TRM when we corrupt only 1 bit in Data, it's only single-bit error mechanism which works and not both. Can you confirm it?

3th question:

Do you have an example of test by corrupting 1 Data bit and 2 Data bits on VIM RAM area?

Best regards,

François 

  • Hello François,

    user5896989 said:
    Between step 3 and 4, we think there's an error in TRM, ECC_ENA must be activated to verify that SBER bit is  correcty setting with 1 bit in error. Can you confirm it?

    QJ> You are correct. The VIM ECC should be enabled before reading the modified data. Otherwise the ECC error is not detected.

    user5896989 said:
    We don't understand why UERR bit setting? According to TRM when we corrupt only 1 bit in Data, it's only single-bit error mechanism which works and not both. Can you confirm it?

    There are 7 bits of ECC per 32-bit ISR address in VIM RAM. The VIM ECC generation is done according to the ECC syndrome table as shown in Table 19-1 and 19-2 in TRM.

    QJ> From this ECC syndrome table, flipping bit 0 of VIM data will impact the bit 6, bit[3:0] of ECC value. For example, data=0x00004EC0 --> ECC value = 0x11, after flipping bit 0, data = 0x00004EC1  --> ECC value = 0x69  (5 bits are flipped)

    user5896989 said:
    Do you have an example of test by corrupting 1 Data bit and 2 Data bits on VIM RAM area?

    QJ> I don't have example. I think your test code works without any problem. To generate 1bit or 2bit ECC error, I prefer to toggle ECC value (enable ECC test mode).