Zynq UltraScale MPSoC 2016.2 Tutorial for design module 3
Zynq UltraScale MPSoC 2016.2 Tutorial for design module 3
Abstract
Boot APU, RPU0, and RPU1 independently
RPU1 OS: Bare-metal
Bare-metal performance monitor application
Read PS APM counters to measure DDR throughput and prints to UART1
TABLE OF CONTENTS
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
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 Application in the link: Common Functions
Perf APM Server Ctl Application
Checkout perfapm, perfapm-server, perfapm-server-ctl sources from git
$ cd 3_rpu1_baremetal_app
RPU1 perfapm-server-ctl (baremetal application without ipc )build:
RPU1 perfapm-server (baremetal application with ipc )build:
follow common_procedure PERFAPM-SERVER in the link: Common Functions
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 RPU0's heartbeat.elf, 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 heartbeat/Debug/heartbeat.elf zynqmp_petalinux_bsp/images/linux
$ cp perfapm-server-ctl/Debug/perfapm-server-ctl.elf zynqmp_petalinux_bsp/images/linux
$ cp default_fsbl/Debug/default_fsbl.elf zynqmp_petalinux_bsp/images/linux/zynqmp_fsbl.elf
BOOT.BIN image
Create BOOT.BIN
$ cd images/linux
$ petalinux-package --force --boot --bif design3.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