• 0
herrmattoon

Xilinx Linux tutorial asking for bitstream and hdf files. What do I have to do?

Question

Hi all,

I am currently doing the Xilinx tutorial to run Linux on my zybo : http://www.wiki.xilinx.com/Build+FSBL

In the process, I have to get these task done :

  • Bitstream (for the programmable logic portion)
  • System hardware project hdf file

My question is : can I use the https://reference.digilentinc.com/_media/zybo/zybo_base_system.zip

...to generate the bitstream and the system hardware project ? If I complete the tutorial with the generated files, will I be able to run linux and use it with the hdmi or vga output, get access to any kind of command prompt?

Thanks.

Regards,

Herrmattoon

Share this post


Link to post
Share on other sites

10 answers to this question

Recommended Posts

  • 2

I would recommend against using the zybo_base_design project. Its way out of date and I don't believe it updates cleanly. The linux_bd project in the ZYBO git repo is an equivalent project with everything updated to 2015.4. It is also tested with newer versions of Linux and supports audio and Video output (over HDMI). The ZYBO git repo is here: https://github.com/Digilent/ZYBO

In fact, I would probably advise against following the guide you are currently using. An easier method would be to use our ZYBO petalinux project, described here: https://github.com/Digilent/petalinux-bsps/wiki/Quick-start-guide. Petalinux is a tool developed by Xilinx to help ease embedded Linux development done for there devices (Zynq and microblaze). It is heavily documented here: http://www.xilinx.com/support/documentation/sw_manuals/petalinux2015_4/ug1144-petalinux-tools-reference-guide.pdf. Be sure that you use petalinux 2015.4, that is the version required to work with our ZYBO petalinux project.

Share this post


Link to post
Share on other sites
  • 1

Hey Herrmattoon,

If you want to use the block design provided in the project in zybo_base_system.zip to regenerate a new .bit file, that should be fine. The PL for that base system demo is set up to connect the processor with pretty much all the peripherals available on the board. You will just need to update all the IP in the design prior to generating the bitstream, since the block design was created in an old version of Vivado.

The application portion (from the SDK) of the project in that zip file however is what will allow you to use the peripherals through the core. It should allow you some kind of terminal/CLI from which you can access things like ethernet, VGA, etc. on the board. At a glance it seems as though the application included in the zip is fairly limited in its usage, so even though you may have some terminal interface ability, there is no other functionality outside of that (unless I missed something, which is possible).

So in short, I would say you could use pieces from the zybo_base_system.zip. Let me know how this works out for you.

Regards,

Nate

Share this post


Link to post
Share on other sites
  • 1

 

Hey Herrmatoon,

That's a bit odd to hear about Vivado saying you needed to add a block to the design. I had gone through last week and updated the IPs as well to make sure I was able to obtain a bit stream and the IPs updated without any issue. Generally for things like this, where we provide a fairly large block system, they are complete and don't need modification unless there is explicit instruction, such as in a tutorial. I'd say try a quick run though again from a new workspace (just delete the workspace for the zybo_bsd, unzip the original file you downloaded, and start from the beginning updating the IPs again, just to have a clean workspace to see if the warning comes up again). 

While I have not gone through the specific tutorial you are following, I can say that it seems like it is building up to allowing you to run Linux on the Zybo. Once you have the FSBL and device tree generated you will need to build a BOOT.bin file, and subsequently you will need a copy of the file system for the OS to be loaded onto a second partition of your boot media (microSD card for example). All of these steps can be done in the SDK to yield you a bootable and working image of Linux that you can run on the Zybo. 

Unfortunateley, I am not aware of very many detailed guides on this, however the Xilinx tutorial you are following should be able to get you through all the steps you need in order to complete the process. There are a few people here at Digilent that are currently working on completing a guide for this process as well. If I manage to find any other resources, or once our new documentation is completed, I'll update you.

Regards,

Nate

Share this post


Link to post
Share on other sites
  • 0

Hi NAEastland,

Many thanks for This answer. I clicked update IPs. After that I had warnings about asyncronous resets. Vivado told me to add a processor reset bloc. After I added it and click on run connection automation, just one wire has been added to the design, coming from a pin. I don't know what to do with this huge bloc and its unconnected connectors. Do I have to delete old asres of each block and connect each one on one (or more) output of the reset block?

After I will get it working fine -> in the tutorial I am following, it is written I will have to generate a device tree based on the hardware generated by vivado. It is not sufficient to interface Linux with the hardware? If not, I don't know how to interface the code in SDK with my tutorial. Do you have a track I can follow to mix it and get it working?

