[PATCH] Test for multi-bit error correction

Artem Bityutskiy dedekind1 at gmail.com
Thu Aug 30 03:00:33 EDT 2012


On Wed, 2012-08-29 at 17:26 +1000, Iwo Mergler wrote:
> This tests ECC biterror recovery on a single NAND page. Mostly intended
> to test ECC hardware and low-level NAND driver.
> 
> There are two test modes:
> 
>     0 - artificially inserting bit errors until the ECC fails
>         This is the default method and fairly quick. It should
>         be independent of the quality of the FLASH.
> 
>     1 - re-writing the same pattern repeatedly until the ECC fails.
>         This method relies on the physics of NAND FLASH to eventually
>         generate '0' bits if '1' has been written sufficient times. Depending
>         on the NAND, the first bit errors will appear after 1000 or
>         more writes and then will usually snowball, reaching the limits
>         of the ECC quickly.

Aiaiai! [1] [2]

dedekind $ ~/git/maintaining$ ./verify ../l2-mtd/ gen < ~/tmp/iwo.mbox 
Tested the patch(es) on top of the following commits:
6936e9d Quick fixes - applied by aiaiai
994b677 mtd: nand: Added a device flag for subpage read support
c2e1dbb mtd: orion_nand: remove <mach/hardware.h> include
d314b3b mtd: bcm47part driver for BCM47XX chipsets

--------------------------------------------------------------------------------
Failed to build the following commit for configuration "arm-omap2plus_defconfig" (architecture arm)":

049c1f5 Test for multi-bit error correction

drivers/mtd/tests/mtd_nandbiterrs.c: In function 'rewrite_page':
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: error: 'MTD_OOB_RAW' undeclared (first use in this function)
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [drivers/mtd/tests/mtd_nandbiterrs.o] Error 1

--------------------------------------------------------------------------------
Failed to build the following commit for configuration "i386_defconfig" (architecture i386)":

049c1f5 Test for multi-bit error correction

drivers/mtd/tests/mtd_nandbiterrs.c: In function ‘rewrite_page’:
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: error: ‘MTD_OOB_RAW’ undeclared (first use in this function)
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [drivers/mtd/tests/mtd_nandbiterrs.o] Error 1

--------------------------------------------------------------------------------
Failed to build the following commit for configuration "ia64_defconfig" (architecture ia64)":

049c1f5 Test for multi-bit error correction

drivers/mtd/tests/mtd_nandbiterrs.c: In function 'rewrite_page':
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: error: 'MTD_OOB_RAW' undeclared (first use in this function)
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [drivers/mtd/tests/mtd_nandbiterrs.o] Error 1

--------------------------------------------------------------------------------

Successfully built configuration "m68k-m5208evb_defconfig,m68k,m68k-linux-", no issues

--------------------------------------------------------------------------------
Failed to build the following commit for configuration "mips64_defconfig" (architecture mips)":

049c1f5 Test for multi-bit error correction

drivers/mtd/tests/mtd_nandbiterrs.c: In function 'rewrite_page':
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: error: 'MTD_OOB_RAW' undeclared (first use in this function)
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [drivers/mtd/tests/mtd_nandbiterrs.o] Error 1

--------------------------------------------------------------------------------

Successfully built configuration "mips-bcm63xx_defconfig,mips,mips-linux-", no issues

--------------------------------------------------------------------------------
Failed to build the following commit for configuration "ppc32_defconfig" (architecture powerpc)":

049c1f5 Test for multi-bit error correction

drivers/mtd/tests/mtd_nandbiterrs.c: In function 'rewrite_page':
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: error: 'MTD_OOB_RAW' undeclared (first use in this function)
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [drivers/mtd/tests/mtd_nandbiterrs.o] Error 1

--------------------------------------------------------------------------------
Failed to build the following commit for configuration "ppc64_defconfig" (architecture powerpc)":

049c1f5 Test for multi-bit error correction

drivers/mtd/tests/mtd_nandbiterrs.c: In function 'rewrite_page':
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: error: 'MTD_OOB_RAW' undeclared (first use in this function)
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [drivers/mtd/tests/mtd_nandbiterrs.o] Error 1

--------------------------------------------------------------------------------
Failed to build the following commit for configuration "x86_64_defconfig" (architecture x86_64)":

049c1f5 Test for multi-bit error correction

drivers/mtd/tests/mtd_nandbiterrs.c:152:18: error: ‘MTD_OOB_RAW’ undeclared (first use in this function)
drivers/mtd/tests/mtd_nandbiterrs.c:152:18: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [drivers/mtd/tests/mtd_nandbiterrs.o] Error 1

--------------------------------------------------------------------------------

checkpatch.pl has some complaints:

--------------------------------------------------------------------------------

checkpatch.pl results for patch "[PATCH] Test for multi-bit error correction"

WARNING:LONG_LINE: line over 80 characters
#320: FILE: drivers/mtd/tests/mtd_nandbiterrs.c:270:
+                       msg("After %d biterrors per subpage, read reported error %d\n",

WARNING:LONG_LINE: line over 80 characters
#328: FILE: drivers/mtd/tests/mtd_nandbiterrs.c:278:
+                       msg("ECC failure, read data is incorrect despite read success\n");

WARNING:LONG_LINE: line over 80 characters
#382: FILE: drivers/mtd/tests/mtd_nandbiterrs.c:332:
+                               msg("Implausible number of bit errors corrected\n");

WARNING:LONG_LINE: line over 80 characters
#401: FILE: drivers/mtd/tests/mtd_nandbiterrs.c:351:
+                       msg("ECC failure, read data is incorrect despite read success\n");

total: 0 errors, 4 warnings, 464 lines checked

--------------------------------------------------------------------------------
WARNING:LONG_LINE: line over 80 characters
#320: FILE: drivers/mtd/tests/mtd_nandbiterrs.c:270:
+                       msg("After %d biterrors per subpage, read reported error %d\n",

WARNING:LONG_LINE: line over 80 characters
#328: FILE: drivers/mtd/tests/mtd_nandbiterrs.c:278:
+                       msg("ECC failure, read data is incorrect despite read success\n");

WARNING:LONG_LINE: line over 80 characters
#382: FILE: drivers/mtd/tests/mtd_nandbiterrs.c:332:
+                               msg("Implausible number of bit errors corrected\n");

WARNING:LONG_LINE: line over 80 characters
#401: FILE: drivers/mtd/tests/mtd_nandbiterrs.c:351:
+                       msg("ECC failure, read data is incorrect despite read success\n");

total: 0 errors, 4 warnings, 464 lines checked

--------------------------------------------------------------------------------

References:

1. http://git.infradead.org/users/dedekind/aiaiai.git
2. http://git.infradead.org/users/dedekind/maintaining.git

-- 
Best Regards,
Artem Bityutskiy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-mtd/attachments/20120830/3f4af217/attachment.sig>


More information about the linux-mtd mailing list