element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • 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
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Software Application Development Question about BSP workflow - UltraZed
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 5 replies
  • Subscribers 330 subscribers
  • Views 718 views
  • Users 0 members are here
Related

Question about BSP workflow - UltraZed

wblee
wblee over 7 years ago

Greetings,

I just picked up an UltraZed SoM and the accompanying PCIe carrier card.  I've successfully launched the Out-of-Box Linux provided with the SD card and made it to the Linux console.  Additionally, I've created a HW project in Vivado to control some LEDs and read some buttons, exported it to SDK and wrote a Standalone application in C. This all worked.

I'm trying now to make the connection between implementing HW in PL via Vivado, then interacting with it via Linux.  I see that Avnet provides a BSP for the PCIe carrier card, which can be downloaded under this link:

http://zedboard.org/support/design/17956/141

What I don't understand is how do I incorporate this BSP into the SDK so that my exported HW design can be added and the BOOT files can be generated for the SD card.  I've read a lot online and seen that it's recommended to have a Linux host and install Petalinux so that you can create the BSPs from the .HDF via the Linux shell.  However, is this necessary if Avnet already provided us a BSP?  I'm just looking to join the PL and PS in the simplest manner and not looking to modify Linux in any major way.

So concrete my question is:

=> What is the best workflow to go from a HW design in Vivado to controlling it in Linux?  Is this possible using the SDK and the provided BSP from Avnet? Or do I have to take my .HDF file, move it to my Linux host system/virtualbox (I mostly work on Windows), run the shell commands to generate the BSP, then transfer it to the SD card or flash?  If I make a change to the HW do I have to repeat this entire process?

Thanks in advance for the help.

- WBLee

  • Sign in to reply
  • Cancel
  • jafoste4
    0 jafoste4 over 7 years ago

    Hello WBLee,

    If you are new to this flow, my suggestion would be to read through our Petalinux Speedway that targets MiniZed. After reading through it apply those practices to yout UltraZed SOM + PCIe Carrier Card. Please view the Integrating Sensors on MiniZed with PetaLinux located here:

    http://zedboard.org/support/trainings-and-videos

     

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • wblee
    0 wblee over 7 years ago in reply to jafoste4

    Hello Josh,

    thank you for the link.  I watched videos 1-6 and 8-9  and looked through the accompanying lab manual.  While this did a very good job of explaining how to use Petalinux on a Linux system via the command line, it didn't really answer my primary question:

    => What is the best workflow to go from a HW design in Vivado to controlling it in Linux?  Is this possible using the SDK and the provided BSP from Avnet? Or do I have to take my .HDF file, move it to my Linux host system/virtualbox (I mostly work on Windows), run the shell commands to generate the BSP, then transfer it to the SD card or flash?  If I make a change to the HW do I have to repeat this entire process?

     

    When doing a standalone application on the processor, I just have to export the HW from Vivado and import it into the SDK, where I can generate a BSP automatically and write a little code, all of this can be done in Windows.   Do I understand correctly that you're saying that every time I make a change in Vivado, I have to export the HW, move it over into a Virtualbox and run a bunch of shell scripts to generate a new Linux every single time, then program the board?  Is this really the most efficient way to work with this?  Is there any way to import the Avnet provided BSP into the SDK and just use that instead of having to rebuild Linux from scratch every time there's a minor HW change? 

     

    The workflows for all other aspects of Xilinx products seem to be very streamlined, but this one seems overly complicated and clunky just to add a blinkable LED to a design.  Is there no way to take a pre-built Linux and just add the HW description/bit file without recreating everything from scratch?  Forgive my confusion, but Avnet didn't provide any documentation about the Ultrazed's BSP or how we actually use it.  All of the tutorials were focused around simple C code on standalone without Linux.


    Thanks in advance.

    - WBLee

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • zedhed
    0 zedhed over 7 years ago

    Hi WBLee,

    Our PetaLinux SpeedWay training is an abbreviated synopsis of UG1144 from Xilinx and is incredibly valuable to PetaLinux newcomers:

    https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_4/ug1144-petalinux-tools-reference-guide.pdf

    Check out the section entitled "Import Hardware Configuration", according to that document:

    "This launches the top system configuration menu when petalinux-config --get-hw-description runs first time for the PetaLinux project or the tool detects there is a change in the system primary hardwares candidates..." 

    The key piece that PetaLinux brings to you as a design tool is the integrated device tree generator which automatically creates the device tree entry driver mappings for the memory interface peripherals found in the PS and PL so it is a very good idea to run that command above to import your updated hardware platform each time you make a new Vivado HW platform build.

    Eventually, you will finish edits to your hardware platform and enter into the SDK userspace software application development nirvana :)

    Best Regards,

    -Kevin

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Reject Answer
    • Cancel
  • wblee
    0 wblee over 7 years ago in reply to zedhed

    Kevin,

    thanks for your reply and explanation.  I now understand that yes, any time my HW changes, I must bring the HDF and BSP into a Linux environment and rebuild the boot image using PetaLinux.  Now that I know that really is the only way to do it, I'll figure out a way to automate it as much as possible.  Thanks again.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • zedhed
    0 zedhed over 7 years ago

    Hi WBLee,

    Thanks for marking my response as solved, I don't get many of those!

    Since you mentioned automation, one other piece of information which may be interesting to you is that we have scripted the PetaLinux flow from bash script(s) for creating our BSPs and published this information to the Avnet github for any customers who might also find this strategy useful:

    https://github.com/Avnet/petalinux

    Best Regards,

    -Kevin

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • 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