From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: "richard@nod.at" <richard@nod.at>,
"boris.brezillon@collabora.com" <boris.brezillon@collabora.com>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
Vignesh R <vigneshr@ti.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: orion-nand: uncorrectable ECC error on v5.10-rc6
Date: Wed, 2 Dec 2020 09:31:57 +0100 [thread overview]
Message-ID: <20201202093157.4fa6998f@xps13> (raw)
In-Reply-To: <79a69fe8-551b-6cfb-0505-37178ee5a0ec@alliedtelesis.co.nz>
Hi Chris,
Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote on Wed, 2 Dec
2020 08:23:13 +0000:
> Hi Miquel,
>
> On 2/12/20 8:59 pm, Miquel Raynal wrote:
> > Hi Chris,
> >
> > Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote on Wed, 2 Dec
> > 2020 07:47:32 +0000:
> >
> >> Hi,
> >>
> >> I've just booted v5.10-rc6 on a kirkwood based board (which uses the
> >> orion-nand driver) and I get the following errors reported. I haven't
> >> started bisecting yet but v5.7.19 mounts the nand flash without any issue.
> >>
> >> ubi0: attaching mtd0
> >> __nand_correct_data: uncorrectable ECC error
> >> ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes
> >> from PEB 0:0, read only 64 bytes, retry
> >> __nand_correct_data: uncorrectable ECC error
> >> ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes
> >> from PEB 0:0, read only 64 bytes, retry
> >> __nand_correct_data: uncorrectable ECC error
> >> ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes
> >> from PEB 0:0, read only 64 bytes, retry
> >> __nand_correct_data: uncorrectable ECC error
> >> ubi0 error: ubi_io_read: error -74 (ECC error) while reading 64 bytes
> >> from PEB 0:0, read 64 bytes
> >> CPU: 0 PID: 101 Comm: ubiattach Not tainted 5.10.0-rc6+ #1
> >> Hardware name: Marvell Kirkwood (Flattened Device Tree)
> >> [<8010ca64>] (unwind_backtrace) from [<80109bd0>] (show_stack+0x10/0x14)
> >> [<80109bd0>] (show_stack) from [<8045f10c>] (ubi_io_read+0x184/0x304)
> >> [<8045f10c>] (ubi_io_read) from [<8045f4ac>] (ubi_io_read_ec_hdr+0x44/0x240)
> >> [<8045f4ac>] (ubi_io_read_ec_hdr) from [<80464db0>]
> >> (ubi_attach+0x178/0x15fc)
> >> [<80464db0>] (ubi_attach) from [<80458d8c>] (ubi_attach_mtd_dev+0x538/0xb48)
> >> [<80458d8c>] (ubi_attach_mtd_dev) from [<8045a114>]
> >> (ctrl_cdev_ioctl+0x170/0x1e0)
> >> [<8045a114>] (ctrl_cdev_ioctl) from [<80203094>] (sys_ioctl+0x1f8/0x990)
> >> [<80203094>] (sys_ioctl) from [<80100060>] (ret_fast_syscall+0x0/0x50)
> >> Exception stack(0x87633fa8 to 0x87633ff0)
> >> 3fa0: 00000003 7e9b0c30 00000003 40186f40 7e9b0c30
> >> 00000000
> >> 3fc0: 00000003 7e9b0c30 000148f8 00000036 00014770 00013f90 76f3dfa4
> >> 00000000
> >> 3fe0: 76e936f0 7e9b0c1c 00011f68 76e936fc
> > I recently contributed a pile of fixes to ensure DT parsing was not
> > broken and this applies to Orion. Can you please check
> >
> > mtd: rawnand: orion: Move the ECC initialization to ->attach_chip()
> That looks to be it. In Linus's tree commit 76dc2bfc2e1b ("Merge tag
> 'mtd/fixes-for-5.10-rc6' of
> git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux") seems to be
> the difference between working and not working.
> > And tell me if you see something wrong there? I assumed this driver was
> > not supporting on host ECC engines and only soft Hamming was used, is
> > this assumption wrong?
>
> Our dts has
>
> nand-ecc-mode = "soft";
> nand-ecc-algo = "bch";
> nand-on-flash-bbt;
>
I assumed Hamming was the only possible algorithm, this is the error.
I have several drivers in this case then.
We need to default to Hamming but let the user decide then. Can you try
something like the below change please?
Thanks,
Miquèl
---8<---
Author: Miquel Raynal <miquel.raynal@bootlin.com>
Date: Wed Dec 2 09:31:14 2020 +0100
mtd: rawnand: orion: Fix soft ECC algo selection
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
diff --git a/drivers/mtd/nand/raw/orion_nand.c b/drivers/mtd/nand/raw/orion_nand.c
index e3bb65fd3ab2..66211c9311d2 100644
--- a/drivers/mtd/nand/raw/orion_nand.c
+++ b/drivers/mtd/nand/raw/orion_nand.c
@@ -86,7 +86,9 @@ static void orion_nand_read_buf(struct nand_chip *chip, uint8_t *buf, int len)
static int orion_nand_attach_chip(struct nand_chip *chip)
{
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
- chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
+
+ if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
+ chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
return 0;
}
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: "richard@nod.at" <richard@nod.at>, Vignesh R <vigneshr@ti.com>,
"boris.brezillon@collabora.com" <boris.brezillon@collabora.com>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: orion-nand: uncorrectable ECC error on v5.10-rc6
Date: Wed, 2 Dec 2020 09:31:57 +0100 [thread overview]
Message-ID: <20201202093157.4fa6998f@xps13> (raw)
In-Reply-To: <79a69fe8-551b-6cfb-0505-37178ee5a0ec@alliedtelesis.co.nz>
Hi Chris,
Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote on Wed, 2 Dec
2020 08:23:13 +0000:
> Hi Miquel,
>
> On 2/12/20 8:59 pm, Miquel Raynal wrote:
> > Hi Chris,
> >
> > Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote on Wed, 2 Dec
> > 2020 07:47:32 +0000:
> >
> >> Hi,
> >>
> >> I've just booted v5.10-rc6 on a kirkwood based board (which uses the
> >> orion-nand driver) and I get the following errors reported. I haven't
> >> started bisecting yet but v5.7.19 mounts the nand flash without any issue.
> >>
> >> ubi0: attaching mtd0
> >> __nand_correct_data: uncorrectable ECC error
> >> ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes
> >> from PEB 0:0, read only 64 bytes, retry
> >> __nand_correct_data: uncorrectable ECC error
> >> ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes
> >> from PEB 0:0, read only 64 bytes, retry
> >> __nand_correct_data: uncorrectable ECC error
> >> ubi0 warning: ubi_io_read: error -74 (ECC error) while reading 64 bytes
> >> from PEB 0:0, read only 64 bytes, retry
> >> __nand_correct_data: uncorrectable ECC error
> >> ubi0 error: ubi_io_read: error -74 (ECC error) while reading 64 bytes
> >> from PEB 0:0, read 64 bytes
> >> CPU: 0 PID: 101 Comm: ubiattach Not tainted 5.10.0-rc6+ #1
> >> Hardware name: Marvell Kirkwood (Flattened Device Tree)
> >> [<8010ca64>] (unwind_backtrace) from [<80109bd0>] (show_stack+0x10/0x14)
> >> [<80109bd0>] (show_stack) from [<8045f10c>] (ubi_io_read+0x184/0x304)
> >> [<8045f10c>] (ubi_io_read) from [<8045f4ac>] (ubi_io_read_ec_hdr+0x44/0x240)
> >> [<8045f4ac>] (ubi_io_read_ec_hdr) from [<80464db0>]
> >> (ubi_attach+0x178/0x15fc)
> >> [<80464db0>] (ubi_attach) from [<80458d8c>] (ubi_attach_mtd_dev+0x538/0xb48)
> >> [<80458d8c>] (ubi_attach_mtd_dev) from [<8045a114>]
> >> (ctrl_cdev_ioctl+0x170/0x1e0)
> >> [<8045a114>] (ctrl_cdev_ioctl) from [<80203094>] (sys_ioctl+0x1f8/0x990)
> >> [<80203094>] (sys_ioctl) from [<80100060>] (ret_fast_syscall+0x0/0x50)
> >> Exception stack(0x87633fa8 to 0x87633ff0)
> >> 3fa0: 00000003 7e9b0c30 00000003 40186f40 7e9b0c30
> >> 00000000
> >> 3fc0: 00000003 7e9b0c30 000148f8 00000036 00014770 00013f90 76f3dfa4
> >> 00000000
> >> 3fe0: 76e936f0 7e9b0c1c 00011f68 76e936fc
> > I recently contributed a pile of fixes to ensure DT parsing was not
> > broken and this applies to Orion. Can you please check
> >
> > mtd: rawnand: orion: Move the ECC initialization to ->attach_chip()
> That looks to be it. In Linus's tree commit 76dc2bfc2e1b ("Merge tag
> 'mtd/fixes-for-5.10-rc6' of
> git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux") seems to be
> the difference between working and not working.
> > And tell me if you see something wrong there? I assumed this driver was
> > not supporting on host ECC engines and only soft Hamming was used, is
> > this assumption wrong?
>
> Our dts has
>
> nand-ecc-mode = "soft";
> nand-ecc-algo = "bch";
> nand-on-flash-bbt;
>
I assumed Hamming was the only possible algorithm, this is the error.
I have several drivers in this case then.
We need to default to Hamming but let the user decide then. Can you try
something like the below change please?
Thanks,
Miquèl
---8<---
Author: Miquel Raynal <miquel.raynal@bootlin.com>
Date: Wed Dec 2 09:31:14 2020 +0100
mtd: rawnand: orion: Fix soft ECC algo selection
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
diff --git a/drivers/mtd/nand/raw/orion_nand.c b/drivers/mtd/nand/raw/orion_nand.c
index e3bb65fd3ab2..66211c9311d2 100644
--- a/drivers/mtd/nand/raw/orion_nand.c
+++ b/drivers/mtd/nand/raw/orion_nand.c
@@ -86,7 +86,9 @@ static void orion_nand_read_buf(struct nand_chip *chip, uint8_t *buf, int len)
static int orion_nand_attach_chip(struct nand_chip *chip)
{
chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT;
- chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
+
+ if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN)
+ chip->ecc.algo = NAND_ECC_ALGO_HAMMING;
return 0;
}
next prev parent reply other threads:[~2020-12-02 8:33 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-02 7:47 orion-nand: uncorrectable ECC error on v5.10-rc6 Chris Packham
2020-12-02 7:47 ` Chris Packham
2020-12-02 7:59 ` Miquel Raynal
2020-12-02 7:59 ` Miquel Raynal
2020-12-02 8:23 ` Chris Packham
2020-12-02 8:23 ` Chris Packham
2020-12-02 8:31 ` Miquel Raynal [this message]
2020-12-02 8:31 ` Miquel Raynal
2020-12-02 19:57 ` Chris Packham
2020-12-02 19:57 ` Chris Packham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201202093157.4fa6998f@xps13 \
--to=miquel.raynal@bootlin.com \
--cc=Chris.Packham@alliedtelesis.co.nz \
--cc=boris.brezillon@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=richard@nod.at \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.