<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://ez.analog.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Q&amp;amp;A - Recent Threads</title><link>https://ez.analog.com/linux-software-drivers/f/q-a</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><lastBuildDate>Tue, 06 Oct 2026 07:27:37 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://ez.analog.com/linux-software-drivers/f/q-a" /><item><title>Data loss At PC level</title><link>https://ez.analog.com/thread/606388?ContentTypeID=0</link><pubDate>Tue, 06 Oct 2026 07:27:37 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:09f687b2-1b7d-472b-9579-36159cf30026</guid><dc:creator>Shil</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/606388?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606388/data-loss-at-pc-level/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p data-path-to-node="2"&gt;I am currently working with the ZCU102 and AD9081 using the &lt;code data-path-to-node="2" data-index-in-node="60"&gt;ad9081_fmx_ebz&lt;/code&gt; reference design. The base project is configured for a 61.44 MSPS sample rate for both the Tx and Rx JESD204 datapaths. the project has been created on petalinux.&lt;/p&gt;
&lt;p data-path-to-node="3"&gt;To support my specific waveform requirements, I have modified the HDL design with the following two changes:&lt;/p&gt;
&lt;ol start="1" data-path-to-node="4"&gt;
&lt;li&gt;
&lt;p data-path-to-node="4,0,0"&gt;&lt;b data-path-to-node="4,0,0" data-index-in-node="0"&gt;Resampling:&lt;/b&gt; Added an Interpolation-by-4 block in the Tx path and a Decimation-by-4 block in the Rx path.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-path-to-node="4,1,0"&gt;&lt;b data-path-to-node="4,1,0" data-index-in-node="0"&gt;Data Offload:&lt;/b&gt; Configured both the Tx and Rx data offload blocks to operate in &lt;b data-path-to-node="4,1,0" data-index-in-node="78"&gt;bypass mode&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node="5"&gt;&lt;b data-path-to-node="5" data-index-in-node="0"&gt;The Issue:&lt;/b&gt; I am streaming data from the PC to the Tx path at 15.36 MSPS (which interpolates to 61.44 MSPS at the DAC). I am looping this back into the Rx path, where it is decimated back down by 4. I expect to receive the data at the PC at exactly 15.36 MSPS. However, I am experiencing data loss on the Rx side, resulting in an observed data rate that is lower than 15.36 MSPS. one more thing i want to mention that at board level using same application the data throughput coming exactly 15.36Msps. then why there is loss at PC level.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Constraints</title><link>https://ez.analog.com/thread/606330?ContentTypeID=0</link><pubDate>Mon, 05 Oct 2026 11:51:55 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:e0521d10-1fcf-4cc8-b421-b69726377956</guid><dc:creator>AliAhmad</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/606330?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606330/constraints/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;In the example project of ADRV9001 for zedboard, the CMOS constraint file have the following constraint.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;set_clock_latency -source -early 2 [get_clocks rx1_dclk_out]&lt;br /&gt;set_clock_latency -source -early 2 [get_clocks rx2_dclk_out]&lt;/p&gt;
&lt;p&gt;set_clock_latency -source -late 5 [get_clocks rx1_dclk_out]&lt;br /&gt;set_clock_latency -source -late 5 [get_clocks rx2_dclk_out]&lt;br /&gt;&lt;br /&gt;Can someone explain these? Also, do I need to add these on my project?&lt;br /&gt;I am using adrv9001 on a custom board with a Zynq7000 soc.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>AD-JUPITER-EBZ Board Custom I/Q samples fail to reach TX RF output</title><link>https://ez.analog.com/thread/606376?ContentTypeID=0</link><pubDate>Mon, 05 Oct 2026 09:16:24 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:24bcb359-daa2-44be-9825-9c89998479d6</guid><dc:creator>KARTHIK22</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/606376?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606376/ad-jupiter-ebz-board-custom-i-q-samples-fail-to-reach-tx-rf-output/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;HI,&lt;br /&gt;I am using ad_jupiter_ebz evaluation board,I am using Vivado 2025.1 and petalinux 2025.1.&lt;br /&gt;I created hdl project using&amp;nbsp; &lt;a id="" href="https://github.com/analogdevicesinc/hdl/tree/main/projects/jupiter_sdr"&gt;https://github.com/analogdevicesinc/hdl/tree/main/projects/jupiter_sdr&lt;/a&gt;&amp;nbsp;.&lt;br /&gt;then created a PetaLinux image by following the steps provided in the meta-adi-xilinx repository&amp;nbsp; &lt;a id="" href="https://github.com/analogdevicesinc/meta-adi/tree/main/meta-adi-xilinx"&gt;https://github.com/analogdevicesinc/meta-adi/tree/main/meta-adi-xilinx&lt;/a&gt;&amp;nbsp;.&lt;br /&gt;After successfully building.I am facing issues with the TX and RX IIO buffers, and I would really appreciate your help in understanding and resolving them.&lt;/p&gt;
&lt;p&gt;On the TX side, I am trying to send custom I and Q samples using a text file through the IIO interface. However, the TX IIO buffer is not creating properly. Because of this, the custom I/Q samples that I am sending are not reaching the TX1 RF output.&lt;/p&gt;
&lt;p&gt;Similarly, on the RX side, I am facing an issue with the RX IIO buffer. The RX buffer is not Creating, and I am therefore unable to receive the expected samples from the RX1 RF input.&lt;/p&gt;
&lt;p&gt;Could you please help me with the correct configuration or steps required to enable the TX and RX IIO buffers on the AD-JUPITER-EBZ with PetaLinux 2025.1?&lt;/p&gt;
&lt;p&gt;I am particularly looking for to solve these issue on whether this issue could be related to the device tree, IIO drivers, AXI-DMAC configuration, HDL configuration, or any other required settings in the PetaLinux project.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to add ad9364 in between my custom Transmitter and Receiver?</title><link>https://ez.analog.com/thread/606145?ContentTypeID=0</link><pubDate>Mon, 05 Oct 2026 08:44:32 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:93710a1a-94f2-42b4-aaa1-9f05dfa60a70</guid><dc:creator>realSayan</dc:creator><slash:comments>8</slash:comments><comments>https://ez.analog.com/thread/606145?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606145/how-to-add-ad9364-in-between-my-custom-transmitter-and-receiver/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m using a zedboard + fmcomms4 setup. So, I&amp;#39;m designing a custom BPSK/QPSK transmitter and receiver. I have constructed the Tx and Rx hierarchy in vivado block design. The Tx outputs 12 bits I/Q and the Rx has 12 bits inputs I/Q. The confusion is how do I insert the ad9361 (so as to transmit and receive those I/Q samples over the air). Should I connect the relevant DAC and ADC ports on axi_ad9361 module or use the ADC/DAC DMA? I wish to access the Tx-Rx design via kuiper linux (installed on the sd card) terminal (with Putty) and run python scripts to check if the transmitter/receiver is working and what is the bit error rate, etc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Requesting a linux driver or scripts to bring-up AD9984A</title><link>https://ez.analog.com/thread/606287?ContentTypeID=0</link><pubDate>Fri, 25 Sep 2026 08:58:54 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:0e143fbf-b805-4818-9d8e-a5014d4bb920</guid><dc:creator>VishnuS</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/606287?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606287/requesting-a-linux-driver-or-scripts-to-bring-up-ad9984a/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, Could you please share the linux driver for the AD9984A component, we recently switched to this component and we are using this to link with the toshiba rgb to mipi csi 2 converters. Thanks for your time.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Vishnu S&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How can I perform ADRV9002 DPD capture on a custom Linux/FPGA platform for dpdAnalyzerAdrv9002?</title><link>https://ez.analog.com/thread/606025?ContentTypeID=0</link><pubDate>Wed, 23 Sep 2026 06:23:15 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:ac9704fc-fde7-462a-8f36-8f77933e2857</guid><dc:creator>Danial25548</dc:creator><slash:comments>4</slash:comments><comments>https://ez.analog.com/thread/606025?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606025/how-can-i-perform-adrv9002-dpd-capture-on-a-custom-linux-fpga-platform-for-dpdanalyzeradrv9002/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p class="isSelectedEnd"&gt;&lt;span&gt;Hello,&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I am working with an &lt;/span&gt;&lt;strong&gt;&lt;span&gt;ADRV9002 on a custom FPGA board&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; rather than the official ZCU102/TES evaluation platform.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;My current setup is:&lt;/span&gt;&lt;/p&gt;
&lt;ul data-spread="false"&gt;
&lt;li&gt;&lt;span&gt;Custom FPGA board based on &lt;/span&gt;&lt;strong&gt;&lt;span&gt;Xilinx Zynq-7000&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ADRV9002 connected to the FPGA through FMC&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Linux/PetaLinux running on the Zynq processor&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ADI Linux driver for ADRV9002&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;DPD functionality is available/enabled in the current Linux driver&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;My main goal at this stage is &lt;/span&gt;&lt;strong&gt;&lt;span&gt;not to run the complete TES DPD flow&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;. I only want to perform the &lt;/span&gt;&lt;strong&gt;&lt;span&gt;DPD capture&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; and obtain the captured TX and observation/ORx data so that I can analyze it using &lt;/span&gt;&lt;code dir="ltr"&gt;&lt;strong&gt;&lt;span&gt;dpdAnalyzerAdrv9002&lt;/span&gt;&lt;/strong&gt;&lt;/code&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I found the ADI DPD capture example here:&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;a href="https://ez.analog.com/rf/wide-band-rf-transceivers/design-support-adrv9001-adrv9007/a/documents/c/digital-pre-distortion/DO35020/dpd-capture?utm_source=chatgpt.com"&gt;&lt;span&gt;ADRV9002 DPD Capture documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;The example uses the EvalClient/TES environment and &lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;Adi.Adrv9001.Server&lt;/span&gt;&lt;/code&gt;&lt;span&gt;, and eventually calls:&lt;/span&gt;&lt;/p&gt;
&lt;pre dir="ltr"&gt;&lt;code dir="ltr"&gt;&lt;span&gt;Adrv9001.dpd.CaptureData_Read(
    common_ChannelNumber_e.CHANNEL_1,
    txi,
    txq,
    rxi,
    rxq,
    4096,
    True
)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I also found the corresponding implementation of:&lt;/span&gt;&lt;/p&gt;
&lt;pre dir="ltr"&gt;&lt;code dir="ltr"&gt;&lt;span&gt;adi_adrv9001_dpd_CaptureData_Read()&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;in the ADI Linux source. From what I understand, this function reads the four DPD capture RAMs (TX I/Q and RX/ELB I/Q) using &lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;adrv9001_DmaMemRead()&lt;/span&gt;&lt;/code&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;Since I am using a custom Linux-based platform, I assume that I cannot simply run the TES/EvalClient application and &lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;Adrv9001Server&lt;/span&gt;&lt;/code&gt;&lt;span&gt; as on the supported evaluation platforms.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;strong&gt;&lt;span&gt;My questions are:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ol start="1" data-spread="true"&gt;
&lt;li&gt;&lt;span&gt;Is it possible to perform the equivalent of &lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;dpd.CaptureData_Read()&lt;/span&gt;&lt;/code&gt;&lt;span&gt; directly from the Linux/PetaLinux system on a custom ADRV9002 board?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Is there already a Linux/IIO/debugfs interface that can be used to trigger the DPD capture and read the captured TX/ORx data?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Does &lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;adi_adrv9001_dpd_CaptureData_Read()&lt;/span&gt;&lt;/code&gt;&lt;span&gt; require any TES-specific infrastructure, or can it be used independently once the ADRV9002 has been correctly configured for DPD capture?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Most importantly, &lt;/span&gt;&lt;strong&gt;&lt;span&gt;what is the recommended way to obtain the same four capture arrays produced by &lt;/span&gt;&lt;/strong&gt;&lt;code dir="ltr"&gt;&lt;strong&gt;&lt;span&gt;CaptureData_Read()&lt;/span&gt;&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt;&lt;span&gt; on a custom Linux platform&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;, so that I can save them and use them as input for &lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;dpdAnalyzerAdrv9002&lt;/span&gt;&lt;/code&gt;&lt;span&gt;?&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I would appreciate any guidance on the correct software path for this. I am happy to modify and rebuild the Linux driver or write a small userspace C/Python application if that is the recommended solution.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How can I perform ADRV9002 DPD capture on a custom Linux/FPGA platform for dpdAnalyzerAdrv9002?</title><link>https://ez.analog.com/thread/606152?ContentTypeID=0</link><pubDate>Wed, 23 Sep 2026 06:18:23 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:bf25dbd8-dd8c-4c1a-945e-18a30a36d887</guid><dc:creator>Danial25548</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/606152?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606152/how-can-i-perform-adrv9002-dpd-capture-on-a-custom-linux-fpga-platform-for-dpdanalyzeradrv9002/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p class="isSelectedEnd"&gt;&lt;span&gt;Hello,&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I am working with an&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;ADRV9002 on a custom FPGA board&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&amp;nbsp;rather than the official ZCU102/TES evaluation platform.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;My current setup is:&lt;/span&gt;&lt;/p&gt;
&lt;ul data-spread="false"&gt;
&lt;li&gt;&lt;span&gt;Custom FPGA board based on&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;Xilinx Zynq-7000&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ADRV9002 connected to the FPGA through FMC&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Linux/PetaLinux running on the Zynq processor&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ADI Linux driver for ADRV9002&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;DPD functionality is available/enabled in the current Linux driver&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;My main goal at this stage is&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;not to run the complete TES DPD flow&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;. I only want to perform the&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;DPD capture&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&amp;nbsp;and obtain the captured TX and observation/ORx data so that I can analyze it using&amp;nbsp;&lt;/span&gt;&lt;code dir="ltr"&gt;&lt;strong&gt;&lt;span&gt;dpdAnalyzerAdrv9002&lt;/span&gt;&lt;/strong&gt;&lt;/code&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I found the ADI DPD capture example here:&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;a href="https://ez.analog.com/rf/wide-band-rf-transceivers/design-support-adrv9001-adrv9007/a/documents/c/digital-pre-distortion/DO35020/dpd-capture?utm_source=chatgpt.com"&gt;&lt;span&gt;ADRV9002 DPD Capture documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;The example uses the EvalClient/TES environment and&amp;nbsp;&lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;Adi.Adrv9001.Server&lt;/span&gt;&lt;/code&gt;&lt;span&gt;, and eventually calls:&lt;/span&gt;&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre dir="ltr"&gt;&lt;code dir="ltr"&gt;&lt;span&gt;Adrv9001.dpd.CaptureData_Read(
    common_ChannelNumber_e.CHANNEL_1,
    txi,
    txq,
    rxi,
    rxq,
    4096,
    True
)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I also found the corresponding implementation of:&lt;/span&gt;&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre dir="ltr"&gt;&lt;code dir="ltr"&gt;&lt;span&gt;adi_adrv9001_dpd_CaptureData_Read()&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;in the ADI Linux source. From what I understand, this function reads the four DPD capture RAMs (TX I/Q and RX/ELB I/Q) using&amp;nbsp;&lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;adrv9001_DmaMemRead()&lt;/span&gt;&lt;/code&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;Since I am using a custom Linux-based platform, I assume that I cannot simply run the TES/EvalClient application and&amp;nbsp;&lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;Adrv9001Server&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;as on the supported evaluation platforms.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;strong&gt;&lt;span&gt;My questions is:&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt;what is the recommended way to obtain the same four capture arrays produced by&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;code dir="ltr"&gt;&lt;strong&gt;&lt;span&gt;CaptureData_Read()&lt;/span&gt;&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt;&lt;span&gt;&amp;nbsp;on a custom Linux platform&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;, so that I can save them and use them as input for&amp;nbsp;&lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;dpdAnalyzerAdrv9002&lt;/span&gt;&lt;/code&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Requesting Linux Support for delta values through burst mode for ADIS16575</title><link>https://ez.analog.com/thread/606186?ContentTypeID=0</link><pubDate>Sat, 19 Sep 2026 15:38:07 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:3f6bb194-0fc8-48c0-8099-dd072d6c7bca</guid><dc:creator>MFallat</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/606186?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606186/requesting-linux-support-for-delta-values-through-burst-mode-for-adis16575/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello!&amp;nbsp; &amp;nbsp;A customer is migrating to the ADIS16575-2 from the ADIS16495-1 and utilizes&amp;nbsp;delta values through burst mode in the&amp;nbsp;&lt;a href="https://analogdevicesinc.github.io/linux/drivers/iio-inertial-measurement-units/adis16480/"&gt;ADIS16480&lt;/a&gt;&amp;nbsp;driver that supports the&amp;nbsp;ADIS16495-1.&amp;nbsp; &amp;nbsp;In order to accelerate migration to the&amp;nbsp;ADIS16575-2,&amp;nbsp;delta values through burst mode&amp;nbsp;is needed for the&amp;nbsp;ADIS16575-2 ASAP .&amp;nbsp;&amp;nbsp; Please advise&amp;nbsp;current target for future support for the &lt;a href="https://github.com/analogdevicesinc/linux/tree/dev/adis165x/drivers/iio/imu"&gt;ADIS16575-2&lt;/a&gt;.&amp;nbsp; &lt;a href="https://ez.analog.com/members/nevadamark"&gt;NevadaMark&lt;/a&gt;&amp;nbsp;is tracking the opportunity.&amp;nbsp;&amp;nbsp;Thank you!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADI Linux 6.12 2026R2 – Release Timing and Upstream Kernel Version</title><link>https://ez.analog.com/thread/606033?ContentTypeID=0</link><pubDate>Wed, 09 Sep 2026 13:34:17 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:d477047c-8d41-48c5-941a-77eae16abab2</guid><dc:creator>osakalla</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/606033?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606033/adi-linux-6-12-2026r2-release-timing-and-upstream-kernel-version/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p class="isSelectedEnd"&gt;&lt;span&gt;Hi,&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;I would like to understand ADI&amp;rsquo;s release plan for the Linux 6.12 LTS kernel, specifically the upcoming &lt;/span&gt;&lt;strong&gt;&lt;span&gt;2026R2&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; release.&lt;/span&gt;&lt;/p&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;My understanding is that:&lt;/span&gt;&lt;/p&gt;
&lt;ul data-spread="false"&gt;
&lt;li&gt;&lt;span&gt;ADI &lt;/span&gt;&lt;strong&gt;&lt;span&gt;2026R1&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; was originally based on upstream Linux &lt;/span&gt;&lt;strong&gt;&lt;span&gt;6.12.77&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;There is now an ADI branch named &lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;xlnx/release/v6.12.y-2026r1-94&lt;/span&gt;&lt;/code&gt;&lt;span&gt;, which appears to be based on upstream Linux &lt;/span&gt;&lt;strong&gt;&lt;span&gt;6.12.94&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="isSelectedEnd"&gt;&lt;span&gt;Could you please clarify the following?&lt;/span&gt;&lt;/p&gt;
&lt;ol start="1" data-spread="true"&gt;
&lt;li&gt;&lt;strong&gt;&lt;span&gt;When is the ADI Linux 6.12 2026R2 release expected to be available?&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span&gt;What upstream Linux 6.12.x version will 2026R2 be based on?&lt;/span&gt;&lt;/strong&gt;
&lt;ul data-spread="false"&gt;
&lt;li&gt;&lt;span&gt;Will 2026R2 be based on &lt;/span&gt;&lt;strong&gt;&lt;span&gt;6.12.94&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;, similar to the current &lt;/span&gt;&lt;code dir="ltr"&gt;&lt;span&gt;2026r1-94&lt;/span&gt;&lt;/code&gt;&lt;span&gt; branch?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Or is a newer upstream 6.12 LTS baseline planned for R2?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;In particular, &lt;/span&gt;&lt;strong&gt;&lt;span&gt;when does ADI expect to provide a Linux 6.12 release based on upstream Linux 6.12.97 or later?&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Linux Support for ADRV9029 CFR and DPD</title><link>https://ez.analog.com/thread/606017?ContentTypeID=0</link><pubDate>Wed, 09 Sep 2026 04:19:59 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:fddadbfd-cb02-4fea-9532-3bee51b7105d</guid><dc:creator>SatyamKumar</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/606017?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/606017/linux-support-for-adrv9029-cfr-and-dpd/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Dear team,&lt;/p&gt;
&lt;p&gt;On our custom hardware which has Zynq Ultrascale plus MPSoC and ADRV9025, we are using&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;13-NLS profile with ORX&lt;/strong&gt;.&lt;br /&gt;HDL built over Vivado 2025.1 and Petalinux over 2025.1 environment.&lt;/p&gt;
&lt;p&gt;We are trying to run the DPD engines for all the four TX channels, with ORX mapping to be TX1 and TX2 for ORX1 &amp;amp; ORX3 for TX3 and TX4.&lt;/p&gt;
&lt;p&gt;We have changed the&amp;nbsp;orxEnableMode to&amp;nbsp;ADI_ADRV9025_ORX_EN_SINGLE_CH_2PIN_MODE in the ActiveUtilInit.profile, as shown below:&lt;/p&gt;
&lt;p&gt;&amp;quot;radioCtrlInit&amp;quot;: {&lt;/p&gt;
&lt;p&gt;&amp;quot;orxRadioCtrlModeCfg&amp;quot;: {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;orxEnableMode&amp;quot;: 2,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;orxPinSelectSettlingDelay_armClkCycles&amp;quot;: 15,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;singleChannel1PinModeOrxSel&amp;quot;: 4,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;singleChannel2PinModeLowOrxSel&amp;quot;: 0,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;singleChannel2PinModeHighOrxSel&amp;quot;: 2,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;dualChannel2PinModeOrxSel&amp;quot;: 4&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Each of the signals,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;orx_control_enable_a&lt;/em&gt;,&amp;nbsp;&lt;em&gt;orx_control_enable_b&lt;/em&gt;,&amp;nbsp;&lt;em&gt;orx1_tx_sel&lt;/em&gt;, and&amp;nbsp;&lt;em&gt;orx3_tx_sel&lt;/em&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;are controlled through the GPIOs.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;While running the calibrations for&amp;nbsp;ext_path_delay and ext_tx_lol, the driver still expects the debugfs attribute&amp;nbsp;&lt;em&gt;orx1_to_tx_mapping&amp;nbsp;&lt;/em&gt;and&amp;nbsp;&lt;em&gt;orx3_to_tx_mapping&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;/em&gt;to be set to corresponding TX channel mapped to. If not mapped correctly it is throwing&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;error &amp;quot;Invalid Tx channel selected&amp;quot;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Also while switching the TX channels during DPD run, we have to switch the GPIO as well as set the orx_to_tx_mapping attribute. Only switching the GPIO is providing data of wrong path to the DPD engine to correct.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It seems that the orxEnableMode is still set in&amp;nbsp;ADI_ADRV9025_ORX_EN_SPI_MODE even though modified the&amp;nbsp;&lt;span&gt;ActiveUtilInit.profile.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How can we acknowledge that the orxEnableMode has been set to the intended mode in the driver ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thanks and regards,&lt;/p&gt;
&lt;p&gt;Satyam&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Linux Support for ADRV9025 CFR and DPD</title><link>https://ez.analog.com/thread/605906?ContentTypeID=0</link><pubDate>Mon, 07 Sep 2026 07:42:26 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:910d8c75-be04-4ead-96ca-aa3493b47524</guid><dc:creator>SatyamKumar</dc:creator><slash:comments>12</slash:comments><comments>https://ez.analog.com/thread/605906?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605906/linux-support-for-adrv9025-cfr-and-dpd/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Dear team,&lt;/p&gt;
&lt;p&gt;On our custom hardware which has Zynq Ultrascale plus MPSoC and ADRV9025, we are using &lt;strong&gt;13-NLS profile with ORX&lt;/strong&gt;.&lt;br /&gt;HDL built over Vivado 2025.1 and Petalinux over 2025.1 environment.&lt;/p&gt;
&lt;p&gt;We are trying to run the DPD engines for all the four TX channels, our test case is based on &lt;strong&gt;4 Transmitter/4 Receiver/2 Observation Receiver Input Use Case&lt;/strong&gt; as mentioned in the user guide. The PA switching logic to switch between PA1/PA2 and PA3/PA4.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What should be the frequency of switching between ORX1 and ORX3, and between TX1, TX2 and TX3, TX4 ?&lt;/li&gt;
&lt;li&gt;Should the switching be based upon samples captured by the DPD engine for individual channels ?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Kindly provide the procedure/steps or script to switch between two ORX channels and their corresponding TX channels.&lt;/p&gt;
&lt;p&gt;Thanks and Regards,&lt;/p&gt;
&lt;p&gt;Satyam&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Multiple 9026 on a single board, how to get this in the device-tree</title><link>https://ez.analog.com/thread/605854?ContentTypeID=0</link><pubDate>Sat, 05 Sep 2026 06:12:21 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:ad898750-734c-456c-a6e7-683b7ca69ff7</guid><dc:creator>milosoftware</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/605854?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605854/multiple-9026-on-a-single-board-how-to-get-this-in-the-device-tree/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Building a board with multiple ADRV9026 chips. There&amp;#39;s a single AD9528 clock chip that provides all the clocks for the devices.&lt;/p&gt;
&lt;p&gt;We basically took the reference design for the zcu102 and repeated that several times.&lt;/p&gt;
&lt;p&gt;I cannot get my head around how to get the device-tree right.&lt;/p&gt;
&lt;p&gt;The obvious approach is to just create 4 topologies (the documentation is rather vague on what a &amp;quot;topology&amp;quot; actually is, and when to use multiple). This does not work, only (semi randomly) one device starts up and the rest is ignored. The FSM makes no attempt to start the others.&lt;/p&gt;
&lt;p&gt;If I put them all into the same topology, three of them will complain that there can be only one top device. If I only select one as a top device, only that device will start up and the rest is more or less ignored, and remained powered down.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve seen in some device trees that a link is created from one PHY to another. I tried something similar, with everything in one topology. This does start up multiple devices, but only the top one actually works.&lt;/p&gt;
&lt;p&gt;So the basic question is, how should the devicetree look for multiple ADRV9026 chips?&lt;/p&gt;
&lt;p&gt;(At this stage, all I want is to get the data flowing, I&amp;#39;m not targeting any synchronization yet.)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADRV9002+ZCU102 RX DMA timeout (ERR:Unable to refill buffer: Connection timed out (110))</title><link>https://ez.analog.com/thread/605969?ContentTypeID=0</link><pubDate>Fri, 04 Sep 2026 13:35:32 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:8c56dfc7-5cd6-46d1-8a78-f8c94c6fb4ed</guid><dc:creator>MiguelSC</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/605969?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605969/adrv9002-zcu102-rx-dma-timeout-err-unable-to-refill-buffer-connection-timed-out-110/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m working with an ADRV9002 on a ZCU102 (LVDS interface) using a recent mainline-based setup: Petalinux 2025.1, meta-adi on the main branch, ADI HDL on the main branch, kernel 6.12.0adi-v2025.1 and libiio 0.26.&lt;/p&gt;
&lt;p&gt;The TX path works correctly: the DDS/DMA TX streams samples without errors and the waveforms are visible at the RF output as expected. The issue is isolated to the RX path, which fails at the DMA/buffer level. When I try to stream samples with:&lt;/p&gt;
&lt;p&gt;sudo iio_readdev -u local: -T 1 -b 64 -s 32 axi-adrv9002-rx-lpc voltage0_i voltage0_q | od -An -td4&amp;nbsp;I immediately get&amp;nbsp;&lt;span style="background-color:#ff0000;"&gt;Unable to refill buffer: Connection timed out (110)&lt;/span&gt;.In dmesg the ADRV9002 PHY initializes successfully and the ADC/TDD/DDS cores probe without errors. There are no explicit messages about DMA&lt;/p&gt;
&lt;p&gt;&lt;span&gt;timeouts, IRQ failures or IIO buffer issues.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;For comparison, I have a working setup using the ADI 2023_R2 release for both meta-adi and HDL, where RX streaming works as expected. One difference I noticed between the two setups is in /proc/interrupts: in the working 2023_R2 case I see 5 interrupts related to the RX DMA path, while in the non-working&lt;/p&gt;
&lt;p&gt;main-based setup I only see 2. This suggests that the RX DMA/interrupt behavior is different between the two stacks, but I haven&amp;rsquo;t been able to identify the exact cause.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m attaching the kernel log and the full iio_info output for reference.&lt;/p&gt;
&lt;p&gt;Do you have any suggestions on what to check or which recent changes might affect the RX DMA behavior?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ez.analog.com/cfs-file/__key/communityserver-discussions-components-files/422/7532.kernel_5F00_log.txt"&gt;ez.analog.com/.../7532.kernel_5F00_log.txt&lt;/a&gt;&lt;a href="https://ez.analog.com/cfs-file/__key/communityserver-discussions-components-files/422/4162.iio_5F00_info_5F00_log.txt"&gt;ez.analog.com/.../4162.iio_5F00_info_5F00_log.txt&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADRV9029 on-chip DPD: `TrackingCalsEnableSet(TX_DPD)` silently declined; `DpdReset` returns "device in correct state (3)"</title><link>https://ez.analog.com/thread/605657?ContentTypeID=0</link><pubDate>Fri, 04 Sep 2026 11:45:53 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:7f3bf0d8-95a7-4fc1-9b95-15b909b1a483</guid><dc:creator>filmm</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/605657?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605657/adrv9029-on-chip-dpd-trackingcalsenableset-tx_dpd-silently-declined-dpdreset-returns-device-in-correct-state-3/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;## Setup&lt;/p&gt;
&lt;p&gt;- **Device:** ADRV9029 (adrv9025 API 7.0.0.14, FW 7.0.0.11, Stream 9.4.0.1), Rev 176.&lt;br /&gt;- **SoC / driver:** Xilinx ZynqMP, mainline-derived `adrv9025` Linux IIO driver (`drivers/iio/adc/adrv902x`), controlled from `/sys/bus/iio/devices/iio:deviceN` (`adrv9025-phy` = `spi0.0`).&lt;br /&gt;- **Topology: on-chip (internal) DPD only.** The FPGA implements **only the Tx/deframer JESD204 path** (`DEFRAMER0_LINK_TX`, M=8 = 4 Tx &amp;times; I/Q, L=4). **There is NO Rx or ORx AXI-JESD framer in the PL** &amp;mdash; the ORx observation used by DPD stays entirely inside the ADRV9029. Profile = ADI **UC51 LinkSharing** (`ActiveUseCase.profile`), `ActiveUtilInit.profile` init cals.&lt;br /&gt;- **RF path is proven good:** the Tx transmits a clean DVB-S2 (QPSK1/2, 30 Mbaud) carrier that an external demod (Newtec MDM6000) **locks with 0 errored frames**. Tx1 &amp;rarr; 3-way splitter &amp;rarr; ORx1 + demod. LO1 = 1350 MHz. Tx atten 0 dB, ORx atten 0 dB.&lt;/p&gt;
&lt;p&gt;## Symptom&lt;/p&gt;
&lt;p&gt;After a clean init + calibration sequence (all cals return rc=0), enabling DPD tracking is **silently declined** and `DpdReset` fails:&lt;/p&gt;
&lt;p&gt;```&lt;br /&gt;# echo 1 &amp;gt; out_voltage0_dpd_en # TrackingCalsEnableSet(ADI_ADRV9025_TRACK_TX1_DPD, ENABLE)&lt;br /&gt;# cat out_voltage0_dpd_en&lt;br /&gt;0 # &amp;lt;-- NOT enabled (TX_QEC and TX_LOL enable fine, only TX_DPD is refused)&lt;/p&gt;
&lt;p&gt;# echo 1 &amp;gt; dpd_reset&lt;br /&gt;kernel: adrv9025 spi0.0: adrv9025_phy_store, 408: failed with CpuCmdStatusWait() failed due to thrown CPU error. Is device in correct state for calling command? (3)&lt;br /&gt;kernel: adrv9025 spi0.0: DPD reset diag: calError=0x10000 txDpdState[1..4]=0x65/0x25/0x25/0x25&lt;br /&gt;```&lt;/p&gt;
&lt;p&gt;`txDpdState` decode (from `adi_adrv9025_TrackingCalAllStateGet`): `0x25` = SUSPENDED|INACTIVE|**DISABLED**; `0x65` = + ERROR. `adi_adrv9025_DpdStatusGet` shows **0 iterations, Mean Tx/ORx Power = -2147483.648 (never measured)** &amp;mdash; DPD tracking never runs.&lt;/p&gt;
&lt;p&gt;**Key observation:** `out_voltage0_quadrature_tracking_en` (`TRACK_TX1_QEC`) and `out_voltage0_lo_leakage_tracking_en` (`TRACK_TX1_LOL`) both enable and read back **1**. Only `out_voltage0_dpd_en` (`TRACK_TX1_DPD`) reads back **0**. Adding a delay between enabling QEC/LOL tracking and DPD (per EZ 575269) does not help.&lt;/p&gt;
&lt;p&gt;## The full sequence we run (all steps rc=0 except the DPD reset/enable)&lt;/p&gt;
&lt;p&gt;```sh&lt;br /&gt;# RF/JESD up (FSM at opt_post_running_stage); Tx1 on, 0 dB; ORx1 on, 0 dB, mapped to Tx1:&lt;br /&gt;echo 1 &amp;gt; out_voltage0_en ; echo 0 &amp;gt; out_voltage0_hardwaregain&lt;br /&gt;echo 0x1 &amp;gt; /sys/kernel/debug/iio/iio:device17/orx1_to_tx_mapping&lt;br /&gt;echo 1 &amp;gt; in_voltage4_en ; echo ORX1_ON_ORX2_OFF &amp;gt; in_voltage4_rf_port_select ; echo 0 &amp;gt; in_voltage4_hardwaregain&lt;/p&gt;
&lt;p&gt;echo 0x1 &amp;gt; calibrate_mask # restrict cals to Tx0 &amp;lt;-- REQUIRED (see note 1)&lt;/p&gt;
&lt;p&gt;# Combined QEC/LOL init cals (with a modulated Tx signal playing):&lt;br /&gt;echo 1 &amp;gt; calibrate_rx_qec_en ; echo 1 &amp;gt; calibrate_tx_lol_en ; echo 1 &amp;gt; calibrate_tx_qec_en&lt;br /&gt;echo 1 &amp;gt; calibrate # rc=0 OK &amp;lt;-- combined; see note 2&lt;br /&gt;echo 0 &amp;gt; calibrate_rx_qec_en ; echo 0 &amp;gt; calibrate_tx_lol_en ; echo 0 &amp;gt; calibrate_tx_qec_en&lt;/p&gt;
&lt;p&gt;echo 1 &amp;gt; calibrate_ext_path_delay_en ; echo 1 &amp;gt; calibrate # rc=0 OK (locks; too-low correlated power if &amp;lt;0 dB drive)&lt;br /&gt;echo 0 &amp;gt; calibrate_ext_path_delay_en&lt;/p&gt;
&lt;p&gt;echo 1 &amp;gt; calibrate_dpd_en ; echo 1 &amp;gt; calibrate # runtime DPD init cal, rc=0 OK&lt;br /&gt;echo 0 &amp;gt; calibrate_dpd_en&lt;/p&gt;
&lt;p&gt;cat ADRV9025_DPD_63Coeff_Model_10.txt &amp;gt; dpd_coef_model # stock 63-coeff model, OK&lt;br /&gt;echo 0x1 &amp;gt; dpd_tx_mask&lt;br /&gt;echo 1 &amp;gt; dpd_reset # &amp;lt;-- FAILS &amp;quot;(3)&amp;quot;, txDpdState 0x25/0x65&lt;br /&gt;echo 1 &amp;gt; dpd_tracking_config_set # rc=0&lt;br /&gt;echo 1 &amp;gt; out_voltage0_quadrature_tracking_en # TRACK_TX1_QEC -&amp;gt; readback 1&lt;br /&gt;echo 1 &amp;gt; out_voltage0_lo_leakage_tracking_en # TRACK_TX1_LOL -&amp;gt; readback 1&lt;br /&gt;echo 1 &amp;gt; out_voltage0_dpd_en # TRACK_TX1_DPD -&amp;gt; readback 0 &amp;lt;-- DECLINED&lt;br /&gt;```&lt;/p&gt;
&lt;p&gt;**Note 1 &amp;mdash; `calibrate_mask=0x1` is mandatory:** with the default `0xF`, `TX_QEC_INIT` runs on all 4 Tx and Tx2/3/4 (no signal/observation set up) fail `TxQECInit: Incrementing fine phase, coarse value railed (3086)`, aborting the whole `calibrate`. Restricting to Tx0 lets it converge.&lt;/p&gt;
&lt;p&gt;**Note 2 &amp;mdash; QEC cals must be run COMBINED:** `calibrate_tx_qec_en` alone rails; running `rx_qec + tx_lol(internal) + tx_qec` together in one `calibrate` converges.&lt;/p&gt;
&lt;p&gt;## Boot-time init cals &amp;mdash; the suspected root cause&lt;/p&gt;
&lt;p&gt;Boot init cals run automatically via `adi_adrv9025_PostMcsInit()` from `ActiveUtilInit.profile` `initCals` (`channelMask=15`, `calMask` includes `ADI_ADRV9025_DPD` = 0x100000 but originally NOT `ADI_ADRV9025_TX_QEC_INIT` = 0x1000).&lt;/p&gt;
&lt;p&gt;**Putting `TX_QEC_INIT` in the boot mask breaks bring-up entirely:**&lt;br /&gt;```&lt;br /&gt;kernel: adrv9025 spi0.0: adrv9025_jesd204_setup_stage2, 2763: failed with TxQECInit:Channel estimate never reached variance (3)&lt;br /&gt;kernel: jesd204: adrv9025-phy@0: JESD204[0:0] In opt_setup_stage2 got error from cb: -14 (FSM rolls back, adrv9025-phy never probes)&lt;br /&gt;```&lt;/p&gt;
&lt;p&gt;So at boot (PA off, no Tx signal) TX QEC init fails &amp;quot;channel estimate never reached variance&amp;quot;; only at **runtime with a Tx signal + `calibrate_mask=0x1`** does it pass. We can therefore only run the DPD **init** cal at boot **without** a completed TX QEC init &amp;mdash; which we suspect is why `TrackingCalsEnableSet(TX_DPD)` is later refused.&lt;/p&gt;
&lt;p&gt;**Follow-up experiment (`initCals.channelMask=15 -&amp;gt; 1`, `TX_QEC_INIT` added to boot mask):** restricting the boot init cals to Tx0 changed the boot failure to a **different, more specific** error:&lt;br /&gt;```&lt;br /&gt;kernel: adrv9025 spi0.0: adrv9025_jesd204_setup_stage2, 2763: failed with TxQECInit:No pathdelay estimate present (3)&lt;br /&gt;```&lt;br /&gt;i.e. boot **TX QEC init requires a path-delay estimate**, but `ADI_ADRV9025_EXTERNAL_PATH_DELAY` (0x200000) is a **PA-on, runtime** cal (Table 263 step 4) and is not present during `PostMcsInit`. `ADI_ADRV9025_INTERNAL_PATH_DELAY` (0x200) IS in the boot mask but does not satisfy it. This looks like a hard ordering conflict: **TX QEC init (needed for DPD init) depends on a path-delay estimate that only exists after a runtime PA-on external path-delay cal** &amp;mdash; so neither TX QEC init nor DPD init can complete at boot for this device/profile.&lt;/p&gt;
&lt;p&gt;## Questions for ADI&lt;/p&gt;
&lt;p&gt;**Q1 &amp;mdash; Is on-chip DPD supported in this topology, and what is the exact init sequence?**&lt;br /&gt;Our design uses **on-chip DPD only: no Rx/ORx AXI-JESD framer to the SoC** (the ORx observation stays internal to the ADRV9029). Is on-chip DPD supported without framing ORx to the SoC? If yes, please give the **exact, ordered init + calibration sequence** (which cals in `PostMcsInit` vs at runtime, PA state, mask/channel values) that makes `TrackingCalsEnableSet(TX_DPD)` succeed for this topology.&lt;/p&gt;
&lt;p&gt;**Q2 &amp;mdash; Why is only `TX_DPD` refused by `TrackingCalsEnableSet`?**&lt;br /&gt;The same `TrackingCalsEnableSet` call enables `TX_QEC` and `TX_LOL` (readback 1) but **silently refuses `TX_DPD`** &amp;mdash; no error returned, `out_voltage0_dpd_en` reads back 0. What single precondition gates `TX_DPD` enablement, and **how can we query the firmware for the reason it is refused** (an error/status object we can read)?&lt;/p&gt;
&lt;p&gt;**Q3 &amp;mdash; How can boot `TX_QEC_INIT` satisfy its path-delay dependency (PA off)?**&lt;br /&gt;Adding `TX_QEC_INIT` to the `PostMcsInit` mask fails `No pathdelay estimate present (3)`. But `EXTERNAL_PATH_DELAY` (0x200000) is a runtime, PA-on cal, and `INTERNAL_PATH_DELAY` (0x200, already in the boot mask) does not satisfy it. What is the intended way to provide a path-delay estimate at boot &amp;mdash; e.g. pre-programming a factory value via `ExternalPathDelaySet()` before running the boot init cals? Which path-delay does TX QEC init actually require?&lt;/p&gt;
&lt;p&gt;**Q4 &amp;mdash; Can the DPD init cal be completed at *runtime*?**&lt;br /&gt;Our runtime `InitCalsRun(ADI_ADRV9025_DPD)` returns **success**, yet `TrackingCalsEnableSet(TX_DPD)` is still refused and `DpdReset` returns &amp;quot;(3)&amp;quot;. Does DPD tracking **strictly require the DPD init cal to run during `PostMcsInit`**, or can a successful runtime `InitCalsRun(DPD)` satisfy it? If runtime is allowed, what is the required ordering relative to path-delay and TX QEC init, and does the DPD init cal require TX QEC init in the **same** `InitCalsRun`?&lt;/p&gt;
&lt;p&gt;**Q5 &amp;mdash; Is the required TX QEC init grouping/mask expected?**&lt;br /&gt;On our device, `InitCalsRun(TX_QEC_INIT)` **alone** fails `Incrementing fine phase, coarse value railed (3086)`. It only converges when run **combined with `RX_QEC_INIT` + `TX_LO_LEAKAGE_INTERNAL` in one `InitCalsRun`**, and with the channel mask **restricted to the single target Tx** (`0x1`) &amp;mdash; with the default 4-Tx mask the un-driven Tx2/3/4 rail the whole run. Is this grouping/mask requirement expected, and is it documented anywhere?&lt;/p&gt;
&lt;p&gt;## Environment / versions&lt;br /&gt;- adrv9025 API 7.0.0.14, ARM FW 7.0.0.11, Stream 9.4.0.1, Rev 176.&lt;br /&gt;- Linux 6.12 (adi-6.12.y), Xilinx ZynqMP.&lt;br /&gt;- Profiles: `ActiveUseCase.profile` (UC51 LinkSharing), `ActiveUtilInit.profile`.&lt;br /&gt;- DPD model: `Adi.Adrv9025.DPDModelLibrary/63_coefficients/ADRV9025_DPD_63Coeff_Model_10.txt` (also custom 190-coeff &amp;mdash; same result).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Cant create multiple iio_buffer on a same device</title><link>https://ez.analog.com/thread/605931?ContentTypeID=0</link><pubDate>Fri, 04 Sep 2026 08:34:27 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:83c5e3fb-a798-47db-b264-26db887d0e5c</guid><dc:creator>BenoitB</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/605931?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605931/cant-create-multiple-iio_buffer-on-a-same-device/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I cant create a second iio_buffer on the same device. It works always well for the first but the second is never created :&amp;nbsp;iio_device_create_buffer(bufB) failed: errno=16 (Device or resource busy).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Why cant I create 2 buffers. My goal is to set a flip flop buffer mechanism with threads, one push while the other fill a buffer in order to be able to reach a continous samplig rate of 64MSPS in order to play a sigmf file. If there is an another way...&lt;/p&gt;
&lt;p&gt;Here is my code (still haven&amp;#39;t implemented threads)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;#include &amp;lt;math.h&amp;gt;&lt;br /&gt;#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;#include &amp;lt;string.h&amp;gt;&lt;br /&gt;#include &amp;lt;io.h&amp;gt;&lt;/p&gt;
&lt;p&gt;int main(int argc, char **argv) {&lt;/p&gt;
&lt;p&gt;struct iio_context *ctx = iio_create_context_from_uri(&amp;quot;ip:192.168.100.10&amp;quot;);&lt;br /&gt; if (!ctx) { &lt;br /&gt;printf(&amp;quot;Error:&amp;nbsp;No iio context.\n&amp;quot;); &lt;br /&gt; return -1; &lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;struct iio_device *dev_tx = iio_context_find_device(ctx, &amp;quot;cf-ad9361-dds-core-lpc&amp;quot;);&lt;br /&gt; if (!dev_tx) {&lt;br /&gt; fprintf(stderr, &amp;quot;Impossible&amp;nbsp;to find&amp;nbsp;TX device\n&amp;quot;);&lt;br /&gt; iio_context_destroy(ctx);&lt;br /&gt; return -1;&lt;br /&gt; }&lt;br /&gt; fprintf(stdout, &amp;quot;device cf-ad9361-dds-core-lpc opened\n&amp;quot;);&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;static struct iio_channel *tx0_i, *tx0_q;&lt;/p&gt;
&lt;p&gt;tx0_i = iio_device_find_channel(dev_tx, &amp;quot;voltage0&amp;quot;, true); // I&lt;br /&gt; tx0_q = iio_device_find_channel(dev_tx, &amp;quot;voltage1&amp;quot;, true); // Q&lt;br /&gt; if (!tx0_i || !tx0_q) {&lt;br /&gt; fprintf(stderr, &amp;quot;Impossible&amp;nbsp;to find IQ channels\n&amp;quot;);&lt;br /&gt; iio_context_destroy(ctx);&lt;br /&gt; return -1;&lt;br /&gt; }&lt;br /&gt; fprintf(stdout, &amp;quot;IQ channels opened\n&amp;quot;);&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;iio_channel_enable(tx0_i);&lt;br /&gt; iio_channel_enable(tx0_q);&lt;/p&gt;
&lt;p&gt;const size_t complex_per_push = 4096;&lt;/p&gt;
&lt;p&gt;static struct iio_buffer *txbuf[2];&lt;/p&gt;
&lt;p&gt;txbuf[0] = iio_device_create_buffer(dev_tx, complex_per_push, false);&lt;br /&gt; txbuf[1] = iio_device_create_buffer(dev_tx, complex_per_push, false);&lt;/p&gt;
&lt;p&gt;if (txbuf[0] == 0 || txbuf[1] == 0) {&lt;br /&gt; fprintf(stderr, &amp;quot;Impossible to create buffers\n&amp;quot;);&lt;br /&gt; perror(&amp;quot;errno&amp;quot;);&lt;br /&gt;iio_context_destroy(ctx); &lt;br /&gt;return -1;&lt;br /&gt; }&lt;br /&gt; fprintf(stdout, &amp;quot;iio_buffer created\n&amp;quot;);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;Thanks for help&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>libadrv9002-iio support for API 68.20.12 / TES 0.29</title><link>https://ez.analog.com/thread/605942?ContentTypeID=0</link><pubDate>Thu, 03 Sep 2026 13:00:55 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:ca85cc71-1059-49f3-9a51-c515d09170b9</guid><dc:creator>epiq_dan</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/605942?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605942/libadrv9002-iio-support-for-api-68-20-12-tes-0-29/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;We are using ADRV9002 Day 29 firmware with Device Driver API 68.20.12 / TES 0.29.&amp;nbsp; Is a compatible &lt;code dir="ltr"&gt;libadrv9002-iio&lt;/code&gt; build available?&amp;nbsp; If not, is support for this API version planned and/or a beta version available?&lt;/p&gt;
&lt;p&gt;Thanks and Best Regards,&lt;/p&gt;
&lt;p&gt;Dan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Multiple ADRV9026 sharing a single clock, how to configure the device-tree</title><link>https://ez.analog.com/thread/605947?ContentTypeID=0</link><pubDate>Thu, 03 Sep 2026 06:19:31 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:abc345e5-e9e9-475d-8fe9-ba303d079537</guid><dc:creator>milosoftware</dc:creator><slash:comments>6</slash:comments><comments>https://ez.analog.com/thread/605947?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605947/multiple-adrv9026-sharing-a-single-clock-how-to-configure-the-device-tree/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Building a board with multiple ADRV9026 chips. There&amp;#39;s a single AD9528 clock chip that provides all the clocks for the devices.&amp;nbsp;We basically took the reference design for the zcu102 and repeated that several times.&lt;/p&gt;
&lt;p&gt;I cannot get my head around how to get the device-tree right.&lt;/p&gt;
&lt;p&gt;The obvious approach is to just create 4 topologies (the documentation is rather vague on what a &amp;quot;topology&amp;quot; actually is, and when to use multiple). This does not work, only one chain starts up and the others end up with the following cryptic error message:&lt;/p&gt;
&lt;pre&gt;adrv9025 spi1.0: adrv9025_jesd204_setup_stage1:2687 Unexpected MCS sync status (0x0)&lt;br /&gt;adrv9025 spi1.0: adrv9025_jesd204_setup_stage1, 2691: failed with&amp;nbsp; (0)&lt;/pre&gt;
&lt;p&gt;If I put them all into the same topology, three of them will complain that there can be only one top device. If I only select one as a top device, only that device will start up and the rest is more or less ignored, and remained powered down.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve seen in some device trees that a link is created from one PHY to another. I tried something similar, with everything in one topology. This does start up multiple devices, but only the top one actually works.&lt;/p&gt;
&lt;p&gt;So the basic question is, how should the device-tree look for multiple ADRV9026 chips?&lt;/p&gt;
&lt;p&gt;The idea is that the four will run in sync, but at this point I&amp;#39;d be happy to get them to output any data at all.&lt;/p&gt;
&lt;p&gt;(PS: Tried posting this before but the board software moved to the wrong forum)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Modifying Kuiper Linux Kernel</title><link>https://ez.analog.com/thread/605896?ContentTypeID=0</link><pubDate>Mon, 31 Aug 2026 15:41:15 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:a2a03dda-c875-4017-8f89-636d8c5493db</guid><dc:creator>arexngrf</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/605896?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605896/modifying-kuiper-linux-kernel/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;ADI Experts and EZ Community,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Up until now, I&amp;#39;ve done the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make changes to the kernel (v2023_r2_p1) found at this url (&lt;a id="" href="https://github.com/analogdevicesinc/linux/tree/2023_r2_p1)"&gt;https://github.com/analogdevicesinc/linux/tree/2023_r2_p1)&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Build kernel and copy &amp;quot;Image&amp;quot; to the root of my Kuiper SD card.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While this seems to work, I feel like it&amp;#39;s wrong because I&amp;#39;m unsure if the kernel I&amp;#39;ve modified in development is the kernel that Kuiper Linux started with.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If my method is incorrect, could someone let me know which method I should be using?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks in advance,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Adam&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Connection timed out (Error 110) while inserting custom FPGA demodulator in reference design</title><link>https://ez.analog.com/thread/605821?ContentTypeID=0</link><pubDate>Tue, 25 Aug 2026 15:04:56 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:b5eab713-28ee-4d9c-906e-562e7758f335</guid><dc:creator>realSayan</dc:creator><slash:comments>5</slash:comments><comments>https://ez.analog.com/thread/605821?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605821/connection-timed-out-error-110-while-inserting-custom-fpga-demodulator-in-reference-design/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m using zedboard and fmcomms4 setup. I&amp;#39;m trying to insert my custom IP blocks for signal processing between FIFO and CPACK (adc_pack) in the receiver path. All the custom IP blocks are configured in non-blocking mode and the AXI handshakes are taken care of. Still while playing the processed audio via kuiper linux terminal (through Putty) it throws &amp;#39;Unable to refill buffer: Connection timed out (110) aplay: read_header:2839: read error&amp;#39;. I&amp;#39;m following &lt;a href="https://analogdevicesinc.github.io/TransceiverToolbox/mkdocs/hdlrefdesigns/fmcomms2/"&gt;this&lt;/a&gt;&amp;nbsp;official ADI reference design for DMA hijack, still getting the error. I have also ensured that I&amp;#39;m flashing my custom bitstream (BOOT image) while turning ON the board. I have also checked that the DMA interrupt does increment once when the transfer is attempted.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please provide a resolution for this. Thanks, in advance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Is meta-adi-xilinx supported with AMD EDF 2026.1 for ZCU102/Kria + ADRV9002?</title><link>https://ez.analog.com/thread/605807?ContentTypeID=0</link><pubDate>Mon, 24 Aug 2026 14:25:36 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:7ebd8e3e-10e7-410a-a252-997caccb209e</guid><dc:creator>MiguelSC</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/605807?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605807/is-meta-adi-xilinx-supported-with-amd-edf-2026-1-for-zcu102-kria-adrv9002/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;Hello, &lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;I am starting a new AMD Embedded Development Framework (EDF) project, not a PetaLinux project usinge this&amp;nbsp;&lt;/span&gt;&lt;span&gt;Target platforms: &lt;/span&gt;&lt;span&gt;- ZCU102 (Zynq UltraScale+ MPSoC) &lt;/span&gt;&lt;span&gt;- Kria platform &lt;/span&gt;&lt;span&gt;- ADRV9002. Is it possible to integrate meta-adi in AMD EDF Framework?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If this is possible, do you have any suggestions on how it can be integrated?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>running libad9361 and libiio on Fedora</title><link>https://ez.analog.com/thread/605659?ContentTypeID=0</link><pubDate>Fri, 14 Aug 2026 08:53:27 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:823738ae-3d19-4067-b9f6-265416b782f4</guid><dc:creator>janSenior</dc:creator><slash:comments>4</slash:comments><comments>https://ez.analog.com/thread/605659?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605659/running-libad9361-and-libiio-on-fedora/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have a few appplications wich use Adalm pluto as (one of the) iput device(s)&lt;/p&gt;
&lt;p&gt;Now the applications - qt-dab and qt-1090 - run wonderful on Ubuntu with libraries installed from the repositories.&lt;/p&gt;
&lt;p&gt;I develop under Fedora (44 right now) and I am aware that no support libraries for Pluto are to be found in the repositories&lt;/p&gt;
&lt;p&gt;So, I loaded the sources of both libiio and libad9361 from git hub compiled them and installed them&lt;/p&gt;
&lt;p&gt;Running visibility tests with Pluto connected to my laptop showed that I could see and even login into the pluto device&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;On my applications I run the code&amp;nbsp;&lt;/p&gt;
&lt;p&gt;.....................&lt;/p&gt;
&lt;p&gt;if (iio_context_get_devices_count (ctx) &amp;lt;= 0) {&lt;br /&gt; throw (device_exception (&amp;quot;no pluto device detected&amp;quot;));&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;fprintf (stderr, &amp;quot;we hebben %d devices\n&amp;quot;,&lt;br /&gt; iio_context_get_devices_count (ctx));&lt;br /&gt; fprintf (stderr, &amp;quot;* Acquiring AD9361 streaming devices\n&amp;quot;);&lt;/p&gt;
&lt;p&gt;if (!get_ad9361_stream_dev (ctx, RX, &amp;amp;rx)) {&lt;br /&gt; throw (device_exception (&amp;quot;No RX device found&amp;quot;));&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;Where the text &amp;quot;we hebben ...&amp;quot; just reports the number of devices seen.&lt;/p&gt;
&lt;p&gt;However, the final result is that No RX device is found.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I replaced the call to get_ad9161_stream_dev by&amp;nbsp; &amp;nbsp;the iio function&lt;/p&gt;
&lt;p&gt;*dev = iio_context_find_device(ctx, &amp;quot;cf-ad9361-lpc&amp;quot;);&lt;/p&gt;
&lt;p&gt;with NULL as result&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Any suggestion to go on/ better, what am I overlooking here, is welcome&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>iio_writedev buffer size constraint</title><link>https://ez.analog.com/thread/605596?ContentTypeID=0</link><pubDate>Mon, 10 Aug 2026 14:44:12 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:b408dfbd-e526-4ffd-91b4-e508137b016d</guid><dc:creator>AkhilKumar</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/605596?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605596/iio_writedev-buffer-size-constraint/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am using ADI&amp;#39;s reference project for ZCU102 plus FMCOMMS2. While booted into Kuiper Linux, I am trying to transmit an IQ.bin file in cyclic mode using following command:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;iio_writedev -u local: -T 0 -b 4194304 -c cf-ad9361-dds-core-lpcvoltage0 voltage1 &amp;lt; /tmp/FSK.BIN &amp;amp;&lt;br /&gt;&lt;br /&gt;It is working fine till&amp;nbsp;&lt;span&gt;4194304&amp;nbsp;as buffer size. For example, if my FSK.BIN is 32 mb, then above command is only able to transmit half of the IQ in repeated mode. As I increase the buffer size, this command doesn&amp;#39;t work. So, my query is how to transmit larger IQ data in cyclic mode. This is an FSK data, so it is small but as I move to DVB-S or DVB-S2, the IQ data becomes huge.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>No USB-UART enumeration / no CFG_DONE on ADRV9364-Z7020 + ADRV1CRR-BOB — hardware fault suspected</title><link>https://ez.analog.com/thread/605579?ContentTypeID=0</link><pubDate>Mon, 10 Aug 2026 14:33:36 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:0ae51bd7-a375-48f6-9d99-4689f8f3081d</guid><dc:creator>alexjackson42</dc:creator><slash:comments>7</slash:comments><comments>https://ez.analog.com/thread/605579?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605579/no-usb-uart-enumeration-no-cfg_done-on-adrv9364-z7020-adrv1crr-bob-hardware-fault-suspected/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hardware:&lt;/p&gt;
&lt;p&gt;SOM: ADRV9364-Z7020&lt;br /&gt;Carrier: ADRV1CRR-BOB&lt;br /&gt;Power: dedicated 5V, 2A+ supply that came with the BOB connected directly to the BOB&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Symptom: No /dev/ttyUSB* device is ever created, and the FTDI USB-serial device never appears in lsusb output at all &amp;mdash; tested on two completely separate computers, connected directly (no hub), using the USB cable that shipped with the carrier board, plugged into the port labeled &amp;quot;USB UART / Console&amp;quot; on the ADRV1CRR-BOB.&lt;/p&gt;
&lt;p&gt;LED behavior on the SOM (D3 = PGOOD, D4 = CFG_DONE):&lt;/p&gt;
&lt;p&gt;With S1 = SDS: D3 lights and stays solid. D4 lights briefly on power-up, then turns off after ~1 second.&lt;br /&gt;With S1 = SDC: D3 and D4 both light and stay solid continuously, with no flicker &amp;mdash; but no USB enumeration and no Ethernet link (NO-CARRIER) in either mode.&lt;/p&gt;
&lt;p&gt;Switch positions tried:&lt;/p&gt;
&lt;p&gt;S1: tested both SDS and SDC&lt;br /&gt;S3 = 1, S4 = 1&lt;/p&gt;
&lt;p&gt;Steps already taken to rule out other causes:&lt;/p&gt;
&lt;p&gt;Confirmed direct connection (no hub) on two separate host computers &amp;mdash; FTDI device never appears in lsusb.&lt;br /&gt;Confirmed the USB cable is the one that shipped with the carrier board.&lt;br /&gt;Verified BOOT.BIN and devicetree.dtb on the SD card&amp;#39;s boot partition are byte-for-byte identical (md5sum match) to the reference files in zynq-adrv9364-z7020-bob/lvds/ on the Kuiper image &amp;mdash; confirming the correct board/carrier/interface-mode boot files are active at the root of the boot partition.&lt;br /&gt;Confirmed devicetree.dtb correctly reports Analog Devices ADRV9364-Z7020 (Z7020/AD9364) via strings devicetree.dtb | grep -i adrv.&lt;br /&gt;Reseated the SOM firmly onto all 4 micro-headers on the carrier &amp;mdash; no change in behavior.&lt;br /&gt;Confirmed power supply is rated 5V, 2A or higher &amp;mdash; connected via the BOB&amp;#39;s dedicated power input, not USB.&lt;br /&gt;Checked ip link on the host while the board is powered &amp;mdash; the Ethernet adapter shows NO-CARRIER, so no link is established over Ethernet either.&lt;br /&gt;Ran dmesg -w while physically unplugging/replugging the USB cable at the carrier &amp;mdash;nothing appeared&lt;/p&gt;
&lt;p&gt;Question: Given the SD card content and switches are confirmed correct, and the console port shows zero electrical activity across two hosts and multiple cables/ports, is this indicative of a hardware fault on the ADRV1CRR-BOB&amp;#39;s USB-UART circuitry (or the SOM itself)? Are there any additional jumper settings specific to the USB-UART port (as opposed to the USB-OTG port) on this carrier revision that could explain this? Happy to provide board revision/serial numbers and photos if useful for troubleshooting or an RMA determination.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>failed to run adrv9002-iiostream.c</title><link>https://ez.analog.com/thread/605513?ContentTypeID=0</link><pubDate>Tue, 04 Aug 2026 04:06:51 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:1afdfe3f-1a5a-49d1-b19c-0954ab0224ef</guid><dc:creator>LAXMIPRASANNA</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/605513?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605513/failed-to-run-adrv9002-iiostream-c/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am using AD-JUPITER-EBZ board, I have created hdl project using&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;a id="" href="https://github.com/analogdevicesinc/hdl/tree/main/projects/jupiter_sdr"&gt;https://github.com/analogdevicesinc/hdl/tree/main/projects/jupiter_sdr&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;.&lt;br /&gt;and created petalinux image by following steps mentioned in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a id="" href="https://github.com/analogdevicesinc/meta-adi/tree/main/meta-adi-xilinx"&gt;https://github.com/analogdevicesinc/meta-adi/tree/main/meta-adi-xilinx&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;.&lt;br /&gt; while running iio stream example for adrv9002 (&lt;a href="https://github.com/analogdevicesinc/libiio/blob/2023_R2/examples/adrv9002-iiostream.c"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;https://github.com/analogdevicesinc/libiio/blob/2023_R2/examples/adrv9002-iiostream.c&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/a&gt;)&lt;br /&gt;I am getting the following error.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;configure_tx_lo, 129: INFO: adrv9002 bandwidth: 9000000&lt;/span&gt;&lt;br /&gt;&lt;span&gt;configure_tx_lo, 135: INFO: adrv9002 sampling_frequency: 15360000&lt;/span&gt;&lt;br /&gt;&lt;span&gt;main, 285: INFO: * Creating non-cyclic IIO buffers with 1 MiS&lt;/span&gt;&lt;br /&gt;&lt;span&gt;stream, 213: ERROR: Error refilling buf -110&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;how to solve this issue?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Generating ad9144_fmc_ebz_ad9516.stp</title><link>https://ez.analog.com/thread/605477?ContentTypeID=0</link><pubDate>Fri, 31 Jul 2026 20:39:03 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:20a886bd-30e9-442b-b76e-e385ddcbeea8</guid><dc:creator>Sarena</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/605477?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/linux-software-drivers/f/q-a/605477/generating-ad9144_fmc_ebz_ad9516-stp/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;Can someone from Analog Devices please upload the `ad9144_fmc_ebz_ad9516.stp` somewhere or does absolutely have to be generated from the Windows only tooling with some desired clock settings on the clock speed and gain?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I need&amp;nbsp;ad9144_fmc_ebz_ad9516.stp to initialize my&amp;nbsp;&lt;a class="interwiki iw_adi" title="https://www.analog.com/EVAL-AD9154" href="https://www.analog.com/EVAL-AD9154"&gt;AD9154-FMC-EBZ&lt;/a&gt;&lt;span&gt;&amp;nbsp;evaluation board. I do not have Windows to download the tooling described here:&amp;nbsp;&lt;a id="" href="https://wiki.analog.com/resources/eval/dpg/ad9154-ace-fmc-eb"&gt;https://wiki.analog.com/resources/eval/dpg/ad9154-ace-fmc-eb&lt;/a&gt;z.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I am loading my company&amp;#39;s custom embedded linux yocto layer for the Xilinx zcu106 evaluation board. I have all the hardware setup including a 1.5GHz ref clock. I am smoothing out some edges on the reference device tree overrides. I have the spi bus giving me the correct chip ID and things. But I am now blocked on finding this `ad9144_fmc_ebz_ad9516.stp` file. Can someone from Analog Devices please upload this file somewhere or does absolutely have to be generated from the tooling with some desired clock settings on the clock speed and gain?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Sarena&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>