Re: Q: using DMA with OMAP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux