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 31FF6C4345F for ; Fri, 19 Apr 2024 09:47:18 +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=hIQXGf9beBbskokg8vu2ybh0iYNY/ndjLdKfGWV41LA=; b=0huEPp2r1VIKmm gm9yhNn7/Sk3Gw+ckCMYJYcKDArWeJQTkEWkhQCYUutTBuh1I4UoEdop97P/LBQWnvP+kfAOJIkPW NaV+cyNZA19S4gfEZiyUHvTG5SYL+CRLy6aBiJrdVqpk4KiaxSvdfEE760VxZwGxiK/1O8/CjANJA t7Fz69OxXpuYWYB/mIkUMQ+PzmjkT8gM3H5WuulPhXcgU2uiW0bErnt2CS0RzAY4cjjVLwSUIYc3t BOJqAPq4pUviozURrYqjBkqJ/HvVj4mYe+3xEu0zdKyhctx3JMiWkWCZwQGG7GuoiCXQAL5n7zCWa bAd2n5+jLauleHFdoflw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rxkpt-000000058Q8-2pZu; Fri, 19 Apr 2024 09:47:13 +0000 Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rxkpq-000000058OI-0XFi for linux-mtd@lists.infradead.org; Fri, 19 Apr 2024 09:47:12 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 4AADA240006; Fri, 19 Apr 2024 09:47:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1713520023; 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=qhQrAdSZcWxsBtjX37nSDsEa6NJe/8r/3/BaJkYjzC4=; b=WXBK3ije6R0FhQbdMrBFErkSb3k8NZ67kO495uQot5nnroYCpmMt1l8CZEakJR8AuVAUKl kRzCJkkuDztiiaISHw8tCV0pYmmLQ+ERKZnKCxLPELDq2NLwdb2D3Tt1h3QMCnwUR8nNbU mGp+lRX7YhVT5RNCAoZogu+oT9FFJPGJuWCHkjLtLTCjZ0L2AWJMEL5yB0tV1dSgdaLMpo xBYCPGoQ/UWiW94fErvRP9hTKDucgOajnznqh4bnB4nCS+rJXCR19tE9wiE8nsLOhPrp8s 6o2K9uTMQqof0WfzCkF70dDCl/3fVzFYAH3vLIj0pVuBQwaFqFaG+1i9h+9eQg== Date: Fri, 19 Apr 2024 11:46:57 +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 4/4] mtd: nand: mxc_nand: disable subpage reads Message-ID: <20240419114507.5d25d8cd@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-4-d12564fe54e9@pengutronix.de> <20240418113244.6e535d3f@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-20240419_024710_603366_19D861F7 X-CRM114-Status: GOOD ( 49.61 ) 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 SGkgU2FzY2hhLAoKcy5oYXVlckBwZW5ndXRyb25peC5kZSB3cm90ZSBvbiBUaHUsIDE4IEFwciAy MDI0IDEzOjQzOjE1ICswMjAwOgoKPiBPbiBUaHUsIEFwciAxOCwgMjAyNCBhdCAxMTozMjo0NEFN ICswMjAwLCBNaXF1ZWwgUmF5bmFsIHdyb3RlOgo+ID4gSGkgU2FzY2hhLAo+ID4gCj4gPiBzLmhh dWVyQHBlbmd1dHJvbml4LmRlIHdyb3RlIG9uIFRodSwgMTggQXByIDIwMjQgMDg6NDg6MDggKzAy MDA6Cj4gPiAgIAo+ID4gPiBPbiBXZWQsIEFwciAxNywgMjAyNCBhdCAwOToxMzozMUFNICswMjAw LCBTYXNjaGEgSGF1ZXIgd3JvdGU6ICAKPiA+ID4gPiBUaGUgTkFORCBjb3JlIGVuYWJsZWQgc3Vi cGFnZSByZWFkcyB3aGVuIGEgbGFyZ2VwYWdlIE5BTkQgaXMgdXNlZCB3aXRoCj4gPiA+ID4gU09G VF9FQ0MuIFRoZSBpLk1YIE5BTkQgY29udHJvbGxlciBkb2Vzbid0IHN1cHBvcnQgc3VicGFnZSBy ZWFkcywgc28KPiA+ID4gPiBjbGVhciB0aGUgZmxhZyBhZ2Fpbi4KPiA+ID4gPiAKPiA+ID4gPiBT aWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+Cj4gPiA+ ID4gLS0tCj4gPiA+ID4gIGRyaXZlcnMvbXRkL25hbmQvcmF3L214Y19uYW5kLmMgfCAyICsrCj4g PiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKPiA+ID4gPiAKPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbXhjX25hbmQuYyBiL2RyaXZlcnMvbXRk L25hbmQvcmF3L214Y19uYW5kLmMKPiA+ID4gPiBpbmRleCBmNDRjMTMwZGNhMThkLi4xOWI0NjIx MGJkMTk0IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L214Y19uYW5k LmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9teGNfbmFuZC5jCj4gPiA+ID4g QEAgLTE2NjcsNiArMTY2Nyw4IEBAIHN0YXRpYyBpbnQgbXhjbmRfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiA+ID4gPiAgCWlmIChlcnIpCj4gPiA+ID4gIAkJZ290byBlc2Nh bjsKPiA+ID4gPiAgCj4gPiA+ID4gKwl0aGlzLT5vcHRpb25zICY9IH5OQU5EX1NVQlBBR0VfUkVB RDsKPiA+ID4gPiArICAgIAo+ID4gPiAKPiA+ID4gTmFoLCBpdCBkb2Vzbid0IHdvcmsgbGlrZSB0 aGlzLiBJdCB0dXJucyBvdXQgdGhlIEJCVCBpcyByZWFkIHVzaW5nCj4gPiA+IHN1YnBhZ2UgcmVh ZHMgYmVmb3JlIHdlIGNhbiBkaXNhYmxlIHRoZW0gaGVyZS4KPiA+ID4KPiA+ID4gVGhpcyBpcyB0 aGUgY29kZSBpbiBuYW5kX3NjYW5fdGFpbCgpIHdlIHN0dW1ibGUgdXBvbjoKPiA+ID4gCj4gPiA+ IAkvKiBMYXJnZSBwYWdlIE5BTkQgd2l0aCBTT0ZUX0VDQyBzaG91bGQgc3VwcG9ydCBzdWJwYWdl IHJlYWRzICovCj4gPiA+IAlzd2l0Y2ggKGVjYy0+ZW5naW5lX3R5cGUpIHsKPiA+ID4gCWNhc2Ug TkFORF9FQ0NfRU5HSU5FX1RZUEVfU09GVDoKPiA+ID4gCQlpZiAoY2hpcC0+cGFnZV9zaGlmdCA+ IDkpCj4gPiA+IAkJCWNoaXAtPm9wdGlvbnMgfD0gTkFORF9TVUJQQUdFX1JFQUQ7Cj4gPiA+IAkJ YnJlYWs7Cj4gPiA+IAo+ID4gPiAJZGVmYXVsdDoKPiA+ID4gCQlicmVhazsKPiA+ID4gCX0KPiA+ ID4gCj4gPiA+IFNvIHRoZSBjb2RlIGFzc3VtZXMgc3VicGFnZSByZWFkcyBhcmUgb2sgd2hlbiBT T0ZUX0VDQyBpcyBpbiB1c2UsIHdoaWNoCj4gPiA+IGluIG15IGNhc2UgaXMgbm90IHRydWUuIEkg Z3Vlc3Mgc29tZSBkcml2ZXJzIGRlcGVuZCBvbiB0aGUKPiA+ID4gTkFORF9TVUJQQUdFX1JFQUQg Yml0IG1hZ2ljYWxseSBiZSBzZXQsIHNvIHNpbXBseSByZW1vdmluZyB0aGlzIGNvZGUgaXMKPiA+ ID4gbGlrZWx5IG5vdCBhbiBvcHRpb24uICBBbnkgaWRlYXMgd2hhdCB0byBkbz8gIAo+ID4gCj4g PiBDYW4geW91IGVsYWJvcmF0ZSB3aHkgc3VicGFnZSByZWFkcyBhcmUgbm90IGFuIG9wdGlvbiBp biB5b3VyCj4gPiBzaXR1YXRpb24/IFdoaWxlIHN1YnBhZ2Ugd3JpdGVzIGRlcGVuZCBvbiBjaGlw IGNhcGFiaWxpdGllcywgcmVhZHMKPiA+IGhvd2V2ZXIgc2hvdWxkIGFsd2F5cyB3b3JrOiBpdCdz IGp1c3QgdGhlIGNvbnRyb2xsZXIgc2VsZWN0aW5nIHRoZQo+ID4gY29sdW1uIHdoZXJlIHRvIHN0 YXJ0IGFuZCB0aGVuIHJlYWRpbmcgbGVzcyBkYXRhIHRoYW4gaXQgY291bGQgZnJvbSB0aGUKPiA+ IE5BTkQgY2FjaGUuIEl0J3MgYSB2ZXJ5IGJhc2ljIE5BTkQgY29udHJvbGxlciBmZWF0dXJlLCBh bmQgSSByZW1lbWJlcgo+ID4gdGhpcyB3YXMgd29ya2luZyBvbiBlZy4gYW4gaS5NWDI3LiAgCj4g Cj4gT24gdGhlIGkuTVgyNyByZWFkaW5nIGEgZnVsbCAyayBwYWdlIG1lYW5zIHRyaWdnZXJpbmcg b25lIHJlYWQgb3BlcmF0aW9uCj4gcGVyIDUxMiBieXRlcyBpbiB0aGUgTkFORCBjb250cm9sbGVy LCBzbyBpdCB3b3VsZCBiZSBwb3NzaWJsZSB0byByZWFkCj4gc3VicGFnZXMgYnkgdHJpZ2dlcmlu ZyBvbmx5IG9uZSByZWFkIG9wZXJhdGlvbiBpbnN0ZWFkIG9mIGZvdXIgaW4gYSByb3cuCj4gCj4g VGhlIG5ld2VyIFNvQ3MgbGlrZSBpLk1YMjUgYWx3YXlzIHJlYWQgYSBmdWxsIHBhZ2Ugd2l0aCBh IHNpbmdsZSByZWFkCj4gb3BlcmF0aW9uLiBXZSBjb3VsZCBsaWtlbHkgcmVhZCBzdWJwYWdlcyBi eSB0ZW1wb3JhcmlseSBjb25maWd1cmluZyB0aGUKPiBjb250cm9sbGVyIGZvciBhIDUxMmIgcGFn ZSBzaXplIE5BTkQuCj4gCj4gSSBqdXN0IHJlYWxpemVkIHRoZSByZWFsIHByb2JsZW0gY29tZXMg d2l0aCByZWFkaW5nIHRoZSBPT0IgZGF0YS4gV2l0aAo+IHNvZnR3YXJlIEJDSCB0aGUgTkFORCBs YXllciBoYXJkY29kZXMgdGhlIHJlYWRfc3VicGFnZSBob29rIHRvCj4gbmFuZF9yZWFkX3N1YnBh Z2UoKSB3aGljaCB1c2VzIG5hbmRfY2hhbmdlX3JlYWRfY29sdW1uX29wKCkgdG8gcmVhZCB0aGUK PiBPT0IgZGF0YS4gVGhpcyB1c2VzIE5BTkRfQ01EX1JORE9VVCBhbmQgSSBoYXZlIG5vdyBpZGVh IGlmL2hvdyB0aGlzIGNhbgo+IGJlIGltcGxlbWVudGVkIGluIHRoZSBpLk1YIE5BTkQgZHJpdmVy LiBSaWdodCBub3cgdGhlIGNvbnRyb2xsZXIgaW5kZWVkCj4gcmVhZHMgc29tZSBkYXRhIGFuZCB0 aGVuIHRoZSBTUkFNIGJ1ZmZlciByZWFsbHkgY29udGFpbnMgcGFydCBvZiB0aGUKPiBkZXNpcmVk IE9PQiBkYXRhLCBidXQgYWxzbyBwYXJ0IG9mIHRoZSB1c2VyIGRhdGEuCgpOQU5EX0NNRF9STkRP VVQgaXMgaW1wb3NzaWJsZSB0byBhdm9pZCwgdGhlIGNvbnRyb2xsZXIgc3VyZWx5IHN1cHBvcnRz Cml0IGFuZCB0aGUgY29yZSByZWFsbHkgbmVlZCBpdCBhbnl3YXkuIEJhc2ljYWxseSByZWFkaW5n IGZyb20gYSBOQU5ECmNoaXAgaXMgYSBtYXR0ZXIgb2Y6CgotIGFza2luZyB0aGUgY2hpcCB0byAi c2FtcGxlIiB0aGUgTkFORCBhcnJheSBhbmQgc3RvcmUgYSBmdWxsIHBhZ2UKICAoZGF0YStPT0Ip IGluIGl0cyBpbnRlcm5hbCBTUkFNCi0gd2FpdGluZyBmb3IgaXQgdG8gaGFwcGVuCi0gcmVhZGlu ZyBmcm9tIHRoZSBjaGlwJ3MgU1JBTSwgYW55IGxlbmd0aCwgYW55IG9mZnNldC4gT2YgY291cnNl IHRoZQogIG9mZnNldCBhbmQgbGVuZ3RoIG11c3QgYmUgYWxpZ25lZCB3aXRoIHRoZSBvbi1ob3N0 IEVDQyBlbmdpbmUgd2hlbgogIHRoZXJlIGlzIG9uZS4KClN1cHBvcnRpbmcgdGhpcyBjb21tYW5k IG11c3QgYmUgc3RyYWlnaHRmb3J3YXJkIHdpdGggLT5leGVjX29wKCksIGhlcmUKaXMgdGhlIHBh dHRlcm46Cmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L2xhdGVzdC9zb3VyY2UvZHJp dmVycy9tdGQvbmFuZC9yYXcvbmFuZF9iYXNlLmMjTDE0NTQKCj4gV2UgbWlnaHQgb3ZlcmNvbWUg dGhlc2UgcHJvYmxlbXMsIGJ1dCBJIGFtIG5vdCBzdXJlIGlmIGl0J3Mgd29ydGggaXQuCj4gSXQn cyBhbmNpZW50IGhhcmR3YXJlIHRoYXQgSSBkb24ndCB3YW50IHRvIHB1dCB0b28gbXVjaCBlZmZv cnQgaW50byBhbmQKPiBJIGRvdWJ0IHRoYXQgdGhlIGVuZCByZXN1bHQgd291bGQgaGF2ZSBhIGJl dHRlciBwZXJmb3JtYW5jZSB3aGVuIHdlIG5lZWQKPiBvbmUgb3BlcmF0aW9uIHRvIHJlYWQgdGhl IHN1YnBhZ2UgYW5kIGFub3RoZXIgb25lIHRvIHJlYWQgT09CIGFzIG9wcG9zZWQKPiB0byBhbHdh eXMgcmVhZCBmdWxsIHBhZ2VzCgpXZSBzaGFsbCBkZWZpbml0ZWx5IGF2b2lkIGRvaW5nIHNldmVy YWwgcmVhZCBvcGVyYXRpb25zLCBidXQgYXMKZXhwbGFpbmVkIGFib3ZlLCB5b3UgY2FuIG1vdmUg dGhlIGludGVybmFsIFNSQU0gcG9pbnRlciBhdCBubyBjb3N0CigicmVhZCBmcm9tIGNhY2hlIiBj b21tYW5kcywgbmFtZWQgImNoYW5nZWRfY29sdW1uIiBpbiB0aGUgY29yZSksIHNvIHRoZQpwZXJm b3JtYW5jZSBwZW5hbHR5IGlzIG5lZ2xpZ2libGUuCgo+ICh3aGljaCBpcyBvbmx5IG9uZSBvcGVy YXRpb24sIHNheSBvbmUKPiBpbnRlcnJ1cHQgbGF0ZW5jeSwgZm9yIGVhY2ggcGFnZSByZWFkKS4K ClRoZSBteGNfbmFuZC5jIGRyaXZlciB3YXMgbXkgZmlyc3QgZXZlciBOQU5EIGNvbnRyb2xsZXIg ZHJpdmVyIHJlLXdyaXRlCmJ1dCB1bmZvcnR1bmF0ZWx5IHRoZSBxdWFsaXR5IHdhcyB0b28gYmFk IGZvciBiZWluZyBzdWJtaXR0ZWQgYXQgdGhhdAp0aW1lLiBNeSBnb2FsIHdhcyB0aGUgc2FtZSBh cyB5b3Vycy4gUXVpY2tseSBhZnRlciB3ZSBpbnRyb2R1Y2VkCi0+ZXhlY19vcCgpIGFuZCB0aHVz IG15IGluaXRpYWwgcmUtd29yayB3YXMgdHJhc2guIEJ1dCBJIHRoaW5rIGl0IHdhcwpjbG9zZSB0 byB0aGlzOgpodHRwczovL2dpdGh1Yi5jb20vbWlxdWVscmF5bmFsL2xpbnV4L2Jsb2IvcGVyc28v bXRkLW5leHQvbXhjLW5hbmQvZHJpdmVycy9tdGQvbmFuZC9teGNfbmFuZF92Mi5jCk1heWJlIHRo YXQgY2FuIGhlbHAuCgpUaGFua3MsCk1pcXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5n IGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1t dGQvCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) (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 DFAA42AE75 for ; Fri, 19 Apr 2024 09:47:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.193 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713520028; cv=none; b=IBwJkqaZlYjKPun+FMR6D5Iy9umO8EvhH0wTenvkw53KFj4T//weLVivq5qR1w6GKJj0nM6SoqcR98q18mT14b88yay4jd3mgQ6Ez6YJoHuyc0/p0ETmkd3vk3re/rYpoWji8rzc39xA9csSecr9ZuYMFIeujzMjHz/WcsNreBM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713520028; c=relaxed/simple; bh=N/f1o95G/VJkj66uEFyQmlLCwLdEPKRS4xZy8zzcA38=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EgWZ0av0yAYtwxBW4LtRjzuibztfsuG+FNZsLBaQSFJt0Ew8PrOyIss8SN1XjiRKkGgygACYK4nfqulMa5k8u+YJqmWQMD1ygBCX7eLsVA4UlHdGOHj2aZiZ/ZAeFeJqj1zTk4dgpPUUaFzfYjCvmOrEfYOhiASYBr7gYsl/o0Y= 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=WXBK3ije; arc=none smtp.client-ip=217.70.183.193 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="WXBK3ije" Received: by mail.gandi.net (Postfix) with ESMTPSA id 4AADA240006; Fri, 19 Apr 2024 09:47:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1713520023; 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=qhQrAdSZcWxsBtjX37nSDsEa6NJe/8r/3/BaJkYjzC4=; b=WXBK3ije6R0FhQbdMrBFErkSb3k8NZ67kO495uQot5nnroYCpmMt1l8CZEakJR8AuVAUKl kRzCJkkuDztiiaISHw8tCV0pYmmLQ+ERKZnKCxLPELDq2NLwdb2D3Tt1h3QMCnwUR8nNbU mGp+lRX7YhVT5RNCAoZogu+oT9FFJPGJuWCHkjLtLTCjZ0L2AWJMEL5yB0tV1dSgdaLMpo xBYCPGoQ/UWiW94fErvRP9hTKDucgOajnznqh4bnB4nCS+rJXCR19tE9wiE8nsLOhPrp8s 6o2K9uTMQqof0WfzCkF70dDCl/3fVzFYAH3vLIj0pVuBQwaFqFaG+1i9h+9eQg== Date: Fri, 19 Apr 2024 11:46:57 +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 4/4] mtd: nand: mxc_nand: disable subpage reads Message-ID: <20240419114507.5d25d8cd@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-4-d12564fe54e9@pengutronix.de> <20240418113244.6e535d3f@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 Thu, 18 Apr 2024 13:43:15 +0200: > On Thu, Apr 18, 2024 at 11:32:44AM +0200, Miquel Raynal wrote: > > Hi Sascha, > >=20 > > s.hauer@pengutronix.de wrote on Thu, 18 Apr 2024 08:48:08 +0200: > > =20 > > > On Wed, Apr 17, 2024 at 09:13:31AM +0200, Sascha Hauer wrote: =20 > > > > The NAND core enabled subpage reads when a largepage NAND is used w= ith > > > > SOFT_ECC. The i.MX NAND controller doesn't support subpage reads, so > > > > clear the flag again. > > > >=20 > > > > Signed-off-by: Sascha Hauer > > > > --- > > > > drivers/mtd/nand/raw/mxc_nand.c | 2 ++ > > > > 1 file changed, 2 insertions(+) > > > >=20 > > > > diff --git a/drivers/mtd/nand/raw/mxc_nand.c b/drivers/mtd/nand/raw= /mxc_nand.c > > > > index f44c130dca18d..19b46210bd194 100644 > > > > --- a/drivers/mtd/nand/raw/mxc_nand.c > > > > +++ b/drivers/mtd/nand/raw/mxc_nand.c > > > > @@ -1667,6 +1667,8 @@ static int mxcnd_probe(struct platform_device= *pdev) > > > > if (err) > > > > goto escan; > > > > =20 > > > > + this->options &=3D ~NAND_SUBPAGE_READ; > > > > + =20 > > >=20 > > > Nah, it doesn't work like this. It turns out the BBT is read using > > > subpage reads before we can disable them here. > > > > > > This is the code in nand_scan_tail() we stumble upon: > > >=20 > > > /* Large page NAND with SOFT_ECC should support subpage reads */ > > > switch (ecc->engine_type) { > > > case NAND_ECC_ENGINE_TYPE_SOFT: > > > if (chip->page_shift > 9) > > > chip->options |=3D NAND_SUBPAGE_READ; > > > break; > > >=20 > > > default: > > > break; > > > } > > >=20 > > > So the code assumes subpage reads are ok when SOFT_ECC is in use, whi= ch > > > in my case is not true. I guess some drivers depend on the > > > NAND_SUBPAGE_READ bit magically be set, so simply removing this code = is > > > likely not an option. Any ideas what to do? =20 > >=20 > > Can you elaborate why subpage reads are not an option in your > > situation? While subpage writes depend on chip capabilities, reads > > however should always work: it's just the controller selecting the > > column where to start and then reading less data than it could from the > > NAND cache. It's a very basic NAND controller feature, and I remember > > this was working on eg. an i.MX27. =20 >=20 > On the i.MX27 reading a full 2k page means triggering one read operation > per 512 bytes in the NAND controller, so it would be possible to read > subpages by triggering only one read operation instead of four in a row. >=20 > The newer SoCs like i.MX25 always read a full page with a single read > operation. We could likely read subpages by temporarily configuring the > controller for a 512b page size NAND. >=20 > I just realized the real problem comes with reading the OOB data. With > software BCH the NAND layer hardcodes the read_subpage hook to > nand_read_subpage() which uses nand_change_read_column_op() to read the > OOB data. This uses NAND_CMD_RNDOUT and I have now idea if/how this can > be implemented in the i.MX NAND driver. Right now the controller indeed > reads some data and then the SRAM buffer really contains part of the > desired OOB data, but also part of the user data. NAND_CMD_RNDOUT is impossible to avoid, the controller surely supports it and the core really need it anyway. Basically reading from a NAND chip is a matter of: - asking the chip to "sample" the NAND array and store a full page (data+OOB) in its internal SRAM - waiting for it to happen - reading from the chip's SRAM, any length, any offset. Of course the offset and length must be aligned with the on-host ECC engine when there is one. Supporting this command must be straightforward with ->exec_op(), here is the pattern: https://elixir.bootlin.com/linux/latest/source/drivers/mtd/nand/raw/nand_ba= se.c#L1454 > We might overcome these problems, but I am not sure if it's worth it. > It's ancient hardware that I don't want to put too much effort into and > I doubt that the end result would have a better performance when we need > one operation to read the subpage and another one to read OOB as opposed > to always read full pages We shall definitely avoid doing several read operations, but as explained above, you can move the internal SRAM pointer at no cost ("read from cache" commands, named "changed_column" in the core), so the performance penalty is negligible. > (which is only one operation, say one > interrupt latency, for each page read). The mxc_nand.c driver was my first ever NAND controller driver re-write but unfortunately the quality was too bad for being submitted at that time. My goal was the same as yours. Quickly after we introduced ->exec_op() and thus my initial re-work was trash. But I think it was close to this: https://github.com/miquelraynal/linux/blob/perso/mtd-next/mxc-nand/drivers/= mtd/nand/mxc_nand_v2.c Maybe that can help. Thanks, Miqu=C3=A8l