OpenAMP Demos - OpenAMP Demos - 2026.1 English - UG1186

Libmetal and OpenAMP User Guide (UG1186)

Document ID
UG1186
Release Date
2026-06-24
Version
2026.1 English

Following are descriptions for each of the OpenAMP demonstration applications.

RPMsg Multi Services Demo

Platform
AMD Versal™ AI Edge Series Gen 2
Host OS
Linux (Cortex-A)
Remote OS
Zephyr (Cortex-R)

This example demonstrates RPMsg communication using Zephyr OS. The Zephyr application creates various RPMsg channels, and the Linux side creates corresponding devices and communicates with Zephyr OS using the ttyRPMSG device, RPMsg sample client driver, or rpmsg-ping utility in userspace.

You can find more information about this demo here: OpenAMP RPMsg Multi Services Demo — OpenAMP documentation.

Echo Test Demo

Platform
Zynq UltraScale+ MPSoC and AMD Versal™ AI Core
Host OS
Linux (Cortex-A)
Remote OS
FreeRTOS (Cortex-R)

Use this application to send multiple payloads from the host to the remote and verify data integrity. The Linux host boots the remote firmware using remoteproc.

The echo test application sends payloads to the remote firmware using RPMsg, and the remote echoes them back using RPMsg.

The Linux master verifies and prints each payload.

Matrix Multiplication Demo

Platform
Zynq UltraScale+ MPSoC and AMD Versal™ AI Core
Host OS
Linux (Cortex-A)
Remote OS
FreeRTOS (Cortex-R)

Use this application to perform matrix multiplication between host and remote. The Linux host generates two matrices and sends them to the remote. The remote multiplies them and returns the result. The Linux host displays the result.

The Linux host boots the remote firmware using remoteproc and transmits matrices through RPMsg. The remote firmware performs multiplication and transmits the result using RPMsg.

Proxy Application

Platform
Zynq UltraScale+ MPSoC and AMD Versal™ AI Core
Host OS
Linux (Cortex-A)
Remote OS
FreeRTOS (Cortex-R)

Use this application to create a proxy between the Linux host and the remote core. This allows the remote firmware to use the host console and perform file I/O on the host file system.

The Linux host boots the firmware using remoteproc. The remote firmware receives console input and displays output through the host. It performs file I/O operations on the host’s Linux file system.
Note: Append the following to your Yocto project build’s conf/local.conf file to ensure that the Embeddedsw BSP does not define its own file operations. This allows the OpenAMP proxy port to perform remote file operations.
ESW_CFLAGS:append = " -DUNDEFINE_FILE_OPS=1 "
Note: Matrix multiplication and proxy applications are supported only on Zynq UltraScale+ MPSoC and Versal AI Core Series evaluation kit.