On Fri, 16 Apr 2010, Sarah Sharp wrote: > In the meantime, can everyone confirm my summary of the behavior of the > Buffalo device (not the Genesys chip)? > > > > > There seems to be an issue with how the Buffalo USB3 hard drive handles > the SCSI ATA pass through commands. We found this issue when the Linux > userspace program hdparm, using the Ubuntu Linux distribution. The > device responds correctly to an IDENTIFY DEVICE via the ATA_12 tunnel, > but it stalls when it's sent an IDENTIFY DEVICE via the ATA_16 tunnel. "Stalls" isn't the right word. It responds with "Phase Error" in bCSWStatus. Less precisely but more succinctly, it returns a Phase Error. > The command before the ATA_16 IDENTIFY DEVICE was a SET FEATURES via the > ATA_16 tunnel, and it was responded to properly, so we think it should > support the ATA_16 commands. > > This problem makes the device unusable under the Linux 2.6.31 and 2.6.32 Only when running USB 3. The devices work okay with USB 2. > kernels, as they don't support configured device reset after an endpoint > stall. The device works on later kernels (2.6.33 and 2.6.34) with that > support. > > > Details > ------- > > The hdparm program issues the following commands, and gets the following > responses: > > command contents: a1 08 2e 00 01 00 00 00 00 ec 00 00 > Bulk Command S 0x43425355 T 0x2d L 512 F 128 Trg 0 LUN 0 CL 12 > Bulk Status S 0x53425355 T 0x2d R 0 Stat 0x0 > scsi cmd done, result=0x0 > (This is an IDENTIFY DEVICE via the ATA_12 tunnel) > > command contents: 85 06 20 00 05 00 fe 00 00 00 00 00 00 40 ef 00 > Bulk Command S 0x43425355 T 0x2e L 0 F 0 Trg 0 LUN 0 CL 16 > Bulk Command S 0x43425355 T 0x2f L 512 F 128 Trg 0 LUN 0 CL 16 This "T 0x2f" line doesn't belong here (it appears below). Copy & Paste error? > Bulk Status S 0x53425355 T 0x2e R 0 Stat 0x0 > scsi cmd done, result=0x0 > (This is a SET FEATURES via the ATA_16 tunnel) > > command contents: 85 08 2e 00 00 00 00 00 00 00 00 00 00 40 ec 00 > Bulk Command S 0x43425355 T 0x2f L 512 F 128 Trg 0 LUN 0 CL 16 > Bulk Status S 0x53425355 T 0x2f R 512 Stat 0x2 And this "Bulk Status" line doesn't belong here. Again, it appears below. > Status code -32; transferred 0/512 > clearing endpoint halt for pipe 0xc0008280 > Bulk status result = 0 > Bulk Status S 0x53425355 T 0x2f R 512 Stat 0x2 > -- transport indicates error, resetting > (This is an IDENTIFY DEVICE via the ATA_16 tunnel) > > The full log is here: > http://minilop.net/~sarah/buffalo-hd-ata-16-issue.log > > The drive stalls on the last command, which is a valid ATA command. Can It returns an error on the last command. (It also stalls, but that's okay -- stalling an endpoint during a command is normal and it should work fine with USB 3.) > you confirm if your device supports the SCSI ATA pass through > specification? > > http://www.t10.org/cgi-bin/ac.pl?t=f&f=sat2r09.pdf That link doesn't work. The standard is not freely available. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html