Zynq UltraScale MPSoC 2016.2 - Tutorial for design module 9

Zynq UltraScale MPSoC 2016.2 - Tutorial for design module 9


  • Qt module to visualize performance counters
    • o Plot graph instead of printing to UART0
    • o Use IPC, same as design 4

Block Diagram

Component Diagram

The below figure shows an overview of all the projects provided in this package as well as inter-dependencies and generated output products. The following sections show step-by-step instructions for rebuilding all project components. Note that pre-built components are depicted as dashed lines and therefore the corresponding build steps are optional and can be skipped (see [Optional] marking). The Vivado hardware design is packaged as part of the SDSoC platform and shall therefore be built through the SDSoC tool flow only.

Source Code

  • Create workspace folder
$ mkdir 9_full_base_trd

  • Checkout the source code for Linux
$ git clone https://gitenterprise.xilinx.com/PAEG/zynqmp_petalinux_bsp.git
This creates a folder “zynqmp_petalinux_bsp” and gets all source files from git repository

  • Perf APM, client.
$ git clone https://gitenterprise.xilinx.com/PAEG/perfapm-client.git

  • Video application (command line app, Qt app, Video Library)
$ git clone https://gitenterprise.xilinx.com/PAEG/vdf.git

  • Base TRD, SDSoC platform and with 2D filter sources
$ git clone https://gitenterprise.xilinx.com/PAEG/zcu102_base_trd_sdsoc_pfm.git

  • Checkout the source code for PMU FW
$ git clone https://gitenterprise.xilinx.com/PAEG/pmu_fw.git
This creates a folder “pmu_fw” and gets all source files from git repository

  • Checkout the source code for Heartbeat application
$ git clone https://gitenterprise.xilinx.com/PAEG/heartbeat.git

  • Checkout the source code for Perf APM, server
$ git clone https://gitenterprise.xilinx.com/PAEG/perfapm-server.git

How to build Images

Build PMU FW Image

The pmu_fw (PMU Firmware) application is a bare-metal application that executes on the PMU MicroBlaze. It is loaded by the CSU early on in the boot process before the FSBL executes. The application's primary responsibility is to handle power management.

Launch the Xilinx software development kit (XSDK) from the console.

$ cd pmu_fw
$ mkdir workspace // create a workspace
$ xsdk &

  • Close the Welcome screen and import the PMU firmware projects.
  • Click File -> Import... -> General -> Existing Projects into Workspace and click Next.
  • Navigate to the $TRD_HOME/pmu_fw directory using the Browse button.
  • Select the pmu_fw, pmu_fw_bsp, and zcu102_base_trd_hw_platform projects.
  • Click Finish.

  • Build the imported projects:
  • Right-click on the pmu_fw project and select Build Project.
  • The generated elf file will be placed at pmu_fw/Debug/pmu_fw.elf.
  • Use this image while generating SD card images (detailed below).

Build Kernel Images

  • Goto the Petalinux BSP folder
$ cd zynqmp_petalinux_bsp

  • Hardware configuration
$ petalinux-config --get-hw-description=./hw-description --oldconfig

If the default github is not accessible, change it to gitenterprise as below.
Linux Components Selection à Remote linux-kernel settings à edit the Remote linux-kernel git URL to: https://gitenterprise.xilinx.com/PAEG/linux-xlnx.git

Linux Components Selection à Remote linux-kernel settings à edit the Remote git TAG/Commit ID to: 2016.2/4.4

  • Modifications in Device tree
The default devicetree includes some PL based driver nodes. Remove these nodes, as this design has no PL based design.
$ vi subsystems/linux/configs/device-tree/system-top.dts

Comment fmc-hdmi-cam.dtsi, pl.dtsi, openamp-overlay.dtsi
/*#include "fmc-hdmi-cam.dtsi"*/
/*#include "pl.dtsi"*/
/*#include "openamp-overlay.dtsi"*/
Save this file.

  • Build the images
$ petalinux-build

This completes the Linux kernel image build

Generate SD Card Images

SD Card images are generated as part of the petalinux-build command above. However, to include the pmu_fw image, follow the below steps:

  • Goto the SD card images folder

$ cd zynqmp_petalinux_bsp/images/linux

  • Copy the pmu_fw binary into the SDSoC platform

$ cp pmu_fw/Debug/pmu_fw.elf

  • Create a BIF file (filename: boot.bif) with below content:



[fsbl_config] a53_x64

[pmufw_image] pmu_fw.elf

[bootloader] zynqmp_fsbl.elf

[destination_cpu=a53-0] bl31.elf

[destination_cpu=a53-0] u-boot.elf


  • Run the command

$ bootgen -arch zynqmp -image boot.bif -w -o boot.bin

This will create boot.bin file with new pmu_fw image.

How to Execute

  • Copy the below files onto SD card (root folder)
  • Insert the SD card into zcu102 board
  • Connect power cable and UART cable
  • Start TeraTerm or any other terminal application on Host PC (to view serial port messages)
  • Power ON the board
  • The board starts booting, observe for PMU FW messages followed by Linux boot messages

Related Links

© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy