On Mon, Aug 22, 2016 at 12:40 PM, Peter Ujfalusi <peter.ujfalusi@xxxxxx> wrote: > On 08/21/16 18:40, Ran Shalit wrote: >> On Mon, Aug 1, 2016 at 9:25 AM, Peter Ujfalusi <peter.ujfalusi@xxxxxx> wrote: >>> On 07/30/16 17:07, Ran Shalit wrote: >>>> >>>> בתאריך 25 ביול 2016 09:49, "Peter Ujfalusi" <peter.ujfalusi@xxxxxx >>>> <mailto:peter.ujfalusi@xxxxxx>> כתב: >>>>> >>>>> On 07/23/16 17:39, Ran Shalit wrote: >>>>>> Hello, >>>>>> >>>>>> I try to use DMA in a ethernet driver I am writing (for OMAP4460). >>>>>> I know there is the edma API which can be used with OMAP: >>>>>> http://processors.wiki.ti.com/index.php/EDMA_sample_test_application >>>>> >>>>> eDMA is not available on OMAPs. We have sDMA (system DMA, or DMA4). >>>>> >>>>>> But on viewing the ethernet driver in the kernel tree, I can't find >>>>>> anywhere using these APIs. >>>>>> I assume there is some framework in between which is used instead (and >>>>>> probably calls the edma APIs directly). >>>>>> >>>>>> 1. Do you think for simplicity I can use the edma APIs directly ? >>>>> >>>>> You should not use direct API. eDMA does not have it anymore and while sDMA >>>>> still have legacy API, we are working on to remove it. >>>> >>>> Just for understanding, >>>> What is these sDMA API? >>>> I could not find these APIs. >>> >>> Please use dmaengine only. Avoid using the sDMA legacy API >>> (include/linux/omap-dma.h) it is going to be removed hopefully sooner than later. >>> >>>>> Please use the dmaengine API to configure the DMA. This way your driver will >>>>> be portable also. >> >> Hi, >> >> I try to use dmaengine (using dart board), with dmatest.ko, > > With dmatest you can only test MEM_TO_MEM type of transfers, like memcpy, XOR, > etc. > I use omap4 connected to fpga. fpga implements fifo which cpu need to read/write from/to (iowrite16). I think it should be "memory to memory". >From my understanding device to/from memory only required when device read/write from RAM while in this case we use fpga memory (which is mapped to cpu) Is that correct ? Can we use memory to memory ? >> but seems that nothing happens because /sys/class/dma is empty. > > How can your board even boot up w/o dma? > On doing "ls /sys/class/dma" I get no list of channels. I am not sure what it means. >> Is there a way to register the dma channels (using dart board file >> probably) so that they appear ? > > OMAP4 _needs_ dmaengine to be available in order to boot, do you have DMA_OMAP > enabled in your kernel? What is the kernel versiuon you are using? > The config has no DMA_OMAP (but has DMAENGINE enabled) The kernel version is 3.4.0 I wander how it boot without dma. Maybe dma is missing from /sys/config/dma ? I am also not sure where is the dma driver for omap (sdma) in this kernel. Should 3.4.0 omap dma driver support memory-to-memory , and 16bits transactions (this is required for the fpga) ? >> >> >> Regards, >> Ran >> >> >>>> >>>>> >>>>>> 2.Is there any example which shows how to use DMA (which shall call >>>>>> the edma, and shall result in triggering a dma trsnaction in OMAP) ? >>>>> >>>>> git grep dmaengine_prep_dma_sg >>>>> or >>>>> git grep dmaengine_terminate_all >>>>> >>>>> will show you the drivers using dmaengine. >>>>> >>>>> -- >>>>> Péter >>>> >>> >>> >>> -- >>> Péter > > > -- > Péter -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html