This is the documentation for the latest (main) development branch. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

OpenAMP Split Mode Demo

Split Mode Intro

The Split Mode Demo is provided to demonstrate the use of two remote processors independently. The example utilises two R5 processors in AMD Ultrascale’s split-mode, as compared to the default lock-step mode of the RPU CPU Configuration.

../_images/split-mode-intro.svg

Split Mode Components

This demonstration uses a single application, sent independently to the two remotes, utilising a demo script on the main controller.

The underlying OpenAMP architectural components used by these applications are

The following architecture diagram shows the components involved in the demonstration.

../_images/split-mode-components.svg

The top-level control flow is shown in the following message diagram.

../_images/split-mode-control-flow.svg

Split Mode Remote Application

The remote application is a simple application which once loaded calls printf to write to the main controller console, interleaved with other main controller console output.

Split Mode Main Script

The main controller is responsible for loading the firmware and starting the remote processors by writing start and stop to /sys/class/remoteproc/remoteproc0 and /sys/class/remoteproc/remoteproc1 alternately.

The script is available in the Demo Docker Images as demo2.

Split Mode Main Configuration

The remoteproc configuration binding cluster-mode is set to 0 for split-mode as per the system reference implementation.

Split Mode Remote Application Source

The application is deployed as binary in the Demo Docker Images repository, and the source is derived from the echo-test application, leaving out the RPMsg creation step and simply using LPRINTF to print the starting message “Starting application on RPU0 and waiting for stop…”.

Reference Board Implementations

This Split Mode Samples are demonstrated in the following reference implementations.