Using dmaengine on Freescale P2020 RDB

Chuck Ketcham chuckk2333 at
Thu Apr 7 05:40:58 EST 2011


I have a Freescale P2020 Reference Design Board.  I am investigating the possibility of using the dmaengine capability in the kernel to transfer data from memory out onto the PCIe bus.  As a first step, I thought I would try the DMA test client (dmatest.ko) to make sure the dmaengine was functioning.  I know this doesn't transfer anything over PCIe but only transfers from one memory buffer to another, but I figured I need to get this working first.  Anyway I built dmatest.ko and ran it (with insmod), and discovered it didn't do anything.  I added some printk's to the kernel to investigate what was going on and I found that all attempts to find a channel within dma_request_channel were unsuccessful.  Three of the channels were not used because they were already publicly allocated.  One channel was not used because it didn't have DMA_MEMCPY capability.

Here are my questions then:
1. Is the dmaengine the appropriate method to use for transferring data from memory out onto the PCIe bus?
2. If dmaengine is correct, what can I do to free up a channel for my own use?

Thank you.


More information about the Linuxppc-dev mailing list