Hi USB team

I'm trying to debug an issue related to sending an ATA command (IDENTIFY DEVICE = 0xEC) to a SCSI disk connected to a USB port on my PC. After turning USB/storage debugging on in the kernel, it turns out that the issue is with a device babble.

A little more kernel instrumentation shows that it's the bulk CSW that is babbled. The CBW is going through fine, the returned data-in is correct but the CSW length returned by the device to the USB controller is more than the expected 13 bytes.

I'm now trying to go further in the debugging process and find out what is being babbled... The QH overlay is written back properly (including the token that confirms the babble) but the actual DMA buffer pointed to by the qh->hw->hw_buf[0] is not. All I can see in this buffer is the previous command issued in the corresponding CBW (the same DMA buffer is used for both CBW and CSW).

So, is there any way of figuring out the babbled content - or in other words, is the babbled content stored anywhere or is it just discarded by the USB controller as soon as it sees more bytes coming in than expected?

BTW, we're talking about a Bulk endpoint in this case.

Thanks!
Steph
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to