eMMC NAND flash data integrity

hi all,

has anybody experience with eMMC data integrity problems, either caused by:

  • sudden power loss
  • read disturb
  • erase-program fatigue
  • temperature fatigue

what files system is best to use on eMMC devices?

thanks for any info or suggestions.

david :slight_smile:

We have quite some experience with Flash in embedded devices, as we did quite some tests with our modules using raw Nand and eMMC. During our stress tests we found a couple of problems which we were able to fix in software. Sometimes we even discovered bugs in eMMC firmware. However, Flash itself has only a limited lifetime, especially if you write a lot to it. It’s not easily possible to tell how long a flash device will last. It heavily depends on the use-case. We use quality flash on our modules, e.g. we use SLC only on our raw Nand modules. With eMMC devices we also did many tests, but it’s even harder to calculate the probable life-time of such devices, as the firmware used in eMMC devices vary heavily between eMMC vendors and even between different versions from the same vendor.
A normal embedded device which writes data, but not excessive would usually survive many years (10+). Also data retention is usually in that range, depending on the operating temperature.
The best source of information in that area are the flash manufacturers, as they do many tests and also know how their firmware is acting based on your use-case.

I like to use /(root) as read-only partitions in ext4 (for example). I like to use /var/log, /tmp and /run such as tmpfs and another partition for rw.

If FlashNAND, you can use UbiFS, SquashFS (also in eMMC, but read-only) but ext4 in the latest tests on embedded I saw did very well.

It is important to remember that eMMC has already internally wear-leveling, and reducing the wear of the blocks, as in a NAND flash you must implement and use BAT and other techniques to help.

Cleiton Bueno

Blog | Linkedin | B2Open