Re: [U-Boot] UBIFS seeing corrupt blank pages when image flashed via u-boot

On Wed, 2014-01-15 at 21:29 +0000, Gupta, Pekon wrote:
Hi Artem,
From: Artem Bityutskiy [mailto:artem.bityutskiy@linux.intel.com]
<snip> >Conclusion: all UBIFS needs is a way to ask the driver - is this NAND >page blank or not? UBIFS does not really has to compare to all 0xFFs. > Thanks for details. Yes, I understand the concept in general that you want to recover last bit of user-data written on NAND (without corruption).
Now, as NAND driver itself does differentiation between and erased-page v/s programmed-page. Can we use different error codes to pass this information to upper layers like;
I thought the ECC is something which could be used to differentiate.
*For MTD layer* 0: data valid, length of data is determined by 'read_len' (currently) -EUCLEAN: correctable bit-flips found, data is valid -EBADMSG: un-correctable bit-flips, data *may-be* invalid. -ENODATA: detected erased-page. *Actual* data determined by read_len. -ENOMSG: detected erased-page with bit-flips. *Actual* data determined by read_len.
Not sure this is a good idea. If NAND driver cannot do the differentiation, then it should not be done by the MTD layer, I think.
Then just improve UBI and UBIFS and make the function which compares buffers with all 0xFFs allow for bit-flips. We know the maximum possible bit-flips per min. I/O unit, right? Just allow for that amount.
participants (1)
-
Artem Bityutskiy