From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from esa4.microchip.iphmx.com ([68.232.154.123]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fxB6s-0000G1-9b for linux-mtd@lists.infradead.org; Tue, 04 Sep 2018 13:11:13 +0000 Subject: Re: Query: spi-nor: dummy buswidth calculation To: Boris Brezillon , Yogesh Narayan Gaur CC: "juliensu@mxic.com.tw" , "zhengxunli@mxic.com.tw" , "linux-mtd@lists.infradead.org" , "masonccyang@mxic.com.tw" , "linux-spi@vger.kernel.org" References: <20180904143028.4629fe10@bbrezillon> From: Cyrille Pitchen Message-ID: Date: Tue, 4 Sep 2018 15:10:44 +0200 MIME-Version: 1.0 In-Reply-To: <20180904143028.4629fe10@bbrezillon> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 8bit List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Hi all, Le 04/09/2018 à 14:30, Boris Brezillon a écrit : > +Macronix team > > On Tue, 4 Sep 2018 09:28:11 +0000 > Yogesh Narayan Gaur wrote: > >> Hi Boris, >> >> I have query regarding dummy bus width calculation for the read commands, added in the patch series [1] >> >> In func m25p80_read(), dummy.buswidth is being assigned as >> + op.dummy.buswidth = op.addr.buswidth; >> >> Above, buswidth for dummy commands are being assigned and are marked equal to the buswidth of the address command. >> This is true for case when we are doing operation in 1-4-4 or 1-2-2 protocol where data as well as address are running on same data lines and having same buswidth. >> >> I am adding support of octal commands in framework and for this needs to add support for 1-1-8 protocol for Micron flash MT35XU512ABA1G12. >> For octal command, 7Ch, flash is sending data and the dummy on the 8 data lines and address on 1 data line. > > Interesting. Macronix is also working on octo-mode support. I think we > should sync instead of duplicating the work. > >> >> If I do below code change, then I am getting correct data else there is data corruption only in the first byte read. >> - op.dummy.buswidth = op.addr.buswidth; >> + op.dummy.buswidth = spi_nor_get_protocol_data_nbits(nor->read_proto); > > Regarding this particular aspect, I just followed what was done before > the conversion to spi_mem_exec_op(). Maybe it was not correct though. > Actually this is correct and changing that for the above proposal would clearly break support of all existing memories in SPI 1-1-2 or SPI 1-1-4. SPI x-y-z means: - x I/O line(s) for the instruction op code cycles - y I/O line(s) for the address/mode/dummy cycles - z I/O line(s) for the data cycles Till now, this is how all Dual or Quad SPI NOR flash memories work. Besides, according to the recent JEDEC JESD126 rev C specification, introducing support to Octo SPI protocols: 6.4.20 JEDEC Basic Flash Parameter Table: 17th DWORD Bits Description 23:21 (1-1-8) Fast Read Number of Mode Clocks This filed will be 000b if Mode Bits are not supported. NOTE This field should be counted in clocks not number of bits received by the serial flash. The master drivers the bus during "mode bits" cycles, the master tri-states the bus during "dummy" cycles. Example: If 4 mode bits are needed with a single input address phase command, this field would be 100b. 20:16 (1-1-8) Fast Read Number of Wait states (dummy clocks) needed before valid output This field will be 00000b if wait states/dummy clocks are not supported. (The number of dummy clocks should be > 0 to avoid contention on bi- directional pins.) Example: If 8 bits are needed with a single input address phase command, this field would be 01000b. So it looks like SPI 1-1-8 follows the same logic as SPI 1-1-2 and SPI 1-1-4. Then either there is an error about the actual number of dummy clock cycles to use or Micron folks have decided to design things their own way. I've tried to download the datasheet for MT35XU512ABA1G12 but its under NDA. Best regards, Cyrille > Regards, > > Boris > > ______________________________________________________ > Linux MTD discussion mailing list > http://lists.infradead.org/mailman/listinfo/linux-mtd/ > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cyrille Pitchen Subject: Re: Query: spi-nor: dummy buswidth calculation Date: Tue, 4 Sep 2018 15:10:44 +0200 Message-ID: References: <20180904143028.4629fe10@bbrezillon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "juliensu@mxic.com.tw" , "linux-spi@vger.kernel.org" , "masonccyang@mxic.com.tw" , "linux-mtd@lists.infradead.org" , "zhengxunli@mxic.com.tw" To: Boris Brezillon , Yogesh Narayan Gaur Return-path: In-Reply-To: <20180904143028.4629fe10@bbrezillon> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+gldm-linux-mtd-36=gmane.org@lists.infradead.org List-Id: linux-spi.vger.kernel.org SGkgYWxsLAoKTGUgMDQvMDkvMjAxOCDDoCAxNDozMCwgQm9yaXMgQnJlemlsbG9uIGEgw6ljcml0 wqA6Cj4gK01hY3Jvbml4IHRlYW0KPiAKPiBPbiBUdWUsIDQgU2VwIDIwMTggMDk6Mjg6MTEgKzAw MDAKPiBZb2dlc2ggTmFyYXlhbiBHYXVyIDx5b2dlc2huYXJheWFuLmdhdXJAbnhwLmNvbT4gd3Jv dGU6Cj4gCj4+IEhpIEJvcmlzLAo+Pgo+PiBJIGhhdmUgcXVlcnkgcmVnYXJkaW5nIGR1bW15IGJ1 cyB3aWR0aCBjYWxjdWxhdGlvbiBmb3IgdGhlIHJlYWQgY29tbWFuZHMsIGFkZGVkIGluIHRoZSBw YXRjaCBzZXJpZXMgWzFdCj4+Cj4+IEluIGZ1bmMgbTI1cDgwX3JlYWQoKSwgZHVtbXkuYnVzd2lk dGggaXMgYmVpbmcgYXNzaWduZWQgYXMKPj4gKyAgICAgICBvcC5kdW1teS5idXN3aWR0aCA9IG9w LmFkZHIuYnVzd2lkdGg7Cj4+Cj4+IEFib3ZlLCBidXN3aWR0aCBmb3IgZHVtbXkgY29tbWFuZHMg YXJlIGJlaW5nIGFzc2lnbmVkIGFuZCBhcmUgbWFya2VkIGVxdWFsIHRvIHRoZSBidXN3aWR0aCBv ZiB0aGUgYWRkcmVzcyBjb21tYW5kLgo+PiBUaGlzIGlzIHRydWUgZm9yIGNhc2Ugd2hlbiB3ZSBh cmUgZG9pbmcgb3BlcmF0aW9uIGluIDEtNC00IG9yIDEtMi0yIHByb3RvY29sIHdoZXJlIGRhdGEg YXMgd2VsbCBhcyBhZGRyZXNzIGFyZSBydW5uaW5nIG9uIHNhbWUgZGF0YSBsaW5lcyBhbmQgaGF2 aW5nIHNhbWUgYnVzd2lkdGguCj4+Cj4+IEkgYW0gYWRkaW5nIHN1cHBvcnQgb2Ygb2N0YWwgY29t bWFuZHMgaW4gZnJhbWV3b3JrIGFuZCBmb3IgdGhpcyBuZWVkcyB0byBhZGQgc3VwcG9ydCBmb3Ig MS0xLTggcHJvdG9jb2wgZm9yIE1pY3JvbiBmbGFzaCBNVDM1WFU1MTJBQkExRzEyLgo+PiBGb3Ig b2N0YWwgY29tbWFuZCwgN0NoLCBmbGFzaCBpcyBzZW5kaW5nIGRhdGEgYW5kIHRoZSBkdW1teSBv biB0aGUgOCBkYXRhIGxpbmVzIGFuZCBhZGRyZXNzIG9uIDEgZGF0YSBsaW5lLgo+IAo+IEludGVy ZXN0aW5nLiBNYWNyb25peCBpcyBhbHNvIHdvcmtpbmcgb24gb2N0by1tb2RlIHN1cHBvcnQuIEkg dGhpbmsgd2UKPiBzaG91bGQgc3luYyBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIHRoZSB3b3JrLgo+ IAo+Pgo+PiBJZiBJIGRvIGJlbG93IGNvZGUgY2hhbmdlLCB0aGVuIEkgYW0gZ2V0dGluZyBjb3Jy ZWN0IGRhdGEgZWxzZSB0aGVyZSBpcyBkYXRhIGNvcnJ1cHRpb24gb25seSBpbiB0aGUgZmlyc3Qg Ynl0ZSByZWFkLgo+PiAtICAgICAgIG9wLmR1bW15LmJ1c3dpZHRoID0gb3AuYWRkci5idXN3aWR0 aDsKPj4gKyAgICAgICBvcC5kdW1teS5idXN3aWR0aCA9IHNwaV9ub3JfZ2V0X3Byb3RvY29sX2Rh dGFfbmJpdHMobm9yLT5yZWFkX3Byb3RvKTsKPiAKPiBSZWdhcmRpbmcgdGhpcyBwYXJ0aWN1bGFy IGFzcGVjdCwgSSBqdXN0IGZvbGxvd2VkIHdoYXQgd2FzIGRvbmUgYmVmb3JlCj4gdGhlIGNvbnZl cnNpb24gdG8gc3BpX21lbV9leGVjX29wKCkuIE1heWJlIGl0IHdhcyBub3QgY29ycmVjdCB0aG91 Z2guCj4KCkFjdHVhbGx5IHRoaXMgaXMgY29ycmVjdCBhbmQgY2hhbmdpbmcgdGhhdCBmb3IgdGhl IGFib3ZlIHByb3Bvc2FsIHdvdWxkCmNsZWFybHkgYnJlYWsgc3VwcG9ydCBvZiBhbGwgZXhpc3Rp bmcgbWVtb3JpZXMgaW4gU1BJIDEtMS0yIG9yIFNQSSAxLTEtNC4KClNQSSB4LXkteiBtZWFuczoK LSB4IEkvTyBsaW5lKHMpIGZvciB0aGUgaW5zdHJ1Y3Rpb24gb3AgY29kZSBjeWNsZXMKLSB5IEkv TyBsaW5lKHMpIGZvciB0aGUgYWRkcmVzcy9tb2RlL2R1bW15IGN5Y2xlcwotIHogSS9PIGxpbmUo cykgZm9yIHRoZSBkYXRhIGN5Y2xlcwoKVGlsbCBub3csIHRoaXMgaXMgaG93IGFsbCBEdWFsIG9y IFF1YWQgU1BJIE5PUiBmbGFzaCBtZW1vcmllcyB3b3JrLgpCZXNpZGVzLCBhY2NvcmRpbmcgdG8g dGhlIHJlY2VudCBKRURFQyBKRVNEMTI2IHJldiBDIHNwZWNpZmljYXRpb24sCmludHJvZHVjaW5n IHN1cHBvcnQgdG8gT2N0byBTUEkgcHJvdG9jb2xzOgoKNi40LjIwIEpFREVDIEJhc2ljIEZsYXNo IFBhcmFtZXRlciBUYWJsZTogMTd0aCBEV09SRApCaXRzICAgRGVzY3JpcHRpb24KCjIzOjIxICAo MS0xLTgpIEZhc3QgUmVhZCBOdW1iZXIgb2YgTW9kZSBDbG9ja3MKCiAgICAgICBUaGlzIGZpbGVk IHdpbGwgYmUgMDAwYiBpZiBNb2RlIEJpdHMgYXJlIG5vdCBzdXBwb3J0ZWQuCiAgICAgICBOT1RF IFRoaXMgZmllbGQgc2hvdWxkIGJlIGNvdW50ZWQgaW4gY2xvY2tzIG5vdCBudW1iZXIgb2YgYml0 cwogICAgICAgcmVjZWl2ZWQgYnkgdGhlIHNlcmlhbCBmbGFzaC4gVGhlIG1hc3RlciBkcml2ZXJz IHRoZSBidXMgZHVyaW5nCiAgICAgICAibW9kZSBiaXRzIiBjeWNsZXMsIHRoZSBtYXN0ZXIgdHJp LXN0YXRlcyB0aGUgYnVzIGR1cmluZwogICAgICAgImR1bW15IiBjeWNsZXMuCgogICAgICAgRXhh bXBsZTogSWYgNCBtb2RlIGJpdHMgYXJlIG5lZWRlZCB3aXRoIGEgc2luZ2xlIGlucHV0IGFkZHJl c3MKICAgICAgIHBoYXNlIGNvbW1hbmQsIHRoaXMgZmllbGQgd291bGQgYmUgMTAwYi4KCjIwOjE2 ICAoMS0xLTgpIEZhc3QgUmVhZCBOdW1iZXIgb2YgV2FpdCBzdGF0ZXMgKGR1bW15IGNsb2Nrcykg bmVlZGVkCiAgICAgICBiZWZvcmUgdmFsaWQgb3V0cHV0CgogICAgICAgVGhpcyBmaWVsZCB3aWxs IGJlIDAwMDAwYiBpZiB3YWl0IHN0YXRlcy9kdW1teSBjbG9ja3MgYXJlIG5vdCBzdXBwb3J0ZWQu CiAgICAgICAoVGhlIG51bWJlciBvZiBkdW1teSBjbG9ja3Mgc2hvdWxkIGJlID4gMCB0byBhdm9p ZCBjb250ZW50aW9uIG9uIGJpLQogICAgICAgIGRpcmVjdGlvbmFsIHBpbnMuKQoKICAgICAgIEV4 YW1wbGU6IElmIDggYml0cyBhcmUgbmVlZGVkIHdpdGggYSBzaW5nbGUgaW5wdXQgYWRkcmVzcyBw aGFzZSBjb21tYW5kLAogICAgICAgdGhpcyBmaWVsZCB3b3VsZCBiZSAwMTAwMGIuCgpTbyBpdCBs b29rcyBsaWtlIFNQSSAxLTEtOCBmb2xsb3dzIHRoZSBzYW1lIGxvZ2ljIGFzIFNQSSAxLTEtMiBh bmQgU1BJIDEtMS00LgpUaGVuIGVpdGhlciB0aGVyZSBpcyBhbiBlcnJvciBhYm91dCB0aGUgYWN0 dWFsIG51bWJlciBvZiBkdW1teSBjbG9jayBjeWNsZXMgdG8KdXNlIG9yIE1pY3JvbiBmb2xrcyBo YXZlIGRlY2lkZWQgdG8gZGVzaWduIHRoaW5ncyB0aGVpciBvd24gd2F5LgoKSSd2ZSB0cmllZCB0 byBkb3dubG9hZCB0aGUgZGF0YXNoZWV0IGZvciBNVDM1WFU1MTJBQkExRzEyIGJ1dCBpdHMgdW5k ZXIgTkRBLgoKQmVzdCByZWdhcmRzLAoKQ3lyaWxsZQoKIAo+IFJlZ2FyZHMsCj4gCj4gQm9yaXMK PiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiBMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKPiBodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8KPiAKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vz c2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1tdGQvCg==