How to: Include a newly programmed bitstream into the RidgeRun SDK

From RidgeRun Developer Connection
Jump to: navigation, search


This page is intended to explain the different components that are necessary to modify in order to add a new bitstream to the ZedBoard and make it work accordingly. It will guide the user through the different components that are handled by the ZedBoard first, and then will explain a series of steps to update the bitstream component inside the SDK.



Booting binary file that comprises some other files. Inside this binary we will find the FSBL, the Bistream and the SSBL. It is required to initialize the board components and boot the system.


This file is known as the "First Stage Bootloader" and will download the programmable logic file or bitstream to the PL system (FPGA). It will also set up the PLL in the PS system (ARM-side) and execute some other fundamental bring-up routines for peripheral devices. At the end of his operation will call the SSBL to give him the control of the system.


Represented by a system.bit file that has all the programmable logic that will be programmed inside the ZedBoard FPGA.


This file is known as the "Second Stage Bootoader" and will be the compiled file for the u-boot. It is in charge of loading the operation system inside the board

Device Tree

Source file that is used to create the device tree data structure that is passed to the kernel during kernel booting. It will help us instantiate any new element or ip-core we will program on the ZedBoard FPGA, and allow the operating system to have a reference over the instantiated element.

Steps of adding a new bitstream in the SDK

Updating bitstream may not be a straight-forward task. This section will explain the different steps required to do this inside the SDK:

1. Create new bitstream and FSBL. It is recommended that whenever you want to update the bitstream, you need to update the FSBL as well. You can get some reference about creating this files in here: Bitstream and FSBL creation.

2. Update bitstream and FSBL file. Inside the RR SDK this files are located in:


3. If required an instantiation of the module programmed needs to be done inside the device tree for kernel initialization. How to do this modification will depend on the implementation. The file that needs to be modified in case of the ZedBoard corresponds to the following address inside the kernel source:


4. After all this you should probably compile the SDK to get all the pieces together and install to test.

make install

5. Probably if you needed to modify the device tree file, you will need to write also a device driver in order to communicate with the module programmed.