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
