MPC8270 ECC Question

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

MPC8270 ECC Question

969 次查看
wayneyounghoney
Contributor I

Can someone clarify for me how the MPC8270 handles an ECC Single bit error.

On detection of the error, once the Memory Controller increments the ECNT value, does it actually do a write to the memory to correct the ECC-code so that a subsequent read of the same location does not cause an ECC fault again? That is, it does not just correct the data locally in the Memory Controller and leaves the memory unchanged (with the error).

Also can the exact address of the location that caused the Machine Check Interrupt from an ECC error (be it one bit (ECNT=255) , or multi-bit) be determined/retrieved from any of the internal state in the Memory Controller or interrupt registers?

Thanks

0 项奖励
回复
1 回复

775 次查看
LPP
NXP Employee
NXP Employee

ECC error correction circuit corrects single bit errors on reads and leaves memory content unchanged. The only mean to change memory content (and to fix an error) is to perform write to this memory location.

There is no a way to determine the address of the failed RAM word. Note that MCP event after TESCR1[ECNT] gets overflowed is typically not recoverable, or in other words it must be treated as the fatal error and there is no reason to update corrupted RAM location. So you may need is to detect single ECC errors before ECNT reaches the threshold. For example, this can be done by periodically testing (in timer interrupt) of the TESCR1[ECNT] bits. After ECNT has been changed you can run some background process to rewrite the whole memory in order to fix cumulative single bit errors.

Have a great day,
Pavel

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复