Jump to content











Photo
- - - - -

Switch XP on AMD from IDE to AHCI


  • Please log in to reply
39 replies to this topic

#26 wimb

wimb

    Gold Member

  • Developer
  • 2293 posts
  •  
    Netherlands

Posted 11 April 2012 - 05:21 PM

Hmm, just tried this on another PC and got a BSOD when trying to boot XP.

I did the same procedure which worked on the other PC, copied the cat, inf and sys files to c:windowsinf and the sys file to c:windowssystem32, ran the batch file to create the registry entries.


but also copy ahcix86.sys in c:windowssystem32drivers for it to boot

sys should go to drivers

:cheers:

#27 doveman

doveman

    Frequent Member

  • Advanced user
  • 421 posts
  • Location:Surrey
  •  
    United Kingdom

Posted 11 April 2012 - 05:48 PM

but also copy ahcix86.sys in c:windowssystem32drivers for it to boot

sys should go to drivers

:cheers:


Thanks, that would explain it :blush: I'm only trying to boot XP on this PC because both my DVD drives go into spasms trying to read DVDs in Windows 7, whereas they work fine in XP. Thought I'd just get some backups burnt today and five hours later I haven't done a single disc :frusty:

#28 ilko

ilko

    Silver Member

  • Advanced user
  • 500 posts
  •  
    Bulgaria

Posted 11 April 2012 - 05:51 PM

In addition- try adding also

REGEDIT4

[HKEY_LOCAL_MACHINE\XP\ControlSet002\Services\ahcix86\Parameters\PnpInterface]
"5"=dword:00000001

Reminder- some drivers require PnpInterface=5, ahcix86 seems to be one of them:
http://reboot.pro/16...post__p__149775

ahcix86.inf:
...
[pnpsafe_pci_addreg]
HKR, Parameters\PnpInterface, 5, 0x00010001, 0x00000001
...

#29 doveman

doveman

    Frequent Member

  • Advanced user
  • 421 posts
  • Location:Surrey
  •  
    United Kingdom

Posted 11 April 2012 - 08:26 PM

Thanks but putting the driver in the right directory :rolleyes: was all that was required.

#30 thund

thund
  • Members
  • 1 posts
  •  
    France

Posted 07 January 2013 - 01:38 PM

An IMMENSE thank you to panreyes and ilko! Your fix finally put an end to endless frustration on my part.

 

My motherboard is a GIGABYTE GA-970A-UD3. I run Windows XP.

For months I had a very annoying problem : XP would recognize the hard drives connected to the SATA ports 0-3 of the motherboard, but not those connected to the ports 4 and 5. These last two would not appear in the disk manager (diskmgmt.msc) nor the device manager (devmgmt.msc), yet they were detected in the BIOS. These two drives worked fine on another computer, and the SATA cables were good too. When I switched the SATA cables, the new drives connected to ports 4 and 5 would be the ones not recognized in Windows, while those that were previously not recognized appeared.

 

Then I noticed in the BIOS these two lines :

 

OnChip SATA Type                                   [Native IDE]

OnChip SATA Port4/5 Type                       IDE

 

The second line was grayed out, which according to the manual is because "this option is configurable only when OnChip SATA Type is set to RAID or AHCI". The reason why it wasn't working as IDE is beyond me, but I thought I might as well try with AHCI and see if Windows would recognize the drives then. It's not as if I had any idea what else to do, endless googling didn't help me find a solution to my problem.

 

So I downloaded the AMD SATA RAID/AHCI driver from the GIGABYTE website, but then all the tutorials I found to switch from IDE to AHCI on XP weren't working. Whenever I tried to update the driver for any of the IDE ATA/ATAPI controllers from the device manager I would get the message "The specified location does not contain information about your hardware."

 

Then I found this topic! At first the .bat file I made from panreyes's post http://reboot.pro/to...-ahci/?p=149761 didn't work, the keys wouldn't get added to the registry, but then I realized that for some reason all the backslashes in this topic are missing. I tend to think the problem is on this site's side rather than on my side but then I wonder why no one mentioned it before.

 

So here is the correct .bat file with all the needed backslashes :

 



reg add "HKLM\SYSTEM\CurrentControlSet\Services\ahcix86" /f

reg add "HKLM\SYSTEM\CurrentControlSet\Services\ahcix86Enum" /f

reg add "HKLM\SYSTEM\CurrentControlSet\Services\ahcix86" /v Type /t REG_DWORD /d 1 /f

reg add "HKLM\SYSTEM\CurrentControlSet\Services\ahcix86" /v Start /t REG_DWORD /d 0 /f

