From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=51933 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OHG2s-0004Wt-RD for qemu-devel@nongnu.org; Wed, 26 May 2010 08:49:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OHG2r-0005bT-Mz for qemu-devel@nongnu.org; Wed, 26 May 2010 08:49:14 -0400 Received: from mx1.redhat.com ([209.132.183.28]:2288) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OHG2r-0005b6-G7 for qemu-devel@nongnu.org; Wed, 26 May 2010 08:49:13 -0400 Message-ID: <4BFD1895.1050405@redhat.com> Date: Wed, 26 May 2010 14:48:21 +0200 From: Gerd Hoffmann MIME-Version: 1.0 Subject: Re: [Qemu-devel] RFC: ehci -> uhci handoff suggestions References: <4BFBD33F.7010403@cisco.com> <4BFD0A60.10408@redhat.com> <4BFD1337.6000106@redhat.com> In-Reply-To: <4BFD1337.6000106@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: qemu-devel , "David S. Ahern" Hi, >> USB devices can support both 1.1 and 2.0, right? Who decides which >> protocol is used then? I think the OS can speak 1.1 to the device even >> in case a ehci controller is present (but unused by the OS), right? > > AFAIK the OS must tell the EHCI that it should hand the device off to > the UHCI/OHCI companion before it can use it there. Huh? Compatibility-wise it makes sense to do it the other way around (i.e. have it @ UHCI/OHCI by default and move to EHCI on request), so a OS which knows nothing about EHCI can cope. > If they should be accessed via the EHCI or a companion controller > depends on what the OS requests. And USB 2.0 says that any device that > supports High Speed must also support Full Speed and therefore be > accessible using the companion (at least that's what I understand). Hmm, ok, so no shortcut even for emulated devices. Not that it would have helped much as we have to cover host devices anyway. Also I think one ehci controller can have multiple uhci companion controllers. At least lspci on my T60 suggests that: 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02) 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02) 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02) cheers, Gerd