# Adding PYNQ to an existing Petalinux build on a new board without BSP

**URL:** <https://discuss.pynq.io/t/adding-pynq-to-an-existing-petalinux-build-on-a-new-board-without-bsp/8827>\
**Category:** Support\
**Created:** [October 21, 2025, 2:15pm UTC](https://discuss.pynq.io/t/adding-pynq-to-an-existing-petalinux-build-on-a-new-board-without-bsp/8827 "2025-10-21T14:15:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![crispy245](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/crispy245/32/7307_2.png) [@crispy245](https://discuss.pynq.io/u/crispy245)\
**Post date:** [October 21, 2025, 2:15pm UTC](https://discuss.pynq.io/t/adding-pynq-to-an-existing-petalinux-build-on-a-new-board-without-bsp/8827/1 "2025-10-21T14:15:23Z")

</div>

Hi,

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 closest we have gotten is with this tutorial: [Deploying PYNQ and Jupyter with Petalinux](https://discuss.pynq.io/t/deploying-pynq-and-jupyter-with-petalinux/677)

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.

> **[PYNQ SD Card image — Python productivity for Zynq (Pynq)](https://pynq.readthedocs.io/en/latest/pynq_sd_card.html#pynq-sd-card)**

If a suitable PetaLinux BSP is unavailable for the board then `BSP_${BOARD}` can be left blank; in this case, users have two options:

> 1. 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.
> 
> 2. 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.

Thanks,

Aldo @ NYCU

---

<div class="post-metadata">

**Author:** ![joshgoldsmith](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/joshgoldsmith/32/5347_2.png) [@joshgoldsmith](https://discuss.pynq.io/u/joshgoldsmith)\
**Post date:** [October 24, 2025, 9:57am UTC](https://discuss.pynq.io/t/adding-pynq-to-an-existing-petalinux-build-on-a-new-board-without-bsp/8827/2 "2025-10-24T09:57:31Z")

</div>

Hi @crispy245

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](https://github.com/Xilinx/RFSoC-PYNQ/tree/master/boards/ZCU111) is a good example as it doesn’t contain a base overlay.

Your file structure should look something like this:

```auto
AXU15EGB/
    - AXU15EGB.bsp
    - petalinux_bsp/
    - AXU15EGB.spec

```

Your AXU15EGB.spec file will look something like this

```auto
ARCH_AXU15EGB := aarch64
BSP_AXU15EGB := AXU15EGB.bsp
FPGA_MANAGER_AXU15EGB := 1

STAGE4_PACKAGES_AXU15EGB := xrt pynq ethernet

```

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](https://github.com/Xilinx/RFSoC-PYNQ/tree/master/boards/ZCU111/petalinux_bsp/meta-user) 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:

```auto
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](https://pynq.readthedocs.io/en/latest/pynq_sd_card.html#retargeting-to-a-different-board).

---

<div class="post-metadata">

**Author:** ![system](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/system/32/2_2.png) [@system](https://discuss.pynq.io/u/system)\
**Post date:** [October 29, 2025, 7:38am UTC](https://discuss.pynq.io/t/adding-pynq-to-an-existing-petalinux-build-on-a-new-board-without-bsp/8827/3 "2025-10-29T07:38:43Z")

</div>

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.
