I have a zedboard-fmcomms2 setup. I have downloaded the HDL reference design and Linux kernel from ADI made some changes to the fpga flow.
Basically I added few signal processing blocks in the receive chain. So, the data output of the ad9361 IP adc_data_i1 and adc_data_q1 are passed on to a custom RTL IP which takes FFT of the incoming data and stores it in DDR via Rx DMA(which I have replaced the ADI provided axi_ad9361_adc_dma with Xilinx DMA IP). To configure and enable this custom IP, I send the config data and enable from PS via some AXI mapped gpios using the AXI-GPIO IP. All this setup perfectly works when tested with baremetal-OS.
The setup is now ported to linux, I have got the libiio installed, device tree updated, all ADI drivers enabled, can detect the ad9361 devices in sysfs/iio. I first tried running the ad9361-iiostream example but it failed with the error:
Error refilling buf -110. (Connection Timed Out)
This error is totally expected as the receive chain is not storing the incoming data into the DDR until I send the enable and config data for custom IP from PS. I tried to use the axi_gpio drivers like explained in xilinx/AXI+GPIO to do this but to no success. I just tried to blink some LEDs by creating a new axi_gpio block and adding the correct pins to the constraints but even the LEDs didnt work.
I suspect that the clocks for GPIO are disabled or something? Did someone had a similar problem? Could someone please help me here as I am totally lost.