reg add "HKLM\SYSTEM\CurrentControlSet\Services\ahcix86" /v Group /t REG_SZ /d "SCSI miniport" /f

reg add "HKLM\SYSTEM\CurrentControlSet\Services\ahcix86" /v ErrorControl /t REG_DWORD /d 1 /f

reg add "HKLM\SYSTEM\CurrentControlSet\Services\ahcix86" /v ImagePath /t REG_SZ /d "system32\drivers\ahcix86.sys" /f

reg add "HKLM\SYSTEM\CurrentControlSet\Services\ahcix86" /v tag /t REG_DWORD /d 4 /f

reg add "HKLM\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_1002&CC_0106" /v Service /t REG_SZ /d "ahcix86" /f

reg add "HKLM\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_1002&CC_0106" /v ClassGUID /t REG_SZ /d "{4D36E97B-E325-11CE-BFC1-08002BE10318}" /f

 

To be sure that the keys are added to the registry without error, launch a cmd prompt and run the .bat from there, otherwise if you run the .bat directly the cmd prompt opens and closes instantly and you don't have the time to see if any error occured.

 

Then as panreyes mentioned I copied the files ahcix86.sys, ahcix86.inf and ahcix86.cat that I got from GIGABYTE's website to c:\windows\inf, and ahcix86.sys to c:\windows\system32\drivers , and I rebooted. I went directly into the BIOS before starting windows, and I changed the OnChip SATA Type to "AHCI" and the OnChip SATA Port4/5 Type to "As SATA Type".

 

And then it worked!! Windows XP detected right away the drives connected to the SATA ports 4 and 5 of my motherboard! Then the hardware update wizard showed up, if I recall well I selected "Install the software automatically", then it prompted me for the file ahcix86.sys, I browsed to c:\windows\system32\drivers , once installed it asked me to reboot one last time and voilà all good! Like doveman it appears in the device manager under SCSI and RAID controllers, as "AMD AHCI Compatible RAID Controller".

 

Hopefully this post will help someone who runs into the same issue as mine.. A huge thank you once again to everyone who posted in this thread!

 


  • wimb likes this

#31 Agent47

Agent47

    Frequent Member

  • Advanced user
  • 164 posts
  •  
    India

Posted 08 January 2013 - 01:13 PM

Isn't it really easy to  switch SATA mode with old good "fix hdc.cmd"?. I tested it several time with great success. All  you need to do is a Live XP boot disk with latest masstorage drivers integrated and fix hdc.cmd file. First change SATA mode to AHCI in BIOS and boot from masstorage driverpack integrated Live XP then simply run fixhdc.cmd. More info can be found at following link:

 

http://www.911cd.net...showtopic=20464

 

 

(Fix HDC is avalable on UBCD4WIN also)



#32 andriusst

andriusst

    Member

  • Members
  • 62 posts
  •  
    Lithuania

Posted 09 January 2013 - 01:36 PM

I'm sorry I'm late for this thread but I thought I'll just share my favorite and universal way as an alternative. This requires to have a second or a spare hard drive and getting inside the PC.

 

1. Connect a spare drive to SATA port on a different controller; Boot up normally and install drivers if missing; Shut down.

2. Now disconnect the spare drive and connect the boot drive to the same port or controller and let PC boot.

 

Now you can safely change SATA operation mode in BIOS (IDE emulation / AHCI / RAID). But before connecting boot drive to that controller make sure that driver is installed ie follow the same steps above.

 

This way works with any type drives be it SATA, SAS, IDE or SCSI. Any type of mass storage controllers integrated or add-on cards. If you have a spare PCI controller you can use it and this technique to migrate hard drive with working windows across to another PC with similar hardware and Windows will work without having to do a new install.


Edited by andriusst, 09 January 2013 - 01:56 PM.


#33 steve6375

steve6375

    Platinum Member

  • Developer
  • 6740 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars
  •  
    United Kingdom

Posted 09 January 2013 - 02:22 PM

If the BIOS is in IDE mode, then the SATA AHCI controller does not appear in the PCI list and no Windows drivers will be installed for it?

Is this a method for systems with an IDE controller +SATA controller? Sorry, don't quite get what you mean?



#34 andriusst

andriusst

    Member

  • Members
  • 62 posts
  •  
    Lithuania

Posted 09 January 2013 - 04:24 PM

If the BIOS is in IDE mode, then the SATA AHCI controller does not appear in the PCI list and no Windows drivers will be installed for it?

