public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* OMAP34xx EHCI bulk OUT CRC16 complementing
@ 2008-02-20  5:47 Pandita, Vikram
       [not found] ` <5DF83221BE20114E9C331F665ACBC080044F7C2C-tvxpnMfVbg6IQmiDNMet8wC/G2K4zDHf@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Pandita, Vikram @ 2008-02-20  5:47 UTC (permalink / raw)
  To: linux-omap-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA

USB EHCI/OHCI experts

On omap-git v2.6.25-rc2, TI OMAP34xx EHCI controller, we are seeing a strange behavior on a bulk OUT 512 byte transfer.

We can see through the CATC that the 512 byte goes out successfully but there are many Turnaround/Timeout Errors and retries before the packet goes out successfully. 
The retries could range from 0 to 10 or more.

The error packets have 'CRC16 complemented' as per Section 8.6.4 page 234-235 that says for probably a data under-run condition:
"An error for high-speed must be forced by taking the currently calculated CRC and complementing it before transmitting it."

We have confirmed that our Memory (SDRAM) access have a much higher bandwidth available "not" to cause data under-run condition.

Where in EHCI stack should I debug for this issue? 

I am checking: qh_append_tds()
Not sure how this "Dummy" qtd is implemented. Anything to do with this? 

Is there a way to slow-down the OUT transfers on EHCI if that helps in debugging? 

Regards

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: OMAP34xx EHCI bulk OUT CRC16 complementing
       [not found] ` <5DF83221BE20114E9C331F665ACBC080044F7C2C-tvxpnMfVbg6IQmiDNMet8wC/G2K4zDHf@public.gmane.org>
@ 2008-02-22 22:07   ` David Brownell
  0 siblings, 0 replies; 2+ messages in thread
From: David Brownell @ 2008-02-22 22:07 UTC (permalink / raw)
  To: Pandita, Vikram
  Cc: linux-omap-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA

On Tuesday 19 February 2008, Pandita, Vikram wrote:
> USB EHCI/OHCI experts
> 
> On omap-git v2.6.25-rc2, TI OMAP34xx EHCI controller, we are seeing a
> strange behavior on a bulk OUT 512 byte transfer. 
> 
> We can see through the CATC that the 512 byte goes out successfully
> but there are many Turnaround/Timeout Errors and retries before the
> packet goes out successfully.   
> The retries could range from 0 to 10 or more.
> 
> The error packets have 'CRC16 complemented' as per Section 8.6.4
> page 234-235 that says for probably a data under-run condition: 
> "An error for high-speed must be forced by taking the currently
> calculated CRC and complementing it before transmitting it." 
> 
> We have confirmed that our Memory (SDRAM) access have a much higher
> bandwidth available "not" to cause data under-run condition. 
> 
> Where in EHCI stack should I debug for this issue? 

Doesn't sound like an EHCI driver issue.  I'd want to track
what's going on deeper inside the silicon than ARM instruction
set handling ... ;)


> Is there a way to slow-down the OUT transfers on EHCI if that
> helps in debugging?  

You could issue URBs with single packets.  If you're not using
the "usbtest" framework, you should start ... that command line
tool lets you send a variety of packet sequences.  You'll want
some high speed source/sink device, like another board running
the "Gadget Zero" firmware.

- Dave

[1] http://www.linux-usb.org/usbtest/

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-02-22 22:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-20  5:47 OMAP34xx EHCI bulk OUT CRC16 complementing Pandita, Vikram
     [not found] ` <5DF83221BE20114E9C331F665ACBC080044F7C2C-tvxpnMfVbg6IQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2008-02-22 22:07   ` David Brownell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox