DMA Mode for ATA/ATAPI Devices in Windows XP
Updated: December 4, 2001
The Microsoft Windows XP operating system enables DMA by default on most of the ATA or ATAPI (IDE) devices. To ensure system stability, however, PIO mode will be selected for DMA-capable devices under some circumstances. This article explains the reasons for an ATA or ATAPI device to be in PIO mode on systems running Windows XP.
PIO mode is enabled by default in the following situations:
-
For ATAPI devices, except DVD and CD-R/RWW drives.Windows XP enables PIO by default on ATAPI tape drives, CD-ROM drives, and ATAPI removable drives such as magneto-optical (MO) drives. The user can, however, enable DMA on an ATAPI device through Device Manager, as described at the end of this article.
Windows XP enables DMA by default on ATAPI DVD and CD-RW/CD-R drives.
-
For ATA or ATAPI devices that do not work properly in DMA mode. Compatibility testing at Microsoft has shown that enabling DMA on certain drives could cause data corruption or reduced system stability. There is no way for the user to enable DMA on these devices.
-
For certain IDE chipsets that cause data corruption.For ATA or ATAPI devices using chipsets that are known to cause problems running in the DMA mode, Windows will enable PIO by default.
System manufacturers can override this default behavior by implementing the _GTM and _STM methods in the ACPI BIOS. Also, the user can enable DMA using the Device Manager.
-
For repeated DMA errors.Windows XP will turn off DMA mode for a device after encountering certain errors during data transfer operations. If more that six DMA transfer timeouts occur, Windows will turn off DMA and use only PIO mode on that device.
In this case, the user cannot turn on DMA for this device. The only option for the user who wants to enable DMA mode is to uninstall and reinstall the device.
Windows XP downgrades the Ultra DMA transfer mode after receiving more than six CRC errors. Whenever possible, the operating system will step down one UDMA mode at a time (from UDMA mode 4 to UDMA mode 3, and so on).
If the mini-IDE driver for the device does not support stepping down transfer modes, or if the device is running UDMA mode 0, Windows XP will step down to PIO mode after encountering six or more CRC errors. In this case, a system reboot should restore the original DMA mode settings.
All CRC and timeout errors are logged in the system event log. These types of errors could be caused by improper mounting or improper cabling (for example, 40-pin instead of 80-pin cable). Or such errors could indicate imminent hardware failure, for example, in a hard drive or chipset.
To enable DMA mode using the Device Manager
-
Open Device Manager.
-
Double-click IDE ATA/ATAPI Controllers to display the list of controllers and channels.
-
Right-click the icon for the channel to which the device is connected, select Properties, and then click the Advanced Settings tab.
-
In the Current Transfer Mode drop-down box, select DMA if Available if the current setting is "PIO Only."
If the drop-down box already shows "DMA if Available" but the current transfer mode is PIO, then the user must toggle the settings. That is:
-
Change the selection from "DMA if available" to PIO only, and click OK.
-
Then repeat the steps above to change the selection to DMA if Available.