From patchwork Tue May 8 12:33:06 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Philip, Avinash" X-Patchwork-Id: 157675 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:4978:20e::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 23CCCB6FA1 for ; Tue, 8 May 2012 22:38:05 +1000 (EST) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1SRjcK-0005wZ-7Y; Tue, 08 May 2012 12:34:12 +0000 Received: from arroyo.ext.ti.com ([192.94.94.40]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1SRjcI-0005w7-1a for linux-mtd@lists.infradead.org; Tue, 08 May 2012 12:34:10 +0000 Received: from dbdp20.itg.ti.com ([172.24.170.38]) by arroyo.ext.ti.com (8.13.7/8.13.7) with ESMTP id q48CY7Bx022655 for ; Tue, 8 May 2012 07:34:08 -0500 Received: from DBDE71.ent.ti.com (localhost [127.0.0.1]) by dbdp20.itg.ti.com (8.13.8/8.13.8) with ESMTP id q48CY62H009095 for ; Tue, 8 May 2012 18:04:07 +0530 (IST) Received: from DBDE01.ent.ti.com ([fe80::d5df:c4b5:9919:4e10]) by DBDE71.ent.ti.com ([fe80::692c:15fd:9507:b54%21]) with mapi id 14.01.0323.003; Tue, 8 May 2012 18:04:07 +0530 From: "Philip, Avinash" To: "linux-mtd@lists.infradead.org" Subject: mtd oob test is failing consistently at same places in NAND flash Thread-Topic: mtd oob test is failing consistently at same places in NAND flash Thread-Index: Ac0tFqtxXtCzWPCGSoCRI2gquCI40Q== Date: Tue, 8 May 2012 12:33:06 +0000 Deferred-Delivery: Tue, 8 May 2012 12:33:00 +0000 Message-ID: <518397C60809E147AF5323E0420B992E3E934BF1@DBDE01.ent.ti.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.24.162.25] MIME-Version: 1.0 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -6.9 (------) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-6.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/, high trust [192.94.94.40 listed in list.dnswl.org] -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-mtd-bounces@lists.infradead.org Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Hi, We are having an 8-bit NAND part (MT29F2G08ABAEAWP from Micron) connected to GPMC Module (General purpose memory controller) from TI. We have been seeing mtd_oobtest failure on a partition size of 248 MB. Most of the time, test case 2 of mtd_oobtest is failing. On debugging further it seems that bit flip is happening on the test case 2 in OOB area. It is observed that the failure locations are consistent. To verify further we had tried writing zeros to OOB area and read it back. This test is passing and confirms that all OOB bits (that are programmable) are not bad. To test further I had modified the mtd_oobtest.c as follows and found this test is passing Is this behavior due to bits getting corrupted on certain sequence? Is this issue observed by anyone else? Thanks & Regards Avinash Philip diff --git a/drivers/mtd/tests/mtd_oobtest.c b/drivers/mtd/tests/mtd_oobtest.c index 933f7e5..9f118de 100644 --- a/drivers/mtd/tests/mtd_oobtest.c +++ b/drivers/mtd/tests/mtd_oobtest.c @@ -50,7 +50,7 @@ static unsigned long next = 1; static inline unsigned int simple_rand(void) { - next = next * 1103515245 + 12345; + next = next * 1103515244 + 12345; /* 45 -> 44. Sequence is changed */ return (unsigned int)((next / 65536) % 32768); }