HOWTO: Enable AHCI Mode After Installing Windows

Do update me if this doesn't work for you. :)

"
AHCI (Advanced Host Controller Interface) is present on newer Intel chipsets such as 975X (ICH7), P965 (ICH8), and P35 (ICH9). AHCI mode is enabled in the BIOS and 3 settings are commonly available: IDE, AHCI, and RAID. The last two (AHCI and RAID) require a driver floppy and the F6 method when installing Windows XP otherwise the hard disks won't be detected.

AHCI mode brings 3 main advantages:
  1. Supports NCQ (Native Command Queuing) allowing SATA drives to accept more than one command at a time and dynamically reorder the commands for maximum efficiency.
  2. Supports hot plugging of devices
  3. Supports staggered spin ups of multiple hard drives at boot time

However, in the real world the performance difference isn't huge.

The problem is that if you installed Windows in IDE mode (ie you didn't use F6 and supply a driver disk), then simply changing the BIOS setting to AHCI mode and rebooting will cause Windows to fail and will require a repair install. Most people have been advising to reinstall Windows if you want AHCI enabled.

I managed to enable AHCI on Windows XP Professional for a Gigabyte P35-DS4 (ICH9R) without needing to reinstall. This should work on any P35 ICH9 based board:

1. Go to Intel's download centre and download the latest version of the Intel Matrix Storage Manager (7.6.0.1011, 8/2/2007 at time of writing) for your OS:

http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2101&lang=eng

Keep this file as you'll need it again in step 4.

2. Run the installer with the -a switch to extract the files. This will NOT install the software, just extract the files. Follow the prompts as if you were installing the software:

Code:
iata76_enu.exe -a
The above should extract the files to \Program Files\Intel\Intel Matrix Storage Manager. There are two folders, \Drivers and \Drivers64 for 32-bit and 64-bit OS's, respectively.

Copy the file IaStor.sys from the Drivers folder to C:\Windows\System32\drivers\

3. copy the following registry file to your desktop (copy and paste into notepad) and save as ahci.reg

Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2922&cc_0106]
"Service"="iaStor"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000001
"ImagePath"="system32\\drivers\\iaStor.sys"
"tag"=dword:00000019
"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_2922&SUBSYS_B0051458&REV_02\\3&13c0b0c5&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001
4. Double check you've copied the IaStor.sys file as part of step 2. Now do the following:
  • Run the ahci.reg file to add the entries into the registry
  • Reboot the computer and enter the BIOS - DO NOT allow it to start Windows yet.
  • Change the setting for the on board Intel controller to AHCI, save and exit BIOS
  • Boot into Windows

When Windows loads it will detect a new hard disk - cancel the wizard for installing the new hardware and run the Intel driver installer you downloaded in step 1.

Reboot the system again and you're good to go

Now, under Device Manager > IDE ATA/ATAPI controllers you should see Intel(R) ICH9 SATA AHCI Controller listed.

Hope someone finds this useful - I wanted to do this as I needed AHCI mode to dual boot Linux and I didn't have a floppy drive on the machine to allow me to install Windows XP in AHCI mode. This is one area Vista has moved forward - it will allow you to install drivers from devices other than A: such as a USB pendrive or CD.

If you want to enable write caching, see einshem's tip here:

http://forums.pcper.com/showthread.php?p=4149875&postcount=23

Quote:
Originally Posted by einshem
2. All this process worth nothing if you forget at the end to go to device manager, double klick your hard-drive(s) under "disk drivers", go to "policies" tab and mark "Enable write caching for this disk" (I recommend adding this to the guide)
EDIT: Here is a Registry file that should work for 975X and P965 based boards:

Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2821&cc_0106]
"Service"="iaStor"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000001
"ImagePath"="system32\\drivers\\iaStor.sys"
"tag"=dword:00000019
"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_2821&SUBSYS_B0051458&REV_02\\3&13c0b0c5&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001
"

2 comments:

Anonymous said...

Hello,
I'm tried to follow your guide but I had no success. I have a gigabyte P35 chipset-based motherboard. When I set BIOS to AHCI mode, the crash screen appears continuoslly. Please, what can I do to fix it?
Thanks a lot!

Bruno
MSN/Email: bruno#hmbt.org
* change # for "at"

Rico Troubleshooting said...

I have different outcome too. It work for one of my PC but not the other.

I'm still searching for a solution to it.

Do update me if you have it before me. :)