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,
- Add user layers.
- Run petalinux-build and let the build fail.
- 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".
- Place them both in device-tree/files folder and update the device-tree.bbappend
- 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.
- Add user layers.
- Copied the pl-delete-nodes and the device tree from the previous project to device-tree/files.
- The addresses were not affected since I had already modified them to match the combined hardware design.
- Modified the device-tree.bbappend.
- 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?