#include <openamp/remoteproc.h>#include <openamp/remoteproc_virtio.h>#include <openamp/virtqueue.h>#include <metal/sys.h>#include <metal/utilities.h>#include <metal/alloc.h>#include <metal/sleep.h>Functions | |
| static void | rproc_virtio_delete_virtqueues (struct virtio_device *vdev) |
| static int | rproc_virtio_create_virtqueue (struct virtio_device *vdev, unsigned int flags, unsigned int idx, const char *name, vq_callback callback) |
| static int | rproc_virtio_create_virtqueues (struct virtio_device *vdev, unsigned int flags, unsigned int nvqs, const char *names[], vq_callback callbacks[], void *callback_args[]) |
| static void | rproc_virtio_virtqueue_notify (struct virtqueue *vq) |
| static unsigned char | rproc_virtio_get_status (struct virtio_device *vdev) |
| static uint32_t | rproc_virtio_get_dfeatures (struct virtio_device *vdev) |
| static uint32_t | rproc_virtio_get_features (struct virtio_device *vdev) |
| static void | rproc_virtio_read_config (struct virtio_device *vdev, uint32_t offset, void *dst, int length) |
| struct virtio_device * | rproc_virtio_create_vdev (unsigned int role, unsigned int notifyid, void *rsc, struct metal_io_region *rsc_io, void *priv, rpvdev_notify_func notify, virtio_dev_reset_cb rst_cb) |
| Create rproc virtio vdev. More... | |
| void | rproc_virtio_remove_vdev (struct virtio_device *vdev) |
| Remove rproc virtio vdev. More... | |
| int | rproc_virtio_init_vring (struct virtio_device *vdev, unsigned int index, unsigned int notifyid, void *va, struct metal_io_region *io, unsigned int num_descs, unsigned int align) |
| Initialize rproc virtio vring. More... | |
| int | rproc_virtio_notified (struct virtio_device *vdev, uint32_t notifyid) |
| remoteproc virtio is got notified More... | |
| void | rproc_virtio_wait_remote_ready (struct virtio_device *vdev) |
| Blocking function, waiting for the remote core is ready to start communications. More... | |
Variables | |
| static const struct virtio_dispatch | remoteproc_virtio_dispatch_funcs |
| struct virtio_device* rproc_virtio_create_vdev | ( | unsigned int | role, |
| unsigned int | notifyid, | ||
| void * | rsc, | ||
| struct metal_io_region * | rsc_io, | ||
| void * | priv, | ||
| rpvdev_notify_func | notify, | ||
| virtio_dev_reset_cb | rst_cb | ||
| ) |
Create rproc virtio vdev.
| role | VIRTIO_DEV_DRIVER or VIRTIO_DEV_DEVICE |
| notifyid | Virtio device notification id |
| rsc | Pointer to the virtio device resource |
| rsc_io | Pointer to the virtio device resource I/O region |
| priv | Pointer to the private data |
| notify | vdev and virtqueue notification function |
| rst_cb | Reset virtio device callback |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| int rproc_virtio_init_vring | ( | struct virtio_device * | vdev, |
| unsigned int | index, | ||
| unsigned int | notifyid, | ||
| void * | va, | ||
| struct metal_io_region * | io, | ||
| unsigned int | num_descs, | ||
| unsigned int | align | ||
| ) |
Initialize rproc virtio vring.
| vdev | Pointer to the virtio device |
| index | vring index in the virtio device |
| notifyid | remoteproc vring notification id |
| va | vring virtual address |
| io | Pointer to vring I/O region |
| num_descs | Number of descriptors |
| align | vring alignment |
| int rproc_virtio_notified | ( | struct virtio_device * | vdev, |
| uint32_t | notifyid | ||
| ) |
remoteproc virtio is got notified
| vdev | Pointer to the virtio device |
| notifyid | Notify id |
|
static |
| void rproc_virtio_remove_vdev | ( | struct virtio_device * | vdev | ) |
Remove rproc virtio vdev.
| vdev | Pointer to the virtio device |
|
static |
| void rproc_virtio_wait_remote_ready | ( | struct virtio_device * | vdev | ) |
Blocking function, waiting for the remote core is ready to start communications.
| vdev | Pointer to the virtio device |
|
static |