linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: Frieder Schrempf <frieder.schrempf@exceet.de>
Cc: David Wolfe <david.wolfe@nxp.com>,
	Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>,
	Boris Brezillon <boris.brezillon@bootlin.com>,
	"richard@nod.at" <richard@nod.at>,
	Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
	"marek.vasut@gmail.com" <marek.vasut@gmail.com>,
	"broonie@kernel.org" <broonie@kernel.org>,
	"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
	"miquel.raynal@bootlin.com" <miquel.raynal@bootlin.com>,
	Fabio Estevam <fabio.estevam@nxp.com>, Han Xu <han.xu@nxp.com>,
	"computersforpeace@gmail.com" <computersforpeace@gmail.com>,
	"dwmw2@infradead.org" <dwmw2@infradead.org>
Subject: Re: Questions about the Freescale/NXP QuadSPI controller
Date: Wed, 19 Sep 2018 00:42:47 +0200	[thread overview]
Message-ID: <20180919004247.60c6099a@jawa> (raw)
In-Reply-To: <09d39759-390a-bca3-caeb-2ee8ddb29443@exceet.de>


[-- Attachment #1.1: Type: text/plain, Size: 12231 bytes --]

Dear All,

Maybe I do jump a bit off topic here, but...

I've read through the following thread:
https://patchwork.ozlabs.org/patch/939885/

And it mentions some issues with reading AHB content (buffers) in
fsl-quadspi.c driver discovered when new QuadSPI driver was developed.

I do have a setup with qspi0 having two SPI memories connected (2x16
MiB), and I'm wondering if anybody has some more info regarding:

(What's more is that there is a bug in
 * the "IP Command Read" in the Vybrid.) found here:
https://elixir.bootlin.com/linux/v4.19-rc4/source/drivers/mtd/spi-nor/fsl-quadspi.c#L671

I've googled for some errata or known issues for vybryd's QSPI IP block
(vf610) but without luck so far ...

Thanks in advance,

> Hi Han,
> 
> On 12.09.2018 23:04, Han Xu wrote:
> > 
> >   
> >> -----Original Message-----
> >> From: Frieder Schrempf [mailto:frieder.schrempf@exceet.de]
> >> Sent: Wednesday, September 12, 2018 1:41 PM
> >> To: Han Xu <han.xu@nxp.com>
> >> Cc: Boris Brezillon <boris.brezillon@bootlin.com>; David Wolfe
> >> <david.wolfe@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>;
> >> Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>; Yogesh Narayan
> >> Gaur <yogeshnarayan.gaur@nxp.com>; shawnguo@kernel.org; linux-
> >> mtd@lists.infradead.org; linux-spi@vger.kernel.org;
> >> dwmw2@infradead.org; computersforpeace@gmail.com;
> >> marek.vasut@gmail.com; richard@nod.at; miquel.raynal@bootlin.com;
> >> broonie@kernel.org Subject: Re: Questions about the Freescale/NXP
> >> QuadSPI controller
> >>
> >> Hi Han,
> >>
> >> On 12.09.2018 19:04, Han Xu wrote:  
> >>>
> >>>  
> >>>> -----Original Message-----
> >>>> From: Frieder Schrempf [mailto:frieder.schrempf@exceet.de]
> >>>> Sent: Monday, September 3, 2018 4:02 AM
> >>>> To: Han Xu <han.xu@nxp.com>
> >>>> Cc: Boris Brezillon <boris.brezillon@bootlin.com>; David Wolfe
> >>>> <david.wolfe@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>;
> >>>> Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>; Yogesh Narayan  
> >> Gaur  
> >>>> <yogeshnarayan.gaur@nxp.com>; shawnguo@kernel.org; linux-
> >>>> mtd@lists.infradead.org; linux-spi@vger.kernel.org;
> >>>> dwmw2@infradead.org; computersforpeace@gmail.com;
> >>>> marek.vasut@gmail.com; richard@nod.at; miquel.raynal@bootlin.com;
> >>>> broonie@kernel.org
> >>>> Subject: Re: Questions about the Freescale/NXP QuadSPI controller
> >>>>
> >>>> Hi Han,
> >>>>
> >>>> On 04.08.2018 15:37, Boris Brezillon wrote:  
> >>>>> Hi Han,
> >>>>>
> >>>>> On Thu, 2 Aug 2018 21:58:48 +0000
> >>>>> Han Xu <han.xu@nxp.com> wrote:
> >>>>>  
> >>>>>>> -----Original Message-----
> >>>>>>> From: Frieder Schrempf [mailto:frieder.schrempf@exceet.de]
> >>>>>>> Sent: Thursday, August 2, 2018 8:09 AM
> >>>>>>> To: David Wolfe <david.wolfe@nxp.com>; Fabio Estevam
> >>>>>>> <fabio.estevam@nxp.com>; Prabhakar Kushwaha
> >>>>>>> <prabhakar.kushwaha@nxp.com>; Yogesh Narayan Gaur
> >>>>>>> <yogeshnarayan.gaur@nxp.com>; Han Xu <han.xu@nxp.com>;
> >>>>>>> shawnguo@kernel.org
> >>>>>>> Cc: linux-mtd@lists.infradead.org;
> >>>>>>> boris.brezillon@bootlin.com; linux- spi@vger.kernel.org;
> >>>>>>> dwmw2@infradead.org; computersforpeace@gmail.com;
> >>>>>>> marek.vasut@gmail.com;  
> >>>> richard@nod.at;  
> >>>>>>> miquel.raynal@bootlin.com; broonie@kernel.org
> >>>>>>> Subject: Re: Questions about the Freescale/NXP QuadSPI
> >>>>>>> controller
> >>>>>>>
> >>>>>>> Ping.
> >>>>>>>
> >>>>>>> I'm not sure if my message below went out to you at all. At
> >>>>>>> least I can't find it in the ML archive.
> >>>>>>>
> >>>>>>> I still hope someone can help with the questions below.
> >>>>>>>
> >>>>>>> Meanwhile for the second point I did some tests myself with
> >>>>>>> one chip on each of the two buses and it worked fine with my
> >>>>>>> latest v2  
> >> patches.  
> >>>>>>> So I'm not sure at all why Yogesh has problems with his setup
> >>>>>>> (two chips on the first bus).  
> >>>>>>
> >>>>>> Tried to test the v2 patch set on i.MX6SX SDB board but get the
> >>>>>> memory  
> >>>> map failure.  
> >>>>>>
> >>>>>> [    1.298633] fsl-quadspi 21e4000.qspi: ioremap failed for
> >>>>>> resource  
> >> [mem  
> >>>> 0x70000000-0x7fffffff]  
> >>>>>> [    1.307330] fsl-quadspi 21e4000.qspi: Freescale QuadSPI
> >>>>>> probe failed [    1.313922] fsl-quadspi: probe of 21e4000.qspi
> >>>>>> failed with error -12
> >>>>>>
> >>>>>> This is the reason why dynamic ioremap added in previous
> >>>>>> driver, please  
> >>>> refer to  
> >>>>>>
> >>>>>>  
> >>>>  
> >> https://smex12-5-en-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2femea01.safelinks.protection.outlook.com%2f%3furl%3dhttps%253A%252F%252Fsm&umid=aac77072-ee97-4b8a-b8b9-55765e276aec&auth=78a0452d0eda3018cc3487ba1bec995089e109a2-cefb4275e4aea35bf0c475f6bd6da9e9a8c877a0  
> >>>> ex12-5-en-  
> >> ctp.trendmicro.com%3A443%2Fwis%2Fclicktime%2Fv1%2Fquery%3Fu  
> >>>>  
> >> rl%3Dhttps%253a%252f%252femea01.safelinks.protection.outlook.com%252
> >> f  
> >>>> %253furl%253dhttps%25253A%25252F%25252Fpa%26umid%3Dd6cc1014-  
> >> 1848-42fb  
> >>>> -92fd-  
> >> 9626d45c8050%26auth%3D541e45255b6517100d80c2b1b80b6933b203c492-  
> >>>>  
> >> 5aa8e1977a9db94300a9f61f5446e7a21b175f56&amp;data=02%7C01%7Chan.x
> >> u%40  
> >>>>  
> >> nxp.com%7C9d43e9b29a82419a36c408d618df3dc3%7C686ea1d3bc2b4c6fa92c
> >> d99c  
> >>>>  
> >> 5c301635%7C0%7C0%7C636723744426896223&amp;sdata=Y32I9H9adPn%2Bn
> >> lcICuV  
> >>>> M8Uoozsig%2BM3F0rNAhkIF5ZE%3D&amp;reserved=0  
> >>>>>>  
> >>>>  
> >> tchwork.ozlabs.org%2Fpatch%2F503655%2F&amp;data=02%7C01%7Chan.xu  
> >>>> %40nx  
> >>>>>>  
> >>>>  
> >> p.com%7C9f45a8b666d3478f065408d6117bf524%7C686ea1d3bc2b4c6fa92cd9  
> >>>> 9c5c  
> >>>>>>  
> >>>>  
> >> 301635%7C0%7C0%7C636715621426190473&amp;sdata=XWPfWe%2Fu2ePW  
> >>>> mNPe179D0  
> >>>>>> vjTp6eLp0%2FJRF2vRayDwug%3D&amp;reserved=0  
> >>>>>
> >>>>> We can reduce the size of the iomap to 2k * 4, since this is
> >>>>> all we use currently. Can you try to change the size of the
> >>>>> ioremap call to 16k and tell us if it works.  
> >>>>
> >>>> Were you able to test with the reduced iomap size?
> >>>> It would be great to know if it works on your board.
> >>>>
> >>>> Thanks,
> >>>> Frieder  
> >>>
> >>> Test the code on i.MX6SX sabreauto board with two micron n25q256a
> >>> chips  
> >> on two CS.  
> >>> First issue found is __div0 kernel dump with these code
> >>> /* Max 64 dummy clock cycles supported */ if (op->dummy.nbytes *
> >>> 8 / op->dummy.buswidth > 64) dummy.buswidth was not set during
> >>> read id.  
> >>
> >> First, thank you for coming back to this and doing the test.
> >> I'm currently not sure about the reason for this, but I guess
> >> Boris will figure it out easily ;)  
> 
> Ok, on a closer look it is obvious that the reason is this commit
> [1]. My last test was before this change, when dummy.buswidth was
> still set to 1 even if dummy.n_bytes is 0.
> Now both are 0 and I need to handle this in the FSL QSPI driver.
> 
> >>  
> >>>
> >>> Second issue is the second part failed to be probed, tried both
> >>> buswidth 4  
> >> and buswidth 1.  
> >>>
> >>> [    1.364979] m25p80 spi5.0: found n25q256a, expected m25p80
> >>> [    1.370986] m25p80 spi5.0: n25q256a (32768 Kbytes)
> >>> [    1.381020] m25p80 spi5.1: unrecognized JEDEC id bytes: ff,
> >>> ff, ff
> >>>
> >>> These are the DT settings:
> >>> &qspi1 {
> >>>           pinctrl-names = "default";
> >>>           pinctrl-0 = <&pinctrl_qspi1_1>;
> >>>           status = "okay";
> >>>
> >>>           flash0: n25q256a@0 {
> >>>           ¦       #address-cells = <1>;
> >>>           ¦       #size-cells = <1>;
> >>>           ¦       compatible = "micron,m25p80";
> >>>           ¦       spi-max-frequency = <29000000>;
> >>>                   spi-rx-bus-width = <4>;
> >>>                   spi-tx-bus-width = <4>;
> >>>           ¦       reg = <0>;
> >>>           };
> >>>
> >>>           flash1: n25q256a@1 {
> >>>           ¦       #address-cells = <1>;
> >>>           ¦       #size-cells = <1>;
> >>>           ¦       compatible = "micron,m25p80";
> >>>           ¦       spi-max-frequency = <29000000>;
> >>>                   spi-rx-bus-width = <4>;
> >>>                   spi-tx-bus-width = <4>;
> >>>           ¦       reg = <1>;
> >>>           };
> >>> };  
> >>
> >> First, I think you should add "jedec,spi-nor" to your compatible
> >> properties.
> >>
> >> Second, are you sure, that the two chips are both on QSPIA using
> >> the two chip selects?
> >> I have no schematics of the board, but if I look at the devicetree
> >> in the linux- imx kernel [1] it seems to me that one chip is on
> >> QSPIA CS0 and the other on QSPIB CS0.
> >> If this is the case, then you have to set reg = <2> for the second
> >> chip.  
> > 
> > Yes, you are right, the second chip connects to QSPIB CS0, with the
> > DT change, both of them work fine with __div0 issue workaround.  
> 
> Ok, great. Thanks for your test.
> 
> As Yogesh reported problems with his LS1088ARDB board, where both
> chips are connected to QSPIA, I was hoping someone could confirm this
> by testing on a similar setup.
> 
> So if you have a board around, that uses this setup, it would be
> great if you can try on that. If not we have to find other ways to
> investigate this.
> 
> Thanks,
> Frieder
> 
> [1] 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=9882b5375df532acb2c2399a90d882461112e612
> 
> >   
> >>
> >> Thanks,
> >> Frieder
> >>
> >> [1]
> >> https://smex12-5-en-ctp.trendmicro.com:443/wis/clicktime/v1/query?url=https%3a%2f%2femea01.safelinks.protection.outlook.com%2f%3furl%3dhttp%253A%252F%252Fgit.f&umid=aac77072-ee97-4b8a-b8b9-55765e276aec&auth=78a0452d0eda3018cc3487ba1bec995089e109a2-54ce7888db3c2cb56ff686a840c4d0fa657a3cdb
> >> reescale.com%2Fgit%2Fcgit.cgi%2Fimx%2Flinux-
> >> imx.git%2Ftree%2Farch%2Farm%2Fboot%2Fdts%2Fimx6sx-
> >> sabreauto.dts%3Fh%3Dimx_4.9.11_1.0.0_ga%23n771&amp;data=02%7C01%
> >> 7Chan.xu%40nxp.com%7C9d43e9b29a82419a36c408d618df3dc3%7C686ea1d
> >> 3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636723744426896223&amp;sdata
> >> =038DdgMLjO23Io3CTHoSVrJL2Ho%2BgxyHlx9%2BLMrLWkQ%3D&amp;reser
> >> ved=0
> >>  
> >>>>>
> >>>>> Unrelated to this issue, we still have 2 questions left
> >>>>> unanswered:
> >>>>>
> >>>>> 1/ is there an easy way to invalidate AHB buffers? I mean, not
> >>>>>       something that implies a full reset + several
> >>>>> milliseconds of delay after the reset. Right now we trick the
> >>>>> caching logic by mapping a portion that is twice the size of
> >>>>> the buffer and switching from one sub-portion to this other to
> >>>>> trigger a real read on each read access, but that's hack-ish,
> >>>>> and I'd be surprised if HW engineers hadn't planned for this
> >>>>> "manual AHB buffer flush" case.
> >>>>>
> >>>>> 2/ if we use DMA, do you know what happens when the TX FIFO
> >>>>> runs  
> >> out  
> >>>>>       of data while the TX request is not finished yet. In PIO
> >>>>> mode, it seems the engine sends garbage on the bus when that
> >>>>> happens, and  
> >> we  
> >>>>>       definitely don't want that.
> >>>>>
> >>>>> While #1 is not blocking us, #2 is if we don't have those
> >>>>> patches [1][2] applied, and Marek wanted to be sure there was
> >>>>> no other ways to solve the "TX FIFO starvation" issue before
> >>>>> considering these changes. So that'd be great if someone from
> >>>>> NXP could have a look/ask around and give us answers to those 2
> >>>>> questions.
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>> Boris  
> 
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de

