How to reset Arria 10 PCIe Internal DMA controller without PC reboot?
According to the user guide, the Descriptor Base cannot be changed until all descriptor entries are exhausted. I have descriptor memory allocated and managed by host application. The application flushes DMA descriptors with dummy DMA transfers before it exits. However, in the case where the application crashed or terminated forcefully (Ctrl-C), it does not flush the DMA. Upon re-start of application, descriptor memory from previous run no longer available. Since not all descriptor entries were used, and I cannot update Descriptor Base without exhausting the entries, the DMA controller is stuck in deadlock. PC reboot solves the problem, but it is an annoying non-solution. I do not find a way to reset only DMA controller alone from the manual. How should I solve the issue?