ZU+ Example - Minimal RPU Applications
ZU+ Example - Minimal RPU ApplicationsUse Case
Table of Contents
The 2017.1 PetaLinux pre-built image contains no RPU application. As a result, the PMU will never receive the PmInitFinalize() API call from the RPU. As a result, when Linux suspends itself, PMU will not power down the FPD.
This can be avoided if the RPU is initially loaded with a minimal application that calls PmInitFinalize(), and then suspends itself.
Procedures
This example shows how to load this application at boot time, using the PetaLinux pre-built image.Prerequisites
Before you start, make sure you have done the following:- Install and able to run PetaLinux tools.
- Create a PetaLinux project.
- Load and boot the pre-built image on your board.
- Install and able to run the Vivado Design Suite tools.
Now you are ready to add the RPU applications to BOOT.BIN. Please note that the default PetaLinux hardware definition file (HDF) specifies the two RPU cores running in split mode. Therefore, we need to load both R5 cores with their own application and suspend themselves.
Add RPU Apps to BOOT.BIN
- CD to the PetaLinux pre-built image folder (e.g. <project folder>/pre-built/linux/images).
- Copy boot.bif,release_all_r5-0.elf and release_all_r5-1.elf to this folder.
- Run command: "bootgen -arch zynqmp -image boot.bif -w -o BOOT.BIN". (You may need to delete BOOT.BIN first).
- Boot pre-built images with the new BOOT.BIN file.
After Linux boots up, you should be able to suspend Linux and see that the FPD is powered down.
The BIF, source and ELF files are in:
Configuration Object
Configuration Object file Generated by PetaLinux tool chain and Vivado is attached below.Subsystems -
1) Linux Subsystem
Master -
- APU
- DDR
- L2 Cache
- OCM Bank 0, 1, 2 and 3
- I2C0
- I2C1
- SD1
- QSPI
- PL
2) R5-0 Subsystem
Master -
- RPU0
- TCM Bank 0 - A
- TCM Bank 0 - B
3) R5-1 Subsystem
Master -
- RPU1
- TCM Bank 1 - A
- TCM Bank 1 - B