Re: [PATCH 0/4] mtd: add support for pairing scheme description

From: Brian Norris
Date: Fri Jun 10 2016 - 22:16:33 EST


Hi Boris,

I've mostly just reviewed the cover and first patch for now, since that
sets up the rest. A few questions and comments. I hope to review some
more and have more to say later this weekend.

On Mon, Apr 25, 2016 at 12:01:17PM +0200, Boris Brezillon wrote:
> Hi,
>
> This series is the first step towards reliable MLC/TLC NAND support.
> Those patches allows the NAND layer to expose page pairing information
> to MTD users.

Have you surveyed many types of NAND to get a representative sampling of
what kind of pairing schemes are out there? Do you think you've covered
the possibilities well enough in your API? I have a few comments on the
patches to this effect. I honestly don't know the answer to these
questions, because AFAIR, this is rarely well documented in datasheets.

> The plan is to teach UBI about those constraints and let UBI code take
> the appropriate precautions when dealing with those multi-level cells
> NANDs. The way we'll handle this "paired pages" constraint will be
> described soon in a series adapting the UBI layer, so stay tune ;).
>
> Note that this implementation only allows page pairing scheme description
> when the NAND has a full-id entry in the nand_ids table.
> This should be addressed in some way for ONFI and JEDEC NANDs, though
> I'm not sure how to handle this yet.

Do ONFI or JEDEC parameter pages even provide this kind of info? The
ONFI spec doesn't mention paired pages.

Brian

> Best Regards,
>
> Boris
>
> Boris Brezillon (4):
> mtd: introduce the mtd_pairing_scheme concept
> mtd: nand: implement two pairing scheme
> mtd: nand: add a pairing field to nand_flash_dev
> mtd: nand: H27UCG8T2ATR: point to the correct pairing scheme
> implementation
>
> drivers/mtd/mtdcore.c | 62 ++++++++++++++++++++++++++++
> drivers/mtd/mtdpart.c | 1 +
> drivers/mtd/nand/nand_base.c | 97 ++++++++++++++++++++++++++++++++++++++++++++
> drivers/mtd/nand/nand_ids.c | 2 +-
> include/linux/mtd/mtd.h | 64 +++++++++++++++++++++++++++++
> include/linux/mtd/nand.h | 5 +++
> 6 files changed, 230 insertions(+), 1 deletion(-)
>
> --
> 2.7.4
>