On Tue, Nov 17, 2020 at 02:02:30PM +0000, Christoph Hellwig wrote:
On Tue, Nov 17, 2020 at 03:00:32PM +0100, Arnaud POULIQUEN wrote:
The dma_declare_coherent_memory allows to associate vdev0buffer memory region to the remoteproc virtio device (vdev parent). This region is used to allocated the rpmsg buffers. The memory for the rpmsg buffer is allocated by the rpmsg_virtio device in rpmsg_virtio_bus[1]. The size depends on the total size needed for the rpmsg buffers.
The vrings are allocated directly by the remoteproc device.
Weird. I thought virtio was pretty strict in not allowing diret DMA API usage in drivers to support the legacy no-mapping case.
Well remoteproc is weird in that it's use of DMA API precedes standartization efforts, and it was never standardized in the virtio spec ..
Either way, the point stands: if you want these magic buffers handed out to specific rpmsg instances I think not having to detour through the DMA API is going to make everyones life easier.