Post Go back to editing

ADI meta-xilinx layer + Xilinx VCU BSP device tree issue

Category: Software
Product Number: AD9361
Software Version: 2021.2

I am trying to create a linux image for a hardware design combining both Xilinx VCU TRD and fmcomms reference design from ADI on zcu106.

I have followed steps in the readme in the meta-adi git repo to create a linux image using the meta-adi and it tested fine for the reference hardware design. The pins were assigned to match zcu106.

My steps were,

  1. Add user layers.
  2. Run petalinux-build and let the build fail.
  3. Create pl-delete-nodes<>.dtsi and dts file using the zcu102-fmcomms2-3 dts file from adi git repo. Modified the zynqmp-zcu102-rev10-ad9361-fmcomms2-3.dts by adding the line "#include "zynqmp-zcu106-revA.dts" and commenting #include "zynqmp-zcu102-rev1.0.dts".
  4. Place them both in device-tree/files folder and update the device-tree.bbappend
  5. Run petalinux-build

The VCU TRD uses the usual petalinux device tree generation procedure and uses system-user.dtsi to do the modifications.

I confirmed the operation of the individual sections, fmcomms3 section in the PL with the aforementioned meta-adi linux image, xilinx vcu section in the PL with xilinx vcu bsp project. They both operated to my expectations.

Then I followed almost the same steps to create a linux image using meta-adi layers on top of xilinx vcu bsp.

  1. Add user layers.
  2. Copied the pl-delete-nodes and the device tree from the previous project to device-tree/files.
  3. The addresses were not affected since I had already modified them to match the combined hardware design.
  4. Modified the device-tree.bbappend.
  5. However I had to remove all the nodes in pl.dtsi using the pl-delete-nodes for the device tree to compile correctly. The system-user.dtsi could not detect the nodes in pl.dtsi

Finally I got the system up and running. However the VCU pipeline is not operating at all. /dev/media0 node is missing and in the Xilinx forums it mentions that the issue is in the device tree.

How does the meta-adi layer handle the device tree? Why bother creating pl-delete-nodes if the pl.dtsi is ignored altogether? Have I done correctly in regarding creating a linux image using meta-adi layers for a custom platform despite I tested it ok for reference hardware design modified to zcu106?

I only need the support to control the fmcomms, it would be nice if I can use the ADI-DMAs and receive data through Ethernet, but not essential. I assume I only would require libiio support? is it too much of a hassle as mentioned in https://ez.analog.com/linux-software-drivers/f/q-a/558008/failure-in-adding-adrv9009-dtsi-file to manually add the libraries and drivers without using meta-adi?