FAQ: [#6054] ecc correct fail to work after split nand page into several 512 bytes subpage(2010)

Document created by Aaronwu Employee on Sep 11, 2013
Version 1Show Document
  • View in full screen mode

[#6054] ecc correct fail to work after split nand page into several 512 bytes subpage

Submitted By: Barry Song

Open Date

2010-06-02 02:54:12     Close Date

2010-06-02 03:47:02

Priority:

Medium     Assignee:

Barry Song

Status:

Closed     Fixed In Release:

N/A

Found In Release:

2010R1     Release:

Category:

N/A     Board:

N/A

Processor:

ALL     Silicon Revision:

Is this bug repeatable?:

Yes     Resolution:

Fixed

Uboot version or rev.:

    Toolchain version or rev.:

all

App binary format:

N/A     

Summary: ecc correct fail to work after split nand page into several 512 bytes subpage

Details:

 

Old driver set page_size(in fact ecc size) as 256 in board file, ecc works. But after spliting into several 512 bytes according to the suggestion of datasheet, hw ecc correct fails to work.

 

bf5xx-nand bf5xx-nand.0: syndrome[4] 0x00000356

bf5xx-nand bf5xx-nand.0: calced[0x00000001], stored[0x00312d72]

bf5xx-nand bf5xx-nand.0: More than 1-bit error, non-correctable error.

bf5xx-nand bf5xx-nand.0: Please discard data, mark bad block

bf5xx-nand bf5xx-nand.0: syndrome[0] 0x00312d73

bf5xx-nand bf5xx-nand.0: syndrome[1] 0x00000573

bf5xx-nand bf5xx-nand.0: syndrome[2] 0x00000001

bf5xx-nand bf5xx-nand.0: syndrome[3] 0x00000357

bf5xx-nand bf5xx-nand.0: syndrome[4] 0x00000356

bf5xx-nand bf5xx-nand.0: calced[0x00000001], stored[0x00312d72]

bf5xx-nand bf5xx-nand.0: More than 1-bit error, non-correctable error.

bf5xx-nand bf5xx-nand.0: Please discard data, mark bad block

bf5xx-nand bf5xx-nand.0: syndrome[0] 0x00312d73

bf5xx-nand bf5xx-nand.0: syndrome[1] 0x00000573

bf5xx-nand bf5xx-nand.0: syndrome[2] 0x00000001

bf5xx-nand bf5xx-nand.0: syndrome[3] 0x00000357

bf5xx-nand bf5xx-nand.0: syndrome[4] 0x00000356

bf5xx-nand bf5xx-nand.0: calced[0x00000001], stored[0x00312d72]

bf5xx-nand bf5xx-nand.0: More than 1-bit error, non-correctable error.

bf5xx-nand bf5xx-nand.0: Please discard data, mark bad block

bf5xx-nand bf5xx-nand.0: syndrome[0] 0x00312d73

bf5xx-nand bf5xx-nand.0: syndrome[1] 0x00000573

bf5xx-nand bf5xx-nand.0: syndrome[2] 0x00000001

bf5xx-nand bf5xx-nand.0: syndrome[3] 0x00000357

bf5xx-nand bf5xx-nand.0: syndrome[4] 0x00000356

bf5xx-nand bf5xx-nand.0: calced[0x00000001], stored[0x00312d72]

bf5xx-nand bf5xx-nand.0: More than 1-bit error, non-correctable error.

 

 

Follow-ups

 

--- Mike Frysinger                                           2010-06-02 02:59:14

if you're changing the layout of the ecc, you need to erase & re-program it

 

--- Barry Song                                               2010-06-02 03:06:59

of course i know

 

--- Barry Song                                               2010-06-02 03:44:37

--- drivers/mtd/nand/bf5xx_nand.c       (revision 8875)

+++ drivers/mtd/nand/bf5xx_nand.c       (working copy)

@@ -322,8 +322,8 @@

         /* If ecc size is 512, correct second 256 bytes */

         if (chip->ecc.size == 512) {

                 dat += 256;

-               read_ecc += 8;

-               calc_ecc += 8;

+               read_ecc += 3;

+               calc_ecc += 3;

                ret |= bf5xx_nand_correct_data_256(mtd, dat, read_ecc,

calc_ecc);

        }

 

In fact, nand base has origanized the ecc byte to be continuous. we just need

to move 3 bytes for second 256 bytes.

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

No Files Were Found

Attachments

    Outcomes