From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergei Shtylyov Date: Fri, 02 Apr 2010 15:50:15 +0000 Subject: Re: System hangs when using USB 3.0 HD with on Ubuntu Message-Id: <4BB61237.5030000@ru.mvista.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: James Bottomley , Jonas Schwertfeger , Kay Sievers , Douglas Gilbert , David Zeuthen , linux-hotplug-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sarah Sharp , linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, USB Storage List , Matthew Dharm , linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Lennart Poettering Hello. Alan Stern wrote: >>> Best guess (and it's a guess only) would be that the USB bridge SAT >>> layer doesn't implement ATA_16 and so fails in interesting ways when it >>> comes in. Does the ATA_12 version of IDENTIFY DEVICE succeed? >>> >> It does. And in between the two is an ATA_16 SET FEATURES command >> which also (apparently) succeeds. That is, there is no error >> indication from the device -- but goodness knows if it actually carries >> out the command. >> > > Incidentally, there's a discussion of this problem with input from an > engineer at the company that makes the bridge chip here: > > https://bugs.launchpad.net/ubuntu/+source/linux-fsl-imx51/+bug/431963 > > See comment #25 and later. He claims that the ATA pass-through command > contains a SECTOR COUNT field of 0 even though it asks for 512 bytes of > IDENTIFY data. This invalid parameter combination causes the bridge > chip to get confused, and instead of failing gracefully, it messes up > the USB protocol. > IDENTIFY DEVICE command always returns 512 bytes of data, regardless of any value in the sector count register. > Does anybody know where to find out why hdparm is sending an IDENTIFY > command with invalid parameters? > IDENTIFY DEVICE command has *no* parameters. > Alan Stern > WBR, Sergei