DMA transfer size limited on MPC8272

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

DMA transfer size limited on MPC8272

2,365件の閲覧回数
illini
Contributor I
I am DMA'ing from 60x memory to PCI memory and from PCI memory to 60x memory in a Linux device driver using the MPC8272 processor.  The DMA completes but the logic analyzer shows that the DMA is broken up into a series of 32 byte (8 dword) transfers, no matter what the byte count is in the segment descriptor.  Shouldn't I be able to do the transfer in a single DMA transfer?  If so, how?  Is there a register setting I am missing?
0 件の賞賛
返信
2 返答(返信)

1,138件の閲覧回数
Joxean
Contributor I

Hi illini, 

 

i'm trying to get the DMA working on a MPC8313ERDB platform, and i can´t.

You says that you have got it working. 

 

I have a slave only PCI device and i would like to read its IOMEM with the DMA.

I program the DMA and it finishes without error but the result is not ok.

I'm allocating a buffer with dma_alloc_coherent and i put the physical address in the destination address, the source address i have setting is the one returned by pci_resource_start(dev, MMIO_INDX).

 

What am i doing wrong??

Please could you send an example?

 

Thanks in advance. 

0 件の賞賛
返信

1,138件の閲覧回数
illini
Contributor I

I am running Linux 2.6.26.  The type of memory is very important.  I malloc memory for DMA with the GFP_DMA and GFP_KERNEL flags.

 

I would also check if there are any restrictions as to DMA destination/source and length.  For the MPC8272, when transferring data to the 60x space using PCI DMA, the destination address and byte counts must be multiples of 8. 

 

Always use physical addresses in the segment descriptors.

0 件の賞賛
返信