Friday, March 14, 2008

Enabling AHCI mode after installing Windows (on a Dell XPS m1330)

The day I day I received my Dell XPS m1330 LED, I reformatted the hard-drive and installed Windows XP on it. Since XP doesn't come with AHCI drivers you need to do the F6 trick (and supply the driver disk) during the installation process. I didn't bother with it and just installed it after changing the mode as ATA in the BIOS.

<spam>
here's a comparison of LED (left) vs LCD (right) screens on Dell m1330 XPS



</spam>


Recently, I decided to change the mode to AHCI and followed the instructions on http://forums.pcper.com/showthread.php?t=444831 to enable the AHCI mode back on but wasn't able to successfully do it and kept seeing the BSOD.

Here's what the above website says:

1) Download the Intel Matrix Storage Manager from
http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2101&lang=eng

2) Extract it using the
iata76_enu.exe -a
on a command line and it'll extract all the files in
C:\Program Files\Intel\Intel Matrix Storage Manager\...

3) Copy the iaStor.sys file from the above directory (Drivers or Drivers64) to
C:\Windows\system32\drivers

4) Copy the following code in a file, say ahci.reg and then run the file to add entries to registry.

There were couple of different versions of the registry entries but a user combined all of them into one and here's the code

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2922&CC_0106]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_282A&CC_0104]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2829&CC_0106]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2822&CC_0104]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2821&CC_0106]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2682&CC_0104]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2681&CC_0106]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_27C3&CC_0104]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_27C6&CC_0104]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_27C1&CC_0106]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_27C5&CC_0106]
"Service"="iaStor"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2653&CC_0106]
"Service"="iaStor"

[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

5) Reboot the computer and do not boot the Windows and instead go to BIOS setup.

6) Change the setting to AHCI mode, save and exit

7) Boot the Windows, it'll identify a new drive and install the drivers and ask you to reboot.

8) Happy ever after.


Instead, It didn't work for me and I kept getting the BSOD even after changing many different registry entries.

I ended up downloading the driver for Intel SATA from the dell website (R154200.EXE) and then unzipped it. If you use the iaStor.sys from this file and follow the above procedure, you should be fine and the laptop should boot without any problems.

Final note from the website,
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)

1 comment:

Anonymous said...

Enabling AHCI on existing Windows XP installation.

1. Download Intel Sata RAID/AHCI storage driver floppy (used during Windows setup with F6) from your motherboard manufacturer and extract files to a directory on your HD.

2. In device manager change existing IDE ATA/ATAPI controller:
a. open IDE ATA/ATAPI controllers (click on +)
b. right click the first Intel controller listed
c. select "Update driver..."
d. select "No, not this time, Install from a list or specific location (Advanced)"
e. select "Don't search. I will choose the driver to install"
f. select the Standard Dual Channel PCI IDE Controller and click Next (do not reboot)
g. repeat steps c. to f. for the second controller

3. Reboot.

4. In device manager, update the drivers for the existing IDE ATA/ATAPI controller:
a. open IDE ATA/ATAPI controllers (click on +)
b. right click the first Standard Dual Channel PCI IDE Controller
c. select "Update driver..."
d. select "No, not this time, Install from a list or specific location (Advanced)"
e. select "Don't search. I will choose the driver to install"
f. click on "Have disk" and browse to the directory with the AHCI drivers
g. select the iaAHCI.inf and click Next
h. ignore any warnings and reboot

(If you get a blue screen and the system reboots during these steps, repeat them for the second controller)

5. Reboot

6. Enter system bios and change controller to AHCI and save.

Your system should now run in AHCI mode.

Possibly you can install the Intel Matrix Storage Manager. Although I'm not sure, it might improve performance.