USB Storage: data transfer failing with Status code -71
Mukesh Kohli <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
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. Any kind of help is appreciated. Linux OS version used: 2.6.11 Device connected: USB 2.0 memory stick (similar behavior is observed with Hard disk too) -- in Hi speed mode Here is the console log: usb-storage: *** thread awakened. usb-storage: Command READ_10 (10 bytes) usb-storage: 28 00 00 00 01 36 00 00 01 00 usb-storage: Bulk Command S 0x43425355 T 0x4d L 512 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----> 0xc09 166e0 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 512 bytes, 1 entries Fire: virtual address --> 0xc0315c00 length --> 0x200 DMA_FROM_DEVICE capri-ehci usb00: qtd alloc address 0xffc01120 , pool address----> 0xc09166e0 capri-ehci usb00: ehci_qtd_free: qtd address 0xffc01060, pool address----> 0xc09 166e0 usb-storage: Status code 0; transferred 512/512 usb-storage: -- transfer complete usb-storage: Bulk data transfer result 0x0 usb-storage: Attempting to get CSW... usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes capri-ehci usb00: qtd alloc address 0xffc01060 , pool address----> 0xc09166e0 capri-ehci usb00: ehci_qtd_free: qtd address 0xffc01120, pool address----> 0xc09166e0 usb-storage: Status code 0; transferred 13/13 usb-storage: -- transfer complete usb-storage: Bulk status result = 0 usb-storage: Bulk Status S 0x53425355 T 0x4d R 0 Stat 0x0 usb-storage: scsi cmd done, result=0x0 usb-storage: *** thread sleeping. usb-storage: queuecommand called usb-storage: *** thread awakened. usb-storage: Command READ_10 (10 bytes) usb-storage: 28 00 00 02 b2 df 00 00 80 00 usb-storage: Bulk Command S 0x43425355 T 0x4e 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 0xffc01120 , pool address----> 0xc09166e0 capri-ehci usb00: ehci_qtd_free: qtd address 0xffc01180, pool address----> 0xc09 166e0 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 --> 0xc0322000 length --> 0x2000 DMA_FROM_DEVICE Fire: virtual address --> 0xc032c000 length --> 0xe000 DMA_FROM_DEVICE capri-ehci usb00: qtd alloc address 0xffc01180 , 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: ehci_qtd_free: qtd address 0xffc01060, pool address----> 0xc09166e0 capri-ehci usb00: ehci_qtd_free: qtd address 0xffc01180, 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 0; transferred 65536/65536 usb-storage: -- transfer complete usb-storage: Bulk data transfer result 0x0 usb-storage: Attempting to get CSW... usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes capri-ehci usb00: qtd alloc address 0xffc01060 , pool address----> 0xc09166e0 capri-ehci usb00: ehci_qtd_free: qtd address 0xffc011e0, pool address----> 0xc09166e0 usb-storage: Status code 0; transferred 13/13 usb-storage: -- transfer complete usb-storage: Bulk status result = 0 usb-storage: Bulk Status S 0x53425355 T 0x4e R 0 Stat 0x0 usb-storage: scsi cmd done, result=0x0 usb-storage: queuecommand called usb-storage: *** thread sleeping. 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 usb-storage: Bulk data transfer result 0x4 usb-storage: -- transport indicates error, resetting usb-storage: usb_stor_Bulk_reset called usb-storage: usb_stor_control_msg: rq=ff rqtype=21 value=0000 index=00 len=0 capri-ehci usb00: qtd alloc address 0xffc01060 , pool address----> 0xc09166e0 capri-ehci usb00: qtd alloc address 0xffc01120 , pool address----> 0xc09166e0 capri-ehci usb00: devpath 1 ep0out 3strikes capri-ehci usb00: ehci_qtd_free: qtd address 0xffc010c0, pool address----> 0xc09166e0 capri-ehci usb00: ehci_qtd_free: qtd address 0xffc01120, pool address----> 0xc09166e0 usb-storage: Soft reset failed: -71 usb-storage: scsi cmd done, result=0x70000 usb-storage: queuecommand called usb-storage: *** thread sleeping. 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 0x50 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 0xffc010c0 , pool address----> 0xc09166e0 capri-ehci usb00: devpath 1 ep1out 3strikes capri-ehci usb00: ehci_qtd_free: qtd address 0xffc01180, pool address----> 0xc09166e0 usb-storage: Status code -71; transferred 0/31 usb-storage: -- unknown error usb-storage: Bulk command transfer result=4 usb-storage: -- transport indicates error, resetting usb-storage: usb_stor_Bulk_reset called usb-storage: usb_stor_control_msg: rq=ff rqtype=21 value=0000 index=00 len=0 capri-ehci usb00: qtd alloc address 0xffc01120 , pool address----> 0xc09166e0 capri-ehci usb00: qtd alloc address 0xffc01180 , pool address----> 0xc09166e0 capri-ehci usb00: devpath 1 ep0out 3strikes capri-ehci usb00: ehci_qtd_free: qtd address 0xffc01060, pool address----> 0xc09166e0 capri-ehci usb00: ehci_qtd_free: qtd address 0xffc01180, pool address----> 0xc09166e0 usb-storage: Soft reset failed: -71 usb-storage: scsi cmd done, result=0x70000 usb-storage: queuecommand called usb-storage: *** thread sleeping. Thanks and Regards, Mukesh Kohli ____________________________________________________________________________________ Cheap talk? Check out Yahoo! Messenger's low PC-to-Phone call rates. http://voice.yahoo.com ------------------------------------------------------------------------- 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