Recently we I a new ZYNQ UltraScale+ board from Alinx, the AXU15EGB in particular.
Got petalinux build successfully but now we want to add the ability to use the PYNQ overlay on our board.
I am completely lost at how this process is actually done, going over multiple tutorials, it’s still not clear to me how can a unsupported board be able to run PYNQ.
The author does a great job at explaining every step of the process, however they still assumes we are using the ZCU104 board and thus utilizing that bsp. How could this same process be replicated with a new “unsupported” board?
In this other tutorial they give an example of how to deal in case no bsp is available, but am really confused as to how to integrate that step to the previous tutorial.
If a suitable PetaLinux BSP is unavailable for the board then BSP_${BOARD} can be left blank; in this case, users have two options:
Place a <design_name>.xsa file in the petalinux_bsp/hardware_project folder. As part of the build flow, a new BSP will be created from this XSA file.
Place a makefile along with tcl files which can generate the hardware design in the petalinux_bsp/hardware_project folder. As part of the build flow, the hardware design along with the XSA file will be generated, then a new BSP will be created from this XSA file.
For more context, we are using:
Vivado 2020.1
Petalinux 2020.1
We built petalinux using the .xsa generated by Vivado.
You will need to use the BSP for the AXU15EGB board. Either use the one supplied by Alinx, or make your own one using Petalinux (you will need to look through the Petalinux documentation on instructions on how to do this). If Alinx don’t supply a BSP, I would contact them directly to ask for one. Making your own BSP can be difficult, especially if you don’t have any experience with device trees.
To make your PYNQ board folder, you should follow the file structure of the other PYNQ boards. The ZCU111 is a good example as it doesn’t contain a base overlay.
Your file structure should look something like this:
If there are any device-tree or u-boot options you need to use, these go into the petalinux_bsp/ directory (see the ZCU111 board directory for an example of what should be in there).
Once you have all this, you can place your AXU15EGB board directory within the PYNQ/boards directory and build the image by running:
cd PYNQ/sdbuild
make boards=AXU15EGB
The latest version of PYNQ (v3.1) uses Vivado and Petalinux version 2024.1. You will need to use this version in order to build an image.
Hopefully this will get you moving along. More details of what I’ve explained here are in the documentation.