[FRC] [PATCH] MTD: nand_base.c: Enable support for Samsung E-die SLC NAND

Gupta, Pekon pekon at ti.com
Wed Jun 25 03:04:11 PDT 2014


Hi Ted,

>From: Ted Juan [mailto:ted.juan at gmail.com]
>Dear Pekon,
>
>I backup the raw data to data2[] before doing elm_decode_bch_error_page();
>Dump  code is as below. The raw data is the same with the correction
>data that all more than 8 bit-flips.
>
(a) In that case you should contact the Flash vendor here.
Fresh NAND device from factory should not violate the spec.
I don't suspect a driver issue here, because the raw data read itself
has random bit-flips.

(b) Also, it may be the case that there few particular blocks which has gone
bad and those are is showing again and again at each boot. However, If it
was such a case that only some handful blocks on NAND device have gone
bad, then UBI torture test [1] should have detected them and marked them
bad. And those should not re-appear in next time.
- You can check (b) by scrubbing all bad-blocks from u-boot
  #u-boot> nand scrub.chip all
  #u-boot> nand bad  (should report 0 bad blocks)
- Then, re-boot and let UBI detect bad-blocks on its own using torture-test
- And then again reset the system 2nd time and check newly detected bad-blocks
  #u-boot> nand bad  (should report [n] bad blocks)

(c) You can also check, if you are seeing bit-flips only during erased-pages ?
You can identify this by adding prints in u-boot.
There is slight difference in u-boot and kernel omap-gpmc NAND drivers,
- u-boot: simply ignores erased-pages and does not check for bit-flips in them.
- kernel: counts number of bit-flips in erased-pages also.
 

>The full data log is put as below but include some useless dump data.
>https://drive.google.com/file/d/0BwVGpNFs7l22RmZXTHhJWXFYYWs/edit?usp=sharing
>
There will be no correction done if 'un-correctable error' flag is raised by ELM.
Therefore pre-correction and post-correction data matches in below dump.
Bit-flip correction will _only_ happen if the number of bit-flips are within
correctable range (that is <=8 for BCH8 ECC scheme).


[1] $kernel/drivers/mtd/ubi/io.c @@ torture_peb()

with regards, pekon


More information about the linux-mtd mailing list