Introducing dmaengine API for TI DMA controllers

Session information has not yet been published for this event.


One Line Summary

Adapting and extending the kernel dmaengine API for high-end dma controllers like EDMA found on Texas Instruments DaVinci devices and SDMA found on OMAP devices.


Enhanced DMA (EDMA) found on TI’s DaVinci devices is an ultra-flexible DMA controller with capabilities like 3-Dimensional transfers, fancy transfer setups where chunks of data lying in different buffers can be picked up and transferred to a single location (like a hardware fifo). The flexibility of the DMA engine allows complex tasks like de-interlacing an entire planar video buffer to happen using a single transfer request from the video driver. Other features include starting transfers on a chain of channels where completion on one channel automatically triggers the next channel. System DMA (SDMA) found on OMAP devices offers capabilities similar to EDMA.

This paper talks about the experiences gained while adapting the dma engine API to support EDMA & SDMA. It also proposes certain extensions that might be needed in the framework to fully exploit the hardware capabilities.


DaVinci, EDMA, SDMA, OMAP, dmaengine


  • Biography

    Sekhar, Nori is currently working as Kernel developer in Texas Instruments, Bangalore, India. He is the co-maintainer of kernel support for TI’s ARM DaVinci architecture.

  • Biography

    Sundaram Raju is currently working as Software systems Engineer, in Texas Instruments (India) Pvt. Ltd., Bangalore. He has a B.Tech degree in Electronics and Communication Engineering from National Institute of Technology, Tiruchirapalli. He is responsible for supporting EDMA/SDMA on TI platforms. Sundaram’s areas of interest are dma drivers, peripheral control and system resource management.