Passera, Pablo R wrote:
Hi everybody,
I am trying to implement a new virtio device. I have implemented the
new device in Qemu and I also have the correspondent virtio driver in the
guest. But when I get data in the device and I try to put that into the
virtqueue using virtqueue_pop, the qemu instance crash showing the error
'virtio DMA to IO ram'. This is in the virtio_map_gpa function in virtio.c.
Does anyone knows what this means?
Here is the code from virtio_map_gpa
.
.
static void *virtio_map_gpa(target_phys_addr_t addr, size_t size)
{
ram_addr_t off;
target_phys_addr_t addr1;
off = cpu_get_physical_page_desc(addr);
if ((off & ~TARGET_PAGE_MASK) != IO_MEM_RAM) {
fprintf(stderr, "virtio DMA to IO ram 1\n");
exit(1);
}
In means the virtio buffers point to memory that is not RAM, but is some
memory-mapped I/O range or pehaps unmapped. I suggest printing the
physical addresses both in the guest and in qemu; something is likely
garbled.
--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html