DMA scatter/Gather Mode

I have tried to update the DMA with scatter/gather functionality in the previous functional simple DMA based design.

what i did for update…

  1. update DMA IP enable Scatter/Gather mode
  2. vivado autoupdate to interface axi SG port
  3. generate bitfile
  4. update pynq repo from 2.5 to 2.6 version

My notebook Halts here:

 60             self.dma_recv.recvchannel.transfer(self.sample_buffer)

—> 61 self.dma_recv.recvchannel.wait()

what else I need to change in my previous Design working fine with Simple DMA mode?
Previous Design I was transferring 4096 bytes of one block so i generate the TLAST signal at every 4096 bytes count and repeat the same for the new block.
What will be the behavior of the TLAST signal as in SG DMA there will be multiple blk transactions within the same transfer() call?

Thanks
Regards,
Archy

1 Like

Hello,
The scatter gather DMA functionality isn’t currently supported. You need to use the pynq [allocate](https://pynq.readthedocs.io/en/v2.5/pynq_libraries/allocate.html) to allocated physically contiguous memory buffers.

Cathal

1 Like