NOR "bad blocks"

Jörn Engel joern at
Thu Oct 27 04:21:08 EDT 2005

On Thu, 27 October 2005 10:04:03 +0200, Bernhard Priewasser wrote:
> just a thought...
> Same as NAND, NOR flashes mostly have an endurance of guaranted 100K 
> program/erase cycles.
> If a block reaches this (theoretical) value, it should be recognized as 
> bad block if erase fails; e.g. not conaining only 0xFF after erase on 
> NAND. (I don't know if the "100K" erase cycle boundary is mostly 
> responsible for this)
> But obviously a block can wear out on NOR too after the max. number of 
> erase cycles. (How) can this be recognized, handled?

Not easily.  I haven't done the experiments myself, but wear-out
effects were described to me.  Basically, you can write to a block and
read it back out in a tight loop and things will never fail.  Not
after 100k, not after 1M erases.  But if you write to the block and
wait long enough, bits will flip.

Bit-flipping will always happen from 0 to 1, similar to erases.
Problem should be that the insulation around a flash cell has eroded
and the charge will leak out over time - this cell is self-erasing

And if you want to check whether all this is actually true, you can
try a testrun like this:

for (int i=1; ; i++) {
	for (int j=0; j<1000; j++)
	if (read doesn't match write) {
		printf("block died at %d000 erases\n", i);


Geld macht nicht glücklich.
Glück macht nicht satt.

More information about the linux-mtd mailing list