-
Notifications
You must be signed in to change notification settings - Fork 10
Getting started
Home / Tutorial Index / Getting started
As an HDL developer it is hard to work out how to create an FPGA and test it on the Parallella board with the minimum of effort.
As an Epiphany Application developer it is hard to work out how to build your application and release it to the Parallella board.
As any novice it is daunting to create a Linux system.
This guide is for you, by completing the following steps you will be able to create and image and will know how to modify the build process to include a specific FPGA bitstream and how to compile Epiphany application code and include it in the Linux distribution.
To use yocto
you first need to install some packages. See latest Yocto Project Quick Start. This assumes you are working on a Ubuntu machine:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm
THIS STEP IS OPTIONAL: To use the parallella template project ./parallella-fpga/7020_hdmi
you need to install the version of Vivado specified in https://github.com/peteasa/parallella-fpga/tree/elink-redesign/AdiHDLLib/README.md (or whatever branch you are using). At the time of writing this was Vivado 2015.2.1 see http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/2015-2.html, download 2015.2 and 2015.2.1 update
Clone this repository onto your Linux build machine:
$ git clone [email protected]:peteasa/parallella
$ cd parallella
Checkout the branch that provides the versions that you want to use. If you want the very latest then the default branch (elink-redesign) is good for you.
- elink-redesign - is the branch I tend to use at the moment because I have been working with the oh fpga
- parallella-elink-redesign - contains an example layer meta-example that demonstrates how to extend the yocto build to add your own design
For this tutorial lets use the meta-example layer to demonstrate how to "grow your own" version of linux when you are more familar with the process:
$ git checkout parallella-elink-redesign
Then to prepare the environment and download the necessary git submodules, you need to run the initgitsubmodules.sh
script. This only needs to be done once:
$ source initgitsubmodules.sh
The result will be new folders that will be modified as part of this tutorial:
-
examples
: this is where I store the epiphany hello world application -
examples/fpga
: this is where I store releases of the FPGA bitstream -
parallella-fpga/7020_hdmi
: this is the source HDL code for the FPGA bitstream -
parallella-yoctobuild
: this is the main Yocto build project where we will learn to build the Linux distribution. -
parallella-yoctobuild/meta-example
: this is the Yocto layer that we will use to add our FPGA and our Epiphany source code to the Linux build
There are a number of other folders created that we dont necessarily have to use:
-
parallella-fpga/parallella-hw
: this is a clone of the official parallella-hw project -
parallella-fpga/device-tree-xlnx
: this is a clone of the xilinx device tree generation tcl scripts used as a reference for the released device tree -
parallella-fpga/AdiHDLLib
: this is a snapshot of the Analog Devices Inc libraries I used to add the hdmi and sound to the elink-redesign project -
parallella-yoctobuild/poky
: this is the main Yocto script project -
parallella-yoctobuild/meta-xilinx
: this is a xilinx maintained layer used as a basis for building zynq based projects -
parallella-yoctobuild/meta-parallella
: this is a layer used to add parallella specific modules to the Linux distribution -
parallella-yoctobuild/meta-epiphany
: this is a layer used to build the Epiphany SDK -
parallella-yoctobuild/meta-exotic
: this is a generic layer used to build non-native or exotic compilers for the target
From time to time updates are made available to the project. To take advantage of these updates I have provided a template script that can be used to pull the latest changes:
$ source updatesubmodules.sh
If you make modifications to your clone then this script will fail to update everything because git will require you to "merge" the latest updates into your copy of the repository. The very simplest way to handle this is to keep a local copy of your changed files and revert the projects to unchanged state, update to the latest and then re-apply your changes.
Better is to use a directory that is included in the .gitignore file for your work. Thus when the clone is updated your work is not affected by the update and you can then take any new changes that you need from the update into your working area.
In a future tutorial I will recommend a working folder for every section that you need to modify (for example parallella-yoctobuild/meta-mywork
and myexamples/fpga
/ myexamples.git
. But for this getting started tutorial I will assume that you dont plan to make many changes and just plan to get used to the environment and what it has to offer.
Click on the link below to continue the Getting Started tutorial and see how easy it is to build the Linux environment!