On Thu, Jan 15, 2009 at 10:22:53PM +0100, Arnd Bergmann wrote: > On Thursday 15 January 2009, Ira Snyder wrote: > > I have another question for you Arnd. > > > > What did you use as the host and guest drivers when you ran virtio over > > PCI? Did you use two unmodified instances of virtio_net (one on host, > > one on guest) for networking, or did you write new virtio drivers for > > those? How about for virtio_console (if you ran it at all). > > Jan-Bernd may be able to tell you details about this, and send you the > driver code that his interns implemented for it. > This was only doing virtio_net between two machines using MMIO transfers, > i.e. the DMA engine was unused, but there was a mailbox interrupt (if you > have one of these, you won't need MSI, btw -- just write a DMA to it). >
Thanks. Jan-Bernd, I'm looking forward to any input you have. I'd be happy enough to use mmio at this point. My early attempts with this driver only used mmio as well. The DMA was bolted on later. I do have mailboxes (two inbound, two outbound) which can generate interrupts, as well as doorbell registers (one inbound, one outbound). The doorbell register's bits are "write 1 to clear", and can only be cleared by the opposite side. All of them can cause interrupts over PCI. I used the doorbell registers to communicate which action needed to be taken in my driver. One doorbell for "receive packet(s)", another for "packet transmission(s) complete", etc. I used the mailboxes to transfer characters for the virtual serial port. Ira _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev