Edgar E. Iglesias
2015-05-01 05:01:43 UTC
From: "Edgar E. Iglesias" <***@xilinx.com>
I'm trying to run rpmsg and remoteproc on the ZynqMP (arm64) but I'm hitting
a DMA/mm error. The issue was discussed here:
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-March/333050.html
Russel King pointed out that the arm64 is not doing anything wrong by
returning vmapped memory (which is incompatible with sg_phys()). Hence this
RFC series that tries to illustrate/fix the problem in rpmsg/virtio.
Is this going in the right direction?
Any ideas or suggestions on how to better fix this?
Something that worries me a little is that it would be nice if the DMA
capability for virtio protocols was not hardcoded like this but rather
somehow selectable by the framework. I was hoping that it would be possible
to use _any_ virtio based protocol to communicate with remote-proc/DMA and
not just rpmsg.
Thanks,
Edgar
Edgar E. Iglesias (4):
virtio_ring: Break out vring descriptor setup code
virtio_ring: Add option for DMA mapped sgs in virtqueue_add
virtio: Add dma variants of virtqueue_add_in and outbuf
rpmsg: DMA map sgs passed to virtio
drivers/rpmsg/virtio_rpmsg_bus.c | 28 ++++++++++++++++-----
drivers/virtio/virtio_ring.c | 53 +++++++++++++++++++++++++++++++---------
include/linux/virtio.h | 10 ++++++++
3 files changed, 74 insertions(+), 17 deletions(-)
I'm trying to run rpmsg and remoteproc on the ZynqMP (arm64) but I'm hitting
a DMA/mm error. The issue was discussed here:
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-March/333050.html
Russel King pointed out that the arm64 is not doing anything wrong by
returning vmapped memory (which is incompatible with sg_phys()). Hence this
RFC series that tries to illustrate/fix the problem in rpmsg/virtio.
Is this going in the right direction?
Any ideas or suggestions on how to better fix this?
Something that worries me a little is that it would be nice if the DMA
capability for virtio protocols was not hardcoded like this but rather
somehow selectable by the framework. I was hoping that it would be possible
to use _any_ virtio based protocol to communicate with remote-proc/DMA and
not just rpmsg.
Thanks,
Edgar
Edgar E. Iglesias (4):
virtio_ring: Break out vring descriptor setup code
virtio_ring: Add option for DMA mapped sgs in virtqueue_add
virtio: Add dma variants of virtqueue_add_in and outbuf
rpmsg: DMA map sgs passed to virtio
drivers/rpmsg/virtio_rpmsg_bus.c | 28 ++++++++++++++++-----
drivers/virtio/virtio_ring.c | 53 +++++++++++++++++++++++++++++++---------
include/linux/virtio.h | 10 ++++++++
3 files changed, 74 insertions(+), 17 deletions(-)
--
1.9.1
1.9.1