Koltoroc wrote:Neither Windows 9x, nor XP prior to either SP1 or SP2 have any support for AHCI, which these drivers are for. Windos 9x can not be made compatible with AHCI, I believe it is because it is still based on DOS and therefore uses BIOS commands at the beginning of the boot process that don't work with AHCI. To use SATA drives under windows 9x, the SATA ports must be in IDE mode.
Windows XP needs device specific drivers to support AHCI and those drivers can either be found on the websites of the motherboard manufacturers or the website of the chipset makers.
Some motherboards allow a certain granularity with which to set SATA ports as either AHCI or IDE compatible, however most allow only to set the mode for all ports on one controller. If your board has an additional controller that one can usually be set independent of the chipset integrated controller.
Windows 9x's IDE driver assumes the old standard "Primary" and "Secondary" IDE channels, so you may also set your motherboard's storage configuration to "Compatibility Mode" or "Legacy IDE", which limits the maximum available storage ports to four. (In such modes, the ports active may be either IDE or SATA depending on your physical configuration). Otherwise, Windows 9x would freeze the moment the control of storage devices were handed to Windows' drivers.
However, Windows 9x can be forced to let BIOS handle the hard drives (MS-DOS Compatibility Mode), by removing (or renaming) the ESDI_506.PDR driver file. While this works under any circumstances (IDE, RAID or AHCI), this has quite a few drawbacks (potential performance degradations degraded performance due to no DMA access, and loss of certain features like animated cursors).
Also, for a while, modern chipsets with 6 SATA ports often separate configurations for ports 1-4 and 5-6, based on the principle that you'd install your hard drives to ports 1-4 and optical drive to port 5 or 6, as for some OSes, while the OS itself can work with drives using AHCI, the OS installation media may not play well with it and require IDE mode to boot and complete installation. With USB live media becomes more common and available for current OSes, there's little need for this function unless you're installing very old OSes whose installations must be done from an optical drive connected via IDE.
Koltoroc wrote:
In many Bios setups the AHCI mode is often called "raid" mode, despite having no connection to any raid setups, IDE mode is often called "legacy" mode.
Actually RAID is not AHCI and it existed long before AHCI (though some early chipsets capable of AHCI but not RAID may mistakenly call it that in BIOS). In both cases, a special BIOS is loaded in addition of the system BIOS, which takes up some UMB (varies among vendors) and provides configuration utilities in case of RAID. The BIOS provides legacy accesses to some OSes (such as DOS) and is required to boot from disks connected using non-IDE modes.
You may use your SATA ports as normal under RAID mode without actually building an array, although some RAID BIOS implementations do not expose non-configured drives for legacy access (not visible under DOS and not bootable, only operating systems with respective disk controller drivers can see them).
Intel ICH5R did have a Win9x RAID mode driver, which allows users to use all the storage ports properly if the SATA is set to RAID mode. However, the non-RAID parts (when using IDE mode, or plain ICH5) did not receive the same treatment.
Koltoroc wrote:
Early VIA SATA controllers (they are very common, unfortunately) do not work well with SATA II or III devices. Some devices have a jumper to limit them to SATA I. If you have a VIA controller that does not detect a SATA device and the device has no such jumper, it won't work.
I used to connect a few SATA II/III drives to motherboards with VT8237R/VT8237A southbridges and I never had issues with those, even without using the jumper, on most operating systems, including Vista/Win7. VIA did have a few SATA II capable southbridges (VT8237S/VT8251, although the latter is rather uncommon), though. Also, VIA does have SATA RAID mode drivers for Windows 9x just like ICH5R.
Maybe there was a time when VIA chipsets do exhibit issues with SATA II/III devices, but I personally had never experienced any issues. Still, I'd better warn that one should avoid using hard drives of 3TB or higher on legacy chipsets, as some BIOSes could not handle them flawlessly and could corrupt data. (If you have Hard Disk Sentinel installed, and if it says that the BIOS is reporting a wrong disk size whose value appears to be due to 32-bit integer overflow, your chipset is vulnerable to data corruption if you're storing more than 2TB of stuffs into it). I had such experience on a 865G-based board which has this issue, when I tried to backup data of other drives to a 3TB HDD that was half full, before doing a major OS reinstallation, then the system tells me I need to chkdsk the drive, and it resulted in quite a few errors and after check I found a few old stuffs permanently damaged and unusable.
Koltoroc wrote:
If you installed Windows XP with AHCI drivers and you then switch the SATA ports to IDE mode, windows will crash with a bluescreen, because it can't "find" the Boot device. To prevent that, you have to switch the AHCI drivers with standard IDE drivers prior to switching SATA mode. That can also be done in reverse. While that usually works, it can fail to the point that a reinstallation is necessary.
My suggestion would be to simply stick with IDE mode in such a multiboot environment. the minor performance increase of AHCI is not really worth the hassle in such a case.
AHCI enables proper use of NCQ (useful for HDDs) and TRIM (useful for SSDs), which in some cases would improve performance. IDE is only needed if for some reasons you cannot boot from AHCI, or when installing from an installation media that does not play well with non-IDE devices.
Windows hardly ever cooperates well with hardware changes, especially when changing storage controllers (in case of a motherboard replacement or upgrade). Not only XP, under Windows Vista/7, if you plug your disks to a different controller (PCI or PCIe), or simply switch SATA modes, you may also encounter the BSoD regarding inaccessible boot device.
It's not just the way Windows loads the drivers, it's also licensing related (to ensure this is still the same PC to whom the license was granted on, in case of hardware changes). In comparison, Linux hardly ever had this issue, as the kernel would try to load the respective modules based on the hardware detected, so the system can still be booted properly as long as the system has the necessary modules for the kernel (and not blacklisted).