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