Microsoft Corporation
July 7, 1998
Peripheral Component Interconnect (PCI) Integrated Device Electronics (IDE) controllers run in one of the following three modes:
Under the retail version of the Microsoft® Windows® 95 operating system, there are no PCI standards for determining the mode in which a PCI IDE controller is running. Windows 95 shipped with device-specific information for only two devices: the CMD 640 (1095-0640) and the Intel® PIIX (8086-1230). The retail version of Windows 95 can only make educated guesses about devices other than CMD 640 and Intel PIIX.
This article discusses the criteria used for those guesses and describes changes in Windows 95 OEM Service Release 2 (OSR 2) and the Windows 98 operating system.
An INF file (usually Mshdc.inf) is the first place Windows 95 looks for information regarding what mode a PCI IDE controller is in. PCI IDE controllers are described as single IDE, dual IDE, or unknown IDE. Any PCI IDE controller not listed in the INF file is assumed to be an unknown IDE.
Single IDE. If a controller is listed as a single IDE, Windows 95 assigns only the primary IDE resources to the device. If the device is running in legacy mode, these resources are IRQ=14, IO=1F0 - 1F7, 3F6.
Dual IDE. If a controller is listed as a dual IDE, Windows 95 first assumes the controller is a dual IDE running in dual mode. Next, it looks for clues that would change that assumption. The clues are:
If neither of these conditions is met, the device is considered to be a dual IDE running in single mode, and it is assigned only primary resources.
If there was a reason to force a dual IDE into single mode, this could be accomplished using hardware changes or BIOS changes to make sure that neither of these reasons are met. Also, the INF file can be edited to define the device as a single IDE.
To force a dual IDE into dual mode, use the BIOS to set the base address registers (BARs) at 18 and 1C to 17n and 37n, respectively. This will convince Windows 95 that there is an active secondary channel on this device. Another solution is to edit or create an INF file for the device that describes it as a dual IDE.
To implement the INF file line as the solution for PCI IDE support, search Machine.inf for the following:
; IDE Miniport Data
;
HKLM,System\CurrentControlSet\Services\VxD\PCI\IDEMiniports\12308086,Name,,"Intel 82371FB"
HKLM,System\CurrentControlSet\Services\VxD\PCI\IDEMiniports\12308086,Path,,"PCIMP.PCI"
HKLM,System\CurrentControlSet\Services\VxD\PCI\IDEMiniports\12308086,Instance,1,00,00,00,0
After this entry, add the following:
HKLM,System\CurrentControlSet\Services\VxD\PCI\IDEMiniports\71118086,Name,,"Intel 82371FB"
HKLM,System\CurrentControlSet\Services\VxD\PCI\IDEMiniports\71118086,Path,,"PCIMP.PCI"
HKLM,System\CurrentControlSet\Services\VxD\PCI\IDEMiniports\71118086,Instance,1,00,00,00,00
Unknown IDE. If a controller is listed as an unknown IDE, Windows 95 first assumes the controller is a dual IDE running in single mode. Next, it looks for clues that would change that assumption. The clues are:
If either of these conditions is met, the device is considered to be a dual IDE running in dual mode, and it is assigned both primary and secondary resources.
Under OSR 2 and Windows 98, device-specific information was added for two more PCI IDE controllers: CMD 646 (1095-0646) and Intel PPEC (8086-1222).
Issues related to dual IDE controllers running in single mode or dual mode are cleared up in OSR 2 and Windows 98, which allow an IDE controller chip-set-specific miniport driver supplied by the disk manufacturer to specify the status of each IDE channel. The miniport is installed using an INF file and is loaded using the vendor device ID for the IDE controller.
However, at this time, the Device Driver Kits (DDKs) do not include the details to allow manufacturers to write a miniport for their chip set. Microsoft will work with chip-set manufacturers to develop this miniport driver for their chip sets.
If you need assistance in developing a miniport driver for your chip set, please send e-mail to ihv@microsoft.com with "PCI IDE" in the subject line. Please include your name, title, company name, and phone and fax numbers.