- Newest
- Most votes
- Most comments
Hi Essam,
A couple questions that would help us better understand your issue:
- Is this an existing AFI that used to be working or a recently re-built one?
- When you mentioned "after rerunning the server the XDMA works again", what exactly did you do there? Did you reboot the host or create a new instance?
- When the XDMA stream is stuck, do you still have access to the shell, e.g. through the OCL or BAR1?
- Have you checked the metrics to see if there is any error reported on the PCIS interface?
Thanks,
Chen
answered a year ago
Issue solved by writing to and from page size aligned buffers with length aligned to PCIE, I used posix_memalign linux function to allocate the buffers.
**More details: ** After some debug of the design (using on-chip-debug ILA), and XDMA debug with dmesg, I have solved the issue, as I'm trying to work in non-incremental burst mode (I don't can about the address as I'm reading from a FIFO). The system as-is right now is capable of reading continues regions. when it comes to reading from a FIFO instance, that an entry in it can be read only once (you can't read half of it and try to read again the other half) there's a problem, because the XDMA tries to read to buffer in page alignments and when the destination buffer isn't aligned to such an alignment another read might be done or a data is lost when moving in between pages (that's why I had a weird issue between two different runs with same code and same design).
Therefore, reading from the XDMA is such cases is recommended to be in page aligned buffers with data size equal to the PCIE width (64B).
Hope this is helpful for other people!
Thanks, Essam
answered a year ago
Relevant content
asked 3 years ago
asked 5 years ago
asked 6 years ago

Hi,
Moreover, I'm debugging the XDMA using dmesg and I see that the source of the issue (not necessarily a bad behavior) is that in the scenario b, we get a buffer which is not rounded to a PAGE and that causes a generation of two descriptors instead of 1. the lengths are ok as I see, I guess something from this point until we get the data into the AXI PCIS bus causes an extra beat to rise