Zynq UltraScale MPSoC 2016.2 Tutorial for design module 5
Zynq UltraScale MPSoC 2016.2 Tutorial for design module 5
Abstract
Video application
Display via PS DP
(DRM framework)
TABLE OF CONTENTS
Video capture from USB webcam or vivid
GUI overlay using Qt framework with OpenGL (GPU)
Qt Creator project/tutorial
Mouse via USB
Block Diagram
Component Diagram
<<TODO>>
Source Code
Create workspace folder
$ mkdir 1_apu_smp_linux
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
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
How to build images
Apply Patches
Apply the design-1 patch (refer DESIGN-1)
$ git apply 0001-Mini-Reference-Design-1-ZCU102-2016.2.patch
Apply the design-2 patch
$ git apply 0001-Mini-Reference-Design-2-ZCU102-2016.2.patch
Apply the design-3 patch
$ git apply 0001-Mini-Reference-Design-3-ZCU102-2016.2.patch
Apply the design-4 patch
$ git apply 0001-Mini-Reference-Design-4-ZCU102-2016.2.patch
Apply the design-5 patch
$ git apply 0001-Mini-Reference-Design-5-ZCU102-2016.2.patch
FSBL
FSBL build : refer DESIGN-1 at Tutorial 1
PMU Firmware
PMU FW build : refer DESIGN-1 at Tutorial 1
HEARTBEAT Application
Checkout HeartBeat Application sources from git
$ cd 2_rpu0_freertos_app/heartbeat
RPU0 HeartBeat build
follow common_procedure Build HeartBeat Applicatoin in the link: Common Functions
Video Command Line Application
Checkout video_lib, video_cmd sources from git
$ cd 5_apu_qt_app
modify code as per the zip
Build sdk projects
video_lib (creates a library)
video_cmd (creates executable, static link with video_lib)
Device Tree
Use device tree same as DESIGN-1, refer DESIGN-1 at Tutorial 1
Kernel Image
Build the kernel image same as DESIGN-1, refer DESIGN-1 at Tutorial 1
Copy the RPU1's perfapm-server-ctl, PMUFW, FSBL images into petalinux build area
$ cp default_pmufw/Debug/default_pmufw.elf zynqmp_petalinux_bsp/images/linux/pmufw.elf
$ cp default_fsbl/Debug/default_fsbl.elf zynqmp_petalinux_bsp/images/linux/zynqmp_fsbl.elf
$ cp heartbeat/Debug/heartbeat.elf zynqmp_petalinux_bsp/images/linux/.
$ cp perfapm-server/Debug/perfapm-server-ctl.elf zynqmp_petalinux_bsp/images/linux/.
BOOT.BIN image
Get BITSTREAM (it is workaround to fix DisplayPort GT issue)
Checkout https://gitenterprise.xilinx.com/PAEG/zcu102_base_trd_sdsoc_pfm
tag 2016.2
$ cp default_pmufw/Debug/default_pmufw.elf zynqmp_petalinux_bsp/images/linux/pmufw.elf
$ cp default_fsbl/Debug/default_fsbl.elf zynqmp_petalinux_bsp/images/linux/zynqmp_fsbl.elf
$ cp hardware/prebuilt/zcu102_base_trd_wrapper.bit zynqmp_petalinux_bsp/images/linux/.
Create BOOT.BIN
$ cd images/linux
$ petalinux-package --force --boot --bif design5.bif
This will create zynqmp_petalinux_bsp/images/linux/BOOT.BIN
How to Execute
Copy the below files onto SD card (root folder)
image.ub
boot.bin
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
Copy APU application onto SD card
video_cmd/Debug/video_cmd
After boot, at shell prompt:
$ modprobe vivid
$ /media/card/video_cmd -r 1920x1080