Forums

eMMC CSD Register ECC field

Started by Buzz McCool April 12, 2022
Anyone here knowledgeable about eMMC memory?

I have a high reliability application where there is concern about 
memory corruption. What would happen if I changed the ECC field in the 
eMMC's Card Specific Data (CSD) register from the default no ECC to the 
optional BCH(542,512) encoding? Would I still be able to write/read new 
values to the eMMC normally with the eMMC internally protecting the 
contents with BCH ECC at the cost of reduced memory capacity, or would a 
special driver on the host be needed to encode/decode ECC reads/writes?

I've asked around and haven't found a definitive answer so far. Let me 
know if you can help ... Buzz
Buzz McCool schreef:
> Anyone here knowledgeable about eMMC memory? > > I have a high reliability application where there is concern about > memory corruption. What would happen if I changed the ECC field in the > eMMC's Card Specific Data (CSD) register from the default no ECC to the > optional BCH(542,512) encoding? Would I still be able to write/read new > values to the eMMC normally with the eMMC internally protecting the > contents with BCH ECC at the cost of reduced memory capacity, or would a > special driver on the host be needed to encode/decode ECC reads/writes? > > I've asked around and haven't found a definitive answer so far. Let me > know if you can help ... Buzz
Asked around? Why not consult the standard? From there I gather that eMMC devices may implement internal ECC (that is why the DEVICE_ECC_ FAILED status exists) and that the "ECC" configuration field may be used for external ECC. If nonzero, your driver should handle the ECC encoding/decoding. -- (remove the obvious prefix to reply directly)