I am having an issue with the Modular SGDMA IP. I am using it to feed my video pipeline with data by using a memory mapped to streaming configuration. I have configured it to read the data from my SDRAM however it has an issue. When I write data to the SDRAM I noticed that the SGDMA never reads it. What I also noticed is that whenever I write to a SDRAM location that is used by the SGDMA, the SGDMA suddenly only reads the value i want to write until I finished writing it. For example if I write 0xFF00FF00 to the first memory location that the SGDMA is configured to, the SGDMA reads that value even if it is supposed to be reading a value that is offsetted by 1000. I am wondering if there is any solution to this problem. I configured the SGDMA registers as such:Descripter registers 1 0x08000000 2 0x00000000 3 0x0004B000 4 0x81000400
Could it be a data cache problem? When you write to the SDRAM you should flush the data cache before starting the DMA. If you don't flush the cache the SDRAM could still have the old values and not the new ones you wrote. Alternatively you can also use uncached access to the SDRAM.