PCIIDE(4)                 OpenBSD Programmer's Manual                PCIIDE(4)

NAME
     pciide - PCI IDE controller driver

SYNOPSIS
     pciide* at pci ? dev ? function ? flags 0x0000
     options PCIIDE_CMD064x_DISABLE

DESCRIPTION
     The pciide driver supports the PCI IDE controllers as specified in the
     "PCI IDE controller specification, revision 1.0" draft, and provides the
     core functions for the wd(4) and atapiscsi(4) drivers. This driver in-
     cludes specific, enhanced support for the CMD Tech PCI0640 controller and
     IDE DMA/UltraDMA support for the following PCI IDE controllers:

           Advanced Micro Devices AMD-756
           CMD Tech PCI0640, PCI0643, PCI0646, PCI0648, and PCI0649
           Contaq Microsystems/Cypress CY82C693
           HighPoint HPT366, HPT370
           Intel PIIX, PIIX3, and PIIX4
           Intel 82801 (ICH/ICH0/ICH2)
           Promise PDC20246, PDC20262, PDC20265/7 (Ultra 33, 66, 100)
           Silicon Integrated System 5513 (5597/5598)
           VIA Technologies VT82C586 and VT82C586A

     Some of these controllers are only available in multifunction PCI chips.

     The 0x0001 flag forces the pciide driver to use DMA when there is no ex-
     plicit DMA mode setting support for the controller but DMA is present.
     If the BIOS didn't configure the controller properly, this can cause a
     machine hang.

SEE ALSO
     atapiscsi(4), intro(4), scsi(4), wd(4), wdc(4)

BUGS
     There's no way to reliably know if a PCI064x controller is enabled or
     not.  If the driver finds a PCI064x, it will assume it is enabled unless
     PCIIDE_CMD064x_DISABLE is specified in the kernel config file.  This will
     be a problem only if the controller has been disabled in the BIOS and an-
     other controller has been installed which uses the ISA legacy I/O ports
     and interrupts.

     For proper operation of UltraDMA 3 (44 MB/sec), 4 (66 MB/sec), or 5 (100
     MB/sec), a 40-pin, 80-conductor cable must be used.  On some controllers,
     the pciide driver can probe the chip and see if it detects that an
     80-conductor or 40- conductor cable was used.  If not, it will down-grade
     to UltraDMA 2 mode.  On other controllers, no such capability exists, and
     the driver assumes you are using an 80-conductor cable.  If you are get-
     ting errors about corrupted data, check to make sure you are using the
     correct cable.  An 80-conductor cable is recommended for any IDE instal-
     lation, not just ones using faster UltraDMA modes, because it will de-
     crease electrical noise and increase data reliability.

     The timings used for the PIO and DMA modes for controllers listed above
     are for a PCI bus running at 30 or 33 Mhz. These timings will work on a
     slower bus, but they may cause errors on an over-clocked bus.

OpenBSD 2.9                    October 15, 1998                              1
