Re: [PATCH] mtd: rawnand: Add Macronix NAND read retry and randomizer support

From: Boris Brezillon
Date: Wed Apr 10 2019 - 03:23:05 EST


On Wed, 10 Apr 2019 09:14:14 +0800
masonccyang@xxxxxxxxxxx wrote:

> Hi Boris,
>
> >
> > Subject
> >
> > Re: [PATCH] mtd: rawnand: Add Macronix NAND read retry and randomizer
> support
> >
> > On Tue, 9 Apr 2019 17:35:39 +0800
> > masonccyang@xxxxxxxxxxx wrote:
> >
> > > > > +
> > > > > +static const struct kobj_attribute sysfs_mxic_nand =
> > > > > + __ATTR(nand_random, S_IRUGO | S_IWUSR,
> > > > > + mxic_nand_rand_type_show,
> > > > > + mxic_nand_rand_type_store);
> > > >
> > > > No, we don't want to expose that through a sysfs file, especially
> since
> > > > changing the randomizer config means making the NAND unreadable for
> > > > those that have used it before the change.
> > > >
> > >
> > > Our on-die randomizer is still readable from user after the function
> > > is enabled.
> >
> > You mean the memory is still readable no matter the randomizer state.
> > Not sure how that's possible, but okay.
> >
> > > This randomizer is just like a internal memory cell
> > > reliability enhanced.
> >
> > Why don't you enable it by default then?
>
> The penalty of randomizer is read/write performance down.
> i.e,. tPROG 300 us to 340 us (randomizer enable)
> therefore, disable it by default.

I'm a bit puzzled. On the NAND I've seen that required data
randomization it's not something you'd want to disable as this implied
poor data retention. What's the use case here? Are we talking about SLC
or MLC NANDs? Should we enable this feature once we start seeing that
the NAND starts being less reliable (basically when read-retry happens
more often)? I really think this is something you should decide kernel
side, because users have no clue when it's appropriate to switch this
feature on/off.

>
> >
> > > It could be enable at any time with OTP bit function and that's why
> > > we patch it by sys-fs.
> >
> > Sorry, but that's not a good reason to expose that through sysfs.
>
> Any good way to expose randomizer function for user ?

Don't expose it :P.