element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Blog 2020.1 Vitis Repo Changes!
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: drozwood90
  • Date Created: 2 Nov 2020 5:14 PM Date Created
  • Views 1090 views
  • Likes 6 likes
  • Comments 3 comments
  • ultra96-v2
  • ultrazed-ev
  • ultrazed-ev starter kit
  • vitis 2020.1
  • ultrazed
  • how to make
  • ultrazed-ev carrier card
  • make
  • ultrazed-eg
  • vitis platform
  • vitis-ai
  • ultrazed-eg-iocc
  • ultrazed-eg-pciec
  • ultra96-v2_dpu
  • xilinx;
  • xilinx fpga
  • vitis
Related
Recommended

2020.1 Vitis Repo Changes!

drozwood90
drozwood90
2 Nov 2020

Hi all,

 

In preparation for my next Vitis blog, "Learning Vitis 5 Getting started with a custom Vitis Platform" we had been wrapping our heads around Vitis and what it means for you!

Taking feedback from the field and trying to consider what an end user needs, we have made additional changes to the Vitis make files since my series started.  That is one reason my 5th blog was held up!

 

Like with our other repositories, we like to give you a straightforward answer to your support needs.

As seen by previous posts to Element 14:

Updated Designed By Avnet BSP SURL 2019.1: http://avnet.me/DBA_BSPS_PLATFORMS_2019p1

Updated Designed By Avnet BSP SURL 2019.2: http://avnet.me/DBA_BSPS_PLATFORMS_2019p2

Updated Designed By Avnet BSP SURL 2020.1: http://avnet.me/DBA_BSPS_PLATFORMS_2020p1

 

We like to provide a BSP, a Platform and a working example.  This helps get you up and running as quickly as possible with a sanity check on your tools/flow/custom solutions.  It also was suggested by an E14 member to add in the tag names.  It was a great suggestion and helps you get to where you need as quickly as you can without needing to hunt around for details!

 

Lets get right into the blog!

 

First, if you are not familiar with Avnet's build flow, please go back and check out these blogs by my colleague narrucmot.  He put these together to quickly and easily to get people a fast understanding of our basic repositories.  They will help you understand how we leverage our 3 main repositories (BDF, HDL, PetaLinux).  Knowing that, you will better understand how the Vitis repository is really a puppet-master for those repositories.

 

I suggest you view them in order, HDL, PetaLinux, then How to speed up PetaLinux builds:

Avnet HDL git HOWTO (Vivado 2020.1 and earlier)

Using Avnet Build Scripts to Build a PetaLinux BSP (2019.2 and earlier)

Accelerating PetaLinux BSP Build Time

 

From there, I have my Vitis series I have been working on:

Learning Vitis: 1 Setting up a Virtual Machine

 

The first 4 blogs takes you through using an existing platform (which we provide) and use that to generate an application.  There are also 5 Quickie Tips type blogs to help reduce your effort using the tools.

 

Here are the largest 2020.1 changes!

  1. Can now build example application from scratch using 1 command!
    1. For example Vector Add for UltraZed-EV EVCC: make UZ7EV_EVCC 'step=xsa plnx sysroot pfm app'
    2. The idea is that you can leverage the each generated step (XSA, PLNX, etc.) and then the app path to generate your own custom application and flow!
    3. Leveraging a clean and then an app build also allows for easier iterative builds without needing to rebuild the entirety of the platform flow!
    4. Takes the place of the previously mentioned 4 blogs - assuming you understand them, you would not need to use the GUI any longer!
  2. Can now build a DPU-TRD enabled platform from scratch with 1 command!
    1. Allows you to more easily layer on DPU functions
    2. This is the base for the Vitis AI 1.2 images as seen on Hackster.IO
    3. https://www.hackster.io/AlbertaBeef/vitis-ai-1-2-flow-for-avnet-vitis-platforms-7cb3aa
    4. For example to build the DPU-TRD for UltraZed-EV EVCC AND UltraZed-EG with IOCC:
      1. make UZ7EV_EVCC UZ3EG_IOCC 'step=xsa plnx sysroot pfm dpu'
  3. Cleaning in typical make methodology
    1. make UZ7EV_EVCC step=cleanxsa then follow that step with make UZ7EV_EVCC step=xsa
    2. (it seems Ubuntu 18 sometimes has issues releasing a file link after being deleted, so make UZ7EV_EVCC 'step=cleanxsa xsa' DOES work under Ubuntu 16, under Ubuntu 18, you will need to execute 2 commands)
  4. When building an application, a .IMG is generated
    1. a simple DD to get you up and running as that is now all auto-packaged up for you!
    2. sudo dd bs=4M if={platformIMGname}.img of=/dev/sd{X} status=progress conv=fsync
  5. Better help messaging
    1. image
    2. image
  6. Emulation steps added into the build flow
    1. Now you can choose one of THREE options for building: SW-Emulation, HW-Emulation, Hardware
    2. Build times grow exponentially (especially at the first build) for each in order
    3. My testing has shown, ~5 minutes, ~15 minutes, ~45 minutes respectively ** again this was for the FIRST build just after a clean, times are much less depending on application, build, changes, etc.
  7. Note that we are continuing to default the build to generate the XSA, PetaLinux project, SysRoot, and Platform.  It seems most users have asked for that since they want to customize this later.

