All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: Michal Suchanek <hramrach@gmail.com>
Cc: Vinod Koul <vinod.koul@intel.com>,
	MTD Maling List <linux-mtd@lists.infradead.org>,
	"linux-samsung-soc@vger.kernel.org"
	<linux-samsung-soc@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-spi" <linux-spi@vger.kernel.org>,
	dmaengine <dmaengine@vger.kernel.org>
Subject: Re: [PATCH 08/11] MTD: m25p80: Add option to limit SPI transfer size.
Date: Fri, 24 Jul 2015 10:34:15 +0200	[thread overview]
Message-ID: <201507241034.15406.marex@denx.de> (raw)
In-Reply-To: <CAOMqctREShUrBR=aQM2Vc6MhVezCP9rnNfUNq=m2-GH_gbYxFw@mail.gmail.com>

On Thursday, July 23, 2015 at 07:03:47 PM, Michal Suchanek wrote:

Hi!

[...]

> >>> It's probably slower to set up DMA for 2-byte commands but it might
> >>> work nonetheless.
> >> 
> >> It is, the overhead will be considerable. It might help the stability
> >> though. I'm really looking forward to the results!
> > 
> > Hello,
> > 
> > this does not quite work.
> > 
> > My test with spidev:
> > 
> > # ./spinor /dev/spidev1.0
> > Sending 9f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > Received 00 ff c8 60 16 c8 60 16 c8 60 16 c8 60 16 c8 60
> > Sending 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > Received 00 ff ff ff ff c8 15 c8 15 c8 15 c8 15 c8 15 c8
> > Sending 9f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > Received 00 ff c8 60 16 c8 60 16 c8 60 16 c8 60 16 c8 60
> > 
> > I receive correct ID but spi-nor complains it does not know ID 00 c8 60.
> > IIRC garbage should be sent only at the time command is transferred so
> > only one byte of garbage should be received. Also the garbage tends to
> > be the last state of the data output - all 0 or all 1.
> > So it seems using DMA for all transfers including 1-byte commands
> > results in (some?) received data getting an extra 00 prefix.
> > 
> > 
> > I also managed to lock up the controller completely since there is
> > some error passing the SPI speed somewhere :(
> > 
> > [ 1352.977530] spidev spi1.0: setup mode 0, 8 bits/w, 80000000 Hz max -->
> > 0 [ 1352.977540] spidev spi1.0: spi mode 0
> > [ 1352.977576] spidev spi1.0: setup mode 0, 8 bits/w, 80000000 Hz max -->
> > 0 [ 1352.977582] spidev spi1.0: msb first
> > [ 1352.977614] spidev spi1.0: setup mode 0, 8 bits/w, 80000000 Hz max -->
> > 0 [ 1352.977620] spidev spi1.0: 0 bits per word
> > [ 1352.977652] spidev spi1.0: setup mode 0, 8 bits/w, 2690588672 Hz max
> > --> 0 [ 1352.977726] spi_master spi1: s3c64xx_spi_config: clk_from_cmu 1
> > src_clk sclk_spi1 mode bpw 8
> > [ 1352.977753] spi_master spi1: spi1.0 s3c64xx_spi_transfer_one: xfer
> > bpw 8 speed -1604378624
> > [ 1352.977760] spi_master spi1: s3c64xx_spi_config: clk_from_cmu 1
> > src_clk sclk_spi1 mode bpw 8
> > [ 1352.977781] spi_master spi1: spi1.0 s3c64xx_spi_transfer_one: using
> > dma [ 1352.977797] dma-pl330 121b0000.pdma: setting up request on thread
> > 1
> 
> Hmm, on a second thought it probably works as expected more or less.
> 
> The nonsensical value was passed from application and there is no
> guard against that.
> 
> Since I don't do PIO the controller remains locked up indefinitely.

I have to admit, I don't quite understand the above. I also don't quite know
what your spidev test does. Can you possibly just bind a regular SPI NOR driver 
and run mtdtests to see if it is stable ?

WARNING: multiple messages have this Message-ID (diff)
From: marex@denx.de (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 08/11] MTD: m25p80: Add option to limit SPI transfer size.
Date: Fri, 24 Jul 2015 10:34:15 +0200	[thread overview]
Message-ID: <201507241034.15406.marex@denx.de> (raw)
In-Reply-To: <CAOMqctREShUrBR=aQM2Vc6MhVezCP9rnNfUNq=m2-GH_gbYxFw@mail.gmail.com>

On Thursday, July 23, 2015 at 07:03:47 PM, Michal Suchanek wrote:

Hi!

[...]

> >>> It's probably slower to set up DMA for 2-byte commands but it might
> >>> work nonetheless.
> >> 
> >> It is, the overhead will be considerable. It might help the stability
> >> though. I'm really looking forward to the results!
> > 
> > Hello,
> > 
> > this does not quite work.
> > 
> > My test with spidev:
> > 
> > # ./spinor /dev/spidev1.0
> > Sending 9f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > Received 00 ff c8 60 16 c8 60 16 c8 60 16 c8 60 16 c8 60
> > Sending 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > Received 00 ff ff ff ff c8 15 c8 15 c8 15 c8 15 c8 15 c8
> > Sending 9f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > Received 00 ff c8 60 16 c8 60 16 c8 60 16 c8 60 16 c8 60
> > 
> > I receive correct ID but spi-nor complains it does not know ID 00 c8 60.
> > IIRC garbage should be sent only at the time command is transferred so
> > only one byte of garbage should be received. Also the garbage tends to
> > be the last state of the data output - all 0 or all 1.
> > So it seems using DMA for all transfers including 1-byte commands
> > results in (some?) received data getting an extra 00 prefix.
> > 
> > 
> > I also managed to lock up the controller completely since there is
> > some error passing the SPI speed somewhere :(
> > 
> > [ 1352.977530] spidev spi1.0: setup mode 0, 8 bits/w, 80000000 Hz max -->
> > 0 [ 1352.977540] spidev spi1.0: spi mode 0
> > [ 1352.977576] spidev spi1.0: setup mode 0, 8 bits/w, 80000000 Hz max -->
> > 0 [ 1352.977582] spidev spi1.0: msb first
> > [ 1352.977614] spidev spi1.0: setup mode 0, 8 bits/w, 80000000 Hz max -->
> > 0 [ 1352.977620] spidev spi1.0: 0 bits per word
> > [ 1352.977652] spidev spi1.0: setup mode 0, 8 bits/w, 2690588672 Hz max
> > --> 0 [ 1352.977726] spi_master spi1: s3c64xx_spi_config: clk_from_cmu 1
> > src_clk sclk_spi1 mode bpw 8
> > [ 1352.977753] spi_master spi1: spi1.0 s3c64xx_spi_transfer_one: xfer
> > bpw 8 speed -1604378624
> > [ 1352.977760] spi_master spi1: s3c64xx_spi_config: clk_from_cmu 1
> > src_clk sclk_spi1 mode bpw 8
> > [ 1352.977781] spi_master spi1: spi1.0 s3c64xx_spi_transfer_one: using
> > dma [ 1352.977797] dma-pl330 121b0000.pdma: setting up request on thread
> > 1
> 
> Hmm, on a second thought it probably works as expected more or less.
> 
> The nonsensical value was passed from application and there is no
> guard against that.
> 
> Since I don't do PIO the controller remains locked up indefinitely.

I have to admit, I don't quite understand the above. I also don't quite know
what your spidev test does. Can you possibly just bind a regular SPI NOR driver 
and run mtdtests to see if it is stable ?

  reply	other threads:[~2015-07-24  8:34 UTC|newest]

Thread overview: 242+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-03 21:26 [PATCH 00/11] Enable access to SPI NOR flash on Samsung Snow board Michal Suchanek
2015-06-03 21:26 ` Michal Suchanek
2015-06-03 21:26 ` Michal Suchanek
2015-06-03 21:26 ` [PATCH 01/11] ARM: dt: Add SPI CS " Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-04  2:05   ` Krzysztof Kozlowski
2015-06-04  2:05     ` Krzysztof Kozlowski
2015-06-04  2:05     ` Krzysztof Kozlowski
2015-06-04  2:05   ` Krzysztof Kozlowski
     [not found]   ` <d47abe28c751b54b839d9340269a2c06a6e23a6c.1433364398.git.hramrach-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-06-04  2:05     ` Krzysztof Kozlowski
2015-06-04  6:52   ` Javier Martinez Canillas
2015-06-04  6:52     ` Javier Martinez Canillas
2015-06-04  6:52     ` Javier Martinez Canillas
2015-06-04  6:52     ` Javier Martinez Canillas
2015-06-03 21:26 ` [PATCH 02/11] mtd: spi-nor: Add GD25LQ32C 1.8V SPI NOR flash ID Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26 ` [PATCH 05/11] mtd: mtdpart: Do not fail mtd probe when parsing partitions fails Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26 ` [PATCH 03/11] mtd: add debug prints to mtdpart partition parser Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26 ` [PATCH 04/11] mtd: ofpart: do not fail probe when no partitions exist Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 22:58   ` Marek Vasut
2015-06-03 22:58     ` Marek Vasut
2015-06-03 22:58     ` Marek Vasut
2015-06-03 22:58     ` Marek Vasut
2015-06-04  4:54     ` Michal Suchanek
2015-06-04  4:54       ` Michal Suchanek
2015-06-04  4:54       ` Michal Suchanek
2015-06-04  4:54       ` Michal Suchanek
2015-06-04  4:54       ` Michal Suchanek
2015-06-04 15:28       ` Marek Vasut
2015-06-04 15:28         ` Marek Vasut
2015-06-04 15:28         ` Marek Vasut
2015-06-04 15:28         ` Marek Vasut
2015-06-04 15:40         ` Michal Suchanek
2015-06-04 15:40           ` Michal Suchanek
2015-06-04 15:40           ` Michal Suchanek
2015-06-04 15:40           ` Michal Suchanek
2015-06-04 15:40           ` Michal Suchanek
2015-06-05 14:13           ` Marek Vasut
2015-06-05 14:13             ` Marek Vasut
2015-06-05 14:13             ` Marek Vasut
2015-06-05 14:13             ` Marek Vasut
2015-06-23 18:26   ` Brian Norris
2015-06-23 18:26     ` Brian Norris
2015-06-23 18:26     ` Brian Norris
2015-06-23 18:26     ` Brian Norris
2015-06-03 21:26 ` [PATCH 08/11] MTD: m25p80: Add option to limit SPI transfer size Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 23:03   ` Marek Vasut
2015-06-03 23:03     ` Marek Vasut
2015-06-03 23:03     ` Marek Vasut
2015-06-03 23:03     ` Marek Vasut
2015-06-04  4:31     ` Michal Suchanek
2015-06-04  4:31       ` Michal Suchanek
2015-06-04  4:31       ` Michal Suchanek
2015-06-04  4:31       ` Michal Suchanek
2015-06-04  4:31       ` Michal Suchanek
2015-06-04 15:15       ` Marek Vasut
2015-06-04 15:15         ` Marek Vasut
2015-06-04 15:15         ` Marek Vasut
2015-06-04 15:15         ` Marek Vasut
2015-06-04  6:42   ` Geert Uytterhoeven
2015-06-04  6:42     ` Geert Uytterhoeven
2015-06-04  6:42     ` Geert Uytterhoeven
2015-06-04  6:42     ` Geert Uytterhoeven
2015-06-04  8:31     ` Michal Suchanek
2015-06-04  8:31       ` Michal Suchanek
2015-06-04  8:31       ` Michal Suchanek
2015-06-04  8:31       ` Michal Suchanek
2015-06-04 17:15       ` Richard Cochran
2015-06-04 17:15         ` Richard Cochran
2015-06-04 17:15         ` Richard Cochran
2015-06-04 17:15         ` Richard Cochran
2015-07-15  9:45         ` Michal Suchanek
2015-07-15  9:45           ` Michal Suchanek
2015-07-15  9:45           ` Michal Suchanek
2015-07-15 11:52           ` Marek Vasut
2015-07-15 11:52             ` Marek Vasut
2015-07-15 11:52             ` Marek Vasut
2015-07-15 15:59             ` Brian Norris
2015-07-15 15:59               ` Brian Norris
2015-07-15 15:59               ` Brian Norris
2015-07-15 15:59               ` Brian Norris
2015-07-15 17:15               ` Marek Vasut
2015-07-15 17:15                 ` Marek Vasut
2015-07-15 17:15                 ` Marek Vasut
2015-07-16  1:19                 ` Brian Norris
2015-07-16  1:19                   ` Brian Norris
2015-07-16  1:19                   ` Brian Norris
2015-07-16  1:44                   ` Marek Vasut
2015-07-16  1:44                     ` Marek Vasut
2015-07-16  1:44                     ` Marek Vasut
2015-07-19 19:01               ` Michal Suchanek
2015-07-19 19:01                 ` Michal Suchanek
2015-07-19 19:01                 ` Michal Suchanek
2015-07-21  4:29                 ` Vinod Koul
2015-07-21  4:29                   ` Vinod Koul
2015-07-21  4:29                   ` Vinod Koul
2015-07-21  8:14                   ` Michal Suchanek
2015-07-21  8:14                     ` Michal Suchanek
2015-07-21  8:14                     ` Michal Suchanek
2015-07-22  4:49                     ` Vinod Koul
2015-07-22  4:49                       ` Vinod Koul
2015-07-22  4:49                       ` Vinod Koul
2015-07-22  7:30                       ` Michal Suchanek
2015-07-22  7:30                         ` Michal Suchanek
2015-07-22  7:30                         ` Michal Suchanek
2015-07-22  7:33                         ` Marek Vasut
2015-07-22  7:33                           ` Marek Vasut
2015-07-22  7:33                           ` Marek Vasut
2015-07-22  7:45                           ` Michal Suchanek
2015-07-22  7:45                             ` Michal Suchanek
2015-07-22  7:45                             ` Michal Suchanek
2015-07-22  7:58                             ` Marek Vasut
2015-07-22  7:58                               ` Marek Vasut
2015-07-22  7:58                               ` Marek Vasut
2015-07-22  8:18                               ` Michal Suchanek
2015-07-22  8:18                                 ` Michal Suchanek
2015-07-22  8:18                                 ` Michal Suchanek
2015-07-22  8:24                                 ` Marek Vasut
2015-07-22  8:24                                   ` Marek Vasut
2015-07-22  8:24                                   ` Marek Vasut
2015-07-22  8:38                                   ` Michal Suchanek
2015-07-22  8:38                                     ` Michal Suchanek
2015-07-22  8:38                                     ` Michal Suchanek
2015-07-22  9:01                                     ` Marek Vasut
2015-07-22  9:01                                       ` Marek Vasut
2015-07-22  9:01                                       ` Marek Vasut
2015-07-23 16:46                                       ` Michal Suchanek
2015-07-23 16:46                                         ` Michal Suchanek
2015-07-23 17:03                                         ` Michal Suchanek
2015-07-23 17:03                                           ` Michal Suchanek
2015-07-24  8:34                                           ` Marek Vasut [this message]
2015-07-24  8:34                                             ` Marek Vasut
2015-07-24 11:20                                             ` Michal Suchanek
2015-07-24 11:20                                               ` Michal Suchanek
2015-07-27  9:46                                             ` Michal Suchanek
2015-07-27  9:46                                               ` Michal Suchanek
2015-07-27  9:46                                               ` Michal Suchanek
2015-07-27 17:43                                               ` Marek Vasut
2015-07-27 17:43                                                 ` Marek Vasut
2015-07-27 20:43                                                 ` Michal Suchanek
2015-07-27 20:43                                                   ` Michal Suchanek
2015-07-27 20:43                                                   ` Michal Suchanek
2015-07-30 11:24                                                   ` Marek Vasut
2015-07-30 11:24                                                     ` Marek Vasut
2015-07-30 12:18                                                     ` Michal Suchanek
2015-07-30 12:18                                                       ` Michal Suchanek
2015-07-30 12:33                                                       ` Marek Vasut
2015-07-30 12:33                                                         ` Marek Vasut
2015-07-30 12:33                                                         ` Marek Vasut
2015-06-03 21:26 ` [PATCH 07/11] mtd: spi-nor: rework write loop Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26 ` [PATCH 09/11] dma: pl330: fix wording in mcbufsz message Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-04  2:10   ` Krzysztof Kozlowski
2015-06-04  2:10     ` Krzysztof Kozlowski
2015-06-04  2:10     ` Krzysztof Kozlowski
2015-06-04  2:10   ` Krzysztof Kozlowski
2015-06-08 11:07   ` Vinod Koul
2015-06-08 11:07     ` Vinod Koul
2015-06-08 11:07     ` Vinod Koul
2015-06-08 11:07     ` Vinod Koul
2015-06-03 21:26 ` [PATCH 06/11] mtd: spi-nor: rework spi nor read and write Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26 ` [PATCH 11/11] dt: Exynos: add Snow SPI NOR node Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
     [not found]   ` <3234c12c90eabbeeb6d33604a324231937e309ec.1433364398.git.hramrach-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-06-04  2:04     ` Krzysztof Kozlowski
2015-06-04  2:04   ` Krzysztof Kozlowski
2015-06-04  2:04     ` Krzysztof Kozlowski
2015-06-04  2:04     ` Krzysztof Kozlowski
2015-06-04 15:20     ` Marek Vasut
2015-06-04 15:20       ` Marek Vasut
2015-06-04 15:20       ` Marek Vasut
2015-06-04 15:20       ` Marek Vasut
2015-06-04 15:20       ` Marek Vasut
2015-06-17 12:19       ` Pavel Machek
2015-06-17 12:19         ` Pavel Machek
2015-06-17 12:19         ` Pavel Machek
2015-06-17 12:19         ` Pavel Machek
2015-06-03 21:26 ` [PATCH 10/11] spi: add more debug prints in s3c64xx Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 21:26   ` Michal Suchanek
2015-06-03 23:04   ` Marek Vasut
2015-06-03 23:04     ` Marek Vasut
2015-06-03 23:04     ` Marek Vasut
2015-06-03 23:04     ` Marek Vasut
2015-06-04  9:16   ` Mark Brown
2015-06-04  9:16     ` Mark Brown
2015-06-04  9:16     ` Mark Brown
2015-06-04  9:16     ` Mark Brown
2015-06-04  9:30     ` Geert Uytterhoeven
2015-06-04  9:30       ` Geert Uytterhoeven
2015-06-04  9:30       ` Geert Uytterhoeven
2015-06-04  9:30       ` Geert Uytterhoeven
2015-06-04  9:42       ` Mark Brown
2015-06-04  9:42         ` Mark Brown
2015-06-04  9:42         ` Mark Brown
2015-06-04  9:42         ` Mark Brown
2015-06-04  9:33     ` Michal Suchanek
2015-06-04  9:33       ` Michal Suchanek
2015-06-04  9:33       ` Michal Suchanek
2015-06-04  9:33       ` Michal Suchanek
2015-06-04  9:33       ` Michal Suchanek
2015-06-04 10:26       ` Mark Brown
2015-06-04 10:26         ` Mark Brown
2015-06-04 10:26         ` Mark Brown
2015-06-04 10:26         ` Mark Brown
2015-06-04 10:52         ` Michal Suchanek
2015-06-04 10:52           ` Michal Suchanek
2015-06-04 10:52           ` Michal Suchanek
2015-06-04 10:52           ` Michal Suchanek
2015-06-04 10:52           ` Michal Suchanek
2015-06-04 10:56           ` Mark Brown
2015-06-04 10:56             ` Mark Brown
2015-06-04 10:56             ` Mark Brown
2015-06-04 10:56             ` Mark Brown
2015-06-03 22:53 ` [PATCH 00/11] Enable access to SPI NOR flash on Samsung Snow board Marek Vasut
2015-06-03 22:53   ` Marek Vasut
2015-06-03 22:53   ` Marek Vasut
2015-06-03 22:53   ` Marek Vasut
2015-06-04  4:21   ` Michal Suchanek
2015-06-04  4:21     ` Michal Suchanek
2015-06-04  4:21     ` Michal Suchanek
2015-06-04  4:21     ` Michal Suchanek
2015-06-04  4:21     ` Michal Suchanek
2015-06-04 15:29     ` Marek Vasut
2015-06-04 15:29       ` Marek Vasut
2015-06-04 15:29       ` Marek Vasut
2015-06-04 15:29       ` Marek Vasut

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=201507241034.15406.marex@denx.de \
    --to=marex@denx.de \
    --cc=dmaengine@vger.kernel.org \
    --cc=hramrach@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=vinod.koul@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.