I am implementing a DMA peripheral on a microblaze processor. I have implemented an interrupt handler for it and everything is working perfectly except for one thing:
After each transfer a done interrupt is raised. this means that the main program stops and the processor jumps to the interrupt handler program. As a matter of fact this does happen in my program. but somehow the interrupt status register of the DMA doesn´t show that a done interrupt has occurred!!!
another peculiar thing is that i have to enable the DMA interrupt before everytransfer. in other words after every interrupt handling process the interrupt is disabled automatically for the DMA. is this normal for DMA or is there sompething wrong with my implementation.