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 Hypervisorless Virtio

Hypervisorless Virtio Intro

There are a number of hypervisorless virtio demos. Their intent is to demonstrate the use of the Virtio component and associated drivers.

This section details the sample for hypervisorless virtio with entropy and network devices (hvl_net_rng_reloc).

All demonstrations are run on a remote running Zephyr Operating System (OS).

../_images/hvl-virtio-intro.svg

Hypervisorless Virtio Components

This demonstration uses a single application on the remote and a setup and 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/hvl-virtio-components.svg

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

../_images/hvl-virtio-control-flow.svg

Hypervisorless Virtio Remote Application

The remote application is the core of the demonstration. It is a simple application utilising a number of Virtio devices.

The remote application when started initially calls on the Virtio Entropy Device to obtain entropy values to print to the UART console. Subsequently, it sets up Virtio Network Device to provide communications between the main controller at 192.168.200.254 and remote at 192.168.200.2.

Hypervisorless Virtio Main Script

The main controller is responsible for setting up a virtual/tap network, loading the firmware containing the Hypervisorless Virtio Application and starting the remote processor using Remoteproc.

The scripts are available in the Demo Docker Images as demo4 and setup.sh.

Hypervisorless Virtio Source

Hypervirsorless Virtio Zephyr Source

The hypervisorless Virtio application is available as a Zephyr solution in the zephyr-openamp-staging Repository.

It is a CMake application and can be built for any remote as long as the relevant OS/HW abstraction layer components like libmetal are ported for that platform.

Reference Board Implementations

This Hypervisorless Virtio Samples are demonstrated in the following reference implementations.

For information on building and running the demonstrations for zcu102 refer to