Petalinux : build fails with BSP but succeeds with template Zynq

Hi,

I want to create a Petalinux OS for the Microzed-7020, which would be able to run the pynq library and which would be lighter as possible.

I’m using Petalinux 2020.1 and Vivado 2020.1 btw.

I configure the petalinux project, and I am facing a problem. If I’m using the template “zynq”, it works I’m able to run the pynq library. But if I’m using the official BSP furnished by Avnet, it doesn’t ! (the 2020.1 version).

Steps with the zynq template :

  1. Create a new project with the template :
    petalinux-create -t project -n new_project --template zynq

  2. Configure the project with a hardware description (.xsa), generated with Vivado on the design that I have created.
    petalinux-config --get-hw-description file
    In the petalinux-config wizard, enable :
    DTG Settings => Include “Devicetree overlay”
    DTG Settings =>Include "Remove PL from devicetree”
    FPGA Manager => Include “Fpga Manager”

  3. Configure the kernel and add the driver required :
    petalinux-config -c kernel
    Device Driver => Staging Driver => Xilinx APF Accelerator Driver => Xilinx APF DMA engines support

  4. Configure the rootfs :
    Add those lines in the user-rootfsconfig (project-spec/meta-user) :
    CONFIG_pynq-overlay
    CONFIG_libcma
    CONFIG_python3-pandas
    CONFIG_python3-pynq
    then : petalinux-config -c rootfs
    Add those user packages and add the petalinux packages “lmsensors”,“xrt”, “xrt-dev”.

  5. Build the project : petalinux-build

  6. Create the BOOT.BIN file : petalinux-package --boot --u-boot

With those steps, I can use the 3 files (boot.scr ; BOOT.BIN ; image.ub) in a SD card and boot from it. Then I have an OS that runs the pynq library, I can use Overlay with it (depends on the design I used for the xsa file from step 2) ).

With the BSP it’s different :

  1. Create a new project with the BSP:
    petalinux-create -t project -n mz_bsp -s ./mz7020_fmccc_2020_1.bsp

  2. petalinux-config : same actions in the wizard as with the zynq template

  3. Same

  4. Same

  5. 2 ways :

    1. Add a wks file in meta-user just as explained in this post [PetaLinux 2020.1 and microZed board (xilinx.com)] PetaLinux 2020.1 and microZed board (xilinx.com)
    2. use petalinux-build -c avnet-minimal-image
  6. Try to build : petalinux-build (if wks way)

But then I have an error : “Label or path amba_pl not found”. (for both ways)

I have seen that amba_pl and FPGA_manager doesn’t like each others, but FPGA_manager is required to use the pynq library as seen in this post Deploying PYNQ and Jupyter with Petalinux - Learn - PYNQ (the post linked can’t be applied because the Microzed is not parts of the BOARD repository).

What should I do to have a Petalinux OS based on BSP that runs pynq library ?