Storage controller will still come up in device manager but as a different device - something like Standard IDE controler and usually windows have driver for that. This method is for any type systems. Sorry if something was unclear. Let me know which part and I can explain in greater detail.



#35 cdob

cdob

    Gold Member

  • Expert
  • 1394 posts

Posted 09 January 2013 - 08:26 PM

My motherboard is a GIGABYTE GA-970A-UD3.
 

XP would recognize the hard drives connected to the SATA ports 0-3 of the motherboard, but not those connected to the ports 4 and 5.

OnChip SATA Type                                   [Native IDE]
OnChip SATA Port4/5 Type                       IDE

 
There are 4 drives at IDE emulation mode.

Second option is configurable only when OnChip SATA Type is set to RAID or AHCI. 

 

switch from IDE to AHCI on XP

 

At given hardware:
Set ports 0-3 to AHCI and Port4/5 to IDE.
Connect the hard disk to Port 4.
Boot XP. That's IDE mode at this point still.
Install AHCI drivers.
Goto BIOS and set all SATA ports to AHCI mode.
 



#36 steve6375

steve6375

    Platinum Member

  • Developer
  • 6740 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars
  •  
    United Kingdom

Posted 09 January 2013 - 08:33 PM

But you can do that anyway without all that fiddling.

Boot in IDE mode, install AHCI drivers via Device Manager, reboot and change BIOs to AHCI mode - allow to continue booting to XP.

For example here

You need to be sure you have the correct driver!



#37 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 09 January 2013 - 08:58 PM

But you can do that anyway without all that fiddling.

Boot in IDE mode, install AHCI drivers via Device Manager, reboot and change BIOs to AHCI mode - allow to continue booting to XP.

For example here

You need to be sure you have the correct driver!

I also prefer the "software" method that doesn't involve opening the computer (the "hardware" method).  However, the catch is obviously: You can only be guaranteed to determine the device IDs for the boot disk's storage controller by booting the computer in AHCI/SATA/whatever (non-IDE/-legacy/-whatever) mode.  But if you do that, you can't boot the OS (unless the driver is already installed and associated with the device IDs), so you cannot see the Windows device IDs, let alone install the device.

 

Fortunately, installing the driver without having the device present sometimes populates the CriticalDeviceDatabase with the device-to-driver associations that are required for booting in the opposite mode.  But that's not always the case. :cold:

 

I just switch to AHCI, then boot a minimal environment of the same Windows version in a small RAM disk, install the device, then copy the CDDB Registry, driver-service Registry, and driver file to somewhere else, then switch to IDE, then boot the HDD-installed Windows, then import that stuff, then switch to AHCI, then it boots.  While more complicated, it's still a "softer" way than opening up the computer, and has not yet failed.



#38 steve6375

steve6375

    Platinum Member

  • Developer
  • 6740 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars
  •  
    United Kingdom

Posted 09 January 2013 - 09:26 PM

To determine the correct PCI ID, I boot from a USB drive to a DOS floppy image and run checkpci (after setting BIOS to AHCI). Floppy disk image is here.



#39 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 09 January 2013 - 09:46 PM

To determine the correct PCI ID, I boot from a USB drive to a DOS floppy image and run checkpci (after setting BIOS to AHCI). Floppy disk image is here.

Or you could use the Hardware Detection Tool, without DOS.

 

But I said "device IDs" and not "PCI IDs". :)  Windows XP cannot install a PnP device properly (via .INF) unless the device IDs are reported by the so-called "physical device object".  An .INF can actually refuse to install a driver unless a supported device is already present, and so can a co-installer referenced by the .INF, and so can a "driver package" installation process (where the .INFs are tucked away).

 

(And non-PCI AHCI/SATA/whatever storage adapters are possible, too.)



#40 andriusst

andriusst

    Member

  • Members
  • 62 posts
  •  
    Lithuania

Posted 09 January 2013 - 10:52 PM

But you can do that anyway without all that fiddling.

Boot in IDE mode, install AHCI drivers via Device Manager, reboot and change BIOs to AHCI mode - allow to continue booting to XP.

For example here

You need to be sure you have the correct driver!

Please don't be disrespectful sir. What I suggested is not fiddling but a valid and reliable method. It takes all uncertainties and guesswork out of the equation. Besides It is always good to have a choice. Depending on the situation one way may be more convenient than another.

 

And the link you refer to as an example takes me to a login page of some "RM Education" site. I hope you are not advertising or trying to sell me something, are you?


Edited by andriusst, 09 January 2013 - 11:50 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users