UBIFS Corrupt during power failure
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Thu Jul 16 20:29:09 EDT 2009
On 16.07.2009 22:54, Gilles Casse wrote:
> Artem Bityutskiy a écrit :
>
>> On Wed, 2009-07-15 at 15:36 -0600, Eric Holmberg wrote:
>>
>>
>>> Writing all zero's to the
>>> header as in Artem's fix should work in all cases excluding the
>>> extremely rare cases where a write of 0's is interrupted and the header
>>> has been changed to a valid value and in the case where an erase
>>> (0-to-1) transition is interrupted which results in a valid header. The
>>> odds against that are huge, so I would expect the flash to wear out
>>> before it ever happens in real life.
>>>
>>>
>> Hmm, we can zero out both headers completely by writing 128 bytes,
>> even.
>>
>>
> According to a fellow electronician, Marc, offlist, it would not be safe
> to force at 0 a bit already at 0 in flash.
> For zeroing a byte, he recommends to write its complementary value (e.g.
> if 0x85 is read then write 0x7A).
>
I've seen flash where the data sheet mentions implicit erase for each
byte write, so writing a complementary value there might not set all
bits to 0. That might have been NOR flash, though.
If you have a data sheet or similar publication where writing the
complementary value is recommended or mentioned, I'd appreciate a
pointer to it. It does sound logical, but sometimes hardware is a bit odd.
Regards,
Carl-Daniel
More information about the linux-mtd
mailing list