17 Replies Latest reply on Jan 20, 2021 11:39 AM by drozwood90

    Using of pre-defined Vitis 2020.1 Platform, ultra96-v2


      Hello, I have tried a lot of approached to get XRT working on an OpenCL application on (Petalinux + Vitis) 2019.2 and 2020.1 at the moment, but all failed, as the XRT interrupt controller failed to start the application.
      So I downloaded the Vitis pre-defined platform from your one-drive (from reference-designs):

      I am using Vitis 2020.1 and trying to run the vector-addition example. All goes well at the building stage of the platform and the building of the application, but when I download to the board I get this...

      I tried several ways around but I can't get over it.

      I have investigated on Xilinx-forums that Interrupt Controller is a bit problematic and needs to be replaced with a Concat module, instead of Interupt Controller but haven't tried yet, as I don't know what implications this will have on Petalinux-build.

      I wanted to ask if anyone has this platform running and booting okay. I want to use XRT and run OpenCL-applications..

      Thank you very much for your time,
      Alexander E

        • Re: Using of pre-defined Vitis 2020.1 Platform, ultra96-v2

          HI there,


          I am not sure I am completely following what you are asking.

          Please help me better understand.


          What I think I understand, you want to know how to use the interrupt controller?  With Vitis you MUST use a concat module.  There is no choice.  That is how the tool interacts with the hardware.


          If you are using the image (2020p1_ULTRA96V2_vadd.tar.gz from the Vitis_PreBuilt_Example folder) you downloaded from the Link you posted, there should be no problem running the Vector Add.  That is how I test those images and why I include them as part of the download.  You need only program the SDCARD per the readme, set your boot switches for SDCARD, insert the SDCARD and power up.


          If you are having issues working out how to add the various modules to the platform downloaded from the Vitis_Platform folder, everything is already in there.  You just use it by adding in the example design in the Vitis wizard.  You can also use the code in our Github, then make the image using the make commands in the vitis repository, which should provide you the same thing as was posted.  That will provide you with all of the pieces that you can then modify as you see fit.  If this is what you want do try, you can see our many build articles that demonstrate how to get the Github repositories, and how to build with them.


          If you are trying to do something else, you need to also take a look at the build files where we add Vitis Directives.  You need to explain to the tool what interrupts are available.


          Without explaining that, the tool does not know what to do with IRQ and how to hook them up.

          Specifically this line:



          Hopefully that answered your question.  If not, again, please help me understand what you are after.  I am not totally clear on your need.



          1 of 1 people found this helpful
            • Re: Using of pre-defined Vitis 2020.1 Platform, ultra96-v2

              Hello Dan and thanks for your answer!

              I am downloading the platform of the link and trying to create an application based on that platform. But the execution of the application on ultra96v2 is failing, as the image shows above.
              So either the platform is not working correctly with XRT-applications, or I am doing something wrong on the creation of the application in Vitis (which I doubt as I am using the vector-addition example...even other examples are not running).

              Now what I was saying is that there are Interrupt controllers on the block-design of the OOB-platform that is posted on the link, which may not work properly with the XRT? I don't know, just trying to figure out how to solve this...

              Thanks for your time

                • Re: Using of pre-defined Vitis 2020.1 Platform, ultra96-v2

                  Hi there,


                  I am not seeing where anything is being run in that screen shot.  It looks to me that the screen shot is from when the system is still booting up.


                  • To confirm, you downloaded this file:
                    and you validated with this MD5: 6eb0d9ecfe43b8a8545c4fe2dd6b2050
                  • From there, you extracted to a folder.
                  • Then using the Vitis wizard, created a new application.
                  • When asked for platform, you pointed to that folder?


                  If so, I think we need more details, as that flow is what was used to generate this file:



                  Have you tested this file?  It is a prebuilt file that already uses vadd.  If not, I suggest you download and test that as it is a known good setup with accelerator in there.  This will help validate that your Ultra96v2 is setup properly.  The readme explains how to setup your SDCARD with that image file.


                  Another question, have you set your environment variables as the readme explains?


                  *** Ultra96-V2 == sd-mmcblk0p1

                  # cd /media/sd-mmcblk<0|1>p1

                  # export XILINX_XRT=/usr

                  # ./vadd binary_container_1.xclbin


                  *** If you see a "polling(0)" and "TEST PASSED" message you know the vadd

                  *** application ran successfully



                  1 of 1 people found this helpful
                    • Re: Using of pre-defined Vitis 2020.1 Platform, ultra96-v2

                      Hello Daniel! Yes correct it's not even booting as you can see something is wrong with the IRQ. This is happening with your image when I try to boot up (the first screenshot posted).

                      With my images (created with Petalinux and Vitis tools of 2020.1) most of the times I boot correctly and try to run the application (yes I Import the xrt before running) but always getting something like this screenshot

                      I am not able to understand what I am doing wrong with the Interrupt Controller and what I need to add to Petalinux to trigger the ZYNQ correctly, so it runs the application. As you can see it hangs there waiting for the interrupt to wake up..

                      Also I would like to point out that I am doing stuff with Ultra96 about 3 months now, followed several tutorials and several ultra96-v2 guides. The reason I came here is because it's the official forums and you have upload pre-build images for ultra96v2 to test. Even if these images fail to run, then the problem should be the hardware of the board, I don't know...


                      I will run the application you pointed out, and come back with more details in this.


                      • Re: Using of pre-defined Vitis 2020.1 Platform, ultra96-v2

                        So we downloaded the image you mentioned , me and a co-worker of mine (different pcs, different devices), and we both faced the same issue.
                        The boot is hanging on boot:

                        Probably it does not find the rootfs folder. I tried with gparted to extend the 2nd partition (of rootfs), but the problem still exists when I re-write the image.
                        Also when I try to access the 2nd partition, it gives me an error "Unable to open disk-partition", so probably the 2nd partition is corrupted or something.

                        I am creating a 500gb virtual machine with all tools, following your documentation, so we are in exactly the same flow. Planning to run your automated tcl-scripts and see how it goes step by step.

                        Thank you very much for your time

                          • Re: Using of pre-defined Vitis 2020.1 Platform, ultra96-v2

                            Hi there,


                            Are you using the SDCARD that comes with the U96v2 kit?

                            Certain brands of SDCARD can have issues.  I find it really strange that you are not booting well - since these are tested images.  They do not get released without being tested as functional.


                            Have you verified the MD5 of the downloaded files?  Have you checked your boot switches?


                            I have seen the "bad geometry" issue in the past if you do not use a compatible SDCARD.  That is, I used the provided Delkin card without issue. I wrote the same image to another card I had received from Amazon - and that would not boot the SAME image using the other brand.  For what it's worth, this just happened to me 3 days ago.  Please double check the MD5 and that you are using the supplied Delkin SDCARD.



                              • Re: Using of pre-defined Vitis 2020.1 Platform, ultra96-v2

                                I am using the sd-card that came with the board, it writes on it "Utility HC 16GB Delkin Devices".
                                Also I did check me md5 sum and it was correct, before the unzip.

                                My coworker has the same sd-card, which came with the ultra96-v2 board. He did not check the m5 sum.

                                Boot switches are always on sd-card boot, haven't changed.

                                Maybe is the BalenaEtcher which writes the .img file to the SD card? I can't think anything else. How do you download the image file to the sd-card, what program you use?