qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Virtio net bringup for new arch?


From: Alexander Graf
Subject: Re: [Qemu-devel] Virtio net bringup for new arch?
Date: Wed, 25 May 2011 22:10:05 +0200

On 25.05.2011, at 21:00, Greg McGary wrote:

> I have a new architecture port that can boot linux and work interactively 
> with a UART.
> The next step to facilitate application development is to have NFS 
> filesystems.  The
> real HW has no bus--it will have some sort of shared-memory, SW-arbitrated 
> access to a
> control processor's devices.  For development on QEMU, I'm guessing the 
> easiest way to
> fake a network is to use virtio-net, since linux kernel and QEMU both support 
> it.
> Perhaps when it comes time to implement the network link to the 
> control-processor,
> virtio-net will be the best choice there as well.
> 
> Now, I need to know how to glue it all together.  Questions:
> 
> * the Syborg virtual board seemed like a good & simple reference; but 
> unfortunately,
>  I can't find a full set of system and userspace software to get it running.  
> Any
>  leads here?
> 
> * Even though there is no bus, does it make sense to pretend there is a PCI 
> bus?
>  I had the idea that this might be the quickest bringup, since it would 
> require
>  minimal porting on the kernel side: QEMU populates the PCI config space with 
> the
>  virtio-net device and Linux auto-detects at boot.  If it's equivalent effort 
> to
>  configure and connect the virtio-net device directly, I'd rather not pretend 
> PCI.

Virtio has pretty strict interfaces between several components:

bus
ring
device

In your case, this would be:

virtio-pci
virtio-ring
virtio-net

Now, if your device can do MMIO even on real hardware, that'd certainly ease a 
lot of things for you, as you could just reuse all the hardware emulation in 
Qemu and get Linux drivers for free as well. It would certainly save you from a 
lot of headaches. Since you have a UART working, I assume you do have MMIO?

If you can't do MMIO, take a look at the virtio-s390 bus. It's emulated in Qemu 
and also implemented in Linux and basically does hypercalls and shared memory 
instead of MMIO.


Alex




reply via email to

[Prev in Thread] Current Thread [Next in Thread]