The last patch would be the first step for RemoteProc over PCIe. I use a Xilinx Zynq 7000 PCIe card as my remote CPU and a x86 PC as the the host. Both vrings and RPMSG-buffer are in the remote (PCIe-Card) SRAM. So the RPMSG-buffer isn't actually DMA memory, but the SRAM on the Zynq is mapped in a PCIe-bar. I'm working now on a patch, that transfers the ownership of the RPMSG-buffer form virtio_rpmsg_bus to remoteproc_virtio. So instead of virtio_rpmsg_bus calling dma_alloc_coherent for buffer allocation, it would call virtio_get_shm_region to get TX/RX buffers and on rpmsg_remove it would call virtio_release_shm_regions (new in virtio_config_ops), analogue to find_vqs/del_vqs. Thoughts?