UBIFS seeing corrupt blank pages when image flashed via u-boot
Artem Bityutskiy
artem.bityutskiy at linux.intel.com
Thu Jan 16 02:19:19 EST 2014
On Wed, 2014-01-15 at 21:29 +0000, Gupta, Pekon wrote:
> Hi Artem,
>
> >From: Artem Bityutskiy [mailto:artem.bityutskiy at 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.
--
Best Regards,
Artem Bityutskiy
More information about the linux-mtd
mailing list