# Loading .bit files on ZCU-216

**URL:** <https://discuss.pynq.io/t/loading-bit-files-on-zcu-216/7548>\
**Category:** Support\
**Created:** [October 1, 2024, 12:37pm UTC](https://discuss.pynq.io/t/loading-bit-files-on-zcu-216/7548 "2024-10-01T12:37:24Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dnaddor](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@dnaddor](https://discuss.pynq.io/u/dnaddor)\
**Post date:** [October 1, 2024, 12:37pm UTC](https://discuss.pynq.io/t/loading-bit-files-on-zcu-216/7548/1 "2024-10-01T12:37:24Z")

</div>

We are using PYNQ v3.01. The ZCU-216 was not included by default but we followed the procedure for adding our own board and it appears to work just fine. The procedure for building Pynq v3.01 required using Vivado version 2022.1. However, our customer requires Vivado 2021.2, not 2022.1.

_ **Question: Can you use.bit and .hwh files created with Vivado 2021.2 on PYNQ v3.01 which was built using Vivado 2022.1?** _

We created a simple design which used GPIO to control the blue LEDs. We preloaded an output value of 0x55 to force a specific pattern. Here is the block diagram:

 ![Blink216](https://us1.discourse-cdn.com/flex019/uploads/pynq1/original/2X/0/0932c431318a071d0fd084d1081347cf35ea030f.jpeg)

The first time we tried to execute Overlay(‘blink216.bit’), we got an error that the XRT environment was missing. So we added this line to ZCU216.spec:

```
            STAGE4_PACKAGES := xrt

```

_ **Question: We got errors building if we included all the packages in Pynq-Z2.spec. What else is required beyond xrt?** _

After doing this, when we execute:

Overlay(‘blink216.bit’)

The blue LEDs change which means it worked! But then we get the following errors:

root@pynq:/# python3  
Python 3.10.4 (main, Apr 2 2022, 09:04:19) [GCC 11.2.0] on linux  
Type “help”, “copyright”, “credits” or “license” for more information.

> > > from pynq import Overlay  
> > > Overlay(‘blink216.bit’)  
> > > Load Xclbin Failed  
> > > Traceback (most recent call last):  
> > > File “”, line 1, in   
> > > File “/usr/local/share/pynq-venv/lib/python3.10/site-packages/pynq/overlay.py”, line 348, in **init**  
> > > self.download()  
> > > File “/usr/local/share/pynq-venv/lib/python3.10/site-packages/pynq/overlay.py”, line 428, in download  
> > > super().download(self.parser)  
> > > File “/usr/local/share/pynq-venv/lib/python3.10/site-packages/pynq/bitstream.py”, line 168, in download  
> > > self.device.download(self, parser)  
> > > File “/usr/local/share/pynq-venv/lib/python3.10/site-packages/pynq/pl\_server/embedded\_device.py”, line 686, in download  
> > > self.\_xrt\_download(parser.xclbin\_data)  
> > > File “/usr/local/share/pynq-venv/lib/python3.10/site-packages/pynq/pl\_server/xrt\_device.py”, line 529, in \_xrt\_download  
> > > raise RuntimeError(  
> > > RuntimeError: Programming Device failed: ENODEV (19) No such device

Hope someone can explain what this means.

Thank you!

---

<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 2, 2024, 8:30am UTC](https://discuss.pynq.io/t/loading-bit-files-on-zcu-216/7548/2 "2024-10-02T08:30:38Z")

</div>

Hi dnaddor,

Your problem does seem to be with xrt. While on the board, can you tell me what the output of the following commands are:

```sh
echo $XILINX_XRT`
sudo find /usr/lib -iname "*libxrt*"
sudo find /usr/lib -iname "*zocl*"
sudo xbutil examine

```

Josh

---

<div class="post-metadata">

**Author:** ![dnaddor](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@dnaddor](https://discuss.pynq.io/u/dnaddor)\
**Post date:** [October 2, 2024, 12:35pm UTC](https://discuss.pynq.io/t/loading-bit-files-on-zcu-216/7548/3 "2024-10-02T12:35:57Z")

</div>

Here is the output:

root@pynq:/# echo $XILINX\_XRT  
/usr  
root@pynq:/# find /usr/lib -iname “_libxrt_”  
/usr/lib/libxrt\_core.so  
/usr/lib/libxrt++\_static.a  
/usr/lib/libxrt\_hwemu.so  
/usr/lib/libxrt\_hwemu.so.2  
/usr/lib/libxrt\_swemu.so.2  
/usr/lib/libxrt++.so.2.13.0  
/usr/lib/libxrt++.so.2  
/usr/lib/libxrt\_coreutil\_static.a  
/usr/lib/libxrt\_hwemu.so.2.13.0  
/usr/lib/libxrt\_coreutil.so.2.13.0  
/usr/lib/libxrt\_coreutil.so  
/usr/lib/libxrt\_coreutil.so.2  
/usr/lib/libxrt++.so  
/usr/lib/libxrt\_core.so.2  
/usr/lib/libxrt\_swemu.so  
/usr/lib/libxrt\_swemu.so.2.13.0  
/usr/lib/libxrt\_core.so.2.13.0  
root@pynq:/# find /usr/lib -iname “_zocl_”  
/usr/lib/modules/5.15.19-xilinx-v2022.1/extra/zocl.ko  
root@pynq:/# xbutil examine  
System Configuration  
OS Name : Linux  
Release : 5.15.19-xilinx-v2022.1  
Version : #1 SMP Mon Apr 11 17:52:14 UTC 2022  
Machine : aarch64  
CPU Cores : 4  
Memory : 3931 MB  
Distribution : PynqLinux, based on Ubuntu 22.04  
GLIBC : 2.35  
Model : ZynqMP ZCU216 RevA

XRT  
Version : 2.13.0  
Branch : temp  
Hash : f5505e402c2ca1ffe45eb6d3a9399b23a0dc8776  
Hash Date : 2022-10-21 17:40:17  
ZOCL : 2.13.0, f5505e402c2ca1ffe45eb6d3a9399b23a0dc8776

Devices present  
0 devices found  
BDF : Shell Platform UUID Device ID Device Ready\*

- Devices that are not ready will have reduced functionality when using XRT tools  
root@pynq:/#

See anything useful?

Thanks,  
Dave

---

<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 3, 2024, 8:36am UTC](https://discuss.pynq.io/t/loading-bit-files-on-zcu-216/7548/4 "2024-10-03T08:36:01Z")

</div>

It looks like you have the correct libraries installed and the XRT environment variable is set correctly. However, you’ll see from the output of `xbutil examine` that no devices are found.

This might be a device tree issue. In particular, the zocl device tree snippet is needed for XRT to detect devices. This should be appended to the device tree during the sdbuild process (as shown [here](https://github.com/Xilinx/PYNQ/blob/master/sdbuild/boot/meta-pynq/recipes-bsp/device-tree/device-tree.bbappend)).

I’d maybe investigate the device tree on the board to make sure that is present.

Josh
