05-25-2020 01:50 PM
Hello. I use dma-proxy driver for transfer data packets form PL to PS and write to SATA SSD.
For this i have two buffer. One buffer writes, and in ths time, other buffer write to SATA.
I use memcpy for this
memcpy(args0.data_buf1[row_counter], rx_proxy_interface_p->buffer, row_length);
But this very slow.
maybe there is some simple example how i copy data faster?
05-25-2020 02:20 PM
05-25-2020 02:41 PM
Yes, i read this document.
Then i add dma-coherent line in device tree, speed is increasing, but i get trash in the buffer - a mix of all my transactions.
dmas = <&axi_dma_0 0
dma-names = "dma_proxy_tx", "dma_proxy_rx";
I use petalinux, do i need to set constants in ports ARCACHE[3:0] AWCACHE[3:0] ARPROT[2:0] AWPROT[2:0] ?
05-25-2020 03:32 PM
>I use petalinux, do i need to set constants in ports ARCACHE[3:0] AWCACHE[3:0] ARPROT[2:0] AWPROT[2:0] ?
I'm not familiar with instruction and inplementation of memcpy. But you must consider cache coherency with some memory copy function, like memcpy, dma and so on.
At least, if cache is disable, you got similar result. Speed it to slowly. It depends on your environment and so on.
It's hard to correctly explain it.
Hope you are doing well.