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 D96F2CA5FEF for ; Sun, 4 Oct 2026 14:38:19 +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:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=1umipN8MzX7w6+0QNZ7KaqbgjgUU4r2V+UlMgYlfLZo=; b=4pnM0NlxDumdph LQi4bsQ835vyFoczrMzLc04Ma7ARw/KwQ6xJQwXOXXs0o/7fZp5staD12gHs+MPigdnY768qMoF3U alvJzQrP2nXw3qUFnri1hRMZnVqwVd4s6ZtPbfLtobGNEJkxNLncenyHbZ5nuxujih2XyDf4CMSrI OXEnoAxbg0ZlzAuux7udOmDKM9XvE60LGCLA44CaxIasAzTxuLtkEg2sTxSo0iYkAwISrCF8wG/aA IaFcxBZdWzqyl1uz85R+TZAX7Y1YI3yphGqb1BIfw/2a5t9byadMpLnlpR/fgAbALa1fxBun91mGJ 4DrB6KziviV2hOyNMmgg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xDNLv-0000000Ev51-2cc3; Sun, 04 Oct 2026 14:38:11 +0000 Received: from smtpout-02.galae.net ([185.246.84.56]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xDNLs-0000000Ev4g-2DpR for linux-mtd@lists.infradead.org; Sun, 04 Oct 2026 14:38:10 +0000 Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id ED87C1A1129; Sun, 4 Oct 2026 14:38:03 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id B5402604FE; Sun, 4 Oct 2026 14:38:03 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 75E021032817F; Sun, 4 Oct 2026 16:37:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1791124682; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=gWGKeo6pOGt3hazUh/+qK3zmUNIFITs6zZqKEmgF+vs=; b=JZM+rjRORI2FonbVaYOerFxqQdonnI4TilW1UDgsMyXlJTdsWlo+zk8EtBh3XJoG0AsAnc qauYLkikuHLcViv6wkNKbhCaQmuaofS1otivvEyVhnY6JZhGJyj3x10IYZuVoWYsOpA9ar r7ZOiApzlb/UKD9uQsILyw7NPDVu8K7GoemztqvEKc3IMlUNws6t6YqW09TAh4TZW3APgy 3d5hbwPbtJHrDx0vPb5FqYpkRhMM3ikMdACbFIjbW6tVnPVyQodgFtaXEQuP3lec8uhEXD ZWyx9wLV0VelXS5jagudm2t3EBH+eOL+UwONv+8QFRII/nDJJzKm8nqn8zXz7w== From: Miquel Raynal To: Nuno =?utf-8?Q?S=C3=A1?= Cc: Fei Xie , Mark Brown , linux-spi@vger.kernel.org, linux-mtd@lists.infradead.org Subject: Re: [RFC PATCH 0/4] spi: cadence-xspi: add ACMD PIO support for NAND and NOR In-Reply-To: ("Nuno =?utf-8?Q?S=C3=A1=22's?= message of "Mon, 28 Sep 2026 16:02:27 +0100") References: <20260921093701.1341766-1-fei.xie@horizon.auto> <20260928055005.3987624-1-fei.xie@horizon.auto> User-Agent: mu4e 1.12.12; emacs 30.2 Date: Sun, 04 Oct 2026 16:37:51 +0200 Message-ID: <87bj99lef4.fsf@bootlin.com> MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261004_073808_742901_026CE5C5 X-CRM114-Status: GOOD ( 34.05 ) 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 SGVsbG8sCgpPbiAyOC8wOS8yMDI2IGF0IDE2OjAyOjI3ICswMSwgTnVubyBTw6EgPG51bm8uc2FA YW5hbG9nLmNvbT4gd3JvdGU6Cgo+IE9uIE1vbiwgU2VwIDI4LCAyMDI2IGF0IDAxOjUwOjA1UE0g KzA4MDAsIEZlaSBYaWUgd3JvdGU6Cj4KPiBIaSBGZWksCj4KPj4gSGkgTnVubywgTWlxdWVsLAo+ PiAKPj4gVGhhbmtzIGZvciBhc2tpbmcgZm9yIGJlbmNobWFya3MuIEkgYmFja3BvcnRlZCB0aGUg MzIvNjQtYml0IFNUSUcgU0RNQQo+PiB0cmFuc2ZlciBjaGFuZ2VzIGZyb20gdGhlIHBhdGNoIE51 bm8gcG9pbnRlZCB0byBbMV0gdG8gb3VyIHZlbmRvciA2LjEKPj4ga2VybmVsLCBhbmQgY29tcGFy ZWQgdGhhdCBTVElHIHBhdGggYWdhaW5zdCB0aGUgQUNNRCBTUEkgTkFORCBwYXRoIGZyb20KPj4g dGhpcyBSRkMuIEkgaGF2ZSBub3QgYXBwbGllZCBOdW5vJ3Mgc2VwYXJhdGUgQUNNRCByZWFkIGlt cGxlbWVudGF0aW9uOwo+PiB0aGUgZmlndXJlcyBiZWxvdyBhcmUgZm9yIHRoZSBpbXBsZW1lbnRh dGlvbiBpbiB0aGlzIFJGQy4KPj4gCj4+IFRoZSBkZXZpY2UgaXMgYSBHRDVGNEdNOFJFIFNQSSBO QU5EICgyIEtpQiBwYWdlcywgMTI4IEtpQiBlcmFzZWJsb2NrcykKPj4gb24gYSBIb3Jpem9uIEo2 QiBib2FyZCwgcnVubmluZyBhdCA4MCBNSHogaW4gcXVhZCBTRFIgbW9kZS4gQm90aCBwYXRocwo+ PiB1c2VkIHRoZSBzYW1lIGJvYXJkIFBIWSBjb25maWd1cmF0aW9uLiBTVElHIG5lZWRlZCBvbmUg YWRkaXRpb25hbCBkdW1teQo+PiBjbG9jayBmb3IgdGhlIEVCaCByZWFkLWNhY2hlIGNvbW1hbmQg b24gdGhpcyBib2FyZCB0byByZXR1cm4gY29ycmVjdAo+PiBkYXRhIGF0IDgwIE1Iei4gVGhpcyBp cyBhIGxvY2FsIHRlc3QgYWRqdXN0bWVudCwgbm90IHBhcnQgb2YgdGhlIHBvc3RlZAo+PiBSRkMg b3IgWzFdOyBJIGV4Y2x1ZGVkIHRoZSBpbmNvcnJlY3QgU1RJRyByZWFkcyBmcm9tIHRoZSBjb21w YXJpc29uLgo+PiAKPj4gSSByYW4gZmxhc2hfc3BlZWQgLWMgNSAtZCAvZGV2L210ZDE4IHRocmVl IHRpbWVzIHdpdGggZWFjaCBtb2RlLiBUaGUKPj4gbnVtYmVycyBiZWxvdyBhcmUgdGhlIGFyaXRo bWV0aWMgbWVhbnMsIGluIEtpQi9zOgo+PiAKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNUSUcgICAgICBBQ01EIFBJTwo+PiAgIGVyYXNlYmxvY2sgd3JpdGUgc3BlZWQgICAgICAz Njg1ICAgICAgICAgIDM1NTUKPj4gICBlcmFzZWJsb2NrIHJlYWQgc3BlZWQgICAgICAxMjQ2OCAg ICAgICAgIDE0MjIyCj4+ICAgcGFnZSB3cml0ZSBzcGVlZCAgICAgICAgICAgIDM2NzEgICAgICAg ICAgMzUxMAo+PiAgIHBhZ2UgcmVhZCBzcGVlZCAgICAgICAgICAgIDExOTMxICAgICAgICAgMTM3 MTYKPj4gICBlcmFzZSBzcGVlZCAgICAgICAgICAgICAgICA0MDAwMCAgICAgICAgIDM3NjQ3Cj4K PiBTbyB0aGlzIGdvZXMgYWxvbmcgd2l0aCBteSBleHBlY3RhdGlvbnMuIEkgdGhpbmsgd2UgY2Fu IGFsbCBhZ3JlZSB0aGF0Cj4gUFJPR1JBTSArIEVSQVNFIGlzIG5vdCB3b3J0aCB0aGUgdHJvdWJs ZT8gV2UgZXZlbiBsb29zZSBwZXJmb3JtYW5jZS4uLgoKWWVhaC4KCj4+IEZvciBhIHNlcGFyYXRl IHNlcXVlbnRpYWwtcmVhZCB0ZXN0LCBJIGVyYXNlZCBhbmQgcHJvZ3JhbW1lZCB0aGUgZmlyc3QK Pj4gNjQgTWlCIHdpdGgga25vd24gcmFuZG9tIGRhdGEsIHRoZW4gY2hlY2tlZCB0aGF0IGVhY2gg bW9kZSByZWFkIGJhY2sKPj4gdGhlIGNvbXBsZXRlIGFyZWEgYnl0ZS1mb3ItYnl0ZS4gQm90aCBT SEEtMjU2IGhhc2hlcyBtYXRjaGVkIHRoZSBzb3VyY2U7Cj4+IHRoZSByZXBvcnRlZCBFQ0MgZmFp bHVyZSBjb3VudHMgd2VyZSB6ZXJvLiBJIHRoZW4gcmFuOgo+Cj4gV2hhdCBkbyB5b3UgbWVhbiBi eSBzZXF1ZW50aWFsIHJlYWQ/IERvZXMgeW91ciBmbGFzaCBzdXBwb3J0cyBjb250aW51b3VzCj4g cmFkcyAob3IgYnVmZmVyZWQgbW9kZSBJIHRoaW5rKS4gSWYgc28sIEkgd291bGQgZXhwZWN0IG11 Y2ggYmV0dGVyCj4gbnVtYmVyIGZvciB0aGUgQUNNRCBjYXNlLiBCdXQgdGhhdCBjYW4gYmUgdGhl IGlzc3VlIG9mIGhhdmluZyBib3RoIHRoZQo+IGNvbnRyb2xsZXIgYW5kIHRoZSBjaGlwIHRyeWlu ZyB0byB3YWxrIHBhZ2VzLgoKU2VxdWVudGlhbCwgY29udGludW91cyBhbmQgYnVmZmVyZWQgc2hv dWxkIG1lYW4gdGhlIHNhbWUgaW4gdGhlIE5BTkQKY29udGV4dC4KCj4+ICAgL3Zhci9idXN5Ym94 L3RpbWUgLWYgJ3JlYWw9JWUgdXNlcj0lVSBzeXM9JVMgY3B1PSVQJyBcCj4+ICAgICBkZCBpZj0v ZGV2L210ZDE4IG9mPS9kZXYvbnVsbCBicz0xTSBjb3VudD02NAo+PiAKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICBTVElHICAgICAgICAgICAgICBBQ01EIFBJTwo+PiAgIGVsYXBzZWQgKHRo cmVlIHJ1bnMpICAgIDUuMzAvNS4yOC81LjI2IHMgIDQuNjYvNC42NS80LjY1IHMKPj4gICBtZWFu IHRocm91Z2hwdXQgICAgICAgICAxMi4xMiBNaUIvcyAgICAgICAxMy43NSBNaUIvcwo+PiAgIG1l YW4gc3lzdGVtIHRpbWUgICAgICAgIDMuNTUgcyAgICAgICAgICAgIDEuMDYgcwo+PiAgIHByb2Nl c3MgQ1BVIHVzYWdlICAgICAgIDY3JSAgICAgICAgICAgICAgIDIyJQo+PiAKPj4gT24gdGhpcyBO QU5ELCBBQ01EIGltcHJvdmVzIHRoZSA2NCBNaUIgcmVhZCB0aHJvdWdocHV0IGJ5IGFib3V0IDEz LjUlCj4+IGFuZCByZWR1Y2VzIHRoZSByZWFkaW5nIHByb2Nlc3MncyBDUFUgdXNhZ2UgYnkgNDUg cGVyY2VudGFnZSBwb2ludHMuCj4+IFRoZSBmbGFzaF9zcGVlZCByZXN1bHRzIHNob3cgYSBzaW1p bGFyIGdhaW4gZm9yIHJlYWRzLCBpbmNsdWRpbmcKPj4gc2luZ2xlLXBhZ2UgcmVhZHMuCgpGWUks IGlmIHlvdSBwdWxsIGEgcmVjZW50IHZlcnNpb24gb2YgbXRkLXV0aWxzLCBmbGFzaF9zcGVlZCBj YW4KYmVuY2htYXJrIGNvbnRpbnVvdXMgcmVhZCBpbXByb3ZlbWVudHMgd2l0aCB0aGUgLUMgb3B0 aW9uLgoKPj4gSSBkbyBub3Qgc2VlIGEgcHJvZ3JhbSBvciBlcmFzZSB0aHJvdWdocHV0IGJlbmVm aXQ6Cj4+IEFDTUQgaXMgc2xpZ2h0bHkgc2xvd2VyIGZvciBib3RoIGluIHRoaXMgc2V0dXAuIFRo ZXNlIGFyZSBTUEkgTkFORAo+PiByZXN1bHRzIG9ubHk7IEkgaGF2ZSBub3QgYmVuY2htYXJrZWQg dGhlIE5PUiBwYXRoIG9uIHRoaXMgYm9hcmQuCj4KPiBTbyBDUFUgcmVzdWx0cyBhcmUgdGhlIGJp bmcgdGhpbmcgaGVyZS4gSSBndWVzcyB3ZSBuZWVkIHRvIGRlY2lkZSBpZgo+IGl0J3Mgd29ydGgg dGhlIGFtb3VudCBvZiBjb21wbGV4aXR5IGl0IHJlcXVpcmVzIGZvciB0aGUgd2hvbGUgdGhpbmcg dG8KPiB3b3JrLiBBcyBJIG1lbnRpb25lZCwgaWYgdGhlIGNoaXAgaGFzIGNvbnRpbnVvdXMgbW9k ZSBhbmQgd2UgdHJ5IHRvCj4gcmVhZCBhbnl0aGluZyBiaWdnZXIgdGhhbiBwYWdlIHNpemUgd2Ug c2hvdWxkIGxldCB0aGUgbmFuZCBjaGlwIHRvCj4gd2FsayB0aGUgcGFnZXMgYW5kIHRoYXQgbWVh bnMgdGhlIGJlaGF2aW9yIHdlIGhhdmUgdG9kYXkgKElNSE8gb2YKPiBjb3Vyc2UpOgo+Cj4gMHgx MyAoU1RJRykgKyB3YWl0ICsgcmVhZCBmcm9tIGNhY2hlIChBQ01EKQo+Cj4gSWYgd2UncmUgb25s eSByZWFkaW5nIGEgc2luZ2xlIHBhZ2UgdGhlbiB0aGUgbG9naWMgaW4gdGhpcyBzZXJpZXMgd291 bGQKPiBwYXlvZmYgKHNsaWdodCBwZXJmb3JtYW5jZSBnYWluICsgc2lnbmlmaWNhbnQgZHJvcCBp biBjcHUgbG9hZCkuIE9uZSBzaW1wbGUKPiB3YXkgZm9yIGRvaW5nIHRoaXMgYXMgYSBzdGFydGlu ZyBwb2ludCB3b3VsZCBiZToKPgo+ICogTmFuZCBoYXMgY29udCBtb2RlIC0+IHhzcGkgY29udHJv bGxlciBkb2VzIG5vdGhpbmcgc3BlY2lhbAo+ICogTmFuZCBoYXMgbm8gY29udCBtb2RlIC0+IEFn Z3JlZ2F0ZSB0aGUgeGZlcnMgdG9nZXRoZXIuCgpJJ20gZmluZSB3aXRoIHN0YXRpYyBkZWNpc2lv bnMgbGlrZSB0aGF0LCBidXQgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUKYWJvdmUgaXMgdGhhdCBB Q01EIG1vZGUgaXMgdXNlZnVsIGZvciBhbGwgcmVhZHMuIHNvIEkgZG9uJ3QgZ2V0IHdoeSB5b3UK d291bGQgbm8gdXNlIGl0IGZvciBhbGwuIE1heWJlIGJlY2F1c2UgaXQgd291bGQgYnJlYWsgY29u dGludW91cyByZWFkcz8KKHNvcnJ5IEkgbG9zdCBhIGJpdCBvZiB0aGUgY29udGV4dCBhbHJlYWR5 KS4KCkZvciB3cml0ZXMgYW5kIGVyYXNlcyBob3dldmVyLCBpdCBzZWVtcyBsaWtlIHdlIGNvdWxk IGtlZXAgdGhlIFNUSUcgcGF0aC4KCj4gRG9pbmcgc29tZXRoaW5nIGR5bmFtaWMgd291bGQgYmUg bXVjaCBtb3JlIGNvbXBsZXggSSBndWVzcy4gV2l0aCB0aGUKPiBhYm92ZSByZWFzb25pbmcsIGhh dmluZyBzb21lIG1lbV9pbmZvKCkga2luZCBvZiBzcGlfbWVtIGNhbGxiYWNrIHRvIHRlbGwKPiB1 cyB0aGluZ3MgbGlrZSBnZW9tZXRyeSwgY29udGludW91cyBtb2RlIHN1cHBvcnQsIGV0YyB3b3Vs ZCBiZSBlbm91Z2ggdG8KPiBoYW5kbGUgdGhlIGFib3ZlIEkgdGhpbmsuIFRoZSByZWFzb25pbmcg aXMgdGhhdCByZWFkaW5nIGEgbmFuZCBwYWdlIGlzCj4gYWx3YXlzIGxpa2Ugc3BpbmFuZF9sb2Fk X3BhZ2Vfb3AoKSAob3Bjb2RlIDB4MTMpICsgc3BpbmFuZF93YWl0KCkgKwo+IHNwaW5hbmRfcmVh ZF9mcm9tX2NhY2hlX29wKCkgc28gd2UgY291bGQgcHJvYmFibHkgYWdncmVnYXRlIGV2ZXJ5dGhp bmcKPiBpbiB0aGUgbGFzdCBjYWxsIG9uIHRoZSBjb250cm9sbGVyIHNpZGUgd2l0aG91dCBjb21w bGljYXRpbmcgdGhlIG5hbmQgY29yZQo+IGxvZ2ljLgoKSW4gZ2VuZXJhbCwgZHJpdmVycyBtYWtp bmcgYXNzdW1wdGlvbnMgaGFzIGJlZW4gYSBkaXNhc3RlciBpbiB0aGUgcmF3Ck5BTkQgd29ybGQu IFRoaXMgd2FzIHRoZSBtYWluIHJlYXNvbiBmb3IgdGhlIC0+ZXhlY19vcCgpIGludHJvZHVjdGlv bgp0aGVyZTogZ2l2aW5nIHRoZSB3aG9sZSBvcGVyYXRpb24gdG8gdGhlIGNvbnRyb2xsZXIgc28g aXQgY2FuIGRlY2lkZQp3aGF0IHRvIGRvIHdpdGhvdXQgZ3Vlc3NpbmcuIEJ1dCB3ZSB0aGlua2lu ZyBhdCB0aGUgb3BlcmF0aW9uIGJvdW5kYXJ5LApub3QgYXQgdGhlICJzZXQgb2Ygb3BlcmF0aW9u cyIgbGV2ZWwuIFNpbmNlIC0+ZXhlY19vcCgpIGluIHRoZSBTUEkgTkFORApzdWJzeXN0ZW0gaGFz IGJlZW4gd3JpdHRlbiBmb2xsb3dpbmcgdGhlIHNhbWUgcGhpbG9zb3BoeSwgSSBmZWFyIHdlJ3Jl CmdvaW5nIHRvIHRyeSBtYWtlIHJvdW5kcyBmaXQgaW5zaWRlIHNxdWFyZXMuIE9uZSBvZiB0aGUg cG9zc2libGUKYXBwcm9hY2ggd291bGQgYmUgdG8gbWltaWMgd2hhdCB3ZSd2ZSBkb25lIGZvciB0 aGUgc29tZSBsaW1pdGVkCmNvbnRyb2xsZXJzOiBwYWNrIGV2ZXJ5dGhpbmcgaW4gb25lIHNpbmds ZSBvcCAoc2VlIHRoZSBfbW9ub2xpdGhpYwpzdWZmaXggaW4gZHJpdmVycy9tdGQvbmFuZC9yYXcv KS4gVGhhdCdzIGp1c3Qgb25lIGlkZWEuCgpUaGFua3MsCk1pcXXDqGwKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vz c2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1tdGQvCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (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 2D7FD1CAA6D for ; Sun, 4 Oct 2026 14:38:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791124689; cv=none; b=ZULghajXXJJky2qQ12e7IvTEIPRV9H8ax2WT7KVQUwcFsWyILa+NYzneH/ICInphmebK5qJYNJ/m6WsQ7iNpEklJHaur/9DX9expV/J085QAa+7ZG8KHYNYUWGNolJJ6V4jiUBnkOwIk+OblwGy+RZaj8rBe32hlomfXfdqZrMs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791124689; c=relaxed/simple; bh=gWrLRD7rS/BYWAF/ov3E2y05f2PSszqoyhfJCicIzhU=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=c/d+c6mKPUltH1vZFVpv+LYAXiPLglOkLa/me0rQjqm/VdHWsu5uM7cCu+XZdoY9VVmXVJ0Da4XUL82Z/1GkLHeDmVatvgdMCyfAIhnwxdfpRrgtTHzziB0T0IJIiTFo7hvoqRWz/B3WyHp0lzDwwpHWCpWRH/No/+86N0hoCnY= 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=JZM+rjRO; arc=none smtp.client-ip=185.246.84.56 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="JZM+rjRO" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id ED87C1A1129; Sun, 4 Oct 2026 14:38:03 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id B5402604FE; Sun, 4 Oct 2026 14:38:03 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 75E021032817F; Sun, 4 Oct 2026 16:37:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1791124682; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=gWGKeo6pOGt3hazUh/+qK3zmUNIFITs6zZqKEmgF+vs=; b=JZM+rjRORI2FonbVaYOerFxqQdonnI4TilW1UDgsMyXlJTdsWlo+zk8EtBh3XJoG0AsAnc qauYLkikuHLcViv6wkNKbhCaQmuaofS1otivvEyVhnY6JZhGJyj3x10IYZuVoWYsOpA9ar r7ZOiApzlb/UKD9uQsILyw7NPDVu8K7GoemztqvEKc3IMlUNws6t6YqW09TAh4TZW3APgy 3d5hbwPbtJHrDx0vPb5FqYpkRhMM3ikMdACbFIjbW6tVnPVyQodgFtaXEQuP3lec8uhEXD ZWyx9wLV0VelXS5jagudm2t3EBH+eOL+UwONv+8QFRII/nDJJzKm8nqn8zXz7w== From: Miquel Raynal To: Nuno =?utf-8?Q?S=C3=A1?= Cc: Fei Xie , Mark Brown , linux-spi@vger.kernel.org, linux-mtd@lists.infradead.org Subject: Re: [RFC PATCH 0/4] spi: cadence-xspi: add ACMD PIO support for NAND and NOR In-Reply-To: ("Nuno =?utf-8?Q?S=C3=A1=22's?= message of "Mon, 28 Sep 2026 16:02:27 +0100") References: <20260921093701.1341766-1-fei.xie@horizon.auto> <20260928055005.3987624-1-fei.xie@horizon.auto> User-Agent: mu4e 1.12.12; emacs 30.2 Date: Sun, 04 Oct 2026 16:37:51 +0200 Message-ID: <87bj99lef4.fsf@bootlin.com> Precedence: bulk X-Mailing-List: linux-spi@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-Last-TLS-Session-Version: TLSv1.3 Hello, On 28/09/2026 at 16:02:27 +01, Nuno S=C3=A1 wrote: > On Mon, Sep 28, 2026 at 01:50:05PM +0800, Fei Xie wrote: > > Hi Fei, > >> Hi Nuno, Miquel, >>=20 >> Thanks for asking for benchmarks. I backported the 32/64-bit STIG SDMA >> transfer changes from the patch Nuno pointed to [1] to our vendor 6.1 >> kernel, and compared that STIG path against the ACMD SPI NAND path from >> this RFC. I have not applied Nuno's separate ACMD read implementation; >> the figures below are for the implementation in this RFC. >>=20 >> The device is a GD5F4GM8RE SPI NAND (2 KiB pages, 128 KiB eraseblocks) >> on a Horizon J6B board, running at 80 MHz in quad SDR mode. Both paths >> used the same board PHY configuration. STIG needed one additional dummy >> clock for the EBh read-cache command on this board to return correct >> data at 80 MHz. This is a local test adjustment, not part of the posted >> RFC or [1]; I excluded the incorrect STIG reads from the comparison. >>=20 >> I ran flash_speed -c 5 -d /dev/mtd18 three times with each mode. The >> numbers below are the arithmetic means, in KiB/s: >>=20 >> STIG ACMD PIO >> eraseblock write speed 3685 3555 >> eraseblock read speed 12468 14222 >> page write speed 3671 3510 >> page read speed 11931 13716 >> erase speed 40000 37647 > > So this goes along with my expectations. I think we can all agree that > PROGRAM + ERASE is not worth the trouble? We even loose performance... Yeah. >> For a separate sequential-read test, I erased and programmed the first >> 64 MiB with known random data, then checked that each mode read back >> the complete area byte-for-byte. Both SHA-256 hashes matched the source; >> the reported ECC failure counts were zero. I then ran: > > What do you mean by sequential read? Does your flash supports continuous > rads (or buffered mode I think). If so, I would expect much better > number for the ACMD case. But that can be the issue of having both the > controller and the chip trying to walk pages. Sequential, continuous and buffered should mean the same in the NAND context. >> /var/busybox/time -f 'real=3D%e user=3D%U sys=3D%S cpu=3D%P' \ >> dd if=3D/dev/mtd18 of=3D/dev/null bs=3D1M count=3D64 >>=20 >> STIG ACMD PIO >> elapsed (three runs) 5.30/5.28/5.26 s 4.66/4.65/4.65 s >> mean throughput 12.12 MiB/s 13.75 MiB/s >> mean system time 3.55 s 1.06 s >> process CPU usage 67% 22% >>=20 >> On this NAND, ACMD improves the 64 MiB read throughput by about 13.5% >> and reduces the reading process's CPU usage by 45 percentage points. >> The flash_speed results show a similar gain for reads, including >> single-page reads. FYI, if you pull a recent version of mtd-utils, flash_speed can benchmark continuous read improvements with the -C option. >> I do not see a program or erase throughput benefit: >> ACMD is slightly slower for both in this setup. These are SPI NAND >> results only; I have not benchmarked the NOR path on this board. > > So CPU results are the bing thing here. I guess we need to decide if > it's worth the amount of complexity it requires for the whole thing to > work. As I mentioned, if the chip has continuous mode and we try to > read anything bigger than page size we should let the nand chip to > walk the pages and that means the behavior we have today (IMHO of > course): > > 0x13 (STIG) + wait + read from cache (ACMD) > > If we're only reading a single page then the logic in this series would > payoff (slight performance gain + significant drop in cpu load). One simp= le > way for doing this as a starting point would be: > > * Nand has cont mode -> xspi controller does nothing special > * Nand has no cont mode -> Aggregate the xfers together. I'm fine with static decisions like that, but my understanding of the above is that ACMD mode is useful for all reads. so I don't get why you would no use it for all. Maybe because it would break continuous reads? (sorry I lost a bit of the context already). For writes and erases however, it seems like we could keep the STIG path. > Doing something dynamic would be much more complex I guess. With the > above reasoning, having some mem_info() kind of spi_mem callback to tell > us things like geometry, continuous mode support, etc would be enough to > handle the above I think. The reasoning is that reading a nand page is > always like spinand_load_page_op() (opcode 0x13) + spinand_wait() + > spinand_read_from_cache_op() so we could probably aggregate everything > in the last call on the controller side without complicating the nand core > logic. In general, drivers making assumptions has been a disaster in the raw NAND world. This was the main reason for the ->exec_op() introduction there: giving the whole operation to the controller so it can decide what to do without guessing. But we thinking at the operation boundary, not at the "set of operations" level. Since ->exec_op() in the SPI NAND subsystem has been written following the same philosophy, I fear we're going to try make rounds fit inside squares. One of the possible approach would be to mimic what we've done for the some limited controllers: pack everything in one single op (see the _monolithic suffix in drivers/mtd/nand/raw/). That's just one idea. Thanks, Miqu=C3=A8l