Hardware Abstraction Layer for FreeRTOS
|
#include <remoteproc.h>
Data Fields | |
u32 | type |
u32 | id |
u32 | notifyid |
u32 | dfeatures |
u32 | gfeatures |
u32 | config_len |
u8 | status |
u8 | num_of_vrings |
u8 | reserved [2] |
struct fw_rsc_vdev_vring | vring [0] |
struct fw_rsc_vdev - virtio device header
This resource is a virtio device header: it provides information about the vdev, and is then used by the host and its peer remote processors to negotiate and share certain virtio properties.
By providing this resource entry, the firmware essentially asks remoteproc to statically allocate a vdev upon registration of the rproc (dynamic vdev allocation is not yet supported).
Note: unlike virtualization systems, the term 'host' here means the Linux side which is running remoteproc to control the remote processors. We use the name 'gfeatures' to comply with virtio's terms, though there isn't really any virtualized guest OS here: it's the host which is responsible for negotiating the final features. Yeah, it's a bit confusing.
Note: immediately following this structure is the virtio config space for this vdev (which is specific to the vdev; for more info, read the virtio spec). the size of the config space is specified by config_len.
u32 fw_rsc_vdev::config_len |
is the size of the virtio config space of this vdev. The config space lies in the resource table immediate after this vdev header.
u32 fw_rsc_vdev::dfeatures |
specifies the virtio device features supported by the firmware
u32 fw_rsc_vdev::gfeatures |
is a place holder used by the host to write back the negotiated features that are supported by both sides.
u32 fw_rsc_vdev::id |
virtio device id (as in virtio_ids.h)
u32 fw_rsc_vdev::notifyid |
is a unique rproc-wide notify index for this vdev. This notify index is used when kicking a remote processor, to let it know that the status/features of this vdev have changes.
u8 fw_rsc_vdev::num_of_vrings |
indicates how many vrings are described in this vdev header
u8 fw_rsc_vdev::reserved[2] |
reserved (must be zero)
u8 fw_rsc_vdev::status |
is a place holder where the host will indicate its virtio progress.
u32 fw_rsc_vdev::type |
resource type
struct fw_rsc_vdev_vring fw_rsc_vdev::vring[0] |
is an array of num_of_vrings entries of fw_rsc_vdev_vring.