On 3 March 2012 19:28, Peter Maydell <peter.maydell at linaro.org> wrote: > The current plan is to implement the virtio-mmio transport to > provide virtio, but this isn't done yet. Background: the 'mmio' transport for virtio basically just places it at a "known" location in memory / IRQ, for the benefit of platforms that don't have a discoverable bus like PCI. The kernel has the MMIO transport code in it already. QEMU doesn't, because to do this the first step is to refactor QEMU's virtio code so that it properly separates out the transport from the endpoints, so you can have a generic "virtio blk" backend object which can be plugged into either a "virtio pci" or a "virtio mmio" transport. I wrote some virtio-mmio patches as a proof that the whole thing works but didn't have time to do this refactoring. See discussion at: http://lists.gnu.org/archive/html/qemu-devel/2011-11/msg01870.html NB that those original patches (a) had a few bugs and (b) won't apply any more because of the QEMU object model patches landing. I've just done the rebase on qemu master and stuck it up here: http://git.linaro.org/gitweb?p=people/pmaydell/qemu-arm.git;a=shortlog;h=refs/heads/amba-virtio However you should beware that that is only compile tested! We also would need to tell the kernel where the virtio endpoints are via device tree rather than the hack of hardwiring the kernel or passing it command line arguments (patches for which are probably floating around somewhere). -- PMM