T1042 DDR ECC questions

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

T1042 DDR ECC questions

636 Views
kurtehrhardt
Contributor II

The T1040 RM (Sec 14.5.9) states that :

If a multi-bit error is detected for a read, the DDR memory controller logs the error and

generates the machine check or critical interrupt (if enabled, as described in Memory

error disable (DDR_ERR_DISABLE)).

We have a DDR double bit error injection test that corrupts mulitiple bits in a DDR word and reads back the word to force a DDR double bit error.  The MSR has machine check exceptions masked (MSR[ME] = 0) and (MSR[GS] = 0) i.e. not in guest state.  In addition DDR ERR_INT_EN=0 to disable all interrupts from single or multibit.  DDR_ERR_DISABLE=0 so all error detection is unmasked.  When the read of the corrupted word occurs an IVOR 1 machine check exception occurs, regardless of the MSR[ME]=0.  The MCSSR0 register contains the address of the instruction that reads back the corrupted word.  The MCSR contains 0xA000, uncorrectable L1 cache or tag error.  The MMU TLB1 entry for the DDR area is cache inhibitied and guarded (WIMGE bits=01010).  Why is the  machine check exception occuring if it is masked in the MSR and the ERR_INT_EN=0?

0 Kudos
1 Reply

482 Views
ufedor
NXP Employee
NXP Employee

In case of multi-bit error the DDR controller returns corrupted data signal in completion of a read transaction.

This completion is registered as uncorrectable L1 data cache data or tag error.

If more detailed answer is needed please consider creating a Technical Case:

https://community.nxp.com/thread/381898 

0 Kudos