-
Notifications
You must be signed in to change notification settings - Fork 232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Running multiple DMA IPs #38
Comments
Yes, if I'm understanding your question correctly, it's easy to attach to multiple DMA/VDMA IP blocks. You just need to make sure you have device tree entries for them, and reference them in the AXI DMA device tree node. You can get all the available DMA channels from you user application using the |
So I tried to attach 2 DMA's to your driver in the device tree but at first it gave me errors as device ID can only be 0 or 1 and I thought they needed to be unique, and then it seemed to only be able to register one transmit and receive channel, unless I'm just doing something incorrectly?
Further digging and I noticed that there is a pull request on this repo from @corna here... https://github.com/bperez77/xilinx_axidma/pull/32 and one of the commits is for "Add support for multiple AXI DMA devices" here... https://github.com/corna/xilinx_axidma/commit/d5a23981e6f51cc55843ab156c7420757ec5ee9d which seems to extend the device tree to support multiple DMA IP instances. Is this needed to run multiple DMAs at all or does it just allow me to run multiple DMA's simultaneously? Do you know if these code changes are stable? Any plans to mainline these extensions? |
What errors are you getting when you try to make the device ID something other than 0 or 1? You should be able to make the device ID any arbitrary number (unless something has changed in the kernel unbeknownst to me). I haven't had a chance to review that PR yet, but I am planning on integrating the changes. For the If you could post the error line(s) from |
Good news & Bad news. Bad news is that I can't replicate the issue I was having so I must have had a typo, or some silly issue last time around. Good news is that I now have 2 DMA's working with your driver, but I will caveat that with the fact that I have not attempted to run them concurrently yet to see if the driver has any issues with the current kernel. |
Got it, that makes sense. Let me know if you run into any other issues. |
Closing this issue due to inactivity. |
I am using two DMA too, using only the rx channel of each dma. My device tree is: amba_pl: amba_pl {
I encountered this error while loading the driver: Unable to handle kernel NULL pointer dereference at virtual address 00000000 I hope to get your help! Thanks. |
Can your driver be attached to and run multiple DMA IPs (concurrently or one at a time)? If not do you have any plans to extend the driver to support multiple DMAs?
The text was updated successfully, but these errors were encountered: