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 A1119CA6015 for ; Fri, 9 Oct 2026 04:50:56 +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:In-Reply-To:MIME-Version:References: 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=fqPz/YM/85btiWnjpN4MR5n7HLRTmpcvfKttWCTyMss=; b=rb9ZaL0H7WRWMU 3xBqx69omZp05ZMiB0zxCtFt+6rUyx55b425ocNOPwkAfdzXa/zTr4A3M30xDvo14OzbZrPFGCf7Q G+yJuDLGhiZy6z0Wl1KI/u5q++ERUr2fuPg7dTR3R80RYeusVn5e9LMjO9M5GxuCZIyWcTbYmn+Z/ wCdlGGK2Z9bUqNf0XFStSvWdtE5YK+qXEwqqmwApNcsGHSEL2vWIkHYhxG6LhfbEXgO1Hx8Pkmf7q XNsMk0XYIY40ODAe8St9VH6+eFBLOhYp9i6/Yothj2jqC7mwwhDO/GdZctb9IG692CC3pouvkDPC/ YIsmGtszUsHMMBhJ5Lig==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xF2ZE-00000005UMv-2jau; Fri, 09 Oct 2026 04:50:48 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xF2ZD-00000005UMl-30Yv for linux-mtd@lists.infradead.org; Fri, 09 Oct 2026 04:50:47 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 7A2FA42B7F; Fri, 9 Oct 2026 04:50:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 352E41F00893; Fri, 9 Oct 2026 04:50:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791521447; bh=1vZJxhdSXjGL81GZyJwiKVtBArF4NuLi7k+shpBTlA4=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=Dwji/UTX8l/YOBtdD30EaW2YHQTxMMNnqCWe+toNmC1x+3UBHqFeUDrhMeN6a1UU6 AA/zr6HaUjy4QNpcyRup5mJiA9YTgg9Vu47BjW1x88yrSvuY2qdxewYUFVIwBxd9vz ok3ysTBRlscsLYMZ9DPF4KByhxywm8ptVI7K2PYVzltXeE9My3I+hpVkXF+N6dlBmK 4esFBgZxub5xQEdV7hKrmP4a8cPV8hgPspnW45EHm6xmnjWbNE54+3D54byvT3IScP MLi7zJk++ddzCy8Iegkw/caTHETPMEeNyGv2316kVxQXvQ+xwnabzE9w+DT+t/JxK5 1wDS7set3i/qA== Date: Fri, 9 Oct 2026 12:30:42 +0800 From: Jisheng Zhang To: Nuno =?utf-8?B?U8Oh?= Cc: Miquel Raynal , Nuno =?utf-8?B?U8Oh?= , 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 Message-ID: References: <20260921093701.1341766-1-fei.xie@horizon.auto> <20260928055005.3987624-1-fei.xie@horizon.auto> <87bj99lef4.fsf@bootlin.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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 T24gVGh1LCBPY3QgMDgsIDIwMjYgYXQgMDk6NTU6MjdQTSArMDgwMCwgSmlzaGVuZyBaaGFuZyB3 cm90ZToKPiBPbiBXZWQsIE9jdCAwNywgMjAyNiBhdCAwNzoxMjo1N0FNICswMTAwLCBOdW5vIFPD oSB3cm90ZToKPiA+IE9uIFdlZCwgMjAyNi0xMC0wNyBhdCAxMjo0OCArMDgwMCwgSmlzaGVuZyBa aGFuZyB3cm90ZToKPiA+ID4gT24gVHVlLCBPY3QgMDYsIDIwMjYgYXQgMDc6NTA6NDRBTSArMDEw MCwgTnVubyBTw6Egd3JvdGU6Cj4gPiA+ID4gT24gU3VuLCAyMDI2LTEwLTA0IGF0IDE2OjM3ICsw MjAwLCBNaXF1ZWwgUmF5bmFsIHdyb3RlOgo+ID4gPiA+ID4gSGVsbG8sCj4gPiA+ID4gPiAKPiA+ ID4gPiA+IE9uIDI4LzA5LzIwMjYgYXQgMTY6MDI6MjcgKzAxLCBOdW5vIFPDoSA8bnVuby5zYUBh bmFsb2cuY29tPiB3cm90ZToKPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBPbiBNb24sIFNlcCAyOCwg MjAyNiBhdCAwMTo1MDowNVBNICswODAwLCBGZWkgWGllIHdyb3RlOgo+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gSGkgRmVpLAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBIaSBOdW5vLCBNaXF1 ZWwsCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gVGhhbmtzIGZvciBhc2tpbmcgZm9yIGJl bmNobWFya3MuIEkgYmFja3BvcnRlZCB0aGUgMzIvNjQtYml0IFNUSUcgU0RNQQo+ID4gPiA+ID4g PiA+IHRyYW5zZmVyIGNoYW5nZXMgZnJvbSB0aGUgcGF0Y2ggTnVubyBwb2ludGVkIHRvIFsxXSB0 byBvdXIgdmVuZG9yIDYuMQo+ID4gPiA+ID4gPiA+IGtlcm5lbCwgYW5kIGNvbXBhcmVkIHRoYXQg U1RJRyBwYXRoIGFnYWluc3QgdGhlIEFDTUQgU1BJIE5BTkQgcGF0aCBmcm9tCj4gPiA+ID4gPiA+ ID4gdGhpcyBSRkMuIEkgaGF2ZSBub3QgYXBwbGllZCBOdW5vJ3Mgc2VwYXJhdGUgQUNNRCByZWFk IGltcGxlbWVudGF0aW9uOwo+ID4gPiA+ID4gPiA+IHRoZSBmaWd1cmVzIGJlbG93IGFyZSBmb3Ig dGhlIGltcGxlbWVudGF0aW9uIGluIHRoaXMgUkZDLgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiA+IFRoZSBkZXZpY2UgaXMgYSBHRDVGNEdNOFJFIFNQSSBOQU5EICgyIEtpQiBwYWdlcywgMTI4 IEtpQiBlcmFzZWJsb2NrcykKPiA+ID4gPiA+ID4gPiBvbiBhIEhvcml6b24gSjZCIGJvYXJkLCBy dW5uaW5nIGF0IDgwIE1IeiBpbiBxdWFkIFNEUiBtb2RlLiBCb3RoIHBhdGhzCj4gPiA+ID4gPiA+ ID4gdXNlZCB0aGUgc2FtZSBib2FyZCBQSFkgY29uZmlndXJhdGlvbi4gU1RJRyBuZWVkZWQgb25l IGFkZGl0aW9uYWwgZHVtbXkKPiA+ID4gPiA+ID4gPiBjbG9jayBmb3IgdGhlIEVCaCByZWFkLWNh Y2hlIGNvbW1hbmQgb24gdGhpcyBib2FyZCB0byByZXR1cm4gY29ycmVjdAo+ID4gPiA+ID4gPiA+ IGRhdGEgYXQgODAgTUh6LiBUaGlzIGlzIGEgbG9jYWwgdGVzdCBhZGp1c3RtZW50LCBub3QgcGFy dCBvZiB0aGUgcG9zdGVkCj4gPiA+ID4gPiA+ID4gUkZDIG9yIFsxXTsgSSBleGNsdWRlZCB0aGUg aW5jb3JyZWN0IFNUSUcgcmVhZHMgZnJvbSB0aGUgY29tcGFyaXNvbi4KPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiBJIHJhbiBmbGFzaF9zcGVlZCAtYyA1IC1kIC9kZXYvbXRkMTggdGhyZWUg dGltZXMgd2l0aCBlYWNoIG1vZGUuIFRoZQo+ID4gPiA+ID4gPiA+IG51bWJlcnMgYmVsb3cgYXJl IHRoZSBhcml0aG1ldGljIG1lYW5zLCBpbiBLaUIvczoKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgU1RJR8KgwqDCoMKgwqAgQUNNRCBQSU8KPiA+ID4gPiA+ID4gPiDCoCBlcmFzZWJs b2NrIHdyaXRlIHNwZWVkwqDCoMKgwqDCoCAzNjg1wqDCoMKgwqDCoMKgwqDCoMKgIDM1NTUKPiA+ ID4gPiA+ID4gPiDCoCBlcmFzZWJsb2NrIHJlYWQgc3BlZWTCoMKgwqDCoMKgIDEyNDY4wqDCoMKg wqDCoMKgwqDCoCAxNDIyMgo+ID4gPiA+ID4gPiA+IMKgIHBhZ2Ugd3JpdGUgc3BlZWTCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDM2NzHCoMKgwqDCoMKgwqDCoMKgwqAgMzUxMAo+ID4gPiA+ID4gPiA+ IMKgIHBhZ2UgcmVhZCBzcGVlZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTE5MzHCoMKgwqDCoMKg wqDCoMKgIDEzNzE2Cj4gPiA+ID4gPiA+ID4gwqAgZXJhc2Ugc3BlZWTCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgNDAwMDDCoMKgwqDCoMKgwqDCoMKgIDM3NjQ3Cj4gPiA+ID4gPiA+IAo+ ID4gPiA+ID4gPiBTbyB0aGlzIGdvZXMgYWxvbmcgd2l0aCBteSBleHBlY3RhdGlvbnMuIEkgdGhp bmsgd2UgY2FuIGFsbCBhZ3JlZSB0aGF0Cj4gPiA+ID4gPiA+IFBST0dSQU0gKyBFUkFTRSBpcyBu b3Qgd29ydGggdGhlIHRyb3VibGU/IFdlIGV2ZW4gbG9vc2UgcGVyZm9ybWFuY2UuLi4KPiA+ID4g PiA+IAo+ID4gPiA+ID4gWWVhaC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IEZvciBhIHNlcGFy YXRlIHNlcXVlbnRpYWwtcmVhZCB0ZXN0LCBJIGVyYXNlZCBhbmQgcHJvZ3JhbW1lZCB0aGUgZmly c3QKPiA+ID4gPiA+ID4gPiA2NCBNaUIgd2l0aCBrbm93biByYW5kb20gZGF0YSwgdGhlbiBjaGVj a2VkIHRoYXQgZWFjaCBtb2RlIHJlYWQgYmFjawo+ID4gPiA+ID4gPiA+IHRoZSBjb21wbGV0ZSBh cmVhIGJ5dGUtZm9yLWJ5dGUuIEJvdGggU0hBLTI1NiBoYXNoZXMgbWF0Y2hlZCB0aGUgc291cmNl Owo+ID4gPiA+ID4gPiA+IHRoZSByZXBvcnRlZCBFQ0MgZmFpbHVyZSBjb3VudHMgd2VyZSB6ZXJv LiBJIHRoZW4gcmFuOgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gV2hhdCBkbyB5b3UgbWVhbiBi eSBzZXF1ZW50aWFsIHJlYWQ/IERvZXMgeW91ciBmbGFzaCBzdXBwb3J0cyBjb250aW51b3VzCj4g PiA+ID4gPiA+IHJhZHMgKG9yIGJ1ZmZlcmVkIG1vZGUgSSB0aGluaykuIElmIHNvLCBJIHdvdWxk IGV4cGVjdCBtdWNoIGJldHRlcgo+ID4gPiA+ID4gPiBudW1iZXIgZm9yIHRoZSBBQ01EIGNhc2Uu IEJ1dCB0aGF0IGNhbiBiZSB0aGUgaXNzdWUgb2YgaGF2aW5nIGJvdGggdGhlCj4gPiA+ID4gPiA+ IGNvbnRyb2xsZXIgYW5kIHRoZSBjaGlwIHRyeWluZyB0byB3YWxrIHBhZ2VzLgo+ID4gPiA+ID4g Cj4gPiA+ID4gPiBTZXF1ZW50aWFsLCBjb250aW51b3VzIGFuZCBidWZmZXJlZCBzaG91bGQgbWVh biB0aGUgc2FtZSBpbiB0aGUgTkFORAo+ID4gPiA+ID4gY29udGV4dC4KPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiA+IMKgIC92YXIvYnVzeWJveC90aW1lIC1mICdyZWFsPSVlIHVzZXI9JVUgc3lzPSVT IGNwdT0lUCcgXAo+ID4gPiA+ID4gPiA+IMKgwqDCoCBkZCBpZj0vZGV2L210ZDE4IG9mPS9kZXYv bnVsbCBicz0xTSBjb3VudD02NAo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNUSUfCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBBQ01EIFBJTwo+ID4gPiA+ID4gPiA+IMKgIGVsYXBzZWQgKHRocmVl IHJ1bnMpwqDCoMKgIDUuMzAvNS4yOC81LjI2IHPCoCA0LjY2LzQuNjUvNC42NSBzCj4gPiA+ID4g PiA+ID4gwqAgbWVhbiB0aHJvdWdocHV0wqDCoMKgwqDCoMKgwqDCoCAxMi4xMiBNaUIvc8KgwqDC oMKgwqDCoCAxMy43NSBNaUIvcwo+ID4gPiA+ID4gPiA+IMKgIG1lYW4gc3lzdGVtIHRpbWXCoMKg wqDCoMKgwqDCoCAzLjU1IHPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEuMDYgcwo+ID4gPiA+ID4g PiA+IMKgIHByb2Nlc3MgQ1BVIHVzYWdlwqDCoMKgwqDCoMKgIDY3JcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgMjIlCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gT24gdGhpcyBOQU5E LCBBQ01EIGltcHJvdmVzIHRoZSA2NCBNaUIgcmVhZCB0aHJvdWdocHV0IGJ5IGFib3V0IDEzLjUl Cj4gPiA+ID4gPiA+ID4gYW5kIHJlZHVjZXMgdGhlIHJlYWRpbmcgcHJvY2VzcydzIENQVSB1c2Fn ZSBieSA0NSBwZXJjZW50YWdlIHBvaW50cy4KPiA+ID4gPiA+ID4gPiBUaGUgZmxhc2hfc3BlZWQg cmVzdWx0cyBzaG93IGEgc2ltaWxhciBnYWluIGZvciByZWFkcywgaW5jbHVkaW5nCj4gPiA+ID4g PiA+ID4gc2luZ2xlLXBhZ2UgcmVhZHMuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEZZSSwgaWYgeW91 IHB1bGwgYSByZWNlbnQgdmVyc2lvbiBvZiBtdGQtdXRpbHMsIGZsYXNoX3NwZWVkIGNhbgo+ID4g PiA+ID4gYmVuY2htYXJrIGNvbnRpbnVvdXMgcmVhZCBpbXByb3ZlbWVudHMgd2l0aCB0aGUgLUMg b3B0aW9uLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gSSBkbyBub3Qgc2VlIGEgcHJvZ3JhbSBv ciBlcmFzZSB0aHJvdWdocHV0IGJlbmVmaXQ6Cj4gPiA+ID4gPiA+ID4gQUNNRCBpcyBzbGlnaHRs eSBzbG93ZXIgZm9yIGJvdGggaW4gdGhpcyBzZXR1cC4gVGhlc2UgYXJlIFNQSSBOQU5ECj4gPiA+ ID4gPiA+ID4gcmVzdWx0cyBvbmx5OyBJIGhhdmUgbm90IGJlbmNobWFya2VkIHRoZSBOT1IgcGF0 aCBvbiB0aGlzIGJvYXJkLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gU28gQ1BVIHJlc3VsdHMg YXJlIHRoZSBiaW5nIHRoaW5nIGhlcmUuIEkgZ3Vlc3Mgd2UgbmVlZCB0byBkZWNpZGUgaWYKPiA+ ID4gPiA+ID4gaXQncyB3b3J0aCB0aGUgYW1vdW50IG9mIGNvbXBsZXhpdHkgaXQgcmVxdWlyZXMg Zm9yIHRoZSB3aG9sZSB0aGluZyB0bwo+ID4gPiA+ID4gPiB3b3JrLiBBcyBJIG1lbnRpb25lZCwg aWYgdGhlIGNoaXAgaGFzIGNvbnRpbnVvdXMgbW9kZSBhbmQgd2UgdHJ5IHRvCj4gPiA+ID4gPiA+ IHJlYWQgYW55dGhpbmcgYmlnZ2VyIHRoYW4gcGFnZSBzaXplIHdlIHNob3VsZCBsZXQgdGhlIG5h bmQgY2hpcCB0bwo+ID4gPiA+ID4gPiB3YWxrIHRoZSBwYWdlcyBhbmQgdGhhdCBtZWFucyB0aGUg YmVoYXZpb3Igd2UgaGF2ZSB0b2RheSAoSU1ITyBvZgo+ID4gPiA+ID4gPiBjb3Vyc2UpOgo+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gMHgxMyAoU1RJRykgKyB3YWl0ICsgcmVhZCBmcm9tIGNhY2hl IChBQ01EKQo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gSWYgd2UncmUgb25seSByZWFkaW5nIGEg c2luZ2xlIHBhZ2UgdGhlbiB0aGUgbG9naWMgaW4gdGhpcyBzZXJpZXMgd291bGQKPiA+ID4gPiA+ ID4gcGF5b2ZmIChzbGlnaHQgcGVyZm9ybWFuY2UgZ2FpbiArIHNpZ25pZmljYW50IGRyb3AgaW4g Y3B1IGxvYWQpLiBPbmUgc2ltcGxlCj4gPiA+ID4gPiA+IHdheSBmb3IgZG9pbmcgdGhpcyBhcyBh IHN0YXJ0aW5nIHBvaW50IHdvdWxkIGJlOgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gKiBOYW5k IGhhcyBjb250IG1vZGUgLT4geHNwaSBjb250cm9sbGVyIGRvZXMgbm90aGluZyBzcGVjaWFsCj4g PiA+ID4gPiA+ICogTmFuZCBoYXMgbm8gY29udCBtb2RlIC0+IEFnZ3JlZ2F0ZSB0aGUgeGZlcnMg dG9nZXRoZXIuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEknbSBmaW5lIHdpdGggc3RhdGljIGRlY2lz aW9ucyBsaWtlIHRoYXQsIGJ1dCBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZQo+ID4gPiA+ID4gYWJv dmUgaXMgdGhhdCBBQ01EIG1vZGUgaXMgdXNlZnVsIGZvciBhbGwgcmVhZHMuIHNvIEkgZG9uJ3Qg Z2V0IHdoeSB5b3UKPiA+ID4gPiA+IHdvdWxkIG5vIHVzZSBpdCBmb3IgYWxsLiBNYXliZSBiZWNh dXNlIGl0IHdvdWxkIGJyZWFrIGNvbnRpbnVvdXMgcmVhZHM/Cj4gPiA+ID4gPiAoc29ycnkgSSBs b3N0IGEgYml0IG9mIHRoZSBjb250ZXh0IGFscmVhZHkpLgo+ID4gPiA+IAo+ID4gPiA+IEV4YWN0 bHkuIEluIEFDTUQsIGlzIGFsc28gY2FwYWJsZSBvZiAid2Fsa2luZyBwYWdlcyIgZm9yIHJlYWRz IGJpZ2dlciB0aGFuIHBhZ2UKPiA+ID4gPiBzaXplCj4gPiA+ID4gKGhlbmNlIHRoZSBuZWVkIHRv IGtub3cgdGhlIGZsYXNoIGdlb21ldHJ5KSBhbmQgSUlSQywgdGhhdCBkb2VzIG5vdCByZWFsbHkg d29yawo+ID4gPiA+IHdlbGwKPiA+ID4gPiB3aGVuIHRoZSBmbGFzaCBpcyBhbHNvIGRvaW5nIGl0 Lgo+ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBGb3Igd3JpdGVzIGFuZCBlcmFzZXMgaG93 ZXZlciwgaXQgc2VlbXMgbGlrZSB3ZSBjb3VsZCBrZWVwIHRoZSBTVElHIHBhdGguCj4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gRG9pbmcgc29tZXRoaW5nIGR5bmFtaWMgd291bGQgYmUgbXVjaCBtb3Jl IGNvbXBsZXggSSBndWVzcy4gV2l0aCB0aGUKPiA+ID4gPiA+ID4gYWJvdmUgcmVhc29uaW5nLCBo YXZpbmcgc29tZSBtZW1faW5mbygpIGtpbmQgb2Ygc3BpX21lbSBjYWxsYmFjayB0byB0ZWxsCj4g PiA+ID4gPiA+IHVzIHRoaW5ncyBsaWtlIGdlb21ldHJ5LCBjb250aW51b3VzIG1vZGUgc3VwcG9y dCwgZXRjIHdvdWxkIGJlIGVub3VnaCB0bwo+ID4gPiA+ID4gPiBoYW5kbGUgdGhlIGFib3ZlIEkg dGhpbmsuIFRoZSByZWFzb25pbmcgaXMgdGhhdCByZWFkaW5nIGEgbmFuZCBwYWdlIGlzCj4gPiA+ ID4gPiA+IGFsd2F5cyBsaWtlIHNwaW5hbmRfbG9hZF9wYWdlX29wKCkgKG9wY29kZSAweDEzKSAr IHNwaW5hbmRfd2FpdCgpICsKPiA+ID4gPiA+ID4gc3BpbmFuZF9yZWFkX2Zyb21fY2FjaGVfb3Ao KSBzbyB3ZSBjb3VsZCBwcm9iYWJseSBhZ2dyZWdhdGUgZXZlcnl0aGluZwo+ID4gPiA+ID4gPiBp biB0aGUgbGFzdCBjYWxsIG9uIHRoZSBjb250cm9sbGVyIHNpZGUgd2l0aG91dCBjb21wbGljYXRp bmcgdGhlIG5hbmQgY29yZQo+ID4gPiA+ID4gPiBsb2dpYy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4g SW4gZ2VuZXJhbCwgZHJpdmVycyBtYWtpbmcgYXNzdW1wdGlvbnMgaGFzIGJlZW4gYSBkaXNhc3Rl ciBpbiB0aGUgcmF3Cj4gPiA+ID4gPiBOQU5EIHdvcmxkLiBUaGlzIHdhcyB0aGUgbWFpbiByZWFz b24gZm9yIHRoZSAtPmV4ZWNfb3AoKSBpbnRyb2R1Y3Rpb24KPiA+ID4gPiA+IHRoZXJlOiBnaXZp bmcgdGhlIHdob2xlIG9wZXJhdGlvbiB0byB0aGUgY29udHJvbGxlciBzbyBpdCBjYW4gZGVjaWRl Cj4gPiA+ID4gPiB3aGF0IHRvIGRvIHdpdGhvdXQgZ3Vlc3NpbmcuIEJ1dCB3ZSB0aGlua2luZyBh dCB0aGUgb3BlcmF0aW9uIGJvdW5kYXJ5LAo+ID4gPiA+ID4gbm90IGF0IHRoZSAic2V0IG9mIG9w ZXJhdGlvbnMiIGxldmVsLiBTaW5jZSAtPmV4ZWNfb3AoKSBpbiB0aGUgU1BJIE5BTkQKPiA+ID4g PiA+IHN1YnN5c3RlbSBoYXMgYmVlbiB3cml0dGVuIGZvbGxvd2luZyB0aGUgc2FtZSBwaGlsb3Nv cGh5LCBJIGZlYXIgd2UncmUKPiA+ID4gPiA+IGdvaW5nIHRvIHRyeSBtYWtlIHJvdW5kcyBmaXQg aW5zaWRlIHNxdWFyZXMuIE9uZSBvZiB0aGUgcG9zc2libGUKPiA+ID4gPiAKPiA+ID4gPiBGYWly IGVub3VnaCEgQWdyZWVkCj4gPiA+ID4gCj4gPiA+ID4gPiBhcHByb2FjaCB3b3VsZCBiZSB0byBt aW1pYyB3aGF0IHdlJ3ZlIGRvbmUgZm9yIHRoZSBzb21lIGxpbWl0ZWQKPiA+ID4gPiA+IGNvbnRy b2xsZXJzOiBwYWNrIGV2ZXJ5dGhpbmcgaW4gb25lIHNpbmdsZSBvcCAoc2VlIHRoZSBfbW9ub2xp dGhpYwo+ID4gPiA+ID4gc3VmZml4IGluIGRyaXZlcnMvbXRkL25hbmQvcmF3LykuIFRoYXQncyBq dXN0IG9uZSBpZGVhLgo+ID4gPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gSSBjYW4gdGFrZSBhIGxv b2sgbW9zdGx5IGZvciBjdXJpb3NpdHkgYXMgbXkgaW50ZW50aW9uIGlzIG5vdCB0byAic3RlYWwi IHRoaXMKPiA+ID4gPiB3b3JrCj4gPiA+ID4gZnJvbSBGZWkuIElmIGV2ZXJ5b25lIGFncmVlcyAo c3BlY2lhbGx5IEZlaSksIHdoYXQgSSBjYW4gZG8gaXMgdG8gc2VuZCBteSBzaW1wbGVyCj4gPiA+ ID4gcGF0Y2hlcyB0aGF0IGp1c3Qgc3VwcG9ydCBBQ01EICh3aXRob3V0IGFueSBzcGVjaWFsIGRp c3RpbmN0aW9uIGJldHdlZW4gTmFuZCBhbmQKPiA+ID4gPiBOb3IpCj4gPiA+ID4gRm9yIE5hbmRz LCBJIGhhdmUgYSBtaXggb2YgU1RJRyBhbmQgQUNNRCwgd2hlcmUgYmlnIGdhaW5zIGNvbWUgZnJv bSBOYW5kcyB3aXRoCj4gPiA+ID4gY29udAo+ID4gPiA+IG1vZGUuCj4gPiA+ID4gCj4gPiA+ID4g VGhlbiB3ZSBjYW4gYnVpbGQgb24gdG9wIG9mIGl0IGluIG9yZGVyIHRvIGltcHJvdmUgTmFuZCBz dXBwb3J0IChtb3N0bHkgb24gQ1BVCj4gPiA+ID4gbG9hZCkuCj4gPiA+IAo+ID4gPiBJJ20gYWxz byBpbnRlcmVzdGVkIGluIHRoaXMgZHJpdmVyJ3MgcGVyZm9ybWFuY2UuIEEgYml0IG9mZiB0aGUg c3ViamVjdAo+ID4gPiBidXQgcmVsYXRlZCBxdWVzdGlvbjogVXN1YWxseSwgdGhlIFNvYyBtYXkg Y29ubmVjdCB0aGUgeHNwaSB0byBkbWEKPiA+ID4gZW5naW5lLCBJJ20gY3VyaW91cyB3aGF0IHdv dWxkIGJlIHRoZSBiZW5lZml0IG9mIGFkZGluZyBkbWEgZW5naW5lCj4gPiA+IHN1cHBvcnQgaW5z dGVhZCBvZiBBQ01EPyBJcyBkbWEgZW5naW5lIHN1cHBvcnQgc2ltcGxlciBhbmQKPiA+ID4gaXMg dGhlIGdhaW4ocGVyZm9ybWFuY2UgKyBjcHUgbG9hZCkgbW9yZT8KPiA+ID4gCj4gPiAKPiA+IEkn bSBub3QgZmFtaWxpYXIgd2l0aCB0aGF0IGFwcHJvYWNoIHRiaC4gQnV0IEkgd291bGQgYXNzdW1l IHBlcmZvcm1hbmNlIHRvIGJlIHByZXR0eQo+ID4gbXVjaCBzaW1pbGFyIHRvIHdoYXQgSSBoYXZl IGdpdmVuIHRoYXQgQUNNRCB1c2VzIHRoZSBJUCBpbnRlcm5hbCBETUEgZW5naW5lLiBCdXQgbm90 Cj4gPiB1c2luZyBBQ01EIG1lYW5zIG5vdCBoYXZpbmcgdGhlIGNwdSBnYWlucyBhdCBsZWFzdCBm b3IgdGhlIHNtYWxsZXIgdHJhbnNmZXJzIGFzIHdlCj4gPiB3b3VsZCBub3QgYmUgYWJsZSB0byBh Z2dyZWdhdGUgdHJhbnNmZXJzLiBGV0lXLCBnaXZlbiB0aGF0IHlvdSBtaWdodCBub3QgaGF2ZSBs b29rZWQKPiAKPiBIbW0sIG15IHBsYXRmb3JtcyBjb25uZWN0IHR3byBkbWFlbmdpbmUgY2hhbm5l bHMgdG8gdGhlIHhzcGkgY29udHJvbGxlciwKPiBidXQgSSBoYXZlbid0IGFkZGVkIHRoZSBkbWEt ZW5naW5lIHN1cHBvcnQgdG8gdGhlIGRyaXZlciB5ZXQuIElmIHRoZQo+IEFDTUQgaXMgZW5vdWdo LCB3aHkgSFcgY29ubmVjdHMgZG1hLWVuZ2luZSB0aGVuPyBKdXN0IGN1cmlvdXMsIHRoZXJlCj4g bXVzdCBiZSBwZXJmb3JtYW5jZSBnYWluIEkgZ3Vlc3MuIEJ1dCBJJ20gbm90IHN1cmUgYW5kIEkg ZG9uJ3QgaGF2ZQo+IHBlcmZvcm1hbmNlIG51bWJlcnMuCgpBaGEsIG15IHBsYXRmb3JtcyBkb24n dCBlbmFibGUgdGhlIEFDTUQgc3VwcG9ydCwgaW5zdGVhZCwgY29ubmVjdCB0aGUKeHNwaSB3aXRo IGRtYWMuCgpTbyB3aGVuIHVwc3RyZWFtaW5nIEFDTUQgc3VwcG9ydCwgdGhlIGRyaXZlciBuZWVk cyB0byBkZXRlY3QgdGhlIEFDTUQKc3VwcG9ydCBlaXRoZXIgZHluYW1pY2FsbHkgb3IgdmlhLiBE VC4gVW5mb3J0dW5hdGVseSwgSSBkaWRuJ3QgZmluZAphbnkgcmVnaXN0ZXIgY2FuIGV4cG9ydCB0 aGUgQUNNRCBhdmFpbGFiaWxpdHkuIERUIGlzIHRoZSBvbmx5IHdheT8KT3IgaXNzdWUgYSBzaW1w bGUgQUNNRCBhbmQgY2hlY2sgU0RNQSBlcnJvcj8KPiAKPiA+IGF0IHRoZSB3aG9sZSB0aHJlYWQs IHRoaXMgaXMgd2hhdCBJIGhhdmU6Cj4gPiAKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmFsb2dk ZXZpY2VzaW5jL2xpbnV4L3B1bGwvMzQ3OC9jaGFuZ2VzLzQ3N2U2MDk1NTA4NTQ2NTUyMDcxYjgy NWE2NjUyMmNmNjk3YzI3YzIKPiA+IAo+ID4gLSBOdW5vIFPDoQo+ID4gCj4gPiA+IFJlZ2FyZHMK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM aW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 98BFE3CB544 for ; Fri, 9 Oct 2026 04:50:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791521449; cv=none; b=hQZJjDq3ksfdOESB/RrWOBV3eVWg4I8VbuDl3aBMozSBx1Za9E2+xgZ5XQm6sLqfoiq5HJxDGSHtymYPFH+9IV3STC6jVg4la8Dh2WFmy+rPpUwI0AQW7hCUXbJze2HDHVyD4fQioqeIIuIltstau+T8sC6vIPvFsNu1ZYu6gKM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791521449; c=relaxed/simple; bh=oc71LeNHqou25F8glHSrt1Av6CZJkUxg7TG/kKb0xSM=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=RvB9Ez7djGCL66lJJWM/zEghToolL9NO07hzOKw/EtUhGbBvbBLGlx2JahXYkw1na73hoOYUW3T0usTT8UaSh9ndatamUv8XxdiQlYhcyuKJ10N1BweyQUwbRlD/Pjw1WMrcVCXnz+JkCW+UR03/9xTlmRsVJsBBsg7fBBTLWE4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Dwji/UTX; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Dwji/UTX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 352E41F00893; Fri, 9 Oct 2026 04:50:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791521447; bh=1vZJxhdSXjGL81GZyJwiKVtBArF4NuLi7k+shpBTlA4=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=Dwji/UTX8l/YOBtdD30EaW2YHQTxMMNnqCWe+toNmC1x+3UBHqFeUDrhMeN6a1UU6 AA/zr6HaUjy4QNpcyRup5mJiA9YTgg9Vu47BjW1x88yrSvuY2qdxewYUFVIwBxd9vz ok3ysTBRlscsLYMZ9DPF4KByhxywm8ptVI7K2PYVzltXeE9My3I+hpVkXF+N6dlBmK 4esFBgZxub5xQEdV7hKrmP4a8cPV8hgPspnW45EHm6xmnjWbNE54+3D54byvT3IScP MLi7zJk++ddzCy8Iegkw/caTHETPMEeNyGv2316kVxQXvQ+xwnabzE9w+DT+t/JxK5 1wDS7set3i/qA== Date: Fri, 9 Oct 2026 12:30:42 +0800 From: Jisheng Zhang To: Nuno =?utf-8?B?U8Oh?= Cc: Miquel Raynal , Nuno =?utf-8?B?U8Oh?= , 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 Message-ID: References: <20260921093701.1341766-1-fei.xie@horizon.auto> <20260928055005.3987624-1-fei.xie@horizon.auto> <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-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Thu, Oct 08, 2026 at 09:55:27PM +0800, Jisheng Zhang wrote: > On Wed, Oct 07, 2026 at 07:12:57AM +0100, Nuno Sá wrote: > > On Wed, 2026-10-07 at 12:48 +0800, Jisheng Zhang wrote: > > > On Tue, Oct 06, 2026 at 07:50:44AM +0100, Nuno Sá wrote: > > > > On Sun, 2026-10-04 at 16:37 +0200, Miquel Raynal wrote: > > > > > Hello, > > > > > > > > > > On 28/09/2026 at 16:02:27 +01, Nuno Sá wrote: > > > > > > > > > > > On Mon, Sep 28, 2026 at 01:50:05PM +0800, Fei Xie wrote: > > > > > > > > > > > > Hi Fei, > > > > > > > > > > > > > Hi Nuno, Miquel, > > > > > > > > > > > > > > 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. > > > > > > > > > > > > > > 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. > > > > > > > > > > > > > > I ran flash_speed -c 5 -d /dev/mtd18 three times with each mode. The > > > > > > > numbers below are the arithmetic means, in KiB/s: > > > > > > > > > > > > > >                                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=%e user=%U sys=%S cpu=%P' \ > > > > > > >     dd if=/dev/mtd18 of=/dev/null bs=1M count=64 > > > > > > > > > > > > > >                           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% > > > > > > > > > > > > > > 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 simple > > > > > > 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). > > > > > > > > Exactly. In ACMD, is also capable of "walking pages" for reads bigger than page > > > > size > > > > (hence the need to know the flash geometry) and IIRC, that does not really work > > > > well > > > > when the flash is also doing it. > > > > > > > > > > > > > > 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 > > > > > > > > Fair enough! Agreed > > > > > > > > > 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. > > > > > > > > > > > > > I can take a look mostly for curiosity as my intention is not to "steal" this > > > > work > > > > from Fei. If everyone agrees (specially Fei), what I can do is to send my simpler > > > > patches that just support ACMD (without any special distinction between Nand and > > > > Nor) > > > > For Nands, I have a mix of STIG and ACMD, where big gains come from Nands with > > > > cont > > > > mode. > > > > > > > > Then we can build on top of it in order to improve Nand support (mostly on CPU > > > > load). > > > > > > I'm also interested in this driver's performance. A bit off the subject > > > but related question: Usually, the Soc may connect the xspi to dma > > > engine, I'm curious what would be the benefit of adding dma engine > > > support instead of ACMD? Is dma engine support simpler and > > > is the gain(performance + cpu load) more? > > > > > > > I'm not familiar with that approach tbh. But I would assume performance to be pretty > > much similar to what I have given that ACMD uses the IP internal DMA engine. But not > > using ACMD means not having the cpu gains at least for the smaller transfers as we > > would not be able to aggregate transfers. FWIW, given that you might not have looked > > Hmm, my platforms connect two dmaengine channels to the xspi controller, > but I haven't added the dma-engine support to the driver yet. If the > ACMD is enough, why HW connects dma-engine then? Just curious, there > must be performance gain I guess. But I'm not sure and I don't have > performance numbers. Aha, my platforms don't enable the ACMD support, instead, connect the xspi with dmac. So when upstreaming ACMD support, the driver needs to detect the ACMD support either dynamically or via. DT. Unfortunately, I didn't find any register can export the ACMD availability. DT is the only way? Or issue a simple ACMD and check SDMA error? > > > at the whole thread, this is what I have: > > > > https://github.com/analogdevicesinc/linux/pull/3478/changes/477e6095508546552071b825a66522cf697c27c2 > > > > - Nuno Sá > > > > > Regards