...
XADC2014DT3.zipVivado 2014.3 source files required to build XADC hardware interface in PL
Optional starting point workspace for software build process
XADC_BOOT.zip
...
{PrebuiltBootFiles.PNG} From within SDK, we will simply use the now readily visible zynq_fsbl.elf and u-boot.elf files along with the new bitstream to build the required new BOOT.BIN file.
At the conclusion of the Tech Tip "Zynq-7000 AP SoC Spectrum Analyzer part 5 - Accelerating Software - Accelerating an FFT with ACP Coprocessor Tech Tip 2014.3" the workspace contains the library of signal processing functions built in the Tech Tip "Zynq-7000 AP SoC Spectrum Analyzer part 2 - Accelerating Software - Building ARM NEON Library Tech Tip 2014.3"and tested in the Tech Tip "Zynq-7000 AP SoC Spectrum Analyzer part 2 - Accelerating Software - Running ARM Library Tests Tech Tip 2014.3". It also has the tested application code for the FFT application including the hardware FFT. This Tech Tip is built upon that existing workspace. If you have that workspace in place,skip forward in these instruction to where the workspace is in place (Old Workspace in Place).
If the workspace is not available, or if there is an question if it was completed properly (or you simply want to skip those earlier steps), the referenced file HWfft_workspace2014dt3.zip can be used to create a known working starting point for the software portion of this Tech Tip.
Download the zip file from the HWfft_workspace2014dt3.zip link.
Create an empty directory where you will be implementing this Tech Tip. To be consistent with the balance of these step by step instructions, the directory could be:
G:\Projects\ZC702_Ne10
However, these steps to import a known workspace will work with any new folder of the user's choosing.
CAUTION:
Many users have unusual problems with SDK when using different directory structures or names. If you encounter any odd behaviors with SDK, it is advised to use the suggested directory structure and names.
Start SDK
Start -> All Programs -> Xilinx Design Tools -> Vivado 2014.3 -> Xilinx SDK 2014.3
In the Workspace Launcher, browse to and select the previously created empty folder. In our case, that is G:\Projects\ZC702_Ne10
{WorkspaceLauncher.PNG}
Click OK to continue
If you are presented with a Welcome tab, close it by clicking on the x on the tab.
{Welcome.png}
SDK will start with a blank Project Explorer pane
Select File -> Import
The Import dialogue box will appear. Expand the General line and select Existing Projects into Workspace
{ImportWorkspace1.PNG}
Click Next
Click the Select archive file button. Then click Browse to navigate to the saved workspace file that you want to import and click Open. In our case this is HWfft_workspace2014dt3.zip.
{ImportWorkspaceFiles.PNG}
Click Finish
SDK will build the workspace automatically. If it does not, simply select Project -> Build All
Because SDK is now running and the workspace is in place, you can skip the following instructions on starting SDK and go directly to after SDK is running and the workspace is in place (Starting Projects Ready).
Old Workspace in Place
The first step in building our new BOOT.bin is to bring the new hardware information from Vivado into SDK. We start with the workspace that resulted from the completion of the "Zynq-7000 AP SoC Spectrum Analyzer part 5 - Accelerating Software - Accelerating an FFT with ACP Coprocessor Tech Tip 2014.3".
Start SDK
On Windows, select Start -> All Programs -> Xilinx Design Tools -> Vivado 2014.3 -> Xilinx SDK 2014.3
When the Workspace Launcher appears, be sure that it is pointed to the workspace used for the "Zynq-7000 AP SoC Spectrum Analyzer part 5 - Accelerating Software - Accelerating an FFT with ACP Coprocessor Tech Tip 2014.3".
{WorkspaceLauncher.PNG}
Click OK
Starting Projects Ready
SDK should have the files and projects in place as we last saw them. If it has changed, use the known workspace from the steps above or repeat the various steps to be sure this is a tested working set of files and projects before proceeding.
{SDKstartFiles.PNG}
The new hardware from Vivado will impact the standalone_bsp and the hardware platform (ZC702fft in our case) which in turn are key in building any hardware dependent applications, such as the XADC test software. These changes also would impact creating of new files for building a new BOOT.bin but we will not need to do that here as we will extract them from the PetaLinux build package as described earlier.
Select the hardware platform - in this case we have called it ZC702ff - in the Project Explorer pane, right click on it and select "Change Hardware Platform Specification". When the pop up box appears, read the cautions and click Yes.
{HWchangeWarning.PNG}
Click Browse and follow the path from the $ZYNC_XADC_HOME used earlier to \project\zynq_base_trd_2014.3.sdk
SDK will show system_top_wrapper.hdf as an available file.
{hdfFileSelect.PNG}
Select system_top_wrapper.hdf
Click Open and then OK in the "Change Hardware Platform Specification" dialog
SDK will process the new Hardware Description File (.hdf) and update the current platform.
To verify this update, expand the ZC702fft line in the Project Explorer pane and double click on system.hdf. SDK will display the current information about the hardware system. Note the presence of several items relating to XADC, and note the address of the XADC_1_axi_dma_1 which we noted earlier in examining the hardware from within Vivado.
{XADCinfoInPlace.PNG}
To complete the inclusion of the new hardware information we need to be-build the Board Support Package (bsp). In this case this is the project called standalone_bsp_0 (Note that it has a different leading icon to indicate it is a board support package.).
Select standalong_bsp_0 in the Project Explorer pane. Right click and select Clean Project. When that is finished, right click on it again and select Build Project.
With the system updated with the new hardware information we will proceed to build the BOOT.BIN file that includes the new hardware. As noted, we will use files extracted from the PetaLinux build system archive.
From the main menu bar select
Xilinx Tools -> Create Zynq Boot Image
The dialogue box where the boot file is created will be shown.
{CreateBootImageBlank.PNG}
The BIF file describes the contents of the file that is being built and any special options, etc. It enables a new boot file to be created automatically with the same settings and file names.
In this case there is no BIF file.
Click the Browse button adjacent to the description box for Output BIF file. Select a location to save the BIF file. In our case, we are saving the file in the same directory where we initiated the hardware build: G:\XADC
{CreateBootImageBIFset.PNG}
Note that this operation also sets the location where the BOOT.bin file will be saved.
Now we add the files which are used to build BOOT.bin. Three files are required to create BOOT.bin
- A first stage boot loader
- A valid bitstream
- A u-boot.elf executable that will load the operating system and any applications after the system is started.
CAUTION:
These files MUST be in the order stated above for proper boot operation!!
First Stage Boot Loader:
Recall earlier where the PetaLinux bsp file was copied to, renamed, and unzipped. We specifically called out the images folder. In our case this was:
G:\Stuff4PLtrd\Xilinx-zc702-trd-v2014_2\zynq_base_trd_2014_2\pre-built\linux\images
In the Create Zynq Boot Image dialogue (it should still be open) click on the Add button on the right side of the Boot image partitions box. In the Add Partition dialogue, click on browse and navigate to the location of the images folder and select
zynq_fsbl.elf
Then click Open. This will populate the Add Partition dialogue box.
{AddPartitionfsbl.PNG}
Click OK
Valid Bitstream
The bitstream default location is in the project folder where Vivado was started to build the XADC hardware.
With the Create Zynq Boot Image dialogue still open, again click the Add button on the right side of the Boot image partitions box. In the Add Partition dialogue, click on browse and navigate to the location of the bitsteam. It will be at $ZYNQ_XADC_HOME\project\zynq_base_trd_2014.3.runs\impl_1
Select the bitstream - the default file name is:
system_top_wrapper.bit
Click Open and when the Add Partition dialogue appears, click OK
u-boot.elf
Using the same steps as we did for the zynq_fsbl.elf file, we will add the u-boot.elf.
In the Create Zynq Boot Image dialogue (it should still be open) click on the Add button on the right side of the Boot image partitions box. In the Add Partition dialogue, click on browse and navigate to the location of the images folder and select
u-boot.elf
Click Open and when the Add Partition dialogue appears, click OK
We should now have the 3 files loaded and in the proper order as shown below.
{BootImageFilesReady.PNG}
Click the Create Image button to create the BOOT.bin file.
The new BOOT.BIN file now includes the additional hardware for the XADC and FFT blocks. At this point we have not modified the PetaLinux system that gets loaded from the image.ub file so there is no need to modify it. The application built in the following section will simply be invoked as an application running on the PetaLinux after it has booted.
Important! Tag this page with: techtip-Building the Software-Building the Application:Building the Application: