- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hie,
Currently, there is no method available to change the descriptor base for Arria 10 PCIe internal DMA controller until all descriptor entries are exhausted.
There is no way to reset the DMA controller alone.
Because the DMA Descriptor Controller uses FIFOs to store descriptor table entries, you cannot
reprogram the DMA Descriptor Controller once it begins the transfers specifed in the descriptor
table.
Hence, if your application crashes, currently the only solution is to reboot PC.
Regards,
Nathan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Imagine that the device is installed in a server. It is likely that a user application could be terminated anytime. It is fair expectation that server is not allowed to reboot. What is your recommendation to workaround the issue?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For now, this is the limitation of the DMA descriptor controller offered with Arria 10. The workaround we can recommend is to get host to reset the link whenever a user application is terminated.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page