On Thu, Jun 18, 2020 at 04:14:12PM +0200, Guennadi Liakhovetski wrote:
On Thu, Jun 18, 2020 at 03:52:42PM +0200, Vincent Whitchurch wrote:
Note that "the Linux side" is ambiguous for AMP since both sides can be Linux, as they happen to be in my case. I'm running virtio/rpmsg between two physical processors (of different architectures), both running Linux.
Ok, interesting, I didn't know such configurations were used too. I understood the Linux rpmsg implementation in the way, that it's assumed, that the "host" has to boot the "device" by sending an ELF formatted executable image to it, is that optional? You aren't sending a complete Linux image to the device side, are you?
I do pack the zImage, the dtb, and the initramfs into an ELF (along with a tiny "bootloader" with just a handful of instructions), but the remoteproc framework is not tied to the ELF format since ->parse_fw() and friends are overridable by the remoteproc driver.
virtio has distinct driver and device roles so the completely different APIs on each side are understandable. But I don't see that distinction in the rpmsg API which is why it seems like a good idea to me to make it work from both sides of the link and allow the reuse of drivers like rpmsg-char, instead of imposing virtio's distinction on rpmsg.
Understand. In principle I'm open to this idea, but before I implement it it would be good to know what maintainers think?
Certainly.