From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55BAFC433B4 for ; Wed, 7 Apr 2021 08:03:07 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EED1961168 for ; Wed, 7 Apr 2021 08:03:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EED1961168 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Nw26RvL+FwDkKRXBUu0L8uPxkyaXKDjxf0753ccFahQ=; b=V/LNYOsXjAH0OOb4BKkYSmW/e hIrc0vzUILBljLOPlMSeVeWJF0CTRShG2XJMyX6DtDwydJT2H7iBHEy68okbzVeJ/D0fED+F/YLPp 80UBjm1VEXxCSexfMMLciAtpXf+RQImtlsfYyXGJDPRTvS/+7bYooP6XZqyggKBuL1+NVM40njUkx zgfnCBJjyNh3ooJDfv0TaOPsjMnofUU2O0+FaAatdqlQ00eZcrD5xbMlx+asq9TIws34FpLDR7+jK 0/V0rSu74uoPWsoKsqh9E96H7LEON1r3fJ2q17UDIS66Sg5oLb31O2ftUCQaz+mY57RxoFp4FFlir kHtEPRkIQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lU38e-004SCK-9Q; Wed, 07 Apr 2021 08:02:12 +0000 Received: from relay9-d.mail.gandi.net ([217.70.183.199]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lU38Z-004SC1-IC for linux-mtd@lists.infradead.org; Wed, 07 Apr 2021 08:02:10 +0000 X-Originating-IP: 90.89.138.59 Received: from xps13 (lfbn-tou-1-1325-59.w90-89.abo.wanadoo.fr [90.89.138.59]) (Authenticated sender: miquel.raynal@bootlin.com) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 9D409FF80E; Wed, 7 Apr 2021 08:02:05 +0000 (UTC) Date: Wed, 7 Apr 2021 10:02:04 +0200 From: Miquel Raynal To: Daniel Palmer Cc: linux-mtd@lists.infradead.org, Linux Kernel Mailing List Subject: Re: [PATCH v2] mtd: spinand: add support for Foresee FS35ND01G-S1Y2 Message-ID: <20210407100204.08d894ca@xps13> In-Reply-To: References: <20210213095724.3411058-1-daniel@0x0f.com> <20210215112409.1a755bf0@xps13> <20210215121653.4edd86c4@xps13> <20210322193213.18520b9a@xps13> <20210323113233.3523d66b@xps13> <20210323150603.6b942a60@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210407_090207_906024_98D4F0D8 X-CRM114-Status: GOOD ( 21.38 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgRGFuaWVsLAoKRGFuaWVsIFBhbG1lciA8ZGFuaWVsQDB4MGYuY29tPiB3cm90ZSBvbiBGcmks IDI2IE1hciAyMDIxIDIzOjA5OjI4CiswOTAwOgoKPiBIaSBNaXF1ZWwsCj4gCj4gU29ycnkgZm9y IHRoZSBjb25zdGFudCBwZXN0ZXJpbmcgb24gdGhpcy4uCj4gCj4gT24gVHVlLCAyMyBNYXIgMjAy MSBhdCAyMzowNiwgTWlxdWVsIFJheW5hbCA8bWlxdWVsLnJheW5hbEBib290bGluLmNvbT4gd3Jv dGU6Cj4gPiA+ICMgbmFuZGJpdGVycnMgLWkgL2Rldi9tdGQxCj4gPiA+IGluY3JlbWVudGFsIGJp dGVycm9ycyB0ZXN0Cj4gPiA+IFN1Y2Nlc3NmdWxseSBjb3JyZWN0ZWQgMCBiaXQgZXJyb3JzIHBl ciBzdWJwYWdlCj4gPiA+IEluc2VydGVkIGJpdGVycm9yIEAgMC81Cj4gPiA+IFJlYWQgcmVwb3J0 ZWQgNCBjb3JyZWN0ZWQgYml0IGVycm9ycwo+ID4gPiBFQ0MgZmFpbHVyZSwgaW52YWxpZCBkYXRh IGRlc3BpdGUgcmVhZCBzdWNjZXNzICAKPiA+Cj4gPiBUaGlzIGlzIG5vdCBhIHZhbGlkIGJlaGF2 aW9yLiBUaGVyZSBpcyBzb21ldGhpbmcgd3Jvbmcgd2l0aCB0aGUgd2F5IEVDQwo+ID4gc3RhdHVz IGlzIHJlYWQvcmV0cmlldmVkLiBUaGUgcmVhZCBzaG91bGQgaW5kZWVkIHJlcG9ydCA0IGNvcnJl Y3RlZCBiaXQKPiA+IGVycm9ycywgYnV0IHRoZW4gdGhlIGRhdGEgc2hvdWxkIGJlIHZhbGlkLiBI ZXJlIGl0IG1lYW5zIHRoYXQgdGhlCj4gPiBpbnRyb2R1Y2VkIGVycm9yIGFwcGVhcnMgY29ycmVj dGVkIGJ1dCBpbiBmYWN0IGlzIG5vdC4KPiA+IFdlIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHN0 YXR1cyBhcmUgYXZhaWxhYmxlIGFuZCB3cml0ZSB0aGUKPiA+IGFwcHJvcHJpYXRlIHZlbmRvciBj b2RlLiAgCj4gCj4gSSBsb29rZWQgYXQgdGhlIGRhdGFzaGVldCBhZ2FpbiBhbmQgdGhlIGVuY29k aW5nIGZvciBlY2Mgc3RhdHVzIHNlZW1zCj4gYSBiaXQgZnVua3kuCj4gVGhlIGNoaXAgc2VlbXMg dG8gaGF2ZSBvbmx5IHR3byBiaXRzIGZvciBFQ0Mgc3RhdHVzIHdpdGggdGhpcyBlbmNvZGluZzoK PiAwIC0gUmVhZCBzdWNjZXNzIHdpdGggMC0zIGZsaXBwZWQgYml0cy4KPiAxIC0gUmVhZCBzdWNj ZXNzIHdpdGggNCBmbGlwcGVkIGJpdHMuCj4gMiAtIFVuY29ycmVjdGFibGUuCj4gMyAtIFJlc2Vy dmVkLgo+IAoKVmVyeSBuaWNlIGluZm9ybWF0aW9uLgoKPiBUaGlzIGxvb2tzIGFsbW9zdCB0aGUg c2FtZSBhcyB0aGUgV2luYm9uZCBjaGlwcyB3aXRoIDAgYW5kIDEgYmVpbmcgc3VjY2Vzc2VzCj4g YnV0IHdpdGggbm8gdG90YWxseSBlcnJvciBmcmVlIHN0YXR1cy4KPiAKPiBBbnlob3csIGlmIDQg Yml0cyB3ZXJlIGNvcnJlY3RlZCBpcyByZXR1cm5lZCBmb3IgMSB0aGVuIG5hbmRiaXRlcnJzCj4g cmVwb3J0cyAiRUNDIGZhaWx1cmUsIGludmFsaWQgZGF0YSBkZXNwaXRlIHJlYWQgc3VjY2VzcyIu Cj4gSWYgSSByZXR1cm4gMyBiaXQgZXJyb3JzIGZvciAwIGFuZCAtRUJBRE1TRyBmb3IgYW55dGhp bmcgZWxzZQo+IG5hbmRiaXRlcnJzIGRvZXNuJ3QgY29tcGxhaW4gYW55bW9yZSBidXQgaXMgdGhp cyByaWdodD86CgpZb3UgbWF5IGxvb2sgYXQgbWljcm9uXzhfZWNjX2dldF9zdGF0dXMoKSBoZWxw ZXIgdG8gZ3VpZGUgeW91LiBCdXQKSU1ITywgaWYgdGhlcmUgYXJlIDAtMyBiZiwgeW91IHNob3Vs ZCBwcm9iYWJseSBhc3N1bWUgdGhlcmUgd2VyZSAzIGJmCmFuZCByZXR1cm4gMywgaWYgdGhlcmUg d2VyZSA0LCByZXR1cm4gNCwgaWYgaXQncyB1bmNvcnJlY3RhYmxlIHJldHVybgotRUJBRE1TRyBv dGhlcndpc2UgLUVJTlZBTC4KCldlIHNob3VsZCB2ZXJpZnkgdGhhdCB0aGlzIGRvZXMgbm90IG1l c3Mgd2l0aCBVQkkgd2VhciBsZXZlbGluZwp0aG91Z2guIFBsZWFzZSBjaGVjayB0aGF0IHJldHVy bmluZyAzLWJpdCBlcnJvcnMgbm8gbWF0dGVyIHRoZQphY3R1YWwgbnVtYmVyIG9mIGZsaXBwZWQg Yml0cyBkb2VzIG5vdCBsZWFkIFVCSSB0byBtb3ZlIHRoZSBkYXRhIGF3YXkKKEkgdGhpbmsgaXQn cyBmaW5lIGJ1dCB3ZSBuZWVkIHRvIGJlIHN1cmUgb3RoZXJ3aXNlIHRoZSBpbXBsZW1lbnRhdGlv bgpwcm9wb3NhbCBpcyBub3QgdmFsaWQpLgoKVGhhbmtzLApNaXF1w6hsCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1 c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtbXRkLwo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6B347C433ED for ; Wed, 7 Apr 2021 08:03:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3BF5161003 for ; Wed, 7 Apr 2021 08:03:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235144AbhDGIDD convert rfc822-to-8bit (ORCPT ); Wed, 7 Apr 2021 04:03:03 -0400 Received: from relay9-d.mail.gandi.net ([217.70.183.199]:39605 "EHLO relay9-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244592AbhDGICZ (ORCPT ); Wed, 7 Apr 2021 04:02:25 -0400 X-Originating-IP: 90.89.138.59 Received: from xps13 (lfbn-tou-1-1325-59.w90-89.abo.wanadoo.fr [90.89.138.59]) (Authenticated sender: miquel.raynal@bootlin.com) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 9D409FF80E; Wed, 7 Apr 2021 08:02:05 +0000 (UTC) Date: Wed, 7 Apr 2021 10:02:04 +0200 From: Miquel Raynal To: Daniel Palmer Cc: linux-mtd@lists.infradead.org, Linux Kernel Mailing List Subject: Re: [PATCH v2] mtd: spinand: add support for Foresee FS35ND01G-S1Y2 Message-ID: <20210407100204.08d894ca@xps13> In-Reply-To: References: <20210213095724.3411058-1-daniel@0x0f.com> <20210215112409.1a755bf0@xps13> <20210215121653.4edd86c4@xps13> <20210322193213.18520b9a@xps13> <20210323113233.3523d66b@xps13> <20210323150603.6b942a60@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Daniel, Daniel Palmer wrote on Fri, 26 Mar 2021 23:09:28 +0900: > Hi Miquel, > > Sorry for the constant pestering on this.. > > On Tue, 23 Mar 2021 at 23:06, Miquel Raynal wrote: > > > # nandbiterrs -i /dev/mtd1 > > > incremental biterrors test > > > Successfully corrected 0 bit errors per subpage > > > Inserted biterror @ 0/5 > > > Read reported 4 corrected bit errors > > > ECC failure, invalid data despite read success > > > > This is not a valid behavior. There is something wrong with the way ECC > > status is read/retrieved. The read should indeed report 4 corrected bit > > errors, but then the data should be valid. Here it means that the > > introduced error appears corrected but in fact is not. > > We need to understand what status are available and write the > > appropriate vendor code. > > I looked at the datasheet again and the encoding for ecc status seems > a bit funky. > The chip seems to have only two bits for ECC status with this encoding: > 0 - Read success with 0-3 flipped bits. > 1 - Read success with 4 flipped bits. > 2 - Uncorrectable. > 3 - Reserved. > Very nice information. > This looks almost the same as the Winbond chips with 0 and 1 being successes > but with no totally error free status. > > Anyhow, if 4 bits were corrected is returned for 1 then nandbiterrs > reports "ECC failure, invalid data despite read success". > If I return 3 bit errors for 0 and -EBADMSG for anything else > nandbiterrs doesn't complain anymore but is this right?: You may look at micron_8_ecc_get_status() helper to guide you. But IMHO, if there are 0-3 bf, you should probably assume there were 3 bf and return 3, if there were 4, return 4, if it's uncorrectable return -EBADMSG otherwise -EINVAL. We should verify that this does not mess with UBI wear leveling though. Please check that returning 3-bit errors no matter the actual number of flipped bits does not lead UBI to move the data away (I think it's fine but we need to be sure otherwise the implementation proposal is not valid). Thanks, Miquèl