Subject: [RFC 1/2] virtio: Add AMBA bus driver for virtio device

From: [email-masked] (Rusty Russell)
Date: Tue, 13 Sep 2011 12:28:26 +0930

On Mon, 12 Sep 2011 17:45:56 +0100, Pawel Moll <[email-masked]> wrote:
> On Mon, 2011-09-12 at 11:01 +0930, Rusty Russell wrote:
> > You need to make these at least 64 bits.  Lguest makes them variable
> > width, in fact.
> 
> No problem, I've reserved 128 bits in the modified registers layout (see
> RFC v2), I can even change it into "offset/value" interface, which would
> give you variable width. One thing I don't get is how to access feature
> bits > 31? The get_features() seems
> to be limited to 32:
> 
> struct virtio_config_ops {
> <...>
> 	u32 (*get_features)(struct virtio_device *vdev);
> <...>
> }

There's a patch for that already :)

> > > + *  0x008   32  QueuePFN      PFN for the currently selected queue
> > > + *  0x00c   32  QueueNum      Queue size for the currently selected queue
> > 
> > You should, I believe, seriously consider allowing the guest to set the
> > queue size, rather than the host (perhaps the host could suggest one,
> > but the guest should be able to override it).
> 
> I guess the QueueNum could be simply a read/write register - guest can
> read suggestion and override it writing it back. The same question
> though - how can guest change it? (I mean some API?)

We can sort that out later... the Guest may try some ambitious large
allocation and fall back if it fails.

> > Anthony or Michael might suggest other changes, since they are most
> > familiar with virtio_pci limitations...
> 
> I've added them on the RFC v2 Cc as well - all feedback more then
> welcome!

Excellent...  of course, the virtualization list is down at the moment,
making this a bit more awkward.

Cheers,
Rusty.