On 27.08.21 11:29, François Legal via Xenomai wrote: > Hello, > > working on a zynq7000 target (arm cortex a9), we have a peripheral that > generates loads of data (many kbytes per ms). > > We would like to move that data, directly from the peripheral memory (the OCM > of the SoC) directly to our RT application user memory using DMA. > > For one part of the data, we would like the DMA to de interlace that data > while moving it. We figured out, the PL330 peripheral on the SoC should be > able to do it, however, we would like, as much as possible, to retain the use > of one or two channels of the PL330 to plain linux non RT use (via dmaengine). > > My first attempt would be to enhance the dmaengine API to add RT API, then > implement the RT API calls in the PL330 driver. > > What do you think of this approach, and is it achievable at all (DMA directly > to user land memory and/or having DMA channels exploited by xenomai and other > by linux) ? >
IIRC, the topic of DMA also popped up in the context of SPI support in the past. In any case, you likely want to check how Dovetail and EVL / Xenomai 4 is possibly already addressing, to get an idea of potential solution patterns. Jan -- Siemens AG, T RDA IOT Corporate Competence Center Embedded Linux
