I recently attempted installing Windows Vista in AHCI mode. I suspect that this adventure has somehow rendered the built-in Intel SATA controller inoperable in AHCI mode. I started off with a clean (zero filled) SATA HDD, and AHCI for Intel controller enabled in system BIOS setup. I partitioned the HDD in the Windows Vista setup, using Diskpart.
I was attempting to install it to a logical partition (i.e. logical drive, logical volume), as following.
- 500 MB Primary, active
- 40000 MB Extended
- 40000 MB Logical
But Windows was refusing to accept this partition. It would start, and then halt and return an error message.
Windows could not determine if this computer contains a valid system volume.
It was good enough to allow me to click Next to start the installation. But it was not good enough, obviously. After some searching on the web I learned that it has to do with the BIOS boot device order and Windows Vista setup program's inability to properly handle installation from a USB flash drive. I was using a USB flash drive for the installation, created with the Windows 7 USB/DVD Download tool.
So I changed the boot order in BIOS, as following.
Device boot order from... Floppy Hard disk CD-ROM To... Hard disk Disabled USB-HDD And hard disk boot priority from... Seagate disk Seagate disk Kingston USB WD disk WD disk Bootable add-in card To... Seagate disk Seagate disk WD disk WD disk Bootable add-in card Kingston USB
Back in Windows Vista setup, I used Diskpart to clean up the HDD. Then I decided to give the primary partition some more space, just for good measure. So I had the following partitions.
- 1000 MB Primary, active
- 40000 MB Extended
- 40000 MB Logical
The installation to started on the logical partition. So I went away from the computer, thinking that it was OK now. But when I came back it had halted with yet another error.
Windows cannot copy files required for installation. Make sure all files required for installation are available, and restart the installation. Error code: 0x80070070
I gave it one more try. I used Diskpart again to clean up the disk. Then I increased the size of the primary partition as following.
- 4000 MB Primary, active
- 40000 MB Extended
- 40000 MB Logical
I then started the installation again. This time I did not encounter any errors. It went through all the steps: copying files, expanding files, installing features, installing updates, completing installation. The computer then restarted, and then halted right after the following line.
Serial ATA AHCI BIOS, Version iSrc 1.20E Copyright (c) 2003-2008 Intel Corporation ** This version supports only Hard Disk and CDROM drives ** Please wait. This will take few seconds. Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices _
I suspect that the Windows Vista setup had encountered the first error during installation because it was unable to install to the HDD using AHCI mode, upon which it had reset the AHCI setting somehow, and then I was able to install it the second time without error because my BIOS was restored to IDE mode.
Pressing the Reset button on the computer made it shut down instantly! I then power up again, went past the POST screen and then it halted again at the same line. Pressing Ctrl+Alt+Del to reboot and then the DEL key to enter the BIOS setup does not get me to the setup screen. It gets stuck at the same line, and I can't get past it.
Now, I have done all the usual steps of clearing CMOS. The only way to get past that screen is to clear the CMOS using the jumper pins on the motherboard. This is because I can't get into the BIOS setup to load default settings. Also, once the SATA mode was set to Disabled (IDE), I was able to get past the AHCI BIOS screen and back to the Windows Vista installation actually. The installation even completed. But if I return to BIOS setup and enable AHCI again, it halts at the same line again.
Another way to get past the AHCI BIOS screen and the line where it gets stuck is to disconnect the HDD from the SATA port. But then of course, I cannot boot into anything. I mean if I leave the SATA mode set to Disabled (IDE) I can at least boot into Windows Vista.
I have tried connecting the HDD to a different port, and I also disconnected all other HDD drives. I tested each port, one by one, from 0 to 5. An interesting pattern emerges actually, where the line "no devices found" appears for each of the previously scanned SATA port (starting from the currently connected port).
With HDD on SATA port 0...
Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices _
With HDD on SATA port 1...
Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices Port-00: No device detected
With HDD on SATA port 2...
Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices Port-00: No device detected Port-01: No device detected
With HDD on SATA port 3...
Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices Port-00: No device detected Port-01: No device detected Port-02: No device detected
With HDD on SATA port 4...
Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices Port-00: No device detected Port-01: No device detected Port-02: No device detected Port-03: No device detected
With HDD on SATA port 5...
Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices Port-00: No device detected Port-01: No device detected Port-02: No device detected Port-03: No device detected Port-04: No device detected
As you can tell, it halts on the port that is being scanned at the moment. Then if I disconnect the HDD I get this this funny error.
Controller Bus#00, Device#1F, Function#02: 06 Ports No device found AHCI BIOS not installed
AHCI BIOS not installed
I say funny because it clearly states at the first line that I am using "Serial ATA AHCI BIOS, Version iSrc 1.20E". But the device scan fails for some reason. Perhaps that's why I see the "AHCI BIOS not installed" error? I have read a dozen web pages about this error type and found nothing conclusive about it. Some say it's normal. But for one, I know that it says "AHCI BIOS installed" on one of my other motherboards, one that is from the same manufacturer and generation, and it too uses Award BIOS.
I am sure there is a reason for printing out "AHCI BIOS not installed". It is probably not something that the BIOS programmer thought of as a funny practical joke to make the user think there is something wrong with the system whilst it is operating normally (i.e. the message is "normal"). There is probably more to it than most of us care to know about, because it requires a lot of time investigating and a level of knowledge common users don't posses. BIOS vendors and board designers on the other hand don't care to maintain old BIOS firmware for more than 2 or 3 years (sometimes that's shorter than the warranty time of the most expensive boards). Instead, they move on to the "next big thing" and expect you to keep buying new hardware each new year.
The same message (AHCI BIOS not installed) appears if I connect the HDD to the Gigabyte SATA controller. I get past that screen though. But that's only because the Gigabyte SATA controller is set to IDE mode, and Windows Vista loads.
Is there a way to reset or re-flash the SATA controller ROM alone? Aside from the main system BIOS? What exactly is "AHCI BIOS" anyway? Is it like a BIOS extension? And is it part of the main system BIOS code? Is it stored in the same flash chip?
Also, what are your thoughts about this and what is your experience with this type of problems?
I checked the drivers and pciide.sys was enabled, as was msahci.sys. But iastorv.sys was not. I have tested enabling it and enabling Intel AHCI in BIOS setup. It did not help. It still gets stuck at AHCI BIOS device detection.
With the same drivers enabled (pciide.sys, msahci.sys, iastorv.sys), I tested connecting to the Gigabyte SATA controller with AHCI enabled in BIOS setup. Windows Vista started to load and the progress bar came up, but it ran into a BSOD soon after and rebooted. It just kept looping like that.
I tested disabling iastorv.sys and keeping msahci.sys only (and pciide.sys) enabled. It actually worked!
Some web forums will tell you to have all of the AHCI related drivers enabled in Windows (iastor.sys, iastorv.sys, msahci.sys) for easy switching between AHCI and IDE (pciide.sys is usually enabled by default on most installations, for compatibility I guess). But as you can see, it is sometimes wiser to disable one of them or all of the drivers you are not using and do not plan on using.
Although this is a different SATA controller (not Intel), but I am starting to think that this may be drivers related.
I have now installed the official driver for Gigabyte SATA controller. It's version 220.127.116.11. The Device Manager now shows following two device descriptions.
- JMB36X Standard Dual Channel PCIE IDE Controller
- GIGABYTE GBB36X Controller
It appears to be based on a JMicron chip.
The Intel SATA controller is listed as Standard AHCI 1.0 Serial ATA Controller. Ignore the exclamation mark next to it. That's only because I disabled the msahci.sys driver that it was using so it is complaining. But I was running Windows Vista from the Gigabyte controller in IDE mode, so it didn't matter. I have enabled it again before rebooting.
So I rebooted and enabled the AHCI mode for the Gigabyte controller and Windows Vista loaded normally. No problems what so ever. I can confidently say that the Gigabyte controller works in both IDE and AHCI (RAID not tested, but expected to work of course) mode, with either Microsoft generic AHCI driver (msahci.sys) or the Gigabyte controller specific driver (jraid.sys), which is really a JMicron driver.
Note that the iastorv.sys driver previously conflicted with the msahci.sys driver when I tested having them both enabled and using the Gigabyte controller in AHCI to boot into Windows, and I was getting the BSOD slap. I have not tested and do not care to test this with the new driver. Maybe it has been sorted out now, maybe not. The point is, it is best to disable iastorv.sys if and when using the Gigabyte controller in AHCI (or even RAID).
Now what about that damn Intel controller? Will it xor or will it not xor? That is the question!
After successfully testing the Gigabyte controller it was time for the Intel controller. I started off with pciide.sys enabled, msahci.sys enabled, and iastorv.sys disabled. I used the
f6flpy6489.zip package to install the driver manually. The driver version was 18.104.22.1683. The new driver is named iastor.sys without the V in the name.
The "Standard AHCI 1.0 Serial ATA Controller" description changed into Intel(R) ICH9R/DO/DH SATA AHCI Controller" in Device Manager.
I was really hoping this would work. But it did not. I powered off the PC and connected the HDD to SATA port 1 on Intel controller, powered on and changed the SATA mode to AHCI in BIOS once again. But I was back on the same damn "no device detected" screen and could not get past it.
So my problem remains. Is this indicative that the ROM responsible for the AHCI function on the Intel controller has been corrupted or otherwise damaged? Although, it appears as if only the AHCI function has been rendered inoperable, the controller is still working. Albeit in IDE mode, but it is working nevertheless, and that's better than being completely toasted.
Can someone knowledgeable please post an answer containing the information about where the actual ROM for the Intel controller resides? The Intel Matrix Storage has an option ROM of its own, does it not? Also, is it at all possible to recover from this problem using some low-level system utility, without having to remove one or more chips and reprogram them or even replace them with new ones?
Food for thought...
My best guess as to what happened is that the backup BIOS had kicked in and copied itself partially onto the main BIOS, and somehow disengaged or even damaged the Intel AHCI/RAID option ROM in the process.
I imagine that this could have happened while the system was on, and right after the first or the second error that Windows Vista threw at me, after I had changed the device boot order to trick Vista into installing from a USB flash drive onto a SATA HDD (see 0x80070070).
It happened either at that point, or at the point where the system shut itself down instantly after pressing the Reset button when I first encountered the problem of "Controller Bus..." device scan screen. Normally, and ever since (as I have been observing) it usually just reboots, it does not power down at that stage even if I do press the Reset button or give it the three finger salute (Ctrl+Alt+Del).
Anyway! Now that I think about it, it would probably have been better in this case to first have IDE mode enabled and install Windows Vista in that mode. Maybe even use a DVD media for installation, rather than USB flash drive. Then when the installation is complete, log into Windows and enable the AHCI driver, reboot and enable AHCI mode in BIOS. That might have just worked. It might have been much better approach in this case, it would have been desired to do it that way. That is in contrast to the common approach where most people would recommend you to enable AHCI in BIOS first, if you have not installed Windows already. I should not have done it that way.
I hope this serves as a lesson for others. I will do some more investigating but I don't want to put too much time on this. Unless I can somehow reset everything back to normal, I think it's safe to say that the AHCI mode on the Intel controller is inoperable now.