From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luben Tuikov Date: Thu, 22 Apr 2010 00:08:52 +0000 Subject: Re: System hangs when using USB 3.0 HD with on Ubuntu Message-Id: <701340.64320.qm@web31803.mail.mud.yahoo.com> List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Alan Stern Cc: Sarah Sharp , Jonas Schwertfeger , James Bottomley , Kay Sievers , David Zeuthen , "" , "" , USB Storage List , Matthew Dharm , "" , Lennart Poettering , Douglas Gilbert , "" , Mark Lord , Sergei Shtylyov On Apr 21, 2010, at 9:09, Alan Stern wrote: On Wed, 21 Apr 2010, Luben Tuikov wrote: The Sector Count field in the ATA PASS-THROUGH (12) or (16) CDB should be set appropriately by the Application Client as the neither the SAT bridge nor the SATA transport will interpret the ATA Command byte. Thus, for IDENTIFY (PACKET) DEVICE the Application Client should set it to 1. Why do you say that 1 is the appropriate value? In the ATA-5 spec (which is the most recent version I have) Sector Count is listed as "na" for IDENTIFY DEVICE, which means that the content of that field is not applicable to this particular command. Hence the value shouldn't matter. It is needed by the transport protocol(s). I don't understand; can you explain more fully? Which transport protocol(s) need to use the Sector Count? The USB transport protocol doesn't; it encodes the transfer length in a wrapper. The bridge chip should interpret the wrapper instead of looking inside the SAT command. Well BOT is the exception. In general transports aren't concerned with the size, etc of the command. They just transport the CDB. UAS for example, being in SAM-spirit transport and in this sense being mature over BOT. The transfer length is part of the CDB, if the command is expected to transfer data and ATA PT CDBs are no exception. The transport bridge would "convert" from one transport protocol into another and it thus need to know the transfer size if any to prep the next protocol for the command. In this case this is visualized as UAS(SCSI)<-->SATA(ATA). Use BOT, wlg. This is really the function of SAT. Unknown CDBs are treated as bi-directional to let the target determine data transfer direction if any. Luben Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html