Comment 26 for bug 431963

Revision history for this message
Dinh Nguyen (dinh-nguyen) wrote :

Another note from Neil Perng at Genesys Logic:

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.

There should be two quick solutions:

1. Since Ubuntu 9.04 doesn’t not pass this ATA PASS-THROUGH command, can you ask Canonical to remove it from USB MSC driver?

2. Ask Canonical to correct this invalid command.