I have a ZC706 with an FMCOMMS5 evaluation board running Linaro embedded Linux and I want to be able to stream data frames to the AD9361 using IIO. The catch is that each data frame needs to be sent at a very specific time that corresponds to a continuously running counter (> 500 kHz) on the fabric portion of the Zynq. I'm pretty new to the whole embedded Linux IIO subsystem but this seems like a good opportunity to use hardware triggered IIO buffers but I don't really see any examples of triggered IIO buffers with transmit data, only sampled data. Also, since the frames are so sensitive to being sent out at the correct time, I'm worried that I can't pre-buffer multiple frames of data into the IIO buffer because I can't see a way to prevent sending the entire IIO buffer once the hardware trigger occurs.
Would it be better to modify the HDL to have a block between the AXI DMA and AD9361 blocks to have some sort of flow control based on the timer in the fabric or is this easily implementable using only the predefined IIO constructs? If I need to make a custom HDL block, is there a good way to send the frame size/time to send information over IIO to the Zynq fabric or am I stuck writing my own IIO driver to support this functionality?