This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM57xx or K2: EDMA driver with access from Linux user space (or SystemDMA)

Hi,

I wanted to ask a question again, that has been asked in the past, but would need a current answer. In the past we have offered a Linux EDMA driver with access from user space. For example

Is there anything available currently with newer Proc SDK kernels? Are there any plans to enable a Linux driver for either EDMA or SystemDMA in Proc SDKs? This would be very useful to handle high performance mem to mem transfers, e.g. of image data.

Regards,

--Gunter

  • Hi Gunter,

    From the below wiki pages, it seems to me that AM572x Audio driver (McASP) is using the EDMA for data transfer:
    processors.wiki.ti.com/.../Linux_Core_Audio_User's_Guide

    See also if the below pointers will be in help:
    processors.wiki.ti.com/.../Processor_SDK_Linux_DMA
    e2e.ti.com/.../498739
    e2e.ti.com/.../1742477

    /drivers/dma/edma.c
    /include/linux/platform_data/edma.h
    /arch/arm/mach-omap2/omap_hwmod_7xx_data.c
    /arch/arm/boot/dts/dra7.dtsi
    /Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt

    Regards,
    Pavel

  • Hi Pavel,

    the way I see it is /drivers/dma/edma.c is a driver that is used in kernel space by other drivers.

    What we would be looking for is a driver that has a user space API, so one can use the SystemDMA or EDMA in user space.
    Similar to the TI81xx EDMA driver in the above link.

    Could you check internally what is available?


    Thanks,
    --Gunter
  • Gunter Schmer said:
    the way I see it is /drivers/dma/edma.c is a driver that is used in kernel space by other drivers.

    What we would be looking for is a driver that has a user space API, so one can use the SystemDMA or EDMA in user space.
    Similar to the TI81xx EDMA driver in the above link.

    It seems to me that TI81xx EDMA driver can not be used in user space, it can be used only in the kernel space.

    EDMA Driver APIs are available for use only in the kernel space. Hence the sample application provided must be built as a kernel module and used.

    Copy this sample application file in a location (preferably not inside the kernel source code) and build it as a kernel module using a make file

    Insert this kernel module once the kernel is up, to see the sample application working.

    BR
    Pavel