05-22-2020 02:31 AM
I have a project work on DMA + Aurora to transfer data between 2 ZCU102 board. Everything transfer fine. But i want to get exactly length receive by DMA. Now, size of length i get always is multiply of DMA memory map width in byte, payload with padding zeros. For example, I transfer 142 bytes, get 144 bytes with DMA memory map width is 64bit, first 142 bytes is which i need, and padding two zeros. I need to get exactly 142 bytes in receive side.
Anybody tell me how to do that?
05-27-2020 06:07 AM
I don't think you can do this. I think what you receive is always going to be based on your bus width as that is what comes over the bus with each AXI "beat."
The only thing I could think to try would be perhaps enabling the data-realignment engine, as this allows you to start your transactions at any offset rather than being aligned to the bus width, but I'm thinking that's not going to work either but maybe worth a try.
This would probably be a better post for the hardware forum as it's not directly Linux related and might get some more answers there. Perhaps a mod can move it?