[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