I am working on a project with the MicroZed that uses dma to transfer data from the PL to the PS. The dma is configured as interrupt driven and uses scatter gather. The dma is one direction, from the PL to the PS.
My solution generally works, but when the original set of Bd's are used, I try to recycle them, the dma continues as if nothing is wrong. The problem is, it doesn't write the new data into the Bd. When the interrupt occurs and it tells me which Bd to look at, the data is the same as it was for the first time it was used. If I clear the data after I read it the first time, the data is always zero for subsequent transfers.
If anyone knows about this, please respond and I will submit code and more information.