[PATCH] fsldma: use PCI Read Multiple command

Liu Dave-R63238 DaveLiu at freescale.com
Mon Apr 27 19:09:13 EST 2009


> By default, the Freescale 83xx DMA controller uses the PCI Read Line
> command when reading data over the PCI bus. Setting the 
> controller to use the PCI Read Multiple command instead allows the
> controller to read much larger bursts of data, which provides a
drastic
> speed increase.

IIRC, the default for 83xx DMA controller uses the PCI mem read
command, not mem read line.

You are assuming the PCI memory space is prefetchable( no side effect)
for DMA.
Is it possible that DMA is from non-prefetchable memory space?

> The slowdown due to using PCI Read Line was only observed 
> when a PCI-to-PCI bridge was between the devices trying to
communicate.
> 
> A simple test driver showed an increase from 4MB/sec to 116MB/sec when
> performing DMA over the PCI bus. Using DMA to transfer between blocks
> of local SDRAM showed no change in performance with this patch. 
> The dmatest driver was also used to verify the correctness of the
transfers,
> and showed no errors.



More information about the Linuxppc-dev mailing list