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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E4B17C10F1A for ; Tue, 7 May 2024 07:45:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; 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=XXV6Z5XEykM1sRBfFxwPD67SdfJJLjf+fCaNehpodQ8=; b=cKhZ++EITVc/cp zKWS5qxTcnKEe8b+V0O7Ur4HyR1fCzoJGEEsD1/Nqt/GlsGbZmtxsS7K75HJGfRS5M1hrFDrCzHCb 0iMx/gePGm9MsugbDeIlkktCxmYiKf/8T8IOSYQS+k1gz31F58GrVuhf52IwMLBTFX53lTB5o41U/ Q0K07FgRTHLeyu5w4/dnBibM9T3kOJp4831igemBYfiJ2z3Itv4mlaToUZLDIAbhnkXuquBak1Bnr b92R71NtTHRJ4E6klH0v26jCFefWHBWaK1oNvjp8breJiJlOAltpyQ0q+hJrfztUc/RfHb63TAfAg FEJ3wzuNG8EghSxqb+Jw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4FWH-0000000A1ju-2nxe; Tue, 07 May 2024 07:45:49 +0000 Received: from relay6-d.mail.gandi.net ([217.70.183.198]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4FWE-0000000A1hM-2m4U for linux-mtd@lists.infradead.org; Tue, 07 May 2024 07:45:48 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id ADE29C0003; Tue, 7 May 2024 07:45:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1715067942; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=g1uefqDLk/fsECxmCZwtq2WLO2NPd1F1ghvyIHDig/M=; b=M00XljaEOXxbAQmAVgHUGBQNUTKDAQnYHvs5ieaX/Bbrm9QQv/xpZ+WYNaPQkcz/q4LW5t BmPZlrlsV67keHukDm2p6WDeQoA7qfMpjNA1bKU/w9jalEVdaRUzdocIIxvyg73zT1e+Nn RBljTJvWyy4CV0hJrOjI92L4b5qyEJetfUCLDgpYUiATqFHJcJXzVcwQXjwWCd7zY3y4LR 95KepSm2c5BxRCJ9suMOZ6O42LyauPD4/f0QCJW+Ad/RRZoF7i7ldtzJktwRbYaFf6FYCW Qs6qEc+LVphaXnP4ibBfcokO3CPQvycRyIZgplF4+NUDZPUqa3fWEqiNijrfpA== Date: Tue, 7 May 2024 09:45:38 +0200 From: Miquel Raynal To: Sascha Hauer Cc: Richard Weinberger , Vignesh Raghavendra , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/4] mtd: nand: mxc_nand: support software ECC Message-ID: <20240507094538.745fb5a9@xps-13> In-Reply-To: References: <20240417-mtd-nand-mxc-nand-exec-op-v1-0-d12564fe54e9@pengutronix.de> <20240417-mtd-nand-mxc-nand-exec-op-v1-3-d12564fe54e9@pengutronix.de> <20240506160508.6c60d50f@xps-13> <20240506175106.2ab7c844@xps-13> Organization: Bootlin X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240507_004546_993848_C0C127D0 X-CRM114-Status: GOOD ( 49.93 ) 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 SGkgU2FzY2hhLAoKcy5oYXVlckBwZW5ndXRyb25peC5kZSB3cm90ZSBvbiBUdWUsIDcgTWF5IDIw MjQgMDk6MTI6MzAgKzAyMDA6Cgo+IE9uIE1vbiwgTWF5IDA2LCAyMDI0IGF0IDA1OjUxOjA2UE0g KzAyMDAsIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4gPiBIaSBNaXF1ZWwsCj4gPiAKPiA+IG1pcXVl bC5yYXluYWxAYm9vdGxpbi5jb20gd3JvdGUgb24gTW9uLCA2IE1heSAyMDI0IDE2OjA1OjA4ICsw MjAwOgo+ID4gICAKPiA+ID4gSGkgU2FzY2hhLAo+ID4gPiAKPiA+ID4gcy5oYXVlckBwZW5ndXRy b25peC5kZSB3cm90ZSBvbiBXZWQsIDE3IEFwciAyMDI0IDA5OjEzOjMwICswMjAwOgo+ID4gPiAg IAo+ID4gPiA+IFRvIHN1cHBvcnQgc29mdHdhcmUgRUNDIHdlIHN0aWxsIG5lZWQgdGhlIGRyaXZl ciBwcm92aWRlZCByZWFkX29vYiwKPiA+ID4gPiByZWFkX3BhZ2VfcmF3IGFuZCB3cml0ZV9wYWdl X3JhdyBvcHMsIHNvIHNldCB0aGVtIHVuY29uZGl0aW9uYWxseQo+ID4gPiA+IG5vIG1hdHRlciB3 aGljaCBlbmdpbmVfdHlwZSB3ZSB1c2UuIFRoZSBPT0IgbGF5b3V0IG9uIHRoZSBvdGhlciBoYW5k Cj4gPiA+ID4gcmVwcmVzZW50cyB0aGUgbGF5b3V0IHRoZSBpLk1YIEVDQyBoYXJkd2FyZSB1c2Vz LCBzbyBzZXQgdGhpcyBvbmx5Cj4gPiA+ID4gd2hlbiBOQU5EX0VDQ19FTkdJTkVfVFlQRV9PTl9I T1NUIGlzIGluIHVzZS4KPiA+ID4gPiAKPiA+ID4gPiBXaXRoIHRoZXNlIGNoYW5nZXMgdGhlIGRy aXZlciBjYW4gYmUgdXNlZCB3aXRoIHNvZnR3YXJlIEJDSCBFQ0Mgd2hpY2gKPiA+ID4gPiBpcyB1 c2VmdWwgZm9yIE5BTkQgY2hpcHMgdGhhdCByZXF1aXJlIGEgc3Ryb25nZXIgRUNDIHRoYW4gdGhl IGkuTVgKPiA+ID4gPiBoYXJkd2FyZSBzdXBwb3J0cy4KPiA+ID4gPiAKPiA+ID4gPiBTaWduZWQt b2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+Cj4gPiA+ID4gLS0t Cj4gPiA+ID4gIGRyaXZlcnMvbXRkL25hbmQvcmF3L214Y19uYW5kLmMgfCA5ICsrKysrLS0tLQo+ ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQo+ ID4gPiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9teGNfbmFu ZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbXhjX25hbmQuYwo+ID4gPiA+IGluZGV4IGZjNzBj NjVkZWEyNjguLmY0NGMxMzBkY2ExOGQgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9tdGQv bmFuZC9yYXcvbXhjX25hbmQuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L214 Y19uYW5kLmMKPiA+ID4gPiBAQCAtMTM5NCwxNSArMTM5NCwxNiBAQCBzdGF0aWMgaW50IG14Y25k X2F0dGFjaF9jaGlwKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXApCj4gPiA+ID4gIAljaGlwLT5lY2Mu Ynl0ZXMgPSBob3N0LT5kZXZ0eXBlX2RhdGEtPmVjY2J5dGVzOwo+ID4gPiA+ICAJaG9zdC0+ZWNj c2l6ZSA9IGhvc3QtPmRldnR5cGVfZGF0YS0+ZWNjc2l6ZTsKPiA+ID4gPiAgCWNoaXAtPmVjYy5z aXplID0gNTEyOwo+ID4gPiA+IC0JbXRkX3NldF9vb2JsYXlvdXQobXRkLCBob3N0LT5kZXZ0eXBl X2RhdGEtPm9vYmxheW91dCk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJY2hpcC0+ZWNjLnJlYWRfb29i ID0gbXhjX25hbmRfcmVhZF9vb2I7Cj4gPiA+ID4gKwljaGlwLT5lY2MucmVhZF9wYWdlX3JhdyA9 IG14Y19uYW5kX3JlYWRfcGFnZV9yYXc7Cj4gPiA+ID4gKwljaGlwLT5lY2Mud3JpdGVfcGFnZV9y YXcgPSBteGNfbmFuZF93cml0ZV9wYWdlX3JhdzsgIAo+ID4gCj4gPiBBIHNlY29uZCB0aG91Z2h0 IG9uIHRoaXMuIE1heWJlIHlvdSBzaG91bGQgY29uc2lkZXIga2VlcGluZyB0aGVzZSBmb3IKPiA+ IG9uLWhvc3Qgb3BlcmF0aW9ucyBvbmx5Lgo+ID4gCj4gPiBUaGUgcmVhZC93cml0ZV9wYWdlX3Jh dyBvcGVyYXRpb25zIGFyZSBzdXBwb3NlZCB0byBkZXRhbmdsZSB0aGUgZGF0YQo+ID4gb3JnYW5p emF0aW9uIHRvIHNob3cgYSBwcm9wZXIgW2FsbCBkYXRhXVthbGwgb29iXSBvcmdhbml6YXRpb24g dG8gdGhlCj4gPiB1c2VyLiAgCj4gCj4gTGV0IG1lIHRha2Ugb25lIHN0ZXAgYmFjay4gVGhlIG9y Z2FuaXNhdGlvbiBpbiB0aGUgcmF3IE5BTkQgaXMgbGlrZSB0aGlzCj4gd2hlbiB1c2luZyBoYXJk d2FyZSBFQ0M6Cj4gCj4gWzUxMmIgZGF0YTBdWzE2YiBvb2IwXVs1MTJiIGRhdGExXVsxNmIgb29i MV1bNTEyYiBkYXRhMl1bMTZiIG9vYjJdWzUxMmIgZGF0YTNdWzE2YiBvb2IzXQo+IAo+IEZvciBh IHN0YW5kYXJkIDJrKzY0YiBOQU5ELiBUaGUgcmVhZC93cml0ZV9wYWdlX3JhdyBvcGVyYXRpb25z IGRldGFuZ2xlCj4gdGhpcyBhbmQgcHJlc2VudCB0aGUgZGF0YSB0byB0aGUgdXNlciBsaWtlIHRo aXM6Cj4gCj4gWzIwNDhiIGRhdGFdWzY0YiBPT0JdCj4gCj4gSXMgdGhpcyB0aGUgY29ycmVjdCBi ZWhhdmlvdXIgb3Igc2hvdWxkIHRoYXQgYmUgY2hhbmdlZD8KCkkgYmVsaWV2ZSBzbywgeWVzLgoK PiAoU2lkZSBub3RlOiBUaGUgR1BNSSBOQU5EIGRyaXZlciBiZWhhdmVzIGRpZmZlcmVudGx5IGhl cmUuIEl0IGhhcyB0aGUKPiBzYW1lIGludGVybGVhdmVkIG9yZ2FuaXNhdGlvbiBvbiB0aGUgY2hp cCBhbmQgYWxzbyBwcmVzZW50cyB0aGUgc2FtZQo+IGludGVybGVhdmVkIG9yZ2FuaXNhdGlvbiB0 byB0aGUgdXNlciB3aGVuIHVzaW5nIHJlYWRfcGFnZV9yYXcpCgpJJ2Qgc2F5IHRoZSBHUE1JIGRy aXZlciBpcyB3cm9uZz8KCj4gV2l0aCBteSBjdXJyZW50IGFwcHJvYWNoIGZvciBzb2Z0d2FyZSBF Q0MgdGhlIHNhbWUgbGF5b3V0IGlzIHVzZWQgb24gdGhlCj4gTkFORCBjaGlwLiBJdCB3b3VsZCBp bnRlcmxlYXZlIHRoZSBkYXRhIHdpdGggdGhlIE9PQiBvbiB0aGUgTkFORCBjaGlwCj4gYW5kLCBz aW5jZSB1c2luZyB0aGUgc2FtZSByZWFkL3dyaXRlX3BhZ2VfcmF3IG9wZXJhdGlvbnMsIGFsc28g cHJlc2VudHMKPiBbMjA0OGIgZGF0YV1bNjRiIE9PQl0gdG8gdGhlIHVzZXIuCgpObyBuZWVkLCBJ IGJlbGlldmUgdGhlIG9ubHkgcmVhc29uIGZvciBpbnRlcmxlYXZpbmcgaXMgdGhhdCB5b3VyCmhh cmR3YXJlIEVDQyBlbmdpbmUgd29ya3MgbGlrZSB0aGF0ICh3cml0ZXMgdGhlIEVDQyBieXRlcyBz bGlnaHRseQphZnRlciBlYWNoIGNodW5rIG9mIGRhdGEpLiBTbyBpZiB5b3UgZG9uJ3QgdXNlIG9u LWhvc3QgaGFyZHdhcmUgRUNDLAp5b3UgZG9uJ3QgbmVlZCB0byBkZWFsIHdpdGggdGhpcyBkYXRh IGxheW91dC4KCj4gVGhpcyB3b3JrcyBmaW5lIGN1cnJlbnRseSwgYnV0IG1lYW5zIHRoYXQgTkFO RF9DTURfUk5ET1VUIGNhbid0IGJlIHVzZWQuCj4gVXNpbmcgTkFORF9DTURfUk5ET1VUIHRvIHBv c2l0aW9uIHRoZSBjdXJzb3IgYXQgb2Zmc2V0IDUxMmIgZm9yIGV4YW1wbGUKPiBkb2Vzbid0IGdp dmUgeW91IHRoZSBzZWNvbmQgc3VicGFnZSwgYnV0IGluc3RlYWQgb29iMC4gUG9zaXRpb25pbmcg dGhlCj4gY3Vyc29yIGF0IG9mZnNldCAyMDQ4IGRvZXNuJ3QgZ2l2ZSB5b3UgdGhlIHN0YXJ0IG9m IE9PQiwgYnV0IHNvbWUKPiBwb3NpdGlvbiBpbiB0aGUgbWlkZGxlIG9mIGRhdGEzLgo+IAo+IE9r LCBOQU5EX0NNRF9STkRPVVQgY2FuJ3QgYmUgdXNlZCBmb3IgaGFyZHdhcmUgRUNDIGFuZCB0aGVy ZSdzIG5vIHdheQo+IGFyb3VuZCBpdC4gRm9yIHNvZnR3YXJlIEVDQyB3ZSBjb3VsZCBjaGFuZ2Ug dGhlIG9yZ2FuaXNhdGlvbiBpbiB0aGUgY2hpcAo+IHRvIGJlIFsyMDQ4YiBkYXRhXVs2NGIgb29i XS4gV2l0aCB0aGF0IE5BTkRfQ01EX1JORE9VVCB0aGVuIGNvdWxkIGJlCj4gdXNlZCB3aXRoIHNv ZnR3YXJlIEVDQy4KPiAKPiBZb3Ugc2F5IHRoYXQgTkFORF9DTURfUk5ET1VUIGlzIGEgYmFzaWMg Y29tbWFuZCB0aGF0IGlzIHN1cHBvcnRlZCBieSBhbGwKPiBjb250cm9sbGVycywgYW5kIHllcywg aXQgaXMgYWxzbyBzdXBwb3J0ZWQgd2l0aCB0aGUgbXhjX25hbmQgY29udHJvbGxlci4KPiBZb3Ug anVzdCBjYW4ndCBjb250cm9sIGhvdyBtYW55IGJ5dGVzIGFyZSB0cmFuc2ZlcnJlZCBiZXR3ZWVu IHRoZSBOQU5ECj4gY2hpcCBhbmQgdGhlIGNvbnRyb2xsZXIuIFdoZW4gdXNpbmcgTkFORF9DTURf Uk5ET1VUIHRvIHJlYWQgYSBmZXcgYnl0ZXMKPiBhdCBhIGNlcnRhaW4gcGFnZSBvZmZzZXQgd2Un bGwgZW5kIHVwIHJlYWRpbmcgNTEyIGJ5dGVzIGRpc2NhcmRpbmcgbW9zdAo+IG9mIGl0LiBGb3Ig dGhlIG5leHQgRUNDIGJsb2NrIHdlIHdvdWxkIG1vdmUgdGhlIGN1cnNvciBmb3J3YXJkIHVzaW5n Cj4gYW5vdGhlciBOQU5EX0NNRF9STkRPVVQgY29tbWFuZCwgYWdhaW4gcmVhZCA1MTIgYnl0ZXMg YW5kIGRpc2NhcmQgbW9zdAo+IGl0IChhbHRvdWdoIHRoZSBkZXNpcmVkIGRhdGEgd291bGQgaGF2 ZSBiZWVuIGluIHRoZSBmaXJzdCByZWFkIGFscmVhZHkpLgoKSSdtIG5vdCBzdXJlIHRoZSBjb250 cm9sbGVyIGxpbWl0YXRpb25zIGFyZSBzbyBiYWQgaW4gdGhpcyBjYXNlLiBUaGUKY29yZSBoZWxw ZXJzICh1c2luZyB0aGUgc2FtZSBleGFtcGxlKSB3aWxsIGFzayBmb3I6Ci0gNTEyYiBhdCBvZmZz ZXQgMAotIDUxMmIgYXQgb2Zmc2V0IDUxMi4uLgotIGFuZCBmaW5hbGx5IDY0YiBhdCBvZmZzZXQg MjA0OC4KSW4gcHJhY3RpY2UgaXQgZG9lcyBub3QgbG9vayBsaWtlIGEgaHVnZSBkcmF3YmFjaz8g SSBkb24ndCB1bmRlcnN0YW5kCmluIHdoaWNoIGNhc2Ugc28gbXVjaCBkYXRhIHdvdWxkIGJlIHJl YWQgYW5kIHRoZW4gZGlzY2FyZGVkPwoKPiBTbyBJIHRoaW5rIE5BTkRfQ01EX1JORE9VVCBzaG91 bGQgcmVhbGx5IGJlIGF2b2lkZWQgZm9yIHRoaXMgY29udHJvbGxlciwKPiBldmVudGhvdWdoIHdl IG1pZ2h0IGJlIGFibGUgdG8gc3VwcG9ydCBpdC4KCkkgYWxzbyBtZW50aW9uZWQgdGhlIG1vbm9s aXRoaWMgYWNjZXNzb3JzIHdoaWNoIHRyeSB0byBhdm9pZCB0aGVzZQpyYW5kb20gY29sdW1uIGNo YW5nZXMuIFlvdSBwcm9iYWJseSB3YW50IHRvIGNoZWNrIHRoZW0gb3V0LCB0aGV5IG1pZ2h0Cmp1 c3QgYXZvaWQgdGhlIG5lZWQgZm9yIE5BTkRfQ01EX1JORE9VVCBieSBmb3JjaW5nIGZ1bGwgcGFn ZSBhY2Nlc3NlcwpkaXJlY3RseS4gVGhlIHJlYXNvbiB3aHkgdGhleSB3ZXJlIGludHJvZHVjZWQg aXMgbm90IGV4YWN0bHkgb3VyCmN1cnJlbnQgdXNlIGNhc2UsIGJ1dCBpdCBmZWVscyBsaWtlIHRo ZXkgbWlnaHQgYmUgaGFuZHkuCgo2NThiZWI2NjM5NjAgKCJtdGQ6IHJhd25hbmQ6IEV4cG9zZSBt b25vbGl0aGljIHJlYWQvd3JpdGVfcGFnZV9yYXcoKSBoZWxwZXJzIikKMGU3ZjRiNjRlYTQ2ICgi bXRkOiByYXduYW5kOiBBbGxvdyBjb250cm9sbGVycyB0byBvdmVybG9hZCBzb2Z0IEVDQyBob29r cyIpCgpUaGFua3MsCk1pcXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC49613C3C0 for ; Tue, 7 May 2024 07:45:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.198 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715067952; cv=none; b=bEqcF/TKH1Ud6UC+rOiruE7rCdNkyrsg4mdlJWDGzlHwes+8iqmpGfwWuEs817jYAhUdb5DKwxvvSWn6ruuzyKtSfnCedg1H2XlWL2zQmDQvvfJyMkfIe/9Vh3O3e/3Wdddq7XSZaZFIZSd8+1nBoX+ETtkEN2mKsNQPzlSU+pA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715067952; c=relaxed/simple; bh=AxHL9xg+mFC6sPc7w09Awd3HmVldm43BtK2rfpIjzAQ=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PSPEQ2SOWnhXz9V1jsG/jr4QLl6QBQn4DvrPqL28xuLMSzOWWnfRMd+XcY0vzmAH1uYh0+ZV5lV0bowTFcwrViOmoNX1W7jFwNqsNNNM79FrZXQ8K7C6KzMHwGjxuDKc5Az/o3XYks1qW4g0fM43Q5VVK3xcMdQ4hPXo+pxUv68= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=M00XljaE; arc=none smtp.client-ip=217.70.183.198 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="M00XljaE" Received: by mail.gandi.net (Postfix) with ESMTPSA id ADE29C0003; Tue, 7 May 2024 07:45:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1715067942; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=g1uefqDLk/fsECxmCZwtq2WLO2NPd1F1ghvyIHDig/M=; b=M00XljaEOXxbAQmAVgHUGBQNUTKDAQnYHvs5ieaX/Bbrm9QQv/xpZ+WYNaPQkcz/q4LW5t BmPZlrlsV67keHukDm2p6WDeQoA7qfMpjNA1bKU/w9jalEVdaRUzdocIIxvyg73zT1e+Nn RBljTJvWyy4CV0hJrOjI92L4b5qyEJetfUCLDgpYUiATqFHJcJXzVcwQXjwWCd7zY3y4LR 95KepSm2c5BxRCJ9suMOZ6O42LyauPD4/f0QCJW+Ad/RRZoF7i7ldtzJktwRbYaFf6FYCW Qs6qEc+LVphaXnP4ibBfcokO3CPQvycRyIZgplF4+NUDZPUqa3fWEqiNijrfpA== Date: Tue, 7 May 2024 09:45:38 +0200 From: Miquel Raynal To: Sascha Hauer Cc: Richard Weinberger , Vignesh Raghavendra , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/4] mtd: nand: mxc_nand: support software ECC Message-ID: <20240507094538.745fb5a9@xps-13> In-Reply-To: References: <20240417-mtd-nand-mxc-nand-exec-op-v1-0-d12564fe54e9@pengutronix.de> <20240417-mtd-nand-mxc-nand-exec-op-v1-3-d12564fe54e9@pengutronix.de> <20240506160508.6c60d50f@xps-13> <20240506175106.2ab7c844@xps-13> Organization: Bootlin X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; x86_64-pc-linux-gnu) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: miquel.raynal@bootlin.com Hi Sascha, s.hauer@pengutronix.de wrote on Tue, 7 May 2024 09:12:30 +0200: > On Mon, May 06, 2024 at 05:51:06PM +0200, Miquel Raynal wrote: > > Hi Miquel, > >=20 > > miquel.raynal@bootlin.com wrote on Mon, 6 May 2024 16:05:08 +0200: > > =20 > > > Hi Sascha, > > >=20 > > > s.hauer@pengutronix.de wrote on Wed, 17 Apr 2024 09:13:30 +0200: > > > =20 > > > > To support software ECC we still need the driver provided read_oob, > > > > read_page_raw and write_page_raw ops, so set them unconditionally > > > > no matter which engine_type we use. The OOB layout on the other hand > > > > represents the layout the i.MX ECC hardware uses, so set this only > > > > when NAND_ECC_ENGINE_TYPE_ON_HOST is in use. > > > >=20 > > > > With these changes the driver can be used with software BCH ECC whi= ch > > > > is useful for NAND chips that require a stronger ECC than the i.MX > > > > hardware supports. > > > >=20 > > > > Signed-off-by: Sascha Hauer > > > > --- > > > > drivers/mtd/nand/raw/mxc_nand.c | 9 +++++---- > > > > 1 file changed, 5 insertions(+), 4 deletions(-) > > > >=20 > > > > diff --git a/drivers/mtd/nand/raw/mxc_nand.c b/drivers/mtd/nand/raw= /mxc_nand.c > > > > index fc70c65dea268..f44c130dca18d 100644 > > > > --- a/drivers/mtd/nand/raw/mxc_nand.c > > > > +++ b/drivers/mtd/nand/raw/mxc_nand.c > > > > @@ -1394,15 +1394,16 @@ static int mxcnd_attach_chip(struct nand_ch= ip *chip) > > > > chip->ecc.bytes =3D host->devtype_data->eccbytes; > > > > host->eccsize =3D host->devtype_data->eccsize; > > > > chip->ecc.size =3D 512; > > > > - mtd_set_ooblayout(mtd, host->devtype_data->ooblayout); > > > > + > > > > + chip->ecc.read_oob =3D mxc_nand_read_oob; > > > > + chip->ecc.read_page_raw =3D mxc_nand_read_page_raw; > > > > + chip->ecc.write_page_raw =3D mxc_nand_write_page_raw; =20 > >=20 > > A second thought on this. Maybe you should consider keeping these for > > on-host operations only. > >=20 > > The read/write_page_raw operations are supposed to detangle the data > > organization to show a proper [all data][all oob] organization to the > > user. =20 >=20 > Let me take one step back. The organisation in the raw NAND is like this > when using hardware ECC: >=20 > [512b data0][16b oob0][512b data1][16b oob1][512b data2][16b oob2][512b d= ata3][16b oob3] >=20 > For a standard 2k+64b NAND. The read/write_page_raw operations detangle > this and present the data to the user like this: >=20 > [2048b data][64b OOB] >=20 > Is this the correct behaviour or should that be changed? I believe so, yes. > (Side note: The GPMI NAND driver behaves differently here. It has the > same interleaved organisation on the chip and also presents the same > interleaved organisation to the user when using read_page_raw) I'd say the GPMI driver is wrong? > With my current approach for software ECC the same layout is used on the > NAND chip. It would interleave the data with the OOB on the NAND chip > and, since using the same read/write_page_raw operations, also presents > [2048b data][64b OOB] to the user. No need, I believe the only reason for interleaving is that your hardware ECC engine works like that (writes the ECC bytes slightly after each chunk of data). So if you don't use on-host hardware ECC, you don't need to deal with this data layout. > This works fine currently, but means that NAND_CMD_RNDOUT can't be used. > Using NAND_CMD_RNDOUT to position the cursor at offset 512b for example > doesn't give you the second subpage, but instead oob0. Positioning the > cursor at offset 2048 doesn't give you the start of OOB, but some > position in the middle of data3. >=20 > Ok, NAND_CMD_RNDOUT can't be used for hardware ECC and there's no way > around it. For software ECC we could change the organisation in the chip > to be [2048b data][64b oob]. With that NAND_CMD_RNDOUT then could be > used with software ECC. >=20 > You say that NAND_CMD_RNDOUT is a basic command that is supported by all > controllers, and yes, it is also supported with the mxc_nand controller. > You just can't control how many bytes are transferred between the NAND > chip and the controller. When using NAND_CMD_RNDOUT to read a few bytes > at a certain page offset we'll end up reading 512 bytes discarding most > of it. For the next ECC block we would move the cursor forward using > another NAND_CMD_RNDOUT command, again read 512 bytes and discard most > it (altough the desired data would have been in the first read already). I'm not sure the controller limitations are so bad in this case. The core helpers (using the same example) will ask for: - 512b at offset 0 - 512b at offset 512... - and finally 64b at offset 2048. In practice it does not look like a huge drawback? I don't understand in which case so much data would be read and then discarded? > So I think NAND_CMD_RNDOUT should really be avoided for this controller, > eventhough we might be able to support it. I also mentioned the monolithic accessors which try to avoid these random column changes. You probably want to check them out, they might just avoid the need for NAND_CMD_RNDOUT by forcing full page accesses directly. The reason why they were introduced is not exactly our current use case, but it feels like they might be handy. 658beb663960 ("mtd: rawnand: Expose monolithic read/write_page_raw() helper= s") 0e7f4b64ea46 ("mtd: rawnand: Allow controllers to overload soft ECC hooks") Thanks, Miqu=C3=A8l