Unfortunately, I am hobbist and have not so much time to spend on this (in the facts I would like to do it exclusively!). Then don't be shocked if it takes time to try the solutions you give to me!

BR

Herrmattoon

 

 

Share this post


Link to post
Share on other sites
  • 0
On ‎18‎.‎06‎.‎2016 at 3:43 AM, sbobrowicz said:

I would recommend against using the zybo_base_design project. Its way out of date and I don't believe it updates cleanly. The linux_bd project in the ZYBO git repo is an equivalent project with everything updated to 2015.4. It is also tested with newer versions of Linux and supports audio and Video output (over HDMI). The ZYBO git repo is here: https://github.com/Digilent/ZYBO

In fact, I would probably advise against following the guide you are currently using. An easier method would be to use our ZYBO petalinux project, described here: https://github.com/Digilent/petalinux-bsps/wiki/Quick-start-guide. Petalinux is a tool developed by Xilinx to help ease embedded Linux development done for there devices (Zynq and microblaze). It is heavily documented here: http://www.xilinx.com/support/documentation/sw_manuals/petalinux2015_4/ug1144-petalinux-tools-reference-guide.pdf. Be sure that you use petalinux 2015.4, that is the version required to work with our ZYBO petalinux project.

Hi sbobrowicz,

Many thanks for this answer. I am unable to try the solution you proposed at this time. I will try to make use of Petalinux as soon as possible. The reason why I didn't do it before was that I wanted to try to do most things by myself. But I realise It will take long time regarding the rare opportunities I have to dive into this project! 

I saw the linux_bd project in the git repo but I thought it contained a specific base design for a display demo, without support for Ethernet i.e.. I where wrong...

Thanks again.

Herrmattoon

 

Share this post


Link to post
Share on other sites
  • 0

Hey Herrmattoon,

The linux_bd project does have support for ethernet. The control of ethernet as an IO option is within the Zynq IP block itself and is enabled within this project. 

To your second question, sourcing the PetaLinux and Vivado tools means running the source command in your terminal pointing to the settings files of each. If you were running 2015.4 for instance and your Xilinx installation was in the opt directory, you would type something like:

source /opt/Xilinx/Vivado/2015.4/settings64.sh

and for the PetaLinux tools you would do something similar for your installation directory for that, like:

source /(wherever you installed Petalinux)/2015_4/petalinux-v2015.4-final/settings.sh

From what I understand, running the PetaLinux tools (commands like 'petalinux-config' or 'petalinux-build' for example) can require access to specific things within the Vivado toolchain, so in order for PetaLinux to operate within the terminal environment you are running, you will need run these source commands. Someone who has a bit more knowledge about this can possibly provide a more articulate explanation, but that is pretty much the short version.

-Nate

Share this post


Link to post
Share on other sites
  • 0

Hi all,

As I told, I would like to spend more time on my board to get to know it better and to let linux running on it. But currently, I have not so much time for that. Fortunately, I am here again and I tried to go ahead.

First, thanks for your useful answers!

Then, I am trying to source vivado and I get this error : "fab@fab-SATELLITE-L750:/opt/Xilinx/Vivado/2016.1/bin$ source ./vivado
ERROR: Could not find 64-bit executable.
ERROR: /opt/Xilinx/Vivado/2016.1/bin/unwrapped/lnx64.o/bash does not exist"

Is that because I run the 2016.1 version of vivado?

And one other thing : I have to source the petalinux tools... But which tool? Build? Config?

Thanks in advance.

Herrmattoon

Edited by herrmattoon

Share this post


Link to post
Share on other sites
  • 0

Herrmattoon,

source takes a bash script as an input not an executable. Here is some documentation for the source command: https://bash.cyberciti.biz/guide/Source_command

So, to source Vivado the command is source /opt/Xilinx/Vivado/2015.4/settings64.sh 

And to source PetaLinux the command is source <PetaLinux Install Directory>/settings.sh

Vivado and PetaLinux need to be the same version. So if you are running Vivado 2015.4, you need to be running PetaLinux 2015.4.

Regards,

BKallaher

Share this post


Link to post
Share on other sites
  • 0

Hi BKallaher, 

Many Thanks for your valuable help. I will consider these tips as soon as I come back again to my zybo board... Meaning in a couple of weeks. 

Best Regards, 

Herrmattoon

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now