HELP!! EHCI detects every connected device as low speed ones
Posted: Fri Jul 20, 2012 3:23 pm
Hi guys!!
I'm passing through difficult times trying to get the PortEnable bit in the PortSC registers of EHCI USB PCI controller.
I settled EHCI as owner all the Ports, by setting the bit 13 (port owner) of PortSC to 0.
After that, I connect a device, a PCI interrupt happens, and I catch it. I get the Port connect status change bit enabled and all. After check the device is not low speed, I begin with the HostController reset, and check that HCH (HostController Halted) bit = 1.
After this, I do a reset of PortSC in order to set up device on line, by setting PortReset bit to 1 and PortEnable bit to 0.
However, how much time would take the reset before to put the PortReset bit back to 0? I have 50 microseconds, is this value ok?
Well, after that, I re-check the PortEnable bit, and its value never is = 1, it ever is = 0, so EHCI never owns a device even if its a Hi-Speed or Full Speed USB device....
Why this happen? What thing is the best to do? I read the Mindshare guide for EHCI and Intel's one and I do all that's needed .... I'm still getting PE bit in my PortSC registers readed back as 0!!
I'm passing through difficult times trying to get the PortEnable bit in the PortSC registers of EHCI USB PCI controller.
I settled EHCI as owner all the Ports, by setting the bit 13 (port owner) of PortSC to 0.
After that, I connect a device, a PCI interrupt happens, and I catch it. I get the Port connect status change bit enabled and all. After check the device is not low speed, I begin with the HostController reset, and check that HCH (HostController Halted) bit = 1.
After this, I do a reset of PortSC in order to set up device on line, by setting PortReset bit to 1 and PortEnable bit to 0.
However, how much time would take the reset before to put the PortReset bit back to 0? I have 50 microseconds, is this value ok?
Well, after that, I re-check the PortEnable bit, and its value never is = 1, it ever is = 0, so EHCI never owns a device even if its a Hi-Speed or Full Speed USB device....
Why this happen? What thing is the best to do? I read the Mindshare guide for EHCI and Intel's one and I do all that's needed .... I'm still getting PE bit in my PortSC registers readed back as 0!!