[U-Boot-Users] [PATCH 1/2] Don't panic if a controller driver does ecc its own way.

Some hardware, such as the enhanced local bus controller used on some mpc83xx chips, does ecc transparently when reading and writing data, rather than providing a generic calculate/correct mechanism that can be exported to the nand subsystem.
The subsystem should not BUG() when calculate, correct, or hwctl are missing, if the methods that call them have been overridden.
Signed-off-by: Scott Wood scottwood@freescale.com --- This patch applies to the mtd-2.6.22.1 branch of the nand tree.
drivers/mtd/nand/nand_base.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 576b0db..319696d 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -2593,8 +2593,12 @@ int nand_scan_tail(struct mtd_info *mtd) chip->ecc.write_oob = nand_write_oob_std;
case NAND_ECC_HW_SYNDROME: - if (!chip->ecc.calculate || !chip->ecc.correct || - !chip->ecc.hwctl) { + if ((!chip->ecc.calculate || !chip->ecc.correct || + !chip->ecc.hwctl) && + (!chip->ecc.read_page || + chip->ecc.read_page == nand_read_page_hwecc || + !chip->ecc.write_page || + chip->ecc.write_page == nand_write_page_hwecc)) { printk(KERN_WARNING "No ECC functions supplied, " "Hardware ECC not possible\n"); BUG();

In message 20080324175302.GA1280@ld0162-tx32.am.freescale.net you wrote:
Some hardware, such as the enhanced local bus controller used on some mpc83xx chips, does ecc transparently when reading and writing data, rather than providing a generic calculate/correct mechanism that can be exported to the nand subsystem.
The subsystem should not BUG() when calculate, correct, or hwctl are missing, if the methods that call them have been overridden.
Signed-off-by: Scott Wood scottwood@freescale.com
This should go through the 83xx custodian, but I haven't seen this yet?
Anyway, it does not apply any more:
Applying Don't panic if a controller driver does ecc its own way. error: patch failed: drivers/mtd/nand/nand_base.c:2593 error: drivers/mtd/nand/nand_base.c: patch does not apply fatal: sha1 information is lacking or useless (drivers/mtd/nand/nand_base.c). Repository lacks necessary blobs to fall back on 3-way merge. Cannot fall back to three-way merge.
Best regards,
Wolfgang Denk

On Mon, Apr 14, 2008 at 12:01:54AM +0200, Wolfgang Denk wrote:
In message 20080324175302.GA1280@ld0162-tx32.am.freescale.net you wrote:
Some hardware, such as the enhanced local bus controller used on some mpc83xx chips, does ecc transparently when reading and writing data, rather than providing a generic calculate/correct mechanism that can be exported to the nand subsystem.
The subsystem should not BUG() when calculate, correct, or hwctl are missing, if the methods that call them have been overridden.
Signed-off-by: Scott Wood scottwood@freescale.com
This should go through the 83xx custodian, but I haven't seen this yet?
Why should it go through 83xx? It's a patch against generic NAND code.
Anyway, it does not apply any more:
Applying Don't panic if a controller driver does ecc its own way. error: patch failed: drivers/mtd/nand/nand_base.c:2593 error: drivers/mtd/nand/nand_base.c: patch does not apply fatal: sha1 information is lacking or useless (drivers/mtd/nand/nand_base.c). Repository lacks necessary blobs to fall back on 3-way merge. Cannot fall back to three-way merge.
Did you try applying it against the 2.6.22.1 branch of the nand repository (IIRC, the non-commit-message patch comment specified that)?
-Scott

In message 20080414163455.GA7061@ld0162-tx32.am.freescale.net you wrote:
Some hardware, such as the enhanced local bus controller used on some mpc83xx chips, does ecc transparently when reading and writing data, rather than providing a generic calculate/correct mechanism that can be exported to the nand subsystem.
The subsystem should not BUG() when calculate, correct, or hwctl are missing, if the methods that call them have been overridden.
Signed-off-by: Scott Wood scottwood@freescale.com
This should go through the 83xx custodian, but I haven't seen this yet?
Why should it go through 83xx? It's a patch against generic NAND code.
It seems to be 83xx specific code to me?
Anyway, it does not apply any more:
Applying Don't panic if a controller driver does ecc its own way. error: patch failed: drivers/mtd/nand/nand_base.c:2593 error: drivers/mtd/nand/nand_base.c: patch does not apply fatal: sha1 information is lacking or useless (drivers/mtd/nand/nand_base.c). Repository lacks necessary blobs to fall back on 3-way merge. Cannot fall back to three-way merge.
Did you try applying it against the 2.6.22.1 branch of the nand repository (IIRC, the non-commit-message patch comment specified that)?
No, I tried to apply this to the U-Boot repository. Maybe this was my fault? Is this supposed to go into Linux, then?
Best regards,
Wolfgang Denk

Wolfgang Denk wrote:
In message 20080414163455.GA7061@ld0162-tx32.am.freescale.net you wrote:
Some hardware, such as the enhanced local bus controller used on some mpc83xx chips, does ecc transparently when reading and writing data, rather than providing a generic calculate/correct mechanism that can be exported to the nand subsystem.
The subsystem should not BUG() when calculate, correct, or hwctl are missing, if the methods that call them have been overridden.
Signed-off-by: Scott Wood scottwood@freescale.com
This should go through the 83xx custodian, but I haven't seen this yet?
Why should it go through 83xx? It's a patch against generic NAND code.
It seems to be 83xx specific code to me?
It's not. It is removing a restriction in the NAND code that happens to interfere with what the FSL NAND driver needs to do.
Did you try applying it against the 2.6.22.1 branch of the nand repository (IIRC, the non-commit-message patch comment specified that)?
No, I tried to apply this to the U-Boot repository. Maybe this was my fault? Is this supposed to go into Linux, then?
No, it's supposed to go into the 2.6.22.1 branch of Stefan's u-boot NAND tree. This change is already in the Linux NAND code.
-Scott

In message 4803B6AC.50603@freescale.com you wrote:
No, I tried to apply this to the U-Boot repository. Maybe this was my fault? Is this supposed to go into Linux, then?
No, it's supposed to go into the 2.6.22.1 branch of Stefan's u-boot NAND tree. This change is already in the Linux NAND code.
I see. OK, so it's really Stefan who needs to react here.
Thanks for the explanations.
Best regards,
Wolfgang Denk

On Monday 14 April 2008, Scott Wood wrote:
Did you try applying it against the 2.6.22.1 branch of the nand repository (IIRC, the non-commit-message patch comment specified that)?
No, I tried to apply this to the U-Boot repository. Maybe this was my fault? Is this supposed to go into Linux, then?
No, it's supposed to go into the 2.6.22.1 branch of Stefan's u-boot NAND tree. This change is already in the Linux NAND code.
I'll update the 2.6.22.1 branch shortly (when time permits). Sorry for the delay.
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================
participants (3)
-
Scott Wood
-
Stefan Roese
-
Wolfgang Denk