DMA transfer size limited on MPC8272

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

DMA transfer size limited on MPC8272

2,557 Views
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 Kudos
Reply
2 Replies

1,330 Views
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 Kudos
Reply

1,330 Views
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 Kudos
Reply