Hi, >> Thanks for the detailed write-up. I have checked the UDC driver >> set_halt(), it is called by the gadget driver. The full ascii text of >> usbmon trace for one usb session is also attached. This usbmon trace >> shows a few EOVERFLOW(-75) error. I don't know why EOVERFLOW error >> happened. > > Because your UDC driver sent a packet that was too big. Here's the > first example from the trace: > > f3a2b6c0 3633034189 S Bo:2:036:1 -115 31 = 55534243 06000000 00000000 > 00000600 00000000 00000000 00000000 000000 > f3a2b6c0 3633034326 C Bo:2:036:1 0 31 > > f3a2b6c0 3633034518 S Bi:2:036:1 -115 13 < > f3a2b6c0 3633040328 C Bi:2:036:1 -75 0 > > The first two lines show the host sending a TEST UNIT READY command. > The third line shows the host waiting for a 13-byte CSW data packet. > The -75 error means that the UDC sent back a data packet containing > more than 13 bytes. > > Alan Stern >
Thanks, i do not know why UDC sent back a data packet containing more than 13 bytes in response to TEST UNIT READY command. Here is another usbmon trace attached in this email. There are two issues in this usbmon trace. Firstly, the CSW that is sent back in response to SCSI_READ_10 is wrong (wrong tag). f2c92340 2379075608 S Bo:2:047:1 -115 31 = 55534243 11000000 00100000 80000a28 00000000 00000008 00000000 000000 f2c92340 2379075737 C Bo:2:047:1 0 31 > f2c92ac0 2379075746 S Bi:2:047:1 -115 4096 < f2c92ac0 2382204478 C Bi:2:047:1 0 4096 = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 f2c92340 2382204489 S Bi:2:047:1 -115 13 < f2c92340 2382210596 C Bi:2:047:1 0 13 = 55534253 10000000 00000000 00 Secondly, this CSW shows remote I/O error (-121). f2c92340 2382422538 S Bo:2:047:1 -115 31 = 55534243 12000000 00100000 80000a28 00000000 00000008 00000000 000000 f2c92340 2382422588 C Bo:2:047:1 0 31 > f3a2b5c0 2382422596 S Bi:2:047:1 -115 4096 < f3a2b5c0 2382448965 C Bi:2:047:1 -121 13 = 55534253 12000000 00100000 01 f2c92340 2382448977 S Bi:2:047:1 -115 13 < I am lost. Every time i connect Linux host to the USB gadget, different error scenario is shown in usbmon. victor
scsi_read_10_again11.log
Description: Binary data