[PATCH 1/1] Fix SATA drive failure on Ubuntu 9.10 installation
Bryan Wu
bryan.wu at canonical.com
Tue Dec 1 10:11:18 UTC 2009
Andy Whitcroft 写道:
> On Tue, Dec 01, 2009 at 05:32:42PM +0800, Bryan Wu wrote:
>> From: Dinh Nguyen <r00091 at freescale.com>
>>
>> BugLink: https://bugs.launchpad.net/bug/431963
>
> Missing an 's' here. Had me going for a bit there.
>
Sorry about that, -:).
> I had a quick look at the bug, and the following is the text associated
> with this patch:
>
> I think I have found a fix for this issue. I have attached the
> patch. It is probably not the correct fix at the moment, and more
> analysis is needed, but for now it appears that with 9.10, there is an
> invalid command that is coming to the USB/SATA bridge chip. Instead
> of gracefully handling this command, the USB/SATA bridge chip on the
> Babbage board is failing on this command.
>
> This tends to imply its just a debug patch and not the final fix? Can
> we confirm its the final fix?
>
This patch is not a final fix, from my point of view. It is a workaround to make
the bad USB chip work. Please find the comments from the USB chip vendor:
---
We found that the key issue deciding Ubuntu 9.10 boot-up or not is “how we
handle this ATA PASS-THROUGH command.” Original GL830 just pass the ATA
PASS-THROUGH command and the SECTOR_COUNT field of its IDENTIFY command is 0, so
GL830 seems it is an invalid command. As a result, GL830 just bypass this ATA
PASS-THROUGH command to HDD and return USB Host a CSW OK. The hang-out situation
is because HDD is processing the IDENTIFY command, but GL830 did not response HDD.
We have tried to ask GL830 response USB Host a CSW FAIL of CSW STALL to skip
this ATA PASS-THROUGH command, and the Ubuntu 9.10 can successfully boot-up. The
USB/SATA cable you’re using must be performance this similar solution, so it can
boot system up.
The root cause of this weakness (the glitch you mentioned) is because GL830
doesn’t check the integrity of ATA PASS-THROUGH command. Since there are too
many exceptions, we suppose the command sent by USB Host should be a valid one.
---
Although it is a workaround and might not be accept by upstream, it is important
to fix this critical bug in our Karmic i.MX51 release.
Thanks
-Bryan
More information about the kernel-team
mailing list