          Document:  PCI IDE Controllers for OS/2
        Maintainer:  Patrick Duffy, duffy@theory.chem.ubc.ca
Last Revision Date:  May 29, 1995
       Archived at:  ftp.netcom.com, in directory /pub/ab/abe/
         Web pages:  http://warp.eecs.berkeley.edu/os2/workbench/work.htm

There seems to be a proliferation of PCI IDE hardware on the various PCI
motherboards which are listed in the PCI motherboards for OS/2 list, and
what's more it seems like almost none of it works entirely properly.
I've therefore created this PCI IDE list so that people will know if
their particular PCI IDE implementation will work with OS/2.  I've tried
to keep this information as accurate as possible, but if you spot any
flaws or omissions, please do not hesitate to let me know.  Much of this
was received from sources within IBM.  You may see square brackets
beside certain chipsets.  If the word "confirmed" appears therein, this
means that the bug and subsequent fix have been confirmed to me by IBM.

Useful numbers:
---------------

DTC:  (408) 942-4010 (BBS)
      (408) 942-4005 (Faxback)
      (408) 942-4081 (sales)
      (408) 942-4027 (FAX)

1) CMD 640 [confirmed/software fix implemented in Warp fixpack]

   Channels (two IDE drives may be attached to each IDE channel) cannot
   be operated concurrently! This is not mentioned in the chipset
   errata.

   Their stand-alone PCI board does not have a BIOS and appears to
   come-up disabled per the PCI definition. Its really difficult to
   tell whether a PCI-IDE controller is operating in 'legacy' mode
   since (at least) the CMD chipset does not update the PCI config
   space with the legacy base port addresses. Also convincing PCI to
   route IRQ 14/15 to a PCI Int is problematic unless the motherboard
   BIOS explicitly supports this function.

   The CMD chipset also has a documented restriction that it will not
   support DWORD config write cycles.  Of course the Award BIOS on the
   (Vobis) motherboard on which testing was being performed did not
   issue byte/word config cycles explicitly and instead implemented all
   config read/write services as read/modify/write of DWORD data. The
   net result was that the system PCI BIOS could not be used to program
   the motherboard chipset!

2) PC-Tech RZ-1000 [confirmed/software fix implemented in Warp fixpack]

   Produces accelerated IRQ.  IBM1S506.ADD actually tolerates this.
   However, when the driver reads 1x7 during interrupt processing to
   clear the interrupt, the chipset puts the status in its read-ahead
   FIFO resulting in data corruption. Intel used this chip on their
   motherboards which they sold to Gateway, AT&T, IBM and others.

   This feature is not mentioned in its chipset errata.

3) Promise [confirmed/software fix implemented in Warp fixpack]

   Promise uses a proprietary implementation to allow 4 drives
   per channel. In normal compatibility mode IBM1S506.ADD
   can only see the 1st two drives per channel.

   In addition their current controller products do not operate properly
   when Set-Multiple support is enabled.  It is therefore necessary to
   detect Promise controllers (which Promise is trying to figure out how
   to do) and, upon detection of a promise controller, disable multiple
   mode support in IBM1S506.ADD.  (Promise has their own drivers for
   their cards.)


                       Controllers known to work
                       -------------------------

 BusLogic               BT-910     BusLogic makes what is apparently a
                                   good, fast, and reliable controller
which has driver support built into OS/2 (via IBM1S506.ADD), or via
their own driver.  I don't know any specific details concerning the
card, however.

 DTC                    2130S      This is a single-port controller
                                   which is reported to work well with
OS/2 (by one person; others have reported significant problems with the
card and/or drivers).  It comes with its own drivers for DOS, Windows,
and OS/2 (among others), so I don't know if it works with IBM1S506.ADD
or not, though I assume it will.  It can, apparently, be operated with a
16-bit paddle card (which will use the ISA bus to grab a second IRQ for
the second IDE channel) for compatibility.  It supports mode 3
operation, multiple sector transfers, LBA addressing, and ATA rev. 4.0
devices.  The latest OS/2 drivers can be found on ftp-os2.cdrom.com, in
the file /os2/drivers/dtcide16.zip.

 Setup tips:  After you've installed the driver, modify its line in
              config.sys to read:

              BASEDEV=DTCIDE.ADD /V /D0:P3 /D0:M1 /D0:L1


 GigaByte               GA-0108    This card not only has the IDE
                                   controller (CMD 640), but also has
support for serial, parallel, and game ports (2/1/1) on board.  It is
reported to work well with Warp (the drivers were supplied with the
card).

 Tekram                 DC290N     I don't have many specifics on this
                                   card, but it is apparently reported
to work well under Warp with the supplied drivers.  The one report of
success I've had with this board also indicated that use of the supplied
paddle board may not be necessary.

 Tekram                 DC290S     This is the busmastering version of
                                   the DC290N.  I haven't had any
reports of success with this card yet, though it will very likely work
given the success with the DC290N.

 Tyan                   S1336      This card, like the Gigabyte above,
                                   is based on the CMD IDE chipset and
has support (via the SMC37C665) for serial/parallel/game ports.  I would
not recommend this card, since apparently the documentation contains
errors, and the card is difficult to set up.

That's what I know.  E-Mail corrections/suggestions and I'll post again.
