Re: [PATCH] Add quirk to set AHCI mode on ICH boards

Török Edwin
2007-11-09T14:49:33Z

Alan Cox wrote:
> On Thu, 8 Nov 2007 22:46:22 -0500
> Jeff Garzik <jeff@garzik.org> wrote:
>
>
>> On Thu, Nov 08, 2007 at 10:29:37PM -0500, Mark Lord wrote:
>>
>>> And I might even privately patch my own kernels to map the ACHI BAR
>>> in the cases where the BIOS didn't...
>>>
>> The inability to do this in the general case is the main reason why
>> AHCI was not unconditionally enabled, even in IDE mode, when it was
>> originally added... :/
>>
>
> We've done it all the time for various devices without problems (eg S3
> video cards). I'd like to see it go in - although perhaps attached to a
> force_ahci boot param initially
>

There is one problem with force enabling ahci. You'll loose the CDROM on
Dell laptops.
Prior to force-enabling ahci there is one "device" that sees the 2 sata
channels, and the 2 ide channels.
When you force-enable ahci, this device becomes the ahci controller (it
changes the device id),
and the IDE controller will appear as a separate new device (with
another device id), but it is disabled.

There are registers on the ICH7 that allows you to set enabled/disabled
status, but according to the documentation you should not enable a
device after it has been disabled. In practice I couldn't get the CDROM
to get re-enabled:
* either nothing happend
* spurious irqs were sent that nobody handles, unless I used irq=poll;
but still no cdrom.

Force-enabling AHCI, and not trying to enable the CDROM works, although
I occasionally got NCQ errors.

For a (long) discussion see this thread on the powertop mailing list:
http://www.bughost.org/pipermail/power/2007-June/000533.html
http://www.bughost.org/pipermail/power/2007-June/000573.html

And there is also another slightly different approach:
http://mjg59.livejournal.com/76062.html

Best regards,
--Edwin