Hello,

I'm trying to make USB 2.0 devices work on a CEPC with EHCI/OHCI Host
controllers.
I've installed all the USB related QFEs.
If I insert a USB 1.1 flash key, EHCI passes control to OHCI and all
works fine.

In case of a 2.0 device, I can see debug strings up to:

CHub(Root tier 0)::AttachDevice - status =
DEVICE_CONFIG_STATUS_SCHEDULING_GET_DEVICE_DESCRIPTOR_TEST, failures =
0
+CHub(Root tier 0)::GetDescriptor - address = 0, Type = 1, Index = 0,
Size = 8

GetDescriptor does not return at all, due to a busy pipe.
After other messages, I see this block of lines repeating forever:

CQTransfer::IsTransferDone (this=0x35f820,id=0x0)
CQTransfer::IsTransferDone (this=0x35f820) return 0
CPipe::CheckForDoneTransfersThread - #pipes still busy = 1
CPipe::CheckForDoneTransfersThread - #pipes to check = 1

Have you ever seen a similar situation?
At the end of my post you will find a more detailed debug output.

Thank you in advance,
Panino

-------
[..]
+CRootHub::ResetAndEnablePort - port = 2
Root hub, after reset & enable, port 2 portsc = 0x1005
-CRootHub::ResetAndEnablePort - port = 2, returning 1
+CRootHub::GetStatus - port = 2
-CRootHub::GetStatus - port = 2, returing BOOL 1
CHub(Root tier 0)::HubStatusChangeThread - device attached on port 2
+CHub(Root tier 0)::AttachDevice - port = 2, fIsLowSpeed = 0
+CDeviceGlobal::ReserveAddress
-CDevice::ReserveAddress, returning rAddress 1, success = 1
CHub(Root tier 0)::AttachDevice - status =
DEVICE_CONFIG_STATUS_OPENING_ENDPOINT0_PIPE, failures = 0
+CPipe::CPipe
-CPipe::CPipe
+CQueuedPipe::CQueuedPipe
-CQueuedPipe::CQueuedPipe
+CControlPipe::CControlPipe
-CControlPipe::CControlPipe
+CControlPipe::OpenPipe
+CPipe::AddToBusyPipeList - new pipe(Control) 0x33370, pri 0
-CPipe::AddToBusyPipeList - new pipe(Control) 0x33370, pri 0,
returning BOOL 1
-CControlPipe::OpenPipe
CHub(Root tier 0)::AttachDevice - status =
DEVICE_CONFIG_STATUS_USING_ADDRESS0, failures = 0
CHub(Root tier 0)::AttachDevice - status =
DEVICE_CONFIG_STATUS_RESET_AND_ENABLE_PORT, failures = 0
+CRootHub::ResetAndEnablePort - port = 2
Root hub, after reset & enable, port 2 portsc = 0x1005
-CRootHub::ResetAndEnablePort - port = 2, returning 1
CPipe::CheckForDoneTransfersThread - #pipes to check = 1
-CPipe(Control)::ScheduleTransfer - Schedule called during QHead Busy
or nothing to schedule!
CPipe::CheckForDoneTransfersThread - #pipes still busy = 1
CPipe::CheckForDoneTransfersThread - #pipes to check = 1
-CPipe(Control)::ScheduleTransfer - Schedule called during QHead Busy
or nothing to schedule!
CPipe::CheckForDoneTransfersThread - #pipes still busy = 1
CPipe::CheckForDoneTransfersThread - #pipes to check = 1
-CPipe(Control)::ScheduleTransfer - Schedule called during QHead Busy
or nothing to schedule!
CPipe::CheckForDoneTransfersThread - #pipes still busy = 1
CPipe::CheckForDoneTransfersThread - #pipes to check = 1
42-CPipe(Control)::ScheduleTransfer - Schedule called during QHead
Busy or nothing to schedule!
CPipe::CheckForDoneTransfersThread - #pipes still busy = 1
CHub(Root tier 0)::AttachDevice - status =
DEVICE_CONFIG_STATUS_SCHEDULING_GET_DEVICE_DESCRIPTOR_TEST, failures =
0
+CHub(Root tier 0)::GetDescriptor - address = 0, Type = 1, Index = 0,
Size = 8
+CControlPipe::IssueTransfer, address = 0
+CPipe(Control)::IssueTransfer, address = 0
+CControlPipe::AreTransferParametersValid
-CControlPipe::AreTransferParametersValid, returning BOOL 1
CTransfer::Init (this=0x35f820,id=0x0)
CQTransfer::Init
(this=0x35f820,id=0x0),m_pAllocatedForControl=0x4a9000,m_pAllocatedForClient=0x4a9020
CQTransfer::AddTransfer (this=0x35f820,id=0x0)
-CPipe(Control)::IssueTransfer - address = 0, returing
HCD_REQUEST_STATUS 1
-CControlPipe::::IssueTransfer - address = 0, returing
HCD_REQUEST_STATUS 1
CPipe::CheckForDoneTransfersThread - #pipes to check = 1
CQTransfer::IsTransferDone (this=0x35f820,id=0x0)
CQTransfer::IsTransferDone (this=0x35f820) return 0
CPipe::CheckForDoneTransfersThread - #pipes still busy = 1
CPipe::CheckForDoneTransfersThread - #pipes to check = 1
CQTransfer::IsTransferDone (this=0x35f820,id=0x0)
CQTransfer::IsTransferDone (this=0x35f820) return 0
[..]

Re: GetDescriptor does not return with USB 2.0 devices by Panino

Panino
Sun Nov 04 22:45:38 PST 2007

No answer for now..

Are all USB experts on vacation? :-)
The solution is so important to me, so I ask you to help me a bit..

Thank you in advance.

Panino


Re: GetDescriptor does not return with USB 2.0 devices by Valter

Valter
Mon Nov 05 02:49:24 PST 2007

Panino <paninocolsalame@hotmail.com> wrote in
news:1193845531.609187.324750@19g2000hsx.googlegroups.com:

[...]
> Have you ever seen a similar situation?
> At the end of my post you will find a more detailed debug output.

Try to put a powered USB 2.0 hub in