Bienvenido! - Willkommen! - Welcome!

Bitácora Técnica de Tux&Cía., Santa Cruz de la Sierra, BO
Bitácora Central: Tux&Cía.
Bitácora de Información Avanzada: Tux&Cía.-Información
May the source be with you!

Friday, June 25, 2010

AHCI & RAID

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
Source
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/Prod...=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.p...5&postcount=23
------
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
-----------
1. from the research I made AHCI is quite usefull also for normal desktop PCs running windows.

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)
------------
Control Panel;
System;
Hardware;
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" ONLY FOR THE DRIVES WHERE YOU WORK. Because the cache is needed to speed up the disk operations, while you don't need speed in a backup disk.
In the backup drives disable it (do not mark). Because with the cache enabled if anything happens (system block, power-down, accidental reset, ecc...) you will lose data ALSO IN THE BACKUP DISK!
-----------
ICH8M. I tried your second reg file, not the first one.
---------
So, how can you "follow the steps in the first topic" if you "made all the operations with the Jmicro set to IDE"? At this point of the procedure (After loading the .reg file) you should change the settings in the BIOS as "AHCI", not ide, BEFORE letting Windows start.
---------
You could try to add ALSO the registry keys wrote by Peter Shilkin in the page 3 of this discussion.
---------

Success!
Read the instructions on
http://tmbu.info/what-is-ahci-how-to-turn-on-without-reinstalling-windows/#more-107
ttp://forum.ru-board.com/topic.cgi?forum=62&topic=7941
For the not Russian-challenged:
http://translate.google.com/translate?hl=en&u=
http://tmbu.info/operating-system/tweaking/what-is-ahci-how-to-turn-on-without-reinstalling-windows
http://translate.googleusercontent.com/translate_c?hl=en&u=
http://tmbu.info/what-is-ahci-how-to-turn-on-without-reinstalling-windows/#more-107
1) Downloaded and unpacked
http://www-307.ibm.com/pc/support/si...cid=MIGR-62909
2) In PREPARE\IMSM_PRE.inf, changed all instances of dev_2829 to dev_27C1
3) Invoked PREPARE\INSTALL.CMD
4) Rebooted and enabled AHCI in BIOS. Windows booted fine.
5) Installed the latest version of iata76_enu.exe from Intel's site and rebooted again.

Installing the PREPARE inf file didn't do anything for my system. Still can't get into Vista with AHCI enabled.
I didn't change the devices from dev_2829 to dev_27C1 because my controller is 2829 already (ICH8M).
-----------

  1. Make sure that the BIOS is disabled AHCI and do not forget to backup folder Windows. Also, I advise to make emergency boot disk
  2. Download 79im05ww.exe and extract, for example, in C:\DRIVERS\WIN\SATA
  3.  If you ICH7M, go to step (5)
  4. Edit C:\DRIVERS\WIN\SATA\PREPARE\IMSM_PRE.inf replacing all DEV_27C5 on the values corresponding to your southbridge:
    • ICH6R - DEV_2652 ICH6R - DEV_2652
    • ICH6M - DEV_2653 ICH6M - DEV_2653
    • ICH7R - DEV_27C1 ICH7R - DEV_27C1
    • ICH7DH - DEV_27C1 ICH7DH - DEV_27C1
    • ICH7M - DEV_27C5 ICH7M - DEV_27C5
  5.  Press Win+R , type C:\DRIVERS\WIN\SATA\PREPARE\INSTALL.CMD , click Ok
  6. Restart your PC and turn on AHCI in the BIOS support
  7. When you boot OS start wizard detect new devices:
    • No, not this time 
    • If Windows XP, click No, not this time , then Install from a list or specific location (Advanced) , and as a way to specify the C:\DRIVERS\WIN\SATA

http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-70551
-----------
I've an ASUS P5K-VM with ICH9 but like it has the 4 sata ports controller, the only mod needed to your reg file is change DEV_2922 into DEV_2923 and voila!
But after the intel drivers install didn't work, then i've to use the drivers for Vista that cames with the motherboard and they work
-----------
AHCI to RAID
I did the registry edit on Microsoft's page to enable the AHCI driver for Vista.
http://support.microsoft.com/kb/922976
Then I rebooted, went in to the bios for my P5N32-E SLI motherboard, which uses the Nvidia 680i chipset, turned on RAID mode, which also turns on I believe AHCI for the Nvidia SATA Controller, rebooted and noticed that my system was faster, and it works perfect.
The Vista registry edit, works on Vista 32 and Vista 64.
-----------
http://vip.asus.com/forum/view.aspx?board_id=1&model=P5W+DH+Deluxe&id=20061115213021266&page=1&SLanguage=en-us
One final thing to be done is to update the drivers. Go to the following link and download
RAID/AHCI Software - Intel® Matrix Storage Manager [IATA62.EXE], and install.

http://downloadfinder.intel.com/scripts-df-external/download.aspx?url=/12093/eng/iata62_enu.exe&agr=N&ProductID=2101&DwnldId=12093&strOSs=44&OSFullName=Windows*%20XP%20Professional&lang=eng
Windows 2003, chipset ich9R:
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=16098&lang=eng
-----------
For my Aspire 9920 I added more DEV's:

HTML 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
I just don't know what controller type used in my system, so this .reg makes a deal with all types!
---------------
Windows 2003 Enterprise 64
Intel Server Board 5000 VSA 4 DIMM
I have download that:
http://downloadcenter.intel.com/conf...Name=&lang=fra
Then I dezip, then I copy the file IaStor.sys (64 bits) to C:\Windows\System32\drivers\
Then I copy the following registry file to your desktop (copy and paste into notepad) and save as ahci.reg
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
But I am not sure is the correct for my motherboard.
Then I double clic on the file to add in registery
Then I reboot, and in the bios I put AHCI Enable
Then The pc run and I see the logo Windows 2003 during 5 s then blue screen and the system reboot.
---------------
Asus M3A motherboard with an ATI SB600 chipset. I downloaded the official x64 driver for the AHCI controller, and then wrote this reg based off of the .inf in the driver source:


Code:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_1002&dev_4380&subsys_82311043] "Service"="ahcix64" "ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}" [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ahcix64] "Type"=dword:00000001 "Start"=dword:00000000 "Group"="SCSI miniport" "ErrorControl"=dword:00000001 "ImagePath"="system32\\drivers\\ahcix64.sys" "tag"=dword:00000019 "DisplayName"="ATI AHCI Compatible RAID Controller" [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ahcix64\Parameters\PnpInterface] "5"=dword:0x00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ahcix64\Settings\CAM] "EnableALPEDisableHotplug"=dword:0 "EnableCCC"=dword:1 "CCCTimeoutValue"=dword:10 "CCCCompletionValue"=dword:32 "NCQEnableDiskIDBits"=dword:0 "EnableHIPM"=dword:0 "EnableDIPM"=dword:0 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ahcix64\Enum] "0"="PCI\\VEN_1002&DEV_4380&SUBSYS_82311043\\3&13c0b0c5&0&FA" "Count"=dword:00000001 "NextInstance"=dword:00000001
I first had to identify my device with linux
Code:
sudo lspci -vvnn | less
The official driver has dozens of device entries and I wasn't about to do them all. This means anyone else that wants to use this probably has to change the device number to match what they have.
But it worked on the first try. WHOO. Other than the code, the procedure is the same as the original post
---------------
works just fine on Asus P5E WS Professional ... no probs at all
Confirmed working on Abit IP35 Pro Rev1.1 w/
RAID/AHCI Software - Intel® Matrix Storage Manager v7.8.0.1012 (11/9/2007 )
---------------
MB ASUS P5B-SE 975P (BIOS vers. 0709), I follow the steps in the first topic but didn't help so:
I have integrated the Jmicro and Intel AHCI drivers into the WinXP istallation CD with nLite, installing windows: no help (HDD not recognized)
I reinstall everything using the floppy created with the 32-bit Floppy Configuration Utility for Intel Matrix Storage Manager, press F6 when required, no help (HDD not recognized)
I connect the HDD to the jMicro controller, set the Intel SATA to AHCI, start windows to install the AHCI drivers but in the device manager were found two new hardware, a second Jmicro controller and a PCI device, there was no way to install their drivers so, also this operation was aborted and back to IDE configuration reconnecting the HDD to SATA 1 port and Intel controller to IDE.
All this operations were done with the Jmicro always set to IDE in the BIOS, I always play with the Intel SATA settings. Any suggestions?
-----------

In following code replace SUBSYS_ and REV_ values to correct ones:

Code:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2929&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(R) ICH8M-E/ICH9M-E SATA RAID 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_2929&SUBSYS_02331028&REV_03\\3&61aaa01&0&FA" "Count"=dword:00000001 "NextInstance"=dword:00000001
SUBSYS_ and REV_ values could be obtained using livecd with integrated drivers (see my previous post on previous page) or "PCI & AGP Info tool" from Hiren's BootCD (menu "System Info Tools").
------------

Drivers for RAID can be treated the same way
You can boot the Windows disk using any controller in legacy mode and enable AHCI/RAID on another controller, then when Windows loads, just point the driver search to the relevant drivers (I prefer to extract them rather than run packed EXE files) and that should automatically do the same thing suggested above - sets up the device and any relevant services. Shut down, move the drive to the RAID or AHCI controller and all should be sweet.
---------

No comments: