Hi Ed,
Please see my comment inline.
Thanks,
Wendy
> -----Original Message-----
> From:
open...@googlegroups.com [mailto:
open...@googlegroups.com]
> On Behalf Of Edward Wingate
> Sent: Wednesday, October 12, 2016 12:03 PM
> To:
open...@googlegroups.com
> Subject: [open-amp] Remoteproc, rpmsg, virtio...
>
> I'm trying to understand more about how remoteproc, rpmsg, virtio and
> virtqueues all relate to one another in OpenAMP. Can anyone correct any
> misunderstandings I may have?
>
> * Remoteproc is used from Linux to control the remote CPU, including:
> - Shutting it down
> - Relinquishing control of it from Linux
> - Loading firmware for it
> - Booting it with the new firmware
> - Creates virtio device with tx/rx vring pair for communications with it
[Wendy] Yes. It looks like you are talking about the remoteproc driver in the Linux kernel
OpenAMP also have remoteproc support for RTOS/baremetal, but you will need to implement the remoteproc driver
For your platform
>
> * Rpmsg is used to create a channel between the remote CPU and one driver
> in Linux. It is possible for a remote CPU to create multiple rpmsg channels,
> each going to a different Linux driver. Rpmsg channels use the virtio device
> and its vrings to send/receive messages to/from the remote CPU over
> shared memory.
[Wendy] The rpmsg kernel drivers requires Linux kernel is the RPMSG master.
It is the Linux kernel to start the communiticaton and create shared buffers for
Each RPMsg channels.
Each RPMsg channel has tx vring and rx vring
If you just want to have multiple application running on the same remote CPU
To talk to Linux, you can consider using different RPMsg endpoints.
If you want to have multiple RPMsg channels. The RPMsg initialization will need
Changes as it only support one channel at the moment.
>
> * Virtqueue is the data structure underlying the tx and rx vrings. I get the
> feeling it is more than just a mere data structure, but unsure what more it
> might be.
[Wendy] virtqueue is used to manage the vrings, providing API to get a buffer to use and return the buffer
>
> * Virtio - I'm really unclear how virtio relates to things in OpenAMP.
> All virtio documentation talks its use in VMs and hypervisors, and I don't
> know how they relate in OpenAMP. Is there always only one virtio device
> per remote CPU in OpenAMP? Or can multiple virtio devices be defined for a
> given remote CPU?
[Wendy] OpenAMP uses virtio for shared memory management.
At the moment, it only uses vrings for RPMsg channel. And each remoteproc
Only have one pair of tx/rx vrings.
We can consider to support one remoteproc having multiple virtio devices.
Could you share your use cases?
>
> Thanks for reading.
>
> Ed
>
> --
> You received this message because you are subscribed to the Google Groups
> "open-amp" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to
open-amp+u...@googlegroups.com.
> To post to this group, send an email to
open...@googlegroups.com.
> For more options, visit
https://groups.google.com/d/optout.
This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.