AnsweredAssumed Answered

nandtest error on 32GBit NAND using mx6.SOLO

Question asked by ZC Tee on Apr 29, 2015
Latest reply on Apr 29, 2015 by ZC Tee

Hi all,

I am using imx6SOLO to interface with a new 32Gb NAND flash from MICRON,

MT29F32G08CBADA.

After applying the patch to truncate the remaining bytes out of the

power-of-2, imx6SOLO is able to detect and recognize the NAND flash.

[ 0.346874] ONFI flash detected

[ 0.347012] ONFI param page 0 valid

[ 0.347019] nand: onfi confirmed

[ 0.347035] NAND device: Manufacturer ID: 0x2c, Chip ID: 0x44 (Micron

MT29F32G08CBADAWP)

[ 0.349811] Bad block table found at page 524032, version 0x01

[ 0.352254] Bad block table found at page 523776, version 0x01

[ 0.354979] Creating 3 MTD partitions on "gpmi-nand":

[ 0.354991] 0x000000000000-0x000000600000 : "kobs-ng"

[ 0.355750] 0x000000600000-0x000000a00000 : "kernel"

[ 0.356404] 0x000000a00000-0x000100000000 : "fs"

[ 0.357165] ---------------------------------------

[ 0.357173] NFC Geometry (used by BCH)

[ 0.357179] ---------------------------------------

[ 0.357185] ECC Strength : 56

[ 0.357190] Page Size in Bytes : 8936

[ 0.357195] Metadata Size in Bytes : 10

[ 0.357200] ECC Chunk Size in Bytes: 1024

[ 0.357205] ECC Chunk Count : 8

[ 0.357210] Payload Size in Bytes : 8192

[ 0.357215] Auxiliary Size in Bytes: 20

[ 0.357220] Auxiliary Status Offset: 12

[ 0.357225] Block Mark Byte Offset : 7545

[ 0.357230] Block Mark Bit Offset : 0

[ 0.357329] GPMI NAND driver registered. (IMX)

 

However, when I tried to perform nandtest in my system, I always get the

error where some of the bytes read back is not the same as written in.

> nandtest /dev/mtd2
ECC corrections: 0

ECC failures : 0

Bad blocks : 6

BBT blocks : 0

00000000: checking...

compare failed. seed 1667286349

Byte 0x23ff is 4f should be 47

Byte 0x882d is db should be d9

Byte 0x1602a is 2f should be 2d

Byte 0x39c1d is 8c should be 88

Byte 0x66815 is 62 should be 60

Byte 0x70833 is fb should be db

Byte 0x7742b is 34 should be 35

Byte 0x8601c is ab should be aa

Byte 0x9c80a is b7 should be b3

Byte 0xb141c is 59 should be 49

Byte 0xc700f is c5 should be c7

Byte 0xcc03c is de should be d6

Byte 0xe1c02 is 3e should be 7e

Byte 0xe6c13 is bc should be fc

Byte 0xea016 is 67 should be 6f

Byte 0xf0441 is 73 should be 72

Byte 0xf4026 is 59 should be 58

Byte 0xfc410 is 76 should be 56

Byte 0x114c40 is c6 should be c4

Byte 0x117c1e is 42 should be 40

Byte 0x13c037 is ea should be e2

Byte 0x151c08 is 74 should be 75

Byte 0x16603b is 52 should be 50

Byte 0x182824 is b7 should be b3

Byte 0x187832 is 88 should be 89

Byte 0x191c40 is 48 should be 40

Byte 0x1b7002 is 47 should be c7

Byte 0x1cf80c is 03 should be 01

Byte 0x1d0c24 is 10 should be 90

Byte 0x1d1c3b is 82 should be c2

Byte 0x1ea83d is c7 should be 87

 

It seems like for the bytes with error, there are always 1 bit errors, and

the bit location is random. If I tried to perform nandtest several time, the

address of the error bytes are different as well.

 

I am using linux kernel version 3.0.35. Anybody has any idea why is this

happening? Is there any setting that I need to tweak to make it work?

Thanks.

 

Regards,

zc

Outcomes