On Mon, 19 Feb 2007, Mukesh Kohli wrote:

> Hello Guys,
> 
> I am trying to create a duplicate copy of a file onto a USB 2.0 device
> (memory stick) connected to my SOC (system on chip) board. Basic idea is
> to test data transfer across USB host controller and USB Device. It is
> failing randomly after copying different size if file. I am attaching
> the log I got on the console (with some of my extra messages). In the
> log attached the failure happened during data being received by the
> controller.
> 
> After seeing the transactions by hooking analyzer in between I am seeing
> the failure happening due to ACK not being sent by the controller in
> response to data (512 bytes) being sent by the device. And hence reset
> command is being issue.

ACK not being sent is a symptom, not a cause.

> Any kind of help is appreciated. 
> 
> Linux OS version used: 2.6.11

That's pretty old.  You should try to use a more recent kernel.

> usb-storage: *** thread awakened.
> usb-storage: Command READ_10 (10 bytes)
> usb-storage:  28 00 00 02 b3 5f 00 00 80 00
> usb-storage: Bulk Command S 0x43425355 T 0x4f L 65536 F 128 Trg 0 LUN 0 CL 10
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes capri-ehci usb00: qtd 
> alloc address 0xffc01180 , pool address----> 0xc09166e0 capri-ehci usb00: 
> ehci_qtd_free: qtd address 0xffc01120, pool address----> 0xc09166e0
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_sglist: xfer 65536 bytes, 2 entries
> Fire: virtual address --> 0xc033a000 length --> 0x2000 DMA_FROM_DEVICE
> Fire: virtual address --> 0xc0988000 length --> 0xe000 DMA_FROM_DEVICE 
> capri-ehci usb00: qtd alloc address 0xffc01120 , pool address----> 0xc09166e0 
> capri-ehci usb00: qtd alloc address 0xffc011e0 , pool address----> 0xc09166e0 
> capri-ehci usb00: qtd alloc address 0xffc01240 , pool address----> 0xc09166e0 
> capri-ehci usb00: qtd alloc address 0xffc012a0 , pool address----> 0xc09166e0 
> capri-ehci usb00: devpath 1 ep2in 3strikes capri-ehci usb00: ehci_qtd_free: 
> qtd address 0xffc01060, pool address----> 0xc09166e0 capri-ehci usb00: 
> ehci_qtd_free: qtd address 0xffc01120, pool address----> 0xc09166e0 
> capri-ehci usb00: ehci_qtd_free: qtd address 0xffc01240, pool address----> 
> 0xc09166e0 capri-ehci usb00: ehci_qtd_free: qtd address 0xffc012a0, pool 
> address----> 0xc09166e0
> usb-storage: Status code -71; transferred 0/65536
> usb-storage: -- unknown error

It sure would be easier to read this if you had put a '\n' at the end of 
your debugging messages.

You see that "devpath 1 ep2in 3strikes" hidden in amongst all the stuff
you added?  It means that the EHCI controller on your computer did not
receive the 512-byte DATA packet correctly, even though your bus analyzer
did.  That's why the controller didn't send an ACK, and it is the real
reason for the reset.

You might want to check the USB cables, connectors, and terminations.

Alan Stern


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to