|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: USB virt 2.6 status
> The 2.6 USB virt driver can now mount a filesystem in a 2.6 FE domain
> from my USB key driven by a 2.6 USB BE driver domain. Have successfully
> done a small amount of I/O with miscompare checking.
That's fantastic news! Great work!
> I spent some time implementing USB protocol emulation in the back-end to
> handle the USB control requests that were failing (starting with the
> get-descriptor request) but then discarded the emulation code when I
> discovered that the problem was due to a bug in the FE
> (usb_pipein( urb->pipe ) returns 0x00 or 0x80 and was being assigned to
> a single bit bit-field). I'm not sure why this didn't cause a problem
> for the 2.4 driver.
The definition of usb_pipein on 2.4 and returns 1 or 0 for true or false, so
this bug would only apply in 2.6.
Some of the protocol emulation stuff might be useful if we encounter awkward
devices, so it's good that you at least had a chance to look at it.
> The 2.4 back-end also doesn't seem to correctly map
> all of the FE buffer if a transfer is > 4k but doesn't start at a 4k
> boundary.
It's not clear to me why that particular case should break but I can see a
couple of fixes needed in the logic for unaligned buffers, anyhow. I'll go
through and tweak bits of the code later, watch this space... I might test
domain suspend / resume with USB devices while I'm at it.
> ***Finish porting remaining 2.4 code for back and front-ends for
> interrupt and isochronous transfers.
Interrupts are fairly close to control / bulk transfers. Isochronous requires
a little more logic but the 2.4 implementation is reasonably straightforward.
You might like to consider updating the code to use a slab cache for the iso
schedule buffers in the frontend driver.
> Support for USB devices with multiple interfaces. The 2.4 code is broken
> in this area. The 2.6 code refuses to drive devices with multiple
> interfaces. Need to claim and release all of the interfaces of a
> multiple interface device in one go.
How is it broken? I think the 2.4 backend claims all interfaces attached to a
port (with the probe function being called for each interface by the USB
core), although I haven't tried driving other other interfaces from the
frontend.
> Grant table support.
Should be relatively similar to the usage in the block device code, since we
never transfer page ownership.
Cheers,
Mark
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|