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!!
HELP!! EHCI detects every connected device as low speed ones
Re: HELP!! EHCI detects every connected device as low speed
That is what i do in Octaos:
after reset wait 50miliseconds not microseconds ,after this i clear the reset bit and wait 10 miliseconds,then if port is not yet enabled i try to reset one more time before assuming it is a low speed device.
after reset wait 50miliseconds not microseconds ,after this i clear the reset bit and wait 10 miliseconds,then if port is not yet enabled i try to reset one more time before assuming it is a low speed device.
Re: HELP!! EHCI detects every connected device as low speed
Wow, that worked!! I can now detect EHCI devices correctly and have the PE bit enabled!!
Thanks Octavio
Thanks Octavio