But I can’t run Vitis program. Does FPGA-Manager work with XRT? or should I disable it?
IN rootfs config:
CONFIG_xrt
CONFIG_xrt-dev
CONFIG_zocl
CONFIG_opencl-clhpp-dev
CONFIG_opencl-headers-dev
CONFIG_packagegroup-petalinux-opencv
FPGA-manager can work with XRT; it will be just polling mode instead of interrupt mode. For edge platforms, just use Overlay('bitstream.bit') instead of the xclbin; I am not sure at this point if XRT can support bitstream reloading from the xclbin file.
I used to have the bit, hwh, and xclbin all with the same name and the same folder. e.g. dpu.bit, dpu.hwh, dpu.xclbin all sitting in /home/xilinx/jupyter_notebooks/dpu/.
It doesn’t work :\ also I have tried turning off FPGA-MANAGER FPGA_MANAGER_Eclypse-Z7 :=0 but the system wouldn’t boot. Guess for now I will use pynq petalinux flow for this
Now have double-checked.
This design runs on petalinux without FPGA-Manager.
If I create PYNQ system with “FPGA_MANAGER_Eclypse-Z7 := 0” in spec file “System Hangs on starting kernel…” I have created new boot.bin from petalinux project and system boots but xrt doesn’t work.
The idea is this: if you enable FPGA_MANAGER, the interrupt will be disabled, and your device tree won’t have this segment. In this case, the AXI interrupt won’t be available so your XRT cannot work in interrupt mode. On the other hand, if you disable FPGA_MANAGER, you can support AXI interrupt since that segment will be added back; however, you lose the bitstream reconfigurability as a tradeoff.
The underlying reason is that AXI interrupt cannot be dynamically loaded as a device tree dtbo file. This is a known linux issue.
The reason why you have seen linux booting hangs at “starting kernel” is most likely to be the AXI interrupt mismatch - you may have enabled AXI interrupt in device tree, but your boot bitstream does not have that block design.
I have left only PS in my block design and deleted XRT references for XRT in petalinux-project. Still same error. cutecom.log (22.4 KB)
I don’t know what can I do besides petalinux flow for pynq…
/usr/local/lib/python3.6/dist-packages/pynq/pl_server/device.py in download(self, bitstream, parser)
758 def download(self, bitstream, parser=None):
759 if not bitstream.binfile_name:
→ 760 _preload_binfile(bitstream)
761
762 if not bitstream.partial:
I have the same problem with Ultra96v2 board, if you find a solution would be great…We have decided to leave the board, and work with zcu104 where things work smoothly…