Hi All!
We have a custom board with K2L SoC acting as RC and FPGA as endpoint.
Software reads data from EP with QDMA and CPU. CPU read transactions run without any issue.
The problem is that when reading odd number of words with DMA we observe that read TLP holds next even number of words.
For example, we start QDMA with 0x1C bytes to read (A-sync transfer), 7 dwords. But on FPGA side we receive TLP with length field equal to 8. And every odd length get rounded to the next even.
This extra read is acceptable when we deal with memory. The problem arises when reading from FIFO because it can leave hardware in inconsistent state.
So what can be the root cause of this? I can't find any explanation of this behaviour in the docs.
Best regards,
Yurii