I've got some problems with the fmcomms2 reference design. I cloned into analogdevicesinc/linux · GitHub and checked out 2014_R1 branch for linux kernel sources. I built devicetree via make zynq-zed-adv7511-ad9361.dtb in linux directory. My bitfile is generated from analogdevicesinc/hdl · GitHub branch hdl_2014_r1 (using Vivado 2013.4). The system boots, but i can't read data from the ADC. The software I use is a modified version of iio-oscilloscope, where i simply ripped off the GUI (it worked perfectly on an older kernel version and bitfile generated with ISE/XPS 14.7 ).
Software blocks at reading from buffer file descriptor, and on chipscope I see no AXI activity between PS and AXI-DMAC. At system startup I get these messages:
ad9361 spi32766.0: ad9361_dig_tune: Tuning RX FAILED!
ad9361 spi32766.0: ad9361_dig_tune: Tuning TX FAILED!
Checking pseudorandom_err_check in /sys/kernel/debug/iio/iio:\device4 returns Out of Sync : PN err
Running bist_timing_analysis changes this one to In Sync : OK
(btw: what is the meaning of this printed 16x16 matrix?)
Furthermore I observed some driver changes. In the ISE 14.7 version it uses xilinx-dma.c driver, but in the 2014_R1 branch dma-axi-dmac.c is used? Are there some known issues related to this driver?
Changing devicetree to use xilinx-dma.c driver I can sample one time, the next time i want to read the buffer, read() blocks again. What's going wrong there?
Last but not least: Is it really necessary to toggle the buffer/enable flag after reading from file descriptor, and do I loose some samples while this flag is disabled?