[OpenWrt-Devel] [PATCH] kernel: tolerate using UBI/UBIFS on MLC flash (FS#1830)

Philip Prindeville philipp_subx at redfish-solutions.com
Mon Oct 22 12:29:13 EDT 2018


Can you drop the CAPS on words (not acronyms) and the _markup_?

Sent from my iPhone

> On Oct 18, 2018, at 6:28 AM, Koen Vandeputte <koen.vandeputte at ncentric.com> wrote:
> 
> starting from upstream commit 577b4eb23811 ("ubi: Reject MLC NAND")
> it is not allowed to use UBI and UBIFS on a MLC flavoured NAND flash chip. [1]
> 
> According to David Oberhollenzer [2]:
> 
> The real problem is that on MLC NAND, pages come in pairs.
> 
> Multiple voltage levels inside a single, physical memory cell are used to
> encode more than one bit. Instead of just having pages that are twice as big,
> the flash exposes them as *two different pages*. Those pages are usually not
> ordered sequentially either, but according to a vendor/device specific
> pairing scheme.
> 
> Within OpenWrt, devices utilizing this type of flash,
> combined with ubi(fs) will be bricked when a user upgrades
> from 17.01.4 to a newer version as the MLC will be refused.
> 
> As these devices are currently advertised as supported by OpenWrt,
> we should at least maintain the original state during the lifecycle
> of the current releases.
> 
> Support can be gracefully ended when a new release-branch is created.
> 
> Signed-off-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
> 
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v4.14.77&id=577b4eb23811dfc8e38924dc476dbc866be74253
> [2] https://lore.kernel.org/patchwork/patch/920344/
> ---
> 
> Mainly intended for discussion first on this approach before applying it.
> Can be cherrypicked to 18.06.
> 
> Feel free to drop your (n)ack on this approach
> 
> 
> 
> .../hack-4.14/420-allow-ubi-mlc-support.patch       | 13 +++++++++++++
> .../hack-4.9/420-allow-ubi-mlc-support.patch        | 13 +++++++++++++
> 2 files changed, 26 insertions(+)
> create mode 100644 target/linux/generic/hack-4.14/420-allow-ubi-mlc-support.patch
> create mode 100644 target/linux/generic/hack-4.9/420-allow-ubi-mlc-support.patch
> 
> diff --git a/target/linux/generic/hack-4.14/420-allow-ubi-mlc-support.patch b/target/linux/generic/hack-4.14/420-allow-ubi-mlc-support.patch
> new file mode 100644
> index 000000000000..595936f13791
> --- /dev/null
> +++ b/target/linux/generic/hack-4.14/420-allow-ubi-mlc-support.patch
> @@ -0,0 +1,13 @@
> +--- a/drivers/mtd/ubi/build.c
> ++++ b/drivers/mtd/ubi/build.c
> +@@ -851,9 +851,8 @@ int ubi_attach_mtd_dev(struct mtd_info *
> +     * will die soon and you will lose all your data.
> +     */
> +    if (mtd->type == MTD_MLCNANDFLASH) {
> +-        pr_err("ubi: refuse attaching mtd%d - MLC NAND is not supported\n",
> ++        pr_warn("ubi: mtd%d has been identified as a MLC NAND!! - MLC is not supported by UBI and UBIFS and _WILL_ cause corruption in the near future!\n",
> +            mtd->index);
> +-        return -EINVAL;
> +    }
> + 
> +    if (ubi_num == UBI_DEV_NUM_AUTO) {
> diff --git a/target/linux/generic/hack-4.9/420-allow-ubi-mlc-support.patch b/target/linux/generic/hack-4.9/420-allow-ubi-mlc-support.patch
> new file mode 100644
> index 000000000000..552ae5da75cf
> --- /dev/null
> +++ b/target/linux/generic/hack-4.9/420-allow-ubi-mlc-support.patch
> @@ -0,0 +1,13 @@
> +--- a/drivers/mtd/ubi/build.c
> ++++ b/drivers/mtd/ubi/build.c
> +@@ -900,9 +900,8 @@ int ubi_attach_mtd_dev(struct mtd_info *
> +     * will die soon and you will lose all your data.
> +     */
> +    if (mtd->type == MTD_MLCNANDFLASH) {
> +-        pr_err("ubi: refuse attaching mtd%d - MLC NAND is not supported\n",
> ++        pr_warn("ubi: mtd%d has been identified as a MLC NAND!! - MLC is not supported by UBI and UBIFS and _WILL_ cause corruption in the near future!\n",
> +            mtd->index);
> +-        return -EINVAL;
> +    }
> + 
> +    if (ubi_num == UBI_DEV_NUM_AUTO) {
> -- 
> 2.17.1
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list