Hi, This patch series is adding support for SLC mode volumes. This is particularly useful on MLC NANDs, where using the NAND in MLC mode is not reliable.
The first part of the series (patch 1 and 2) are reworking the on-flash format versioning to support several on-flash format versions with the same UBI implementation. Richard, I know you already proposed a solution for the on-flash format versioning, and after reading the discussion again, I didn't find any good reason to add the features field we were discussing. Maybe, I'm wrong, and maybe this is really needed, so feel free to comment on the current proposal. The remaining patches prepare the introduction of SLC mode. Note that we are introducing a new on-flash version (version 2), and SLC mode volumes are only accepted when the on-flash format version is greater than 1. On a side note, this SLC mode and the MLC_SAFE mode we will introduce later on are quite different. The MLC_SAFE will allow one to use almost all the MLC NAND capacity in a reliable way, SLC mode only expose half the real capacity (when used on top of an MLC NAND). This series depends on the UBI cleanup series [1] I posted earlier today, and on the MTD pairing scheme [2] series I posted a few weeks ago. Regards, Boris [1]https://lkml.org/lkml/2016/9/5/459 [2]https://lkml.org/lkml/2016/6/20/459 Boris Brezillon (6): UBI: dissociate the on-flash format version and the userspace ABI version UBI: rework the on-flash format versioning logic UBI: use vol->usable_leb_size instead of (ubi->leb_size - vol->data_pad) UBI: introduce per-volume leb_size UBI: io: support SLC mode accesses UBI: add SLC mode support drivers/mtd/ubi/attach.c | 59 +++++++-- drivers/mtd/ubi/build.c | 10 +- drivers/mtd/ubi/cdev.c | 11 +- drivers/mtd/ubi/debug.c | 4 + drivers/mtd/ubi/eba.c | 64 ++++++++-- drivers/mtd/ubi/fastmap.c | 9 +- drivers/mtd/ubi/io.c | 305 ++++++++++++++++++++++++++++++++++++++------ drivers/mtd/ubi/ubi-media.h | 37 +++++- drivers/mtd/ubi/ubi.h | 99 +++++++++++++- drivers/mtd/ubi/upd.c | 2 +- drivers/mtd/ubi/vmt.c | 41 ++++-- drivers/mtd/ubi/vtbl.c | 52 +++++++- include/uapi/mtd/ubi-user.h | 24 +++- 13 files changed, 621 insertions(+), 96 deletions(-) -- 2.7.4