The UDMA-Generic patch, modified by André Balsa, Andre Hedrick, and Michel Aubry from Mark Lord's original Triton DMA driver, provides UDMA support for the following chipsets (as of version 0.3):
It is also designed to be easy to extend to support other chipsets.
Udma-generic, also known as the Grand Unified UDMA Patch (GUUP - pronounced ``goop''), has been folded into the Jumbo patch which includes other useful features such as automatic detection of memory over 64 MB and CPU clock speed detection. You can get the Jumbo patch for kernel 2.0.35 at http://www.altern.org/andrebalsa/linux/. This patch should also apply against 2.0.36pre1 and possibly later.
Here are a few notes from the author:
Performance with IBM UDMA drives on a good motherboard approches the
maximum head transfer rates: about 10 Mb/s (measured with hdparm -t -T).
The Intel TX chipset has a single FIFO for hard disk data shared by
its two IDE interfaces, so using 2 UDMA drives will not yield such a
great improvement over a single UDMA drive.
However, the SiS5598 has two completely separate interfaces, each with
its own FIFO. Theoretically, one could approach 66Mb/s burt transfer
rates on motherboards with the SiS5598 chip, using the md driver and
data striping over two drives. The SiS5571 has the same interface
architecture, I think. I don't have the VIA chipsets datasheets, so I
can't say anything about those.
The Linux IDE (U)DMA kernel driver by Mark Lord has a particularly
low setup time (i.e. latency for data transfers). It is ideal for
frequent, small data transfers (such as those in Linux news servers),
and might be in some cases superior to its SCSI counterparts.