Companion-less EHCI handle low-speed devices?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
Jonatan44
Posts: 24
Joined: Fri Sep 11, 2009 1:22 am

Companion-less EHCI handle low-speed devices?

Post by Jonatan44 »

Hi all,

lately I had saw a lot of PCs shipped without an UHCI/OHCI companion controllers along with the EHCI controller, I'm wondering who the EHCI can handle the low-speed devices attached to the computer USB ports, the EHCI specs states:
This specification allows communications to Full- and Low-speed devices connected to the root
ports of the USB 2.0 host controller to be provided by companion USB 1.1 host controllers. If an
implementation does not include companion host controllers, the host controller must include a high-speed
device permanently attached to each of the EHCI ports the implementation is planning to utilize. The EHCI
controller cannot work with a Full- or Low-speed device.
I have enumerated the entire PCI buss, devices and function and didn't find and UHCI/OHCI companion controllers, so what the thing I missing?

Regards,
Jonatan44.
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: Companion-less EHCI handle low-speed devices?

Post by Owen »

Postulation: There is a "USB Hub" device permanently attached to the EHCI controller? In this case, the hub would be responsible for translation.
User avatar
Jonatan44
Posts: 24
Joined: Fri Sep 11, 2009 1:22 am

Re: Companion-less EHCI handle low-speed devices?

Post by Jonatan44 »

so if such usb hub do exists would i be able to communicate the low-speed device thought my ehci driver?
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Re: Companion-less EHCI handle low-speed devices?

Post by pcmattman »

Yes.

Read the specification - specifically, the information about split transactions.
User avatar
Jonatan44
Posts: 24
Joined: Fri Sep 11, 2009 1:22 am

Re: Companion-less EHCI handle low-speed devices?

Post by Jonatan44 »

Hi all,
I've read the suggested specification parts, but haven't fully understand how to applie it to my situation:

when I enumerates the PORTSC registers, with a low-speed device connected, I get 0x3002 value from PORTSC (which is bad), but for hi-speed device I get 0x1005 value which is good.

I understand that the EHCI allow port ownership to companion U/OHCI (this is regardless from the fact I've mention in my previous posts, that I don't have companion controllers) but I don't understand why the "Connect Status Change" bit is set on the low-speed device, and who could I enable and use him on my EHCI controller (I don't want to release ports ownership for low and full speed devices to companion controllers).

Hope that someone could help me with this.

Thanks!

PS.
my CF register is set to one, before the PORTSC enumeration.
kishon
Posts: 1
Joined: Wed Jan 12, 2011 5:39 am

Re: Companion-less EHCI handle low-speed devices?

Post by kishon »

Have you solved this problem??
User avatar
Jonatan44
Posts: 24
Joined: Fri Sep 11, 2009 1:22 am

Re: Companion-less EHCI handle low-speed devices?

Post by Jonatan44 »

It seems that Owen was right, the usb hub attached to the ehci was responsible to the translation of the low/full to hi speed, and by that, the ehci did not needed a companion controllers to handle low and full speed device.
Post Reply