[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 144 bytes --]

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2018-09-18 22:42 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-05 11:14 [PATCH v2 00/12] Port the FSL QSPI driver to the SPI framework Frieder Schrempf
2018-07-05 11:14 ` [PATCH v2 01/12] spi: spi-mem: Extend the SPI mem interface to set a custom memory name Frieder Schrempf
2018-07-05 12:39   ` Boris Brezillon
2018-07-05 12:50     ` Frieder Schrempf
2018-07-05 11:14 ` [PATCH v2 02/12] mtd: m25p80: Call spi_mem_get_name() to let controller set a custom name Frieder Schrempf
2018-07-05 12:56   ` Boris Brezillon
2018-07-05 13:06     ` Frieder Schrempf
2018-07-05 11:14 ` [PATCH v2 03/12] spi: Add a driver for the Freescale/NXP QuadSPI controller Frieder Schrempf
     [not found]   ` <7e95c72c-2cd1-f138-a687-6cca362c95b7@exceet.de>
2018-08-02 13:09     ` Questions about " Frieder Schrempf
2018-08-02 21:58       ` Han Xu
2018-08-04 13:37         ` Boris Brezillon
2018-09-03  9:02           ` Frieder Schrempf
2018-09-12 17:04             ` Han Xu
2018-09-12 18:40               ` Frieder Schrempf
2018-09-12 21:04                 ` Han Xu
2018-09-13  7:00                   ` Frieder Schrempf
2018-09-18 22:42                     ` Lukasz Majewski [this message]
2018-09-19  6:49                       ` Frieder Schrempf
2018-09-19 11:02                         ` Lukasz Majewski
2018-09-20  1:17                           ` Huang Shijie
2018-09-20 15:00                           ` Lukasz Majewski
2018-09-20 15:41                             ` Frieder Schrempf
2018-09-20 20:37                               ` Lukasz Majewski
2018-09-20 22:13                               ` Lukasz Majewski
2018-09-25  6:49                                 ` Frieder Schrempf
2018-09-25  8:53                                   ` Lukasz Majewski
2018-09-06 11:11           ` Yogesh Narayan Gaur
2018-09-06 11:36             ` Boris Brezillon
2018-09-06 12:22               ` Yogesh Narayan Gaur
2018-07-05 11:15 ` [PATCH v2 04/12] dt-bindings: spi: Move the bindings for the FSL QSPI driver Frieder Schrempf
2018-07-11 15:54   ` Rob Herring
2018-07-12  8:11     ` Frieder Schrempf
2018-07-05 11:15 ` [PATCH v2 05/12] dt-bindings: spi: Adjust " Frieder Schrempf
2018-07-11 16:05   ` Rob Herring
2018-07-12  8:13     ` Frieder Schrempf
2018-07-12 15:20       ` Rob Herring
2018-07-16  7:04         ` Frieder Schrempf
2018-07-05 11:15 ` [PATCH v2 06/12] ARM: dts: Reflect change of FSL QSPI driver and remove unused properties Frieder Schrempf
2018-07-05 11:15 ` [PATCH v2 07/12] arm64: " Frieder Schrempf
2018-07-05 11:15 ` [PATCH v2 08/12] ARM: defconfig: Use the new FSL QSPI driver under the SPI framework Frieder Schrempf
2018-07-05 11:15 ` [PATCH v2 09/12] mtd: fsl-quadspi: Remove the driver as it was replaced by spi-fsl-qspi.c Frieder Schrempf
2018-07-05 11:15 ` [PATCH v2 10/12] ARM: dts: ls1021a: Remove fsl,qspi-has-second-chip as it is not used Frieder Schrempf
2018-07-05 11:15 ` [PATCH v2 11/12] ARM64: dts: ls1046a: " Frieder Schrempf
2018-07-05 11:15 ` [PATCH v2 12/12] MAINTAINERS: Move the Freescale QSPI driver to the SPI framework Frieder Schrempf
2018-07-06  5:08 ` [PATCH v2 00/12] Port the FSL " Yogesh Narayan Gaur
2018-10-31 13:40 ` Boris Brezillon
2018-10-31 13:54   ` Schrempf Frieder
2018-10-31 14:31     ` Boris Brezillon
2018-10-31 16:03       ` Yogesh Narayan Gaur
2018-10-31 16:09         ` Schrempf Frieder
2018-11-08  8:15       ` Schrempf Frieder
2018-11-08  8:19         ` Boris Brezillon
2018-11-08  8:35           ` Schrempf Frieder
2018-11-08  8:57           ` Schrempf Frieder

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=20180919004247.60c6099a@jawa \
    --to=lukma@denx.de \
    --cc=boris.brezillon@bootlin.com \
    --cc=broonie@kernel.org \
    --cc=computersforpeace@gmail.com \
    --cc=david.wolfe@nxp.com \
    --cc=dwmw2@infradead.org \
    --cc=fabio.estevam@nxp.com \
    --cc=frieder.schrempf@exceet.de \
    --cc=han.xu@nxp.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=marek.vasut@gmail.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=prabhakar.kushwaha@nxp.com \
    --cc=richard@nod.at \
    --cc=shawnguo@kernel.org \
    --cc=yogeshnarayan.gaur@nxp.com \
    /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).