AD9081
Recommended for New Designs
The AD9081 mixed signal front end (MxFE®) is a highly integrated device with four 16-bit, 12 GSPS maximum sample rate, RF digital-to-analog converter...
Datasheet
AD9081 on Analog.com
MAX20751
Not Recommended for New Designs
The MAX20751 PMBus™-compliant multiphase master IC, with extensive status and parameter monitoring, is capable of driving up to four smart-slave integrated...
Datasheet
MAX20751 on Analog.com
LTC2992
Recommended for New Designs
The LTC2992 is a rail-to-rail system monitor that measures current, voltage, and power of two supplies. It features an operating range of 2.7V to 100V...
Datasheet
LTC2992 on Analog.com
LTC2314-14
Production
The LTC2314-14 is a 14-bit, 4.5Msps, serial sampling A/D converter that draws only 6.2mA from a wide range analog supply adjustable from 2.7V to 5.25V...
Datasheet
LTC2314-14 on Analog.com
HMC7044
Recommended for New Designs
The HMC7044 is a high performance, dual-loop, integer-N jitter attenuator capable of performing reference selection and generation of ultralow phase noise...
Datasheet
HMC7044 on Analog.com
Hello,
Greeting!
I build the BOOT.BIN from the newest hdl_2022_r2. I try two projects: one is hdl/projects/ad9081_fmca_ebz_x_band/zcu102/; the other is projects/ad9081_fmca_ebz/zcu102. When I use ZCU102 and AD9081 to test firmware, the axi-core-tdd device cannot be detected.
The result of "iio_attr -d" of project ad9081_fmca_ebz_x_band is as follows:root@analog:~# iio_attr -d
IIO context has 39 devices:
hwmon0, ina226: found 2 device attributes
hwmon1, ina226: found 2 device attributes
hwmon10, ina226: found 2 device attributes
hwmon11, ina226: found 2 device attributes
hwmon12, ina226: found 2 device attributes
hwmon13, ina226: found 2 device attributes
hwmon14, ina226: found 2 device attributes
hwmon15, ina226: found 2 device attributes
hwmon16, ina226: found 2 device attributes
hwmon17, ina226: found 2 device attributes
hwmon18, max20751: found 0 device attributes
hwmon19, max20751: found 0 device attributes
hwmon2, ina226: found 2 device attributes
hwmon20, ltc2992: found 0 device attributes
hwmon3, ina226: found 2 device attributes
hwmon4, ina226: found 2 device attributes
hwmon5, ina226: found 2 device attributes
hwmon6, ina226: found 2 device attributes
hwmon7, ina226: found 2 device attributes
hwmon8, ina226: found 2 device attributes
hwmon9, ina226: found 2 device attributes
iio:device0, ltc2314-14: found 1 device attributes
iio:device1, ams: found 1 device attributes
iio:device18, adf4371-0: found 2 device attributes
iio:device19, hmc7044: found 7 device attributes
iio:device2, adar1000_csb_1_1: found 39 device attributes
iio:device20, stingray_control: found 0 device attributes
iio:device21, xud_control: found 0 device attributes
iio:device22, imu_control: found 0 device attributes
iio:device23, axi-ad9081-rx-hpc: found 13 device attributes
iio:device24, axi-ad9081-tx-hpc: found 2 device attributes
iio:device3, adar1000_csb_1_2: found 39 device attributes
iio:device4, adar1000_csb_1_3: found 39 device attributes
iio:device5, adar1000_csb_1_4: found 39 device attributes
iio:device6, adar1000_csb_2_1: found 39 device attributes
iio:device7, adar1000_csb_2_2: found 39 device attributes
iio:device8, adar1000_csb_2_3: found 39 device attributes
iio:device9, adar1000_csb_2_4: found 39 device attributes
iio_sysfs_trigger: found 2 device attributes
The result of "iio_attr -d" of project ad9081_fmca_ebz is as follows:
root@analog:~# iio_attr -d
IIO context has 25 devices:
hwmon0, ina226-u76: found 2 device attributes
hwmon1, ina226-u77: found 2 device attributes
hwmon10, ina226-u79: found 2 device attributes
hwmon11, ina226-u81: found 2 device attributes
hwmon12, ina226-u80: found 2 device attributes
hwmon13, ina226-u84: found 2 device attributes
hwmon14, ina226-u16: found 2 device attributes
hwmon15, ina226-u65: found 2 device attributes
hwmon16, ina226-u74: found 2 device attributes
hwmon17, ina226-u75: found 2 device attributes
hwmon18, max20751: found 0 device attributes
hwmon19, max20751: found 0 device attributes
hwmon2, ina226-u78: found 2 device attributes
hwmon3, ina226-u87: found 2 device attributes
hwmon4, ina226-u85: found 2 device attributes
hwmon5, ina226-u86: found 2 device attributes
hwmon6, ina226-u93: found 2 device attributes
hwmon7, ina226-u88: found 2 device attributes
hwmon8, ina226-u15: found 2 device attributes
hwmon9, ina226-u92: found 2 device attributes
iio:device0, xilinx-ams: found 1 device attributes
iio:device1, hmc7044: found 8 device attributes
iio:device2, axi-ad9081-rx-hpc: found 14 device attributes
iio:device3, axi-ad9081-tx-hpc: found 3 device attributes
iio_sysfs_trigger: found 2 device attributes
Do you have any idea about this problem?
Thanks,
Dongyu
Hello,
Which Linux branch/devicetree are you using? If you are using the 2022_R2 branch, there have been some recent updates to the driver, you might need to change the compatible name in the devicetree, as it is shown here:
https://github.com/analogdevicesinc/linux/blob/2022_R2/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-tdd.dts#L37
Thanks,
Ramona
Hi Ramona,
Thanks for your reply! I download the Linux using "git clone https://github.com/analogdevicesinc/linux.git", so I think I use the main branch. I use the "zynqmp-zcu102-rev10-ad9081-m8-l4-tdd.dts" devicetree for projects/ad9081_fmca_ebz/zcu102 and use "zynqmp-zcu102-rev10-stingray.dts" for projects/ad9081_fmca_ebz_x_band/zcu102.
In this case, do I need to change the compatible name? Could you tell me more about why I need to change this name?
Actually, I can detect the tdd device using the hdl documents from here(git clone github.com/.../hdl.git; git switch data_offload) which is part of a tutorial from here. And I use the same devicetree for this project and projects/ad9081_fmca_ebz/zcu102 of hdl_2022_r2.
Do you have any idea about this problem?
Best,
Dongyu
Hello Dongyu,
Yes, even if you are using the main branch you should be changing the compatible name in the devicetree.
The reason for this name change is that the driver for adi-axi-tdd was recently upstreamed, and upon some discussions with the maintainers it was decided that 'adi,axi-tdd' was more suitable, as it is included in the documentation: https://github.com/analogdevicesinc/linux/blob/main/Documentation/devicetree/bindings/misc/adi%2Caxi-tdd.yaml#L60 and as it can be seen in the adi-axi-tdd driver file: github.com/.../adi-axi-tdd.c. Unfortuantely, some of the devicetree examples were not updated in this sense, including the one you used. This issue is only on the linux side, and we will update the remaining devicetrees that use tdd to avoid further confusion.
You should be able to see the device in iio after this change.
Thank you,
Ramona
Hi Ramona,
Thanks for your reply!
I met a problem when I re-build the devicetree, the error is as follows:
pci@pci-virtual-machine:~/linux$ make /xilinx/zynqmp-zcu102-rev10-ad9081-m8-l4-tdd.dtb make: *** No rule to make target '/xilinx/zynqmp-zcu102-rev10-ad9081-m8-l4-tdd.dtb'. Stop.
Do you know how to figure it out? Thanks!
Best,
Dongyu
Hello,
It seems you added an extra '/' to the path. It should be just
make xilinx/zynqmp-zcu102-rev10-ad9081-m8-l4-tdd.dtb
HI Ramona,
I use your command and there is still the same error. I also try to re-build the Image and Devicetree following the instruction here. The Image can be built successfully but for the devicetree, the same error still occurs. Do you have any idea about this? Actually, I when I first run this command, there are so many options. I use the default choice for the most options. After that, this error occurs.
Best,
Dongyu
Hi Ramona,
I figure out the make error. And I change the tdd name in the devicetree "zynqmp-zcu102-rev10-ad9081-m8-l4-tdd.dts" as follows:
// SPDX-License-Identifier: GPL-2.0 /* * Analog Devices AD9081-FMC-EBZ * https://wiki.analog.com/resources/eval/user-guides/quadmxfe/quick-start * https://wiki.analog.com/resources/tools-software/linux-drivers/iio-mxfe/ad9081 * * hdl_project: <ad9081_fmca_ebz/zcu102> * board_revision: <> * * Copyright (C) 2021 Analog Devices Inc. */ #include "zynqmp-zcu102-rev10-ad9081-m8-l4-do.dts" &axi_data_offload_tx { adi,oneshot; adi,sync-config = <1>; }; &axi_data_offload_rx { adi,oneshot; adi,sync-config = <1>; }; &fpga_axi { axi_tdd_0: axi-tdd-0@9c460000 { compatible = "adi,axi-tdd"; reg = <0x9c460000 0x10000>; clocks = <&zynqmp_clk PL0_REF>, <&hmc7044 6>; clock-names = "s_axi_aclk", "intf_clk"; }; }; &axi_ad9081_core_tx { adi,axi-pl-fifo-enable; };
Then I rebuilt the Image and devicetree, but I still cannot detect the adi-tdd device using "iio_attr -d". Do you have any idea about this?
Best,
Dongyu
Hello,
My colleague tested out the devicetree and we figured out why you couldn't see the device with iio_attr. Previously, the tdd driver was an iio driver but after the last update it was moved in misc, and in order to have the device show up in iio you also need to add it as a iio-fake-platform-device. She created a branch with the necessary modifications for your dts, and we tested it out and the device shows up and the attributed can be read/written.
If you build the dtb from this branch: https://github.com/analogdevicesinc/linux/blob/staging/fix-tdd-dts/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-ad9081-m8-l4-tdd.dts#L33 , you should also have the device available. Please let us know if you run into any other issues.
Thank you,
Ramona
Hello,
My colleague tested out the devicetree and we figured out why you couldn't see the device with iio_attr. Previously, the tdd driver was an iio driver but after the last update it was moved in misc, and in order to have the device show up in iio you also need to add it as a iio-fake-platform-device. She created a branch with the necessary modifications for your dts, and we tested it out and the device shows up and the attributed can be read/written.
If you build the dtb from this branch: https://github.com/analogdevicesinc/linux/blob/staging/fix-tdd-dts/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-ad9081-m8-l4-tdd.dts#L33 , you should also have the device available. Please let us know if you run into any other issues.
Thank you,
Ramona
Hi Ramona,
Thanks for your reply! I have tried this devicetree with Image 2022_R2, HDL generated from hdl_2022_R2. And my hardware include a zcu102 and ad9081. But I still cannot detect the tdd device. Could you send me your system, Image and BOOT.bin files? I wondering if my image and hdl are wrong.
Besides, I noticed that there is the address of your new created device "iio_axu_tdd_0" is 0, is this correct?
Thanks,
Dongyu
Hello Dongyu,
Just to check, after you built your devicetree from the branch, did you rename it to "system.dtb" when moving it to the boot partition of the board? If the devicetree is not name "system.dtb" it will not be loaded. We tried with 2 different build versions of the devicetree and the attributes of tdd can be accessed on our end. Moreover, please make sure you export the architecture and the cross-compiler, and that you also make de configuration adi_zynqmp_defconfig, before each build. Here is an example:
export ARCH=arm64 export CROSS_COMPILE=/opt/Xilinx/Vitis/2022.2/gnu/aarch64/lin/aarch64-linux/bin/aarch64-linux-gnu- make adi_zynqmp_defconfig make xilinzynqmp-zcu102-rev10-ad9081-m8-l4-tdd.dtb
Hi Ramona,
Yeah, my pipeline is the same with what you said. I think maybe my image and boot.bin have something wrong. My email is dd7477@princeton.edu. Could you send these files to me? Thanks so much!
Thanks,
Dongyu