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?

Parents
  • Hi Ransara,

    I have a very similar works with you but i encountered some issue that the u-boot cannot finish boot up. i would like to describe it here, 

    We already have a working Petalinux 2021.2 project.

     

    By reference to website,

    https://github.com/analogdevicesinc/meta-adi/blob/2021_R2/meta-adi-xilinx/README.md, I am setting the parameters:

    KERNEL_DTB="zynqmp-zcu102-rev10-ad9361-fmcomms2-3.dts" in file “project-spec/meta-user/conf/petalinuxbsp.conf”. The Petalinux build is ok, however, when I flash the BOOT.BIN to QSPI flash, I cannot boot up the u-boot completely as shown below (the u-boot will stuck after “PMUFW: ”),

     

    Xilinx Zynq MP First Stage Boot Loader

    Release 2021.2   Oct 13 2021  -  07:15:53

    NOTICE:  BL31: v2.4(release):xlnx_rebase_v2.4_2021.1_update1-23-g9188496b9

    NOTICE:  BL31: Built : 07:41:24, Oct 13 2021

     

    U-Boot 2021.01 (Oct 12 2021 - 09:28:42 +0000)

     

    CPU:   ZynqMP

    Silicon: v3

    Model: ZynqMP ZCU102 Rev1.0

    Board: Xilinx ZynqMP

    DRAM:  4 GiB

    PMUFW:         v1.1

     

     

    The original Petalinux project does not have message “Model: ZynqMP ZCU102 Rev1.0”, this looked like the new added ADI yocto layers have taken over the original Petalinux device-tree setting. Currently I am also trying to look into using parameter “DTS_BASE” in file “project-spec/meta-user/conf/petalinuxbsp.conf” but I am not successfully using this parameter yet.

     

    Because of our custom board design, I cannot use the ADI ready built project to apply to our Petalinux board directly, I think there are other setting need to apply also. Do you have any ideas/advices that additional setting required to make the Petalinux project runnable on our custom hardware?

    Thanks and Best Regards. 

Reply
  • Hi Ransara,

    I have a very similar works with you but i encountered some issue that the u-boot cannot finish boot up. i would like to describe it here, 

    We already have a working Petalinux 2021.2 project.

     

    By reference to website,

    https://github.com/analogdevicesinc/meta-adi/blob/2021_R2/meta-adi-xilinx/README.md, I am setting the parameters:

    KERNEL_DTB="zynqmp-zcu102-rev10-ad9361-fmcomms2-3.dts" in file “project-spec/meta-user/conf/petalinuxbsp.conf”. The Petalinux build is ok, however, when I flash the BOOT.BIN to QSPI flash, I cannot boot up the u-boot completely as shown below (the u-boot will stuck after “PMUFW: ”),

     

    Xilinx Zynq MP First Stage Boot Loader

    Release 2021.2   Oct 13 2021  -  07:15:53

    NOTICE:  BL31: v2.4(release):xlnx_rebase_v2.4_2021.1_update1-23-g9188496b9

    NOTICE:  BL31: Built : 07:41:24, Oct 13 2021

     

    U-Boot 2021.01 (Oct 12 2021 - 09:28:42 +0000)

     

    CPU:   ZynqMP

    Silicon: v3

    Model: ZynqMP ZCU102 Rev1.0

    Board: Xilinx ZynqMP

    DRAM:  4 GiB

    PMUFW:         v1.1

     

     

    The original Petalinux project does not have message “Model: ZynqMP ZCU102 Rev1.0”, this looked like the new added ADI yocto layers have taken over the original Petalinux device-tree setting. Currently I am also trying to look into using parameter “DTS_BASE” in file “project-spec/meta-user/conf/petalinuxbsp.conf” but I am not successfully using this parameter yet.

     

    Because of our custom board design, I cannot use the ADI ready built project to apply to our Petalinux board directly, I think there are other setting need to apply also. Do you have any ideas/advices that additional setting required to make the Petalinux project runnable on our custom hardware?

    Thanks and Best Regards. 

Children