Post Go back to editing

meta-adi with custom board

Hello, 

We have a custom board using the AD9361 and a ZYNQ 7000. This board is loosely based on the ADALM-PLUTO board. Up to this point we have been using the board without linux/petalinux. I am looking into installing petalinux onto the board.

I have created a petaliux build for the device, however am confused by the ADI-meta process.

1. I am using Vivado 2018.2 to generate my board images. 

2. I checkout the 2018_R2 branchof the meta-adi repo.

3. In the petalinux-config --get-hw-description=<> I add the meta-adi-core and meta-adi xilinx

4. The next step according to meta-adi is to set the KERNEL_DTB. However, I am not sure what to set this to. 

When I select KERNEL_DTB = "zynq-zed-adv7511-ad9361-fmcomms2-3" and run petalinux-build I receive the following errors:

Label or path axi_ad9361 not found

Label or path axi_ad9361_dac_dma not found 

etc....



more details
[edited by: Jcrash29V at 2:13 PM (GMT 0) on 6 Jul 2020]
Parents
  • Hi,

    In KERNEL_DTB you cannot assign any random devicetree. Note that the project needs to be supported on meta-adi. Most likely, yours it is not. Hence, you need to add support for it. This is an example on how to add support for a new project (in this case fmcomms11_zc706). The process is fairly simple, the most tricky part is to generate the pl-delete-nodes-*.dtsi file. Typically, You create an empty file and run the build once. At this point the build might fail but we just want to look at the pl.dtsi file generated by petalinux. This file is under path-to-your-project/components/plnx_workspace/device-tree/device-tree/pl.dtsi. You should look at this file and delete all the nodes generated for it. You can look at other supported projects for examples...

    - Nuno Sá

Reply
  • Hi,

    In KERNEL_DTB you cannot assign any random devicetree. Note that the project needs to be supported on meta-adi. Most likely, yours it is not. Hence, you need to add support for it. This is an example on how to add support for a new project (in this case fmcomms11_zc706). The process is fairly simple, the most tricky part is to generate the pl-delete-nodes-*.dtsi file. Typically, You create an empty file and run the build once. At this point the build might fail but we just want to look at the pl.dtsi file generated by petalinux. This file is under path-to-your-project/components/plnx_workspace/device-tree/device-tree/pl.dtsi. You should look at this file and delete all the nodes generated for it. You can look at other supported projects for examples...

    - Nuno Sá

Children
  • Hi Nuno,

    We are working on something similar using fmcomms-5 on custom board (based on Zynq MPSoC). I now understand how to generate pl-delete-nodes-* file for custom boards.

    How about the PS device tree ? Where do we change that?

    Thanks,

    Stephen

  • Hi Stephen,

    So, If I understood your question correctly, to point to your system devicetree, you need to further tweak the device-tree.bbappend. So, I would do the following;

    1. Place your custom devicetree in the files directory (where all the pl-delete-nodes_* files are) and update your SRC_URI.
    2. Append your custom devicetree in KERNEL_DTB_SUPPORTED_zynq.
    3. For simplicity, just comment this check
    4. Replace this line by "cp "${WORKDIR/${KERNEL_DTB}.dts" "${DT_FILES_PATH}/system-top.dts""

    We just added support for our reference designs, so the recipe just assumes the devicetree is present in ADI kernel tree. Adding support for custom devicetrees in meta-adi, is part of my TODO list. For now, I hope the above steps get you going...

    - Nuno Sá