SATA is the new communication standard between a computer system and hard drives, CD and DVD drives, etc. and replaces the slower IDE standard. However, many people do not realize that SATA comes in two variants: AHCI mode or "real" SATA mode and a kind of IDE emulation via the SATA bus. Windows XP has no original support for AHCI. Booting the Windows XP Professional x64 CD actually results in a Bluescreen when the AHCI mode is enabled in the BIOS.
If AHCI is disabled in the BIOS, booting Windows will work fine, but as soon as you try to install the AHCI drivers for your chipset, this will fail because no AHCI support is detected because it is disabled. If you restart and enable AHCI support in the BIOS, Windows crashes because it can not read from its installation partition because it does not have AHCI drivers.
The ugly truth is unfortunately: the only way to properly install the AHCI support for many chipsets is to edit the registry. Strictly speaking, you are doing a hacked, temporary manual installation of the drivers so Windows can load them so you can install the drivers properly.
NOTE: These instructions are probably true for XP and Vista. For Windows 7, however, there seems to be another method, at least for x64 Win 7. The problem with using the method described here with Windows 7 is that AMD does not have ahcix64.sys driver for the SB600 chip under Windows 7. You have an AHCI driver (amdsata.sys) but instead of taking this procedure for this driver works a simpler approach. There is a need for a separate article for Windows 7 installations for this chip.
method
1. Make a backup of your important data, especially your registry. There are lots of programs on the market. Hopefully, you will not need to use your backup and the process is pretty secure, but be warned.
2. Make sure AHCI is disabled in the BIOS. If it is enabled and you can start Windows, you do not need these steps.
3. Download the drivers for M3A / ATI SB600 here: http://support.asus.com/download/download.aspx?SLanguage=en-us&model=M3A
4. Extract the zip file.
5. Copy the appropriate. Sys file (in my case ahcix64.sys) to C: \ Windows \ System32 \ drivers \.
6. Copy the following text, paste it into Notepad and save it as. Reg file (eg ahci.reg):
7. Load a handy Linux-based live CD (or even better, boot Linux in parallel), run it, and run the command
sudo lspci -vvnn | lessto make sure the device and sub-system numbers are correct. This lists in detail all your PCI devices and their properties. Your AHCI controller is here somewhere and its subsystem and device numbers are displayed. Edit the registry file as required.
8. Double-click the registry file to add your registry entries.
9. After editing the registry you have to do this at the next booting. If you do not, it is likely that your changes will be lost and you will have to reinstall the .reg file. Reboot, go into the BIOS and activate AHCI. Then close your eyes, pray, and let Windows start.
10. Disable AHCI in the BIOS when Windows brings a Bluescreen and reboot your system. If it fails, optimize the registry file a bit and try again.
11. Replace the ugly hack of the driver "installation" with a real installation by typing AsusSetup. Exe (or similar) from the driver.zip file and install the official driver on the computer.
12. Reboot your computer and let the driver take effect.
Tips
- Has worked well on SB700 on MSI KA790GX, the only thing is that Linux displays the subsystem in the reverse order. Mine was displayed in Linux as a subsystem 1462: 7510 and in the registry file it should be 75101462.
- I was successful with the same approach by replacing all instances of * 64 with * 86 for Windows XP Professional (32-bit).
- Attempts to go to the registry and set EnableHIPM and EnableDIPM to "1". HIPM and DIPM stand for Host-Initiated Power Management or Device-Initiated Power Management. If this SATA controller is in a laptop, you can improve the power consumption or behavior in sleep mode.
- You can check the correct combination in the txtsetup.oem file of the driver package. Mine was listed as:
- Id = "PCI \ VEN_1002 & DEV_4391 & SUBSYS_75011462", "ahcix86"
- Windows XP is only high, after I have matched the VEN DEV and SUBSYS numbers. I had to try again exactly four times. First I used the registry. Secondly, I corrected the PCI IDs, as a third I corrected the subsystem, but had an incorrect order, then I read the txtsetup.oem and found my subsystem, which fit the Linus output. Many Thanks.
warnings
- As a disclaimer: this was tried on an Asus M3A motherboard with Windows XP Professional x64 Edition and a SATA / AHCI-capable hard drive. Fortunately, it worked the first time. There is no guarantee that this will work at all, nor less will it work if you have a different setup.

Post a Comment