From: Michael Walle <michael@walle.cc>
To: liao jaime <jaimeliao.tw@gmail.com>
Cc: Tudor Ambarus <tudor.ambarus@linaro.org>,
Pratyush Yadav <pratyush@kernel.org>,
linux-mtd@lists.infradead.org, miquel.raynal@bootlin.com,
leoyu@mxic.com.tw, jaimeliao@mxic.com.tw
Subject: Re: [PATCH v4 1/6] mtd: spi-nor: Add manufacturer read id function
Date: Fri, 13 Oct 2023 11:32:34 +0200 [thread overview]
Message-ID: <7b2bc98cee7120a510d22c443e0f3486@walle.cc> (raw)
In-Reply-To: <CAAQoYRnektLQaw__dkxXaOcRJ_B1gazC6ukW-qjEeU89W6oYuQ@mail.gmail.com>
Am 2023-10-13 11:14, schrieb liao jaime:
> Hi Michael
>
>
>>
>> Hi,
>>
>> Am 2023-10-13 10:23, schrieb liao jaime:
>> >> >> > After checking with Macronix designer, a-a-b-b-c-c is the data
>> >> >> > arrangement for
>> >> >> > read id operation of flash in 8D-8D-8D.
>> >> >>
>> >> >> Could you please point to any specification? I doubt there is one
>> >> >> and every vendor will do it slightly differently. I mean we already
>> >> >> have some flashes which (apparently) reply to RDID in 8d8d8d.
>> >> >>
>> >> >> For example, see the Semper flash datasheet:
>> >> >> https://www.infineon.com/dgdl/Infineon-S28HS256T_S28HS512T_S28HS01GT_S28HL256T_S28HL512T_S28HL01GT_256-Mb_(32-MB)_512-Mb_(64-MB)_1-Gb_(128-MB)_HS-T_(1.8-V)_HL-T_(3.0-V)_Semper_Flash_with_Octal_Interface-DataSheet-v03_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ee6bca96f97&da=t
>> >> >>
>> >> >> Have a look at Table 78 (or search for RDIDN_4_0) and Figure 28.
>> >> > For Figure 28 in this datasheet, I think it means that data latch
>> >> > while DS raising and falling edge.
>> >> > The data arrangement of read id follow the 9.2(Manufacturer and Device
>> >> > ID).
>> >> > As below are the data arrangement for vendors.
>> >> > For Infineon, a-b-c-d-e-f
>> >> > For Micron, a-b-c-d-e-f
>> >> > For Macronix, a-a-b-b-c-c
>> >>
>> >> So there is no standard among vendors, infineon as well as micron is
>> >> using 8d8d8d and macronix is using 8d8d8s. And - please correct me if
>> > Macronix read id operation is not 8d8d8s, it just look like 8d8d8s on
>> > datasheet
>> > but flash send 2 bytes data per DQS cycle exactly.
>>
>> Two DQS edges, yes.
>>
>> > I think whether to use 8d or 8s depends on how many times data is
>> > latched
>> > within per cycle.
>>
>> I see and I agree with you. The flash behaves like it's in 8d8d8d
>> mode,
>> but
>> just send every byte of the id twice. Well, then I'd argue, it's a
>> quirk
>> of
>> your flash.
> I cannot refute that.
>
>>
>> So Tudor and Pratyush want to hide that away in macronix.c. I would
>> like
>> to
>> see this handled in the core, because all flashes do the very same
>> after
>> switching to octal mode and that is trying to do a rdid and see
>> whether
>> they got a sane response. And during cleanup I noticed that this code
>> is
>> pretty much copy and paste among all these flashes and looks very
>> open-coded.
>>
>> But to move forward here, keep it in macronix.c.
> Do you mean that I can keep v3 method as below for comparing ID after
> enable
> 8D-8D-8D mode?
>
> for (i = 0; i < nor->info->id_len; i++)
> if (buf[i * 2] != nor->info->id[i])
> return -EINVAL;
Technically, this is wrong. Because we only read SPI_NOR_MAX_ID_LEN.
and nor->info->id_len might be as large as SPI_NOR_MAX_ID_LEN. So you'll
have out of bounds accesses. spi_nor_read_id() isn't really useful here.
You'd need to cook up your own RDID command. And that results in even
more
open coding...
Aside from that, I'd also check that buf[i] == buf[i+1] for i=0,2,4,...
-michael
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2023-10-13 9:32 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-08 6:42 [PATCH v4 0/6] Add octal DTR support for Macronix flash Jaime Liao
2023-09-08 6:42 ` [PATCH v4 1/6] mtd: spi-nor: Add manufacturer read id function Jaime Liao
2023-09-20 12:28 ` Tudor Ambarus
2023-10-05 11:02 ` Pratyush Yadav
2023-10-05 11:43 ` Michael Walle
[not found] ` <54e5662f-baf4-4660-9fc4-7959d2405120@linaro.org>
[not found] ` <29bb3d952b9f49961da5e01cf86f9c4f@walle.cc>
2023-10-05 14:11 ` Tudor Ambarus
2023-10-06 8:22 ` Michael Walle
2023-10-12 8:59 ` liao jaime
2023-10-12 9:09 ` Michael Walle
2023-10-12 9:50 ` liao jaime
2023-10-13 8:06 ` Michael Walle
2023-10-13 8:23 ` liao jaime
2023-10-13 9:04 ` Michael Walle
2023-10-13 9:14 ` liao jaime
2023-10-13 9:32 ` Michael Walle [this message]
2023-10-17 10:12 ` Pratyush Yadav
2023-09-08 6:43 ` [PATCH v4 2/6] mtd: spi-nor: add Octal DTR support for Macronix flash Jaime Liao
2023-09-20 12:37 ` Tudor Ambarus
2023-10-05 10:18 ` Pratyush Yadav
2023-09-08 6:43 ` [PATCH v4 3/6] mtd: spi-nor: add support for Macronix Octal flash Jaime Liao
2023-09-20 12:41 ` Tudor Ambarus
2023-10-12 9:10 ` liao jaime
2023-09-08 6:43 ` [PATCH v4 4/6] spi: spi-mem: Allow specifying the byte order in DTR mode Jaime Liao
2023-09-20 12:47 ` Tudor Ambarus
2023-09-08 6:43 ` [PATCH v4 5/6] mtd: spi-nor: core: " Jaime Liao
2023-09-20 12:51 ` Tudor Ambarus
2023-09-08 6:43 ` [PATCH v4 6/6] mtd: spi-nor: sfdp: Get the 8D-8D-8D byte order from BFPT Jaime Liao
2023-09-20 12:52 ` Tudor Ambarus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7b2bc98cee7120a510d22c443e0f3486@walle.cc \
--to=michael@walle.cc \
--cc=jaimeliao.tw@gmail.com \
--cc=jaimeliao@mxic.com.tw \
--cc=leoyu@mxic.com.tw \
--cc=linux-mtd@lists.infradead.org \
--cc=miquel.raynal@bootlin.com \
--cc=pratyush@kernel.org \
--cc=tudor.ambarus@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).