For those not seeing the advantage, you can, in true make methodology, add the step= command, OR you can certainly modify the make flow by a simple edit of projectMakefile.mk

image

 

image

For example, to automatically build the Vector Addition Application, change the all: line from

all: xsa plnx sysroot pfm

to

all: xsa plnx sysroot pfm app

 

Now when you run:

make UZ7EV_EVCC

 

You will get the XSA, PetaLinux BSP, SysRoot, Vitis Platform, AND the Vector Add Application.  As mentioned in point 1, you can leverage that application step to generate your own custom accelerator!

 

If you have a suggestion, let us know below!   Feedback is always welcome - especially since the point of this is to help you!

Buy Ultra96-V2Buy Ultra96-V2
Buy Ultra96-V2 I-gradeBuy Ultra96-V2 I-grade
Buy Ultra96-V2 4A Power SupplyBuy Ultra96-V2 4A Power Supply
Buy Ultra96-V2 JTAG/UART PodBuy Ultra96-V2 JTAG/UART Pod
Buy UltraZed-EG Starter KitBuy UltraZed-EG Starter Kit
Buy UltraZed-EV Starter KitBuy UltraZed-EV Starter Kit
  • Sign in to reply

Top Comments

  • pmdp3
    pmdp3 over 4 years ago +1
    Hello, This is awesome! Thanks for the hard work. I tried to use what is described but unfortunately, I had an issue as when I checkout the 2020.1 branch of petalinux, there is no make_uz_petalinux_bsp…
  • pmdp3
    pmdp3 over 4 years ago in reply to pmdp3 +1
    I realized one issue. At first, I used the default configuration files and BUILD_FROM_TAG was set to true. Therefore, I had to checkout a specific tag and in that case, the makefile was looking for make_uz_petalinux…
  • drozwood90
    drozwood90 over 4 years ago in reply to pmdp3

    Hi Pierre,

     

    This is the first time we are coordinating across all repositories, so thank you for posting the corner case.  We highly suggest people build from a tag as that is where we tag and test from (from a public release standpoint!).  Your suggestion, made us realize that people will still attempt to build from the branches.  We are going to make an effort to change that variable to false to account for this in the future.  All tags will still enforce this being true, but thank you for bringing this to our attention!

     

    https://github.com/Avnet/petalinux/commit/4f5924733866b44fb7271d70f37f93ca6bdc6479

     

    That's the commit, so anyone that has a "current" copy of the branch, I will suggest pulling down fresh (I have recently seen some strange things where checking out and what-not is not as consistent as one would want).

     

    --Dan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • pmdp3
    pmdp3 over 4 years ago in reply to pmdp3

    I realized one issue. At first, I used the default configuration files and BUILD_FROM_TAG was set to true. Therefore, I had to checkout a specific tag and in that case, the makefile was looking for make_uz_petalinux.sh. Now it seems that it is ok if you set BUILD_FROM_TAG to false in common.sh. However, this will generate a warning that the tags are not consistent...

     

    I hope this will help someone... Yocto is building now!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • pmdp3
    pmdp3 over 4 years ago

    Hello,

     

    This is awesome! Thanks for the hard work. I tried to use what is described but unfortunately, I had an issue as when I checkout the 2020.1 branch of petalinux, there is no make_uz_petalinux_bsp.sh in the scripts directory. Therefore the building process fails... What did I miss image?

     

    Pierre

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube