Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎11-21-2019

What does H2C engine of XDMA do without setting descriptors list before running?

Hi all,

Now I am working with DMA/Bridge Subsystem for PCIe and XDMA Linux Device Driver.

By reading PG195 and the current XDMA Device Driver, I known that in each H2C transfer, the driver initializes descriptors list, writes its first descriptor to the engine and starts engine. Then, H2C engine will fetch all descriptors and perform DMA.

To optimize H2C performance in my case, I am thinking about using only one descriptors list and providing it for H2C engine at only the first setup time (maybe in open() call), any H2C transfer (write() call) will only start bit RUN of the engine.

So does it still work? What does H2C engine do if the driver starts it without providing the first descriptor at that time? Does it use the provided descriptors list at setup time to perform DMA?

Thanks for suporrting.


0 Kudos
1 Reply
Xilinx Employee
Xilinx Employee
Registered: ‎12-10-2013

Definitely not a modality that we have tested.  Honestly not sure of the behavior.

It sounds like the Descriptor Bypass Interface may be a better choice for your application.  You would be able to feed in descriptors from the FPGA fabric rather than the H2C descriptor engine needing to fetch them. 

Don’t forget to reply, kudo, and accept as solution.
0 Kudos