Skip to contentSkip to conversation

Don't panic if a controller driver does ecc its own way.

PATCH New Scott Wood 3 participants 7 messages Mar 24, 2008 – Apr 18, 2008

Subsystems (2)
lore
Share & tools
lore

Scott Wood

author
#0 lore raw

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.

---
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(-)
drivers/mtd/nand/nand_base.c +6 -2
index 576b0db..319696d 100644
@@ -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();
Signature · 1 line
1.5.3
#1 lore raw

PATCH 1/2 Don't panic if a controller driver does ecc its own way.

Quoted 9 lines · In message <[email protected]> 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.

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

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
When all is said and done, more is said than done.
author
#2 lore raw

PATCH 1/2 Don't panic if a controller driver does ecc its own way.

Quoted 6 lines · Wolfgang Denk
Quoted 5 lines · In message <[email protected]> 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.

Quoted 7 lines
Quoted 4 lines

The subsystem should not BUG() when calculate, correct, or hwctl are missing, if the methods that call them have been overridden.

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.

Quoted 9 lines

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

#3 lore raw

PATCH 1/2 Don't panic if a controller driver does ecc its own way.

Quoted 9 lines · In message <[email protected]> you wrote:
Quoted 9 lines
Quoted 9 lines

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.

Quoted 6 lines
Quoted 4 lines
Quoted 1 line

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?

Quoted 10 lines
Quoted 9 lines

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.

Quoted 2 lines

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

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Murder is contrary to the laws of man and God.
	-- M-5 Computer, "The Ultimate Computer", stardate 4731.3
author
#4 lore raw

PATCH 1/2 Don't panic if a controller driver does ecc its own way.

Quoted 9 lines · Wolfgang Denk
Quoted 8 lines · In message <[email protected]> you wrote:
Quoted 8 lines
Quoted 8 lines

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.

Quoted 6 lines
Quoted 4 lines
Quoted 3 lines
Quoted 1 line

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.

Quoted 5 lines
Quoted 2 lines

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

#5 lore raw

PATCH 1/2 Don't panic if a controller driver does ecc its own way.

Quoted 6 lines · In message <[email protected]> you wrote:
Quoted 3 lines

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

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Only in our dreams we are free.  The rest of the time we need  wages.
                                    - Terry Pratchett, _Wyrd Sisters_
#6 lore raw

PATCH 1/2 Don't panic if a controller driver does ecc its own way.

In reply to Scott Wood
Quoted 8 lines · Scott Wood
Quoted 5 lines
Quoted 2 lines

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 at denx.de
=====================================================================