Post Go back to editing

Building devicetree ZC702+FMComms5 issues

Category: Hardware
Product Number: AD9361

Hi,

I am using ZC702+FMComms5 with Kuiper Linux. For phase coherent operation, the on-board (external) PLL-Synthesizer ADF5355 has to be utilized (unless another external LO is used). Unfortunately, there is no devicetree in your repo that supports this device (only for ZC706 and ZCU102). 

1.) First, I tried modifying the existing devicetree by comparing all existing devicetrees for ZC702, 706 and ZCU102 (versions with and without ADF5355 support), but these have >1300 lines of code and differ severely even for the same board. By altering the settings here, it is very likely to seriously mess things up, I see no way how to do this properly. I know this link and all related links already: https://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/software/linux/zynq_tips_tricks

2.) I tried modifying and building the devicetree files: https://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/software/linux/zynq_2014r2

As far as I understand, I just have to add the file that contains the ADF5355 support, like the ones for ZC706: https://github.com/analogdevicesinc/linux/blob/ea298d1a9178129fddc3a344ffdc9814bb7c4a13/arch/arm/boot/dts/zynq-zc706-adv7511-ad9361-fmcomms5-ext-lo-adf5355.dts#L4 and ZCU102: https://github.com/analogdevicesinc/linux/blob/ea298d1a9178129fddc3a344ffdc9814bb7c4a13/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-ad9361-fmcomms5-ext-lo-adf5355.dts#L15. But they differ in the setting for the gpio-pin (I don't know what the numbers stand for) and I have no idea what the correct setting for ZC702 would be here.

When I tried building the existing file "zynq-zc702-adv7511-ad9361-fmcomms5.dts" exactly as described by your guide (using Linaro toolchain), I get this error:

vboxuser@Ubuntu22:~/linux$ make zynq_xcomm_adv7511_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/confdata.o
HOSTCC scripts/kconfig/expr.o
LEX scripts/kconfig/lexer.lex.c
/bin/sh: 1: flex: not found
make[1]: *** [scripts/Makefile.host:9: scripts/kconfig/lexer.lex.c] Error 127
make: *** [Makefile:602: zynq_xcomm_adv7511_defconfig] Error 2

3.) I am not even sure if I am doing this correctly and really doubt if It will work at the end at all. Because the ADF5355 is a major feature for a phase coherent operation of the FMCOMMS5, other users would also benefit from a devicetree that supports it. Could you provide one please?

4.) Is there any alternative to get the ADF5355 running with the default ZC702 devicetree?

Please help me, thank you very much!

 

 

Parents
  • Hi,

    As for the error you're seeing is because you don't have 'flex' installed in your system. 

    I would use zc706 as it's way more similar with zc702 than zcu102 which is a completely different beast. That said, the gpio pin seems to be a pin used for detecting the lock. The numbers (112) is the gpio pin you're using in your design. Note there are some offsets depending on the platform so 112 is not the 'real' pin you have in the hdl design. For instance for zc706 we have a 54 offset. So, in this case (note that I do not know if the offset is the same for zc702), 112 would correspond to 58. The second value 0, means that the gpio is active high. FWIW, that devicetree should use this macro.

    - Nuno Sá

  • Hi, thanks for the help. Where can I find the right pin mapping, I have been searching for a whole week now, everything I could find is either incomplete or wrong. I also have no HDL files, only the linux image. No files that I could find on the web or the device itself correspond to the schematic datasheets etc. How am I supposed to know about the offsets applied? Please tell me the correct file location of the pin mapping for the device tree. Also, not all pins have offsets e.g. MIO I/O pins. Pins also have letters not only numbers.

  • Hi,

    Where can I find the right pin mapping, I have been searching for a whole week now, everything I could find is either incomplete or wrong. I also have no HDL files, only the linux image

    I'm no HDL expert but it may very well be that as we don't use ADF5355 in the project we support, the GPIO is not really being exported to the OS. You may also have some trouble with the spi bus. For instance, if you ignore the GPIO and build the devicetree, can you see ADF5355 probing and having proper spi transfers? I'm afraid you may have to customize the hdl project to include the PLL you need. I'll see if someone of the hdl team can take a look to see if a) hdl changes are needed and b) how much tricky would that be.

    - Nuno Sá

  • Thank you very much for your effort, Nuno, I'm still struggling with Linux, so I don't know when I will have tried your suggestion and will be able to report back. I am really looking forward to your message about whether HDL changes need to be made, that would be very bad indeed. If you have any chance to provide the HDL files or the devicetree, I would be very grateful and this would also help other customers as I believe the FMComms5 is still a popular system.  

  • If you have any chance to provide the HDL files or the devicetree, I would be very grateful and this would also help other customers as I believe the FMComms5 is still a popular system.  

    We do have the devicetree for zc702 just without the extra PLL you want. So I'm afraid this will always be an effort that you'll have to do to include that device in our base project. We can try to assist and help but I doubt we're going to add a new project for zc702.

    - Nuno Sá

  • I know about the ZC702 devicetree without the ADF5355 support. Please let me know if your hardware team thinks, that HDL changes are necessary.

    On your wiki page: https://wiki.analog.com/resources/eval/user-guides/ad-fmcomms5-ebz/hardware/configuration_options please make clear that for ZC702 the ADF5355 is not supported by default otherwise it can be misleading and frustrating.

  • Hi,

    There are no differences in HDL related to ADF5355 between ZC702 and ZC706.

    Using a dts similar to the one which instances the ADF5355 in ZC706 should work.

    The pin offset is the same for ZC702 and ZC706, as described here: HDL Architecture — HDL documentation (analogdevicesinc.github.io)

    Ionut

Reply Children