P1010RDB bug with samsung nand flash k9f4g08u0d

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

P1010RDB bug with samsung nand flash k9f4g08u0d

Jump to solution
888 Views
minpengwei
Contributor I

I have a bug in P1010RDB with nand flash K9F4G08U0D.
step 1. erase nand flash  ok
nand erase.chip
.
.
.
___fsl_ifc_cmdfunc, 359 command:60 column:ffffffff page_addr:3fdc0
___fsl_ifc_cmdfunc, 359 command:d0 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:70 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:60 column:ffffffff page_addr:3fe00
___fsl_ifc_cmdfunc, 359 command:d0 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:70 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:60 column:ffffffff page_addr:3fe40
___fsl_ifc_cmdfunc, 359 command:d0 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:70 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:60 column:ffffffff page_addr:3fe80
___fsl_ifc_cmdfunc, 359 command:d0 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:70 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:60 column:ffffffff page_addr:3fec0
___fsl_ifc_cmdfunc, 359 command:d0 column:ffffffff page_addr:ffffffff
Skipping bad block at  0x1ff80000                                         
Skipping bad block at  0x1ffa0000                                         
Skipping bad block at  0x1ffc0000                                         
Skipping bad block at  0x1ffe0000                                         

OK

step 2. check the result ok.
nand dump 0
=> nand dump 0
___do_nand, 451, name:nand0, erase:20000, write:800, size:20000000___
___nand_do_read_ops, 1249 realpage:0 chip->page_shift:11 chip->pagemask:3ffff page:0 col:0 mtd->writesize:2048
___fsl_ifc_cmdfunc, 359 command:0 column:0 page_addr:0
Page 00000000 dump:
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
  .
  .
  .
OOB:
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff
        ff ff ff ff ff ff ff ff


step3. load file to mem then write 1 page in flash
=>tftpget c00000 uboot.12xg.600
=> nand write c00000 0 800
___do_nand, 451, name:nand0, erase:20000, write:800, size:20000000___
___do_nand, 476,flag:0,dev 0___
___fsl_ifc_cmdfunc, 359 command:70 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:80 column:0 page_addr:0
___fsl_ifc_cmdfunc, 359 command:10 column:ffffffff page_addr:ffffffff
___fsl_ifc_cmdfunc, 359 command:0 column:0 page_addr:0
NAND write to offset 0 failed -5
0 bytes written: ERROR

