Strange RTEMS DMA Access on Zynq

Misra, Avinash Avinash.Misra at
Thu Jan 10 03:28:49 UTC 2019


I am currently using RTEMS to access a DMA core on the Zynq and am noticing some interesting/peculiar behavior:

When I provide my DMA engine a statically allocated buffer what I notice is that the first few bytes (5) of the buffer, after getting it back from the DMA, remain unchanged however the rest of the buffer after that contains the data (minus the first 5 bytes that are missing).

When I provide my DMA engine a dynamically allocated buffer from either C++ new or Posix malloc() or posix_memalign() then I receive all of the data correctly from byte 0 to the last byte.

If I provide my DMA engine my statically allocated buffer offset by the amount of bytes it fails to write into then I will see all of my data from the DMA beginning at the offset.

Has anyone experienced something similar or have any suggestions as to what may be going on and/or thoughts on how to fix this behavior? I would ideally like to be able to do this with some statically allocated buffers.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the devel mailing list