Bug 723858

Summary: usb: add companion controller support
Product: Red Hat Enterprise Linux 6 Reporter: Gerd Hoffmann <kraxel>
Component: qemu-kvmAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.2CC: juzhang, mkenneth, qzhang, shu, tburke, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-0.12.1.2-2.179.el6 Doc Type: Bug Fix
Doc Text:
Part of the "USB 2.0 support" feature in 6.2.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 15:54:05 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Gerd Hoffmann 2011-07-21 12:10:13 UTC
Description of problem:
EHCI handles USB 2.0 devices only and hands off USB 1.1 devices to one or more companion controllers.  qemu should emulate companion controllers so we have a single usb bus which can handle both 1.1 and 2.0 devices instead of two completely separate busses, one for 1.1 and one for 2.0 devices.

Comment 6 Shaolong Hu 2011-09-01 04:43:26 UTC
This is a new feature, no need to reproduce, verify it on:
-----------------------------------------------------------
qemu-kvm-0.12.1.2-2.184.el6.x86_64
2.6.32-191.el6.x86_64


Steps to verify:
------------------
1.Boot guest with:
#/usr/libexec/qemu-kvm -enable-kvm -M rhel6.2.0 -smp 4 -m 4G -name rhel6.1-64 -uuid 3f2ea5cd-3d29-48ff-aab2-23df1b6ae213 -drive file=RHEL-Server-6.1-64-virtio.qcow2,cache=none,if=none,rerror=stop,werror=stop,id=drive-virtio-disk0,format=qcow2 -device virtio-blk-pci,drive=drive-virtio-disk0,id=device-virtio-disk0,bootindex=1 -netdev tap,script=/etc/qemu-ifup,id=netdev0 -device virtio-net-pci,netdev=netdev0,id=device-net0 -boot order=cd,menu=on -monitor stdio -vnc :10 -readconfig ich9-ehci-uhci.cfg

2.In qemu monitor:
device_add usb-tablet,bus=ehci.0,id=input0
device_add usb-hub,bus=ehci.0,id=usbhub0
device_add usb-host,hostbus=3,hostaddr=2,bus=ehci.0,id=camera


Actual results:
-----------------
In guest:
#lsusb:
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 045e:00f7 Microsoft Corp. LifeCam VX-1000
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 0000:0000
Bus 002 Device 002: ID 0627:0001 Adomax Technology Co., Ltd
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

#lsusb -t
Bus#  4
`-Dev#   1 Vendor 0x1d6b Product 0x0001
Bus#  3
`-Dev#   1 Vendor 0x1d6b Product 0x0001
  `-Dev#   2 Vendor 0x045e Product 0x00f7
Bus#  2
`-Dev#   1 Vendor 0x1d6b Product 0x0001
  |-Dev#   2 Vendor 0x0627 Product 0x0001
  `-Dev#   3 Vendor 0x0000 Product 0x0000
Bus#  1
`-Dev#   1 Vendor 0x1d6b Product 0x0002


Conclusion:
------------
Based on results above, usb 1.1 devices are dropped to companion uhci controller correctly, verified.

Comment 8 Gerd Hoffmann 2011-11-18 16:24:39 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Part of the "USB 2.0 support" feature in 6.2.

Comment 9 errata-xmlrpc 2011-12-06 15:54:05 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2011-1531.html