step 4. nand dump check
Page 00000000 dump:
        27 05 19 56 55 2d 42 6f  6f 74 20 37 2e 30 2e 31
        20 28 4f 63 74 20 32 32  20 32 30 31 33 20 2d 20
        31 31 3a 31 39 3a 32 37  29 00 00 00 00 00 00 00
        3c 60 ff d0 60 63 3f 80  38 00 00 00 90 03 00 00
        90 03 00 04 7c 61 1b 78  48 00 00 05 7d 88 02 a6
        80 0c 18 90 7d 80 62 14  48 00 2c b1 3c 60 00 02
        60 63 12 00 7c 60 01 24  4c 00 01 2c 48 00 29 ad
        48 00 4c e1 4c 00 01 2c  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        7e 90 43 a6 7e b1 43 a6  7e 80 00 26 3a a1 ff 00
        92 95 00 a8 92 d5 00 68  92 f5 00 6c 7e 90 42 a6
        92 95 00 60 7e d1 42 a6  92 d5 00 64 7e 88 02 a6
        92 95 00 a0 7e c9 02 a6  92 d5 00 9c 7e 81 02 a6
        92 95 00 a4 7e 9d 0a a6  92 95 00 b4 7e da 0a a6
        7e fb 0a a6 90 15 00 10  90 35 00 14 90 55 00 18
        90 35 00 00 7e a1 ab 78  90 75 00 1c 90 95 00 20
        90 b5 00 24 90 d5 00 28  38 61 00 10 48 00 00 05
        7e 88 02 a6 82 94 00 20  7e 88 03 a6 3a 80 00 00
        52 f4 06 72 4e 80 00 21  00 00 37 44 00 00 10 9c
        00 00 10 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        7e 90 43 a6 7e b1 43 a6  7e 80 00 26 3a a1 ff 00
        92 95 00 a8 92 d5 00 68  92 f5 00 6c 7e 90 42 a6
        92 95 00 60 7e d1 42 a6  92 d5 00 64 7e 88 02 a6
        92 95 00 a0 7e c9 02 a6  92 d5 00 9c 7e 81 02 a6
        92 95 00 a4 7e 9d 0a a6  92 95 00 b4 7e da 8a a6
        7e fb 8a a6 90 15 00 10  90 35 00 14 90 55 00 18
        90 35 00 00 7e a1 ab 78  90 75 00 1c 90 95 00 20
        90 b5 00 24 90 d5 00 28  38 61 00 10 48 00 00 05
        7e 88 02 a6 82 94 00 20  7e 88 03 a6 3a 80 00 00
        52 f4 06 72 4e 80 00 21  00 00 37 6c 00 00 10 9c
        00 00 10 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        7e 90 43 a6 7e b1 43 a6  7e 80 00 26 3a a1 ff 00
        92 95 00 a8 92 d5 00 68  92 f5 00 6c 7e 90 42 a6
        92 95 00 60 7e d1 42 a6  92 d5 00 64 7e 88 02 a6
        92 95 00 a0 7e c9 02 a6  92 d5 00 9c 7e 81 02 a6
        92 95 00 a4 7e 9d 0a a6  92 95 00 b4 7e da 02 a6
        7e fb 02 a6 90 15 00 10  90 35 00 14 90 55 00 18
        90 35 00 00 7e a1 ab 78  90 75 00 1c 90 95 00 20
        90 b5 00 24 90 d5 00 28  38 61 00 10 48 00 00 05
        7e 88 02 a6 82 94 00 20  7e 88 03 a6 3a 80 10 00
        52 f4 06 72 4e 80 00 21  00 00 39 c4 00 00 10 9c
        00 00 10 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        7e 90 43 a6 7e b1 43 a6  7e 80 00 26 3a a1 ff 00
        92 95 00 a8 92 d5 00 68  92 f5 00 6c 7e 90 42 a6
        92 95 00 60 7e d1 42 a6  92 d5 00 64 7e 88 02 a6
        92 95 00 a0 7e c9 02 a6  92 d5 00 9c 7e 81 02 a6
        92 95 00 a4 7e 9d 0a a6  92 95 00 b4 7e da 02 a6
        7e fb 02 a6 90 15 00 10  90 35 00 14 90 55 00 18
        90 35 00 00 7e a1 ab 78  90 75 00 1c 90 95 00 20
        90 b5 00 24 90 d5 00 28  38 61 00 10 48 00 00 05
        7e 88 02 a6 82 94 00 20  7e 88 03 a6 3a 80 10 00
        52 f4 06 72 4e 80 00 21  00 00 39 c4 00 00 10 9c
        00 00 10 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        7e 90 43 a6 7e b1 43 a6  7e 80 00 26 3a a1 ff 00
        92 95 00 a8 92 d5 00 68  92 f5 00 6c 7e 90 42 a6
        92 95 00 60 7e d1 42 a6  92 d5 00 64 7e 88 02 a6
        92 95 00 a0 7e c9 02 a6  92 d5 00 9c 7e 81 02 a6
        92 95 00 a4 7e 9d 0a a6  92 95 00 b4 7e da 02 a6
        7e fb 02 a6 90 15 00 10  90 35 00 14 90 55 00 18
        90 35 00 00 7e a1 ab 78  90 75 00 1c 90 95 00 20
        90 b5 00 24 90 d5 00 28  38 61 00 10 48 00 00 05
        7e 88 02 a6 82 94 00 20  7e 88 03 a6 3a 80 10 00
        52 f4 06 72 4e 80 00 21  00 00 3a 1c 00 00 10 9c
        00 00 10 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        7e 90 43 a6 7e b1 43 a6  7e 80 00 26 3a a1 ff 00
        92 95 00 a8 92 d5 00 68  92 f5 00 6c 7e 90 42 a6
        92 95 00 60 7e d1 42 a6  92 d5 00 64 7e 88 02 a6
        92 95 00 a0 7e c9 02 a6  92 d5 00 9c 7e 81 02 a6
        92 95 00 a4 7e 9d 0a a6  92 95 00 b4 7e da 02 a6
        7e fb 02 a6 90 15 00 10  90 35 00 14 90 55 00 18
        90 35 00 00 7e a1 ab 78  90 75 00 1c 90 95 00 20
        90 b5 00 24 90 d5 00 28  7c 93 02 a6 90 95 00 b4
        7c b2 02 a6 90 b5 00 b8  38 61 00 10 48 00 00 05
        7e 88 02 a6 82 94 00 24  7e 88 03 a6 3a 80 10 00
        52 f4 04 20 52 f4 06 72  4e 80 00 21 00 00 39 20
        00 00 10 9c 00 00 10 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        7e 90 43 a6 7e b1 43 a6  7e 80 00 26 3a a1 ff 00
        92 95 00 a8 92 d5 00 68  92 f5 00 6c 7e 90 42 a6
        92 95 00 60 7e d1 42 a6  92 d5 00 64 7e 88 02 a6
        92 95 00 a0 7e c9 02 a6  92 d5 00 9c 7e 81 02 a6
        92 95 00 a4 7e 9d 0a a6  92 95 00 b4 7e da 02 a6
        7e fb 02 a6 90 15 00 10  90 35 00 14 90 55 00 18
        90 35 00 00 7e a1 ab 78  90 75 00 1c 90 95 00 20
        90 b5 00 24 90 d5 00 28  38 61 00 10 48 00 00 05
        7e 88 02 a6 82 94 00 24  7e 88 03 a6 3a 80 10 00
        52 f4 04 20 52 f4 06 72  4e 80 00 21 00 00 39 58
        00 00 10 9c 00 00 10 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
OOB:
        ff ff ff ff ff ff ff ff
        d9 f6 ca 37 6d 52 7b f9
        60 b2 f5 e4 1c 00 00 00
        dd ca 52 3d 57 d6 74 02
        5a 05 05 b6 c3 00 00 00
        54 50 f9 70 7e 31 3f 35
        fc cd e0 fe 03 00 00 00
        d8 56 4d aa f9 37 3e 0f
step 5. reading error at the same time 
=> nand read 2000000 0 800
___do_nand, 451, name:nand0, erase:20000, write:800, size:20000000___
___do_nand, 476,flag:0,dev 0___
NAND read: device 0 offset 0x0, size 0x800
___do_nand, 660, 1ffc3900, 0, 800, 2000000___
___nand_do_read_ops, 1249 realpage:0 chip->page_shift:11 chip->pagemask:3ffff page:0 col:0 mtd->writesize:2048
___fsl_ifc_cmdfunc, 359 command:0 column:0 page_addr:0
___nand_do_read_ops, 1359, mtd->ecc_stats.failed:2 stats.failed:1___
NAND read from offset 0 failed -74
0 bytes read: ERROR


there are some more info:
1.
=>nand info
Device 0: nand0, sector size 128 KiB
  Page size      2048 b
  OOB size         64 b
  Erase size   131072 b


2.P1010RDB.h
#define CONFIG_SYS_NAND_CSOR (CSOR_NAND_ECC_ENC_EN /* ECC on encode */ \
    | CSOR_NAND_ECC_DEC_EN /* ECC on decode */ \
    | CSOR_NAND_ECC_MODE_8 /* 8-bit ECC */ \
    | CSOR_NAND_RAL_3     /* RAL = 3 Bytes */ \
    | CSOR_NAND_PGS_2K /* Page Size = 2k b */ \
    | CSOR_NAND_SPRZ_64 /* Spare size = 64 */ \
    | CSOR_NAND_PB(64)) /* 64 Pages Per Block */


#define CONFIG_SYS_NAND_BLOCK_SIZE (128 * 1024)
#define CONFIG_SYS_MAX_NAND_DEVICE 1
#define CONFIG_MTD_NAND_VERIFY_WRITE

/* NAND Flash Timing Params */
#define CONFIG_SYS_NAND_FTIM0  FTIM0_NAND_TCCST(0x01) | \
     FTIM0_NAND_TWP(0x0C)   | \
     FTIM0_NAND_TWCHT(0x04) | \
     FTIM0_NAND_TWH(0x05)
#define CONFIG_SYS_NAND_FTIM1  FTIM1_NAND_TADLE(0x1d) | \
     FTIM1_NAND_TWBE(0x1d)  | \
     FTIM1_NAND_TRR(0x07)   | \
     FTIM1_NAND_TRP(0x0c)
#define CONFIG_SYS_NAND_FTIM2  FTIM2_NAND_TRAD(0x0c) | \
     FTIM2_NAND_TREH(0x05) | \
     FTIM2_NAND_TWHRE(0x0f)
#define CONFIG_SYS_NAND_FTIM3  FTIM3_NAND_TWW(0x04)


3.fsl_ifc_nand.c
nand->ecc.read_page = fsl_ifc_read_page;
nand->ecc.write_page = fsl_ifc_write_page;

/* Hardware generates ECC per 512 Bytes */
nand->ecc.size = 512;
nand->ecc.bytes = 8;

4.flash id

read id from flash ec dc 10 95 54 ec ec dc

manufacturer id:0xec chip id:0xdc (samsung nand 512MiB 3,3V 8-bit)


5.and i saw "/* ECC will be calculated automatically, and errors will be detected in * waitfunc. */"
before function fsl_ifc_write_page defined.
Does it mean there is no need to calculate ECC?
In my opinion there is something error while calculating ECC.

Labels (2)
0 Kudos
1 Solution
419 Views
minpengwei
Contributor I

Dear Scott,

     The U-Boot version is U-Boot 2013.01.

     The SDK version is 1.4.

     I found the setting is not right.

     ECC MODE should be setted as CSOR_NAND_ECC_MODE_4.

     The result is OK.

Thank you.

View solution in original post

0 Kudos
3 Replies
419 Views
yipingwang
NXP TechSupport
NXP TechSupport

As Scott mentioned, the IFC timing parameters looks not suitable for your target board with NAND Flash K9F4G08U0D, please try whether the following timing parameters would be helpful for you.

FTIM0

TCCST  0x3

TWP      0x5

TWCHT  0x2

TWH      0x4

FTIM1

TADLE  0x12

TWBE    0x1e

TRR      0x7

TRP      0x5

FTIM2

TRAD    0x8

TREH    0x4

TWHRE  0x11


Have a great day,
Yiping Wang

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
419 Views
scottwood
NXP Employee
NXP Employee

What version of U-Boot are you using?

Have you made sure that the timing and other parameters match your NAND chip?

0 Kudos
420 Views
minpengwei
Contributor I

Dear Scott,

     The U-Boot version is U-Boot 2013.01.

     The SDK version is 1.4.

     I found the setting is not right.

     ECC MODE should be setted as CSOR_NAND_ECC_MODE_4.

     The result is OK.

Thank you.

0 Kudos