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 BD457C25B4F for ; Mon, 6 May 2024 16:41:22 +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=ICUUDlhFXhBfVCjzc/+2pW3U6dnbDWh/EjyKdkIpKw4=; b=Yfs3PIRmzU73bc n5FZMHcDHBDvxfRDi8EBx7q8jxb4wDoWbRgro8arbfZyFvsTILEvBS7sEvZzT6xx9IF2pDEdU/ouA Ls5H4YekLQDfnwqfkfhKwaVAV8MfKU6ygsIclQN3ZlBfmaWIqXpTbH0fKlkUyLHFCDyO4wXjviIW/ lQcRFkgJlPqqOYS0IGA02UeeJfIE7Sox6mJaa0CRgIWVo5aJTn57mhVkB/0YosGT2yRHa2Lu+i5a8 Th0ItiGHIBTeLAW2hU/C7QaxOtKCeL/w+2+vE40/yBXLQOu82ASJMGsOUtcYI/hFMerXDm/B15KjK F+8QEWbsLn5z6cBrSz5g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s41Ow-000000087HI-2uEp; Mon, 06 May 2024 16:41:18 +0000 Received: from relay6-d.mail.gandi.net ([2001:4b98:dc4:8::226]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s41Os-000000087EO-3HlG for linux-mtd@lists.infradead.org; Mon, 06 May 2024 16:41:16 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 4920FC0005; Mon, 6 May 2024 16:41:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1715013671; 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=95DyyLCYjvNYQJy/L4zTs68mFkL2/zy4z81jpqc7buI=; b=CJAbdoPD6OnCoHUPeVV638sEAwjvCZJmeQnOlxOuTyhLhx/Zuhhiol0xQb77hFA7yxhhk9 9OIz/RV6efkbttDjlRZn19KaIkMRjhaD1a+Pilm4FgjUTNWWL5uOBbGAfXdoGrpyh7fB6p ZuevYQHBVDKTgq1OPYa06RPuadNJG96wTZJ6uFDl34UJoHHm94XlX9paUzq+b71EynMdho 8TyULlRI82BbHoVV8STmQ9kwA/E90kDPMTDKQh52rcTAx0RbaEI9fCioDYIBrn9eEYoqhn 3rUuhYVViGAUTwl+0dLfgBK6/3kPn4ag0pszqUMw9kyLQulLZwtGCTk/PaUXgw== Date: Mon, 6 May 2024 18:41:08 +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: <20240506184108.7b1b344d@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> <20240419114507.5d25d8cd@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-20240506_094115_283648_67EF5B53 X-CRM114-Status: GOOD ( 60.19 ) 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 SGkgU2FzY2hhLAoKcy5oYXVlckBwZW5ndXRyb25peC5kZSB3cm90ZSBvbiBNb24sIDIyIEFwciAy MDI0IDEyOjUzOjM4ICswMjAwOgoKPiBPbiBGcmksIEFwciAxOSwgMjAyNCBhdCAxMTo0Njo1N0FN ICswMjAwLCBNaXF1ZWwgUmF5bmFsIHdyb3RlOgo+ID4gSGkgU2FzY2hhLAo+ID4gCj4gPiBzLmhh dWVyQHBlbmd1dHJvbml4LmRlIHdyb3RlIG9uIFRodSwgMTggQXByIDIwMjQgMTM6NDM6MTUgKzAy MDA6Cj4gPiAgIAo+ID4gPiBPbiBUaHUsIEFwciAxOCwgMjAyNCBhdCAxMTozMjo0NEFNICswMjAw LCBNaXF1ZWwgUmF5bmFsIHdyb3RlOiAgCj4gPiA+ID4gSGkgU2FzY2hhLAo+ID4gPiA+IAo+ID4g PiA+IHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGUgd3JvdGUgb24gVGh1LCAxOCBBcHIgMjAyNCAwODo0 ODowOCArMDIwMDoKPiA+ID4gPiAgICAgCj4gPiA+ID4gPiBPbiBXZWQsIEFwciAxNywgMjAyNCBh dCAwOToxMzozMUFNICswMjAwLCBTYXNjaGEgSGF1ZXIgd3JvdGU6ICAgIAo+ID4gPiA+ID4gPiBU aGUgTkFORCBjb3JlIGVuYWJsZWQgc3VicGFnZSByZWFkcyB3aGVuIGEgbGFyZ2VwYWdlIE5BTkQg aXMgdXNlZCB3aXRoCj4gPiA+ID4gPiA+IFNPRlRfRUNDLiBUaGUgaS5NWCBOQU5EIGNvbnRyb2xs ZXIgZG9lc24ndCBzdXBwb3J0IHN1YnBhZ2UgcmVhZHMsIHNvCj4gPiA+ID4gPiA+IGNsZWFyIHRo ZSBmbGFnIGFnYWluLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogU2Fz Y2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgo+ID4gPiA+ID4gPiAtLS0KPiA+ID4g PiA+ID4gIGRyaXZlcnMvbXRkL25hbmQvcmF3L214Y19uYW5kLmMgfCAyICsrCj4gPiA+ID4gPiA+ ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbXhjX25hbmQuYyBiL2RyaXZlcnMv bXRkL25hbmQvcmF3L214Y19uYW5kLmMKPiA+ID4gPiA+ID4gaW5kZXggZjQ0YzEzMGRjYTE4ZC4u MTliNDYyMTBiZDE5NCAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9y YXcvbXhjX25hbmQuYwo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9teGNf bmFuZC5jCj4gPiA+ID4gPiA+IEBAIC0xNjY3LDYgKzE2NjcsOCBAQCBzdGF0aWMgaW50IG14Y25k X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ID4gPiA+ICAJaWYgKGVy cikKPiA+ID4gPiA+ID4gIAkJZ290byBlc2NhbjsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiAr CXRoaXMtPm9wdGlvbnMgJj0gfk5BTkRfU1VCUEFHRV9SRUFEOwo+ID4gPiA+ID4gPiArICAgICAg Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IE5haCwgaXQgZG9lc24ndCB3b3JrIGxpa2UgdGhpcy4gSXQg dHVybnMgb3V0IHRoZSBCQlQgaXMgcmVhZCB1c2luZwo+ID4gPiA+ID4gc3VicGFnZSByZWFkcyBi ZWZvcmUgd2UgY2FuIGRpc2FibGUgdGhlbSBoZXJlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoaXMg aXMgdGhlIGNvZGUgaW4gbmFuZF9zY2FuX3RhaWwoKSB3ZSBzdHVtYmxlIHVwb246Cj4gPiA+ID4g PiAKPiA+ID4gPiA+IAkvKiBMYXJnZSBwYWdlIE5BTkQgd2l0aCBTT0ZUX0VDQyBzaG91bGQgc3Vw cG9ydCBzdWJwYWdlIHJlYWRzICovCj4gPiA+ID4gPiAJc3dpdGNoIChlY2MtPmVuZ2luZV90eXBl KSB7Cj4gPiA+ID4gPiAJY2FzZSBOQU5EX0VDQ19FTkdJTkVfVFlQRV9TT0ZUOgo+ID4gPiA+ID4g CQlpZiAoY2hpcC0+cGFnZV9zaGlmdCA+IDkpCj4gPiA+ID4gPiAJCQljaGlwLT5vcHRpb25zIHw9 IE5BTkRfU1VCUEFHRV9SRUFEOwo+ID4gPiA+ID4gCQlicmVhazsKPiA+ID4gPiA+IAo+ID4gPiA+ ID4gCWRlZmF1bHQ6Cj4gPiA+ID4gPiAJCWJyZWFrOwo+ID4gPiA+ID4gCX0KPiA+ID4gPiA+IAo+ ID4gPiA+ID4gU28gdGhlIGNvZGUgYXNzdW1lcyBzdWJwYWdlIHJlYWRzIGFyZSBvayB3aGVuIFNP RlRfRUNDIGlzIGluIHVzZSwgd2hpY2gKPiA+ID4gPiA+IGluIG15IGNhc2UgaXMgbm90IHRydWUu IEkgZ3Vlc3Mgc29tZSBkcml2ZXJzIGRlcGVuZCBvbiB0aGUKPiA+ID4gPiA+IE5BTkRfU1VCUEFH RV9SRUFEIGJpdCBtYWdpY2FsbHkgYmUgc2V0LCBzbyBzaW1wbHkgcmVtb3ZpbmcgdGhpcyBjb2Rl IGlzCj4gPiA+ID4gPiBsaWtlbHkgbm90IGFuIG9wdGlvbi4gIEFueSBpZGVhcyB3aGF0IHRvIGRv PyAgICAKPiA+ID4gPiAKPiA+ID4gPiBDYW4geW91IGVsYWJvcmF0ZSB3aHkgc3VicGFnZSByZWFk cyBhcmUgbm90IGFuIG9wdGlvbiBpbiB5b3VyCj4gPiA+ID4gc2l0dWF0aW9uPyBXaGlsZSBzdWJw YWdlIHdyaXRlcyBkZXBlbmQgb24gY2hpcCBjYXBhYmlsaXRpZXMsIHJlYWRzCj4gPiA+ID4gaG93 ZXZlciBzaG91bGQgYWx3YXlzIHdvcms6IGl0J3MganVzdCB0aGUgY29udHJvbGxlciBzZWxlY3Rp bmcgdGhlCj4gPiA+ID4gY29sdW1uIHdoZXJlIHRvIHN0YXJ0IGFuZCB0aGVuIHJlYWRpbmcgbGVz cyBkYXRhIHRoYW4gaXQgY291bGQgZnJvbSB0aGUKPiA+ID4gPiBOQU5EIGNhY2hlLiBJdCdzIGEg dmVyeSBiYXNpYyBOQU5EIGNvbnRyb2xsZXIgZmVhdHVyZSwgYW5kIEkgcmVtZW1iZXIKPiA+ID4g PiB0aGlzIHdhcyB3b3JraW5nIG9uIGVnLiBhbiBpLk1YMjcuICAgIAo+ID4gPiAKPiA+ID4gT24g dGhlIGkuTVgyNyByZWFkaW5nIGEgZnVsbCAyayBwYWdlIG1lYW5zIHRyaWdnZXJpbmcgb25lIHJl YWQgb3BlcmF0aW9uCj4gPiA+IHBlciA1MTIgYnl0ZXMgaW4gdGhlIE5BTkQgY29udHJvbGxlciwg c28gaXQgd291bGQgYmUgcG9zc2libGUgdG8gcmVhZAo+ID4gPiBzdWJwYWdlcyBieSB0cmlnZ2Vy aW5nIG9ubHkgb25lIHJlYWQgb3BlcmF0aW9uIGluc3RlYWQgb2YgZm91ciBpbiBhIHJvdy4KPiA+ ID4gCj4gPiA+IFRoZSBuZXdlciBTb0NzIGxpa2UgaS5NWDI1IGFsd2F5cyByZWFkIGEgZnVsbCBw YWdlIHdpdGggYSBzaW5nbGUgcmVhZAo+ID4gPiBvcGVyYXRpb24uIFdlIGNvdWxkIGxpa2VseSBy ZWFkIHN1YnBhZ2VzIGJ5IHRlbXBvcmFyaWx5IGNvbmZpZ3VyaW5nIHRoZQo+ID4gPiBjb250cm9s bGVyIGZvciBhIDUxMmIgcGFnZSBzaXplIE5BTkQuCj4gPiA+IAo+ID4gPiBJIGp1c3QgcmVhbGl6 ZWQgdGhlIHJlYWwgcHJvYmxlbSBjb21lcyB3aXRoIHJlYWRpbmcgdGhlIE9PQiBkYXRhLiBXaXRo Cj4gPiA+IHNvZnR3YXJlIEJDSCB0aGUgTkFORCBsYXllciBoYXJkY29kZXMgdGhlIHJlYWRfc3Vi cGFnZSBob29rIHRvCj4gPiA+IG5hbmRfcmVhZF9zdWJwYWdlKCkgd2hpY2ggdXNlcyBuYW5kX2No YW5nZV9yZWFkX2NvbHVtbl9vcCgpIHRvIHJlYWQgdGhlCj4gPiA+IE9PQiBkYXRhLiBUaGlzIHVz ZXMgTkFORF9DTURfUk5ET1VUIGFuZCBJIGhhdmUgbm93IGlkZWEgaWYvaG93IHRoaXMgY2FuCj4g PiA+IGJlIGltcGxlbWVudGVkIGluIHRoZSBpLk1YIE5BTkQgZHJpdmVyLiBSaWdodCBub3cgdGhl IGNvbnRyb2xsZXIgaW5kZWVkCj4gPiA+IHJlYWRzIHNvbWUgZGF0YSBhbmQgdGhlbiB0aGUgU1JB TSBidWZmZXIgcmVhbGx5IGNvbnRhaW5zIHBhcnQgb2YgdGhlCj4gPiA+IGRlc2lyZWQgT09CIGRh dGEsIGJ1dCBhbHNvIHBhcnQgb2YgdGhlIHVzZXIgZGF0YS4gIAo+ID4gCj4gPiBOQU5EX0NNRF9S TkRPVVQgaXMgaW1wb3NzaWJsZSB0byBhdm9pZCwgIAo+IAo+IEFwcGFyZW50bHkgaXQgaGFzIGJl ZW4gcG9zc2libGUgdW50aWwgbm93LiBOQU5EX0NNRF9STkRPVVQgaGFzIG5ldmVyCj4gYmVlbiB1 c2VkIHdpdGggdGhpcyBkcml2ZXIgYW5kIGl0IGFsc28gZG9lc24ndCB3b3JrIGxpa2UgZXhwZWN0 ZWQuCj4gCj4gT25lIHByb2JsZW0gaXMgdGhhdCB0aGUgcmVhZF9wYWdlX3JhdygpIGFuZCB3cml0 ZV9wYWdlX3JhdygpIGFyZSBub3QKPiBpbXBsZW1lbnRlZCBsaWtlIHN1cHBvc2VkIGJ5IHRoZSBO QU5EIGxheWVyLiBUaGUgaS5NWCBOQU5EIGNvbnRyb2xsZXIKPiB1c2VzIGEgc3luZHJvbWUgdHlw ZSBFQ0MgbGF5b3V0LCBtZWFuaW5nIHRoYXQgdGhlIHVzZXIgZGF0YSBhbmQgT09CIGRhdGEKPiBp cyBpbnRlcmxlYXZlZCwgc28gdGhlIHJhdyByL3cgZnVuY3Rpb25zIHNob3VsZCBub3JtYWxseSBw YXNzL2V4cGVjdCB0aGUKPiBwYWdlIGRhdGEgaW4gaW50ZXJsZWF2ZWQgZm9ybWF0LiBVbmZvcnR1 bmF0ZWx5IHRoZSByYXcgZnVuY3Rpb25zIGFyZSBub3QKPiBpbXBsZW1lbnRlZCBsaWtlIHRoYXQs IGluc3RlYWQgdGhleSBkZXRhbmdsZSB0aGUgZGF0YSB0aGVtc2VsdmVzLiBUaGlzCj4gYWxzbyBt ZWFucyB0aGF0IHNldHRpbmcgdGhlIGN1cnNvciB1c2luZyBOQU5EX0NNRF9STkRPVVQgd2lsbCBu b3QgcHV0Cj4gdGhlIGN1cnNvciBhdCBhIG1lYW5pbmdmdWwgcGxhY2UsIGFzIHRoZSByYXcgZnVu Y3Rpb25zIGFyZSBub3QgcmVhbGx5Cj4gZXhlY3QvcmV0dXJuIHRoZSByYXcgcGFnZSBkYXRhLgo+ IAo+IFRoaXMgY291bGQgYmUgZml4ZWQsIGJ1dCB0aGUgcmF3IG9wZXJhdGlvbnMgYXJlIGFsc28g ZXhwb3NlZCB0bwo+IHVzZXJzcGFjZSwgc28gZml4aW5nIHRoZXNlIHdvdWxkIG1lYW4gdGhhdCB3 ZSBtaWdodCBicmVhayBzb21lIHVzZXJzcGFjZQo+IGFwcGxpY2F0aW9ucy4KCkFzIGFuc3dlcmVk IHRvIHBhdGNoIDMvNCBJIGJlbGlldmUgeW91IG5lZWQgb3RoZXIgcmF3IHBhZ2UgaGVscGVycyBm b3IKdGhlIHNvZnR3YXJlIEVDQyBwYXRoLCBqdXN0IGJlY2F1c2UgdGhlIGV4aXN0aW5nIGZ1bmN0 aW9ucyBhcmUgdGlnaHQgdG8KdGhlIG9uLWhvc3QgRUNDIGxvZ2ljIGFuZCBkbyB3aGF0IHRoZXkg YXJlIGV4cGVjdGVkIHRvIGRvIChJIGJlbGlldmUpLgoKQ3JlYXRpbmcgYW5vdGhlciBzZXQgb2Yg cmF3IHBhZ2UgaGVscGVycyBzaG91bGQgYmUgc3RyYWlnaHRmb3J3YXJkIHRvCmRvIGlmIHRoYXQn cyByZWFsbHkgbmVlZGVkIChtYWlubHkgZm9yIHBlcmZvcm1hbmNlIHB1cnBvc2VzLCBidXQgd2Un cmUKbm90IHlldCB0aGVyZSkuIFVzaW5nIHRoZSBjb3JlIGhlbHBlcnMgc2hvdWxkIHdvcmssIHRo ZSBvbmx5IHRoaW5nIGlzCnN1cHBvcnRpbmcgcHJvcGVybHkgdGhlIE5BTkRfQ01EX1JORE9VVCBw YXRoLCB3aGljaCBzaG91bGQgYmUgcG9zc2libGUKYXQgYSByYXRoZXIgbG93IGNvc3QsIGl0IHJl YWxseSBpcyBhIHZlcnkgdmVyeSBiYXNpYyBjb21tYW5kLCBJIGtub3cgbm8KY29udHJvbGxlciB3 aXRob3V0IHRoaXMgZmVhdHVyZSwgZXZlbiBvbGQgb25lcy4KCj4gVGhlIG90aGVyIHBvaW50IGlz IHRoYXQgd2l0aCB1c2luZyBzb2Z0d2FyZSBCQ0ggZWNjIHRoZSBOQU5EIGxheWVyCj4gcmVxdWVz dHMgbWUgdG8gcmVhZCA3IGJ5dGVzIGF0IG9mZnNldCAweDgyNC4gVGhpcyBjYW4ndCBiZSByZWFs bHkKPiBpbXBsZW1lbnRlZCBpbiB0aGUgaS5NWCBOQU5EIGRyaXZlci4gSXQgb25seSBhbGxvd3Mg dXMgdG8gcmVhZCBhIGZ1bGwKPiA1MTIgYnl0ZSBzdWJwYWdlLCBzbyB3aGVuZXZlciB0aGUgTkFO RCBsYXllciByZXF1ZXN0cyBtZSB0byByZWFkIGEgZmV3Cj4gYnl0ZXMgdGhlIGNvbnRyb2xsZXIg d2lsbCBhbHdheXMgdHJhbnNmZXIgNTEyIGJ5dGVzIGZyb20gd2hpY2ggSSB0aGVuCj4gaWdub3Jl IG1vc3Qgb2YgaXQgKGFuZCBwb3NzaWJseSB0cmlnZ2VyIGFub3RoZXIgNTEyIGJ5dGVzIHRyYW5z ZmVyIHdoZW4KPiByZWFkaW5nIHRoZSBFQ0MgZm9yIHRoZSBuZXh0IHN1YnBhZ2UpLgoKSWYgeW91 IG1hbmFnZSB0byBnZXQgdGhlIE5BTkRfQ01EX1JORE9VVCBvcCB3b3JraW5nIEkgYmVsaWV2ZSB5 b3UnbGwgYmUKdGVtcHRlZCB0byB1c2UgbWVtY3B5MzJfZnJvbWlvKCkgd2l0aCBqdXN0IGEgc2xp Z2h0bHkgcm91bmRlZCB1cCBsZW5ndGguCgo+IEkgdGhpbmsgdGhlc2UgaXNzdWVzIGNhbiBhbGwg YmUgaGFuZGxlZCBzb21laG93LCBidXQgdGhpcyBjb21lcyBhdCBhCj4gcmF0aGVyIGhpZ2ggcHJp Y2UsIGJvdGggaW4gZWZmb3J0IGFuZCB0aGUgcmlzayBvZiBicmVha2luZyB1c2Vyc3BhY2UuCj4g SXQgd291bGQgYmUgZmFyIGVhc2llciB0byB0ZWxsIHRoZSBOQU5EIGxheWVyIG5vdCB0byBkbyBz dWJwYWdlIHJlYWRzLgoKSSB1bmRlcnN0YW5kIGl0IG1heSBmZWVsIGxpa2UgdGhhdCBidXQgdGhh dCBpcyBsaWtlbHkgbm90IHRoZSByaWdodAphcHByb2FjaC4gSSBqdXN0IHRoaW5rIGFib3V0IGFu b3RoZXIgcG9zc2liaWxpdHk6IHVzaW5nIG1vbm9saXRoaWMKcmVhZHMgaWYgdGhlIGNvbnRyb2xs ZXIgaXMgdG9vIGNvbnN0cmFpbmVkIHRoaXMgd2F5IHlvdSBtaWdodCBlbmQgdXAKYXZvaWRpbmcg dGhlIFJORE9VVCBjb21tYW5kIChtaWdodCByZXF1aXJlIGEgYml0IG9mIHR3ZWFraW5nIGluIHRo ZQpjb3JlLCBJIG5vIGxvbmdlciByZW1lbWJlciBleGFjdGx5KS4KCkdvb2QgbHVjaywgSSByZWFs bHkgYXBwcmVjaWF0ZSB0aGlzIGVmZm9ydC4KTWlxdcOobAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1h aWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LW10ZC8K 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 19B3B1E4A6 for ; Mon, 6 May 2024 16:41:12 +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=1715013675; cv=none; b=TmbO/U4Ijw1kVm/mWVtknJoe72ImIVHmeUbVnpJkZB530rj4y+b3v/ohqy4mN6z1ABPFfTYnAcWaUJmRkCbFLpumyfxIBVuz3CY7ZfOjTncihwkC4+2yHGAwHHVR8+lrDOtIw/04DjClM0B6JwN/06Iy4vICkLCwSAy76HjcALs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715013675; c=relaxed/simple; bh=oK+E6vXfyi/vU9C5XUHVKEipAX1dNyD5yGALJ5Fdxrc=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=A79JVUEIsVbPf1TBtB7fmExIbIW0fJgaXXGynEl9K+SL20NSY5gPVVTW4puJNXSBKcasBAPvSOHQg67+87t/zL8EeNUiTuga6RL225O7FT0T0+5H8LW7o+8NeKxmlfc+LaBrqkiBB5AUHou6QLnYTePFOwC0dUvQnLRZ93pofSE= 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=CJAbdoPD; 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="CJAbdoPD" Received: by mail.gandi.net (Postfix) with ESMTPSA id 4920FC0005; Mon, 6 May 2024 16:41:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1715013671; 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=95DyyLCYjvNYQJy/L4zTs68mFkL2/zy4z81jpqc7buI=; b=CJAbdoPD6OnCoHUPeVV638sEAwjvCZJmeQnOlxOuTyhLhx/Zuhhiol0xQb77hFA7yxhhk9 9OIz/RV6efkbttDjlRZn19KaIkMRjhaD1a+Pilm4FgjUTNWWL5uOBbGAfXdoGrpyh7fB6p ZuevYQHBVDKTgq1OPYa06RPuadNJG96wTZJ6uFDl34UJoHHm94XlX9paUzq+b71EynMdho 8TyULlRI82BbHoVV8STmQ9kwA/E90kDPMTDKQh52rcTAx0RbaEI9fCioDYIBrn9eEYoqhn 3rUuhYVViGAUTwl+0dLfgBK6/3kPn4ag0pszqUMw9kyLQulLZwtGCTk/PaUXgw== Date: Mon, 6 May 2024 18:41:08 +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: <20240506184108.7b1b344d@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> <20240419114507.5d25d8cd@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 Mon, 22 Apr 2024 12:53:38 +0200: > On Fri, Apr 19, 2024 at 11:46:57AM +0200, Miquel Raynal wrote: > > Hi Sascha, > >=20 > > s.hauer@pengutronix.de wrote on Thu, 18 Apr 2024 13:43:15 +0200: > > =20 > > > On Thu, Apr 18, 2024 at 11:32:44AM +0200, Miquel Raynal wrote: =20 > > > > 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 us= ed with > > > > > > SOFT_ECC. The i.MX NAND controller doesn't support subpage read= s, 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_de= vice *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,= which > > > > > in my case is not true. I guess some drivers depend on the > > > > > NAND_SUBPAGE_READ bit magically be set, so simply removing this c= ode 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 rememb= er > > > > this was working on eg. an i.MX27. =20 > > >=20 > > > On the i.MX27 reading a full 2k page means triggering one read operat= ion > > > 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 r= ow. > > >=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 t= he > > > 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 t= he > > > OOB data. This uses NAND_CMD_RNDOUT and I have now idea if/how this c= an > > > be implemented in the i.MX NAND driver. Right now the controller inde= ed > > > reads some data and then the SRAM buffer really contains part of the > > > desired OOB data, but also part of the user data. =20 > >=20 > > NAND_CMD_RNDOUT is impossible to avoid, =20 >=20 > Apparently it has been possible until now. NAND_CMD_RNDOUT has never > been used with this driver and it also doesn't work like expected. >=20 > One problem is that the read_page_raw() and write_page_raw() are not > implemented like supposed by the NAND layer. The i.MX NAND controller > uses a syndrome type ECC layout, meaning that the user data and OOB data > is interleaved, so the raw r/w functions should normally pass/expect the > page data in interleaved format. Unfortunately the raw functions are not > implemented like that, instead they detangle the data themselves. This > also means that setting the cursor using NAND_CMD_RNDOUT will not put > the cursor at a meaningful place, as the raw functions are not really > exect/return the raw page data. >=20 > This could be fixed, but the raw operations are also exposed to > userspace, so fixing these would mean that we might break some userspace > applications. As answered to patch 3/4 I believe you need other raw page helpers for the software ECC path, just because the existing functions are tight to the on-host ECC logic and do what they are expected to do (I believe). Creating another set of raw page helpers should be straightforward to do if that's really needed (mainly for performance purposes, but we're not yet there). Using the core helpers should work, the only thing is supporting properly the NAND_CMD_RNDOUT path, which should be possible at a rather low cost, it really is a very very basic command, I know no controller without this feature, even old ones. > The other point is that with using software BCH ecc the NAND layer > requests me to read 7 bytes at offset 0x824. This can't be really > implemented in the i.MX NAND driver. It only allows us to read a full > 512 byte subpage, so whenever the NAND layer requests me to read a few > bytes the controller will always transfer 512 bytes from which I then > ignore most of it (and possibly trigger another 512 bytes transfer when > reading the ECC for the next subpage). If you manage to get the NAND_CMD_RNDOUT op working I believe you'll be tempted to use memcpy32_fromio() with just a slightly rounded up length. > I think these issues can all be handled somehow, but this comes at a > rather high price, both in effort and the risk of breaking userspace. > It would be far easier to tell the NAND layer not to do subpage reads. I understand it may feel like that but that is likely not the right approach. I just think about another possibility: using monolithic reads if the controller is too constrained this way you might end up avoiding the RNDOUT command (might require a bit of tweaking in the core, I no longer remember exactly). Good luck, I really appreciate this effort. Miqu=C3=A8l