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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.