[Top][All Lists]
[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