Note, that there is another AM53C974 driver in the Linux kernel, but it has some problems (e.g. aborts, when disconnection is enabled) and is not very well maintained, so I'd suggest using this driver for AM53C974 based SCSI controllers.
Note, that the Tekram DC390W/U/F are NCR/Sym53C825/875 based and very well supported by Gerard Roudier's ncr53c8xx driver. Consult /proc/pci (or use lspci on 2.1 kernels without /proc/pci support), if you are not sure about the chip used on your SCSI controller.
DC390 drivers in the kernel (98/12/28):
You can also download the latest driver source code and overwrite the driver files in the kernel source tree, however, if you prefer this to patching your kernel tree, or if the latest driver is not available as patch against your kernel. Read the included README.tmscsim file for instructions.
|README||98/12/28||3k||Some (old) info on the driver|
|README.tmscsim||99/06/21||20k||The driver's README file|
|dc390-20f1.tar.gz||2001-11-14||56k||Linux DC390 driver version 2.0f1|
|dc390-20f.tar.gz||2000-12-20||55k||Linux DC390 driver version 2.0f|
|dc390-20e7.tar.gz||2000-11-28||54k||Linux DC390 driver version 2.0e7|
|dc390-20e.tar.gz||00/05/24||53k||Linux DC390 driver version 2.0e|
|dc390-20d28.tar.gz||00/02/14||52k||Linux DC390 driver version 2.0d28|
|dc390-20d25.tar.gz||00/01/17||52k||Linux DC390 driver version 2.0d25|
|dc390-20d24.tar.gz||99/11/15||52k||Linux DC390 driver version 2.0d24|
|dc390-20d23.tar.gz||99/08/27||51k||Linux DC390 driver version 2.0d23|
|dc390-20d20.tar.gz||99/07/19||52k||Linux DC390 driver version 2.0d20|
|dc390-20d10.tar.gz||99/06/20||51k||Linux DC390 driver version 2.0d10|
|dc390-20d.tar.gz||98/12/25||48k||Linux DC390 driver version 2.0d|
|dc390-20c.tar.gz||98/11/19||47k||Linux DC390 driver version 2.0c|
|dc390-20b.tar.gz||98/10/24||46k||Linux DC390 driver version 2.0b|
|dc390-120s.tar.gz||98/08/20||41k||Linux DC390 driver version 1.20s|
|dc390-2037p1-20d.diff.gz||98/12/25||13k||Linux DC390 driver 2.0d: patch against kernel 2.0.37pre1 (2.0b1)|
|dc390-2036p21-20b1.diff.gz||98/11/14||54k||Linux DC390 driver 2.0b1: patch against kernel 2.0.36pre21 (1.12)|
|dc390-21129-20d.diff.gz||98/12/25||17k||Linux DC390 driver 2.0d: patch against kernel 2.1.129 (2.0b)|
|dc390-21125-20b.diff.gz||98/10/27||51k||Linux DC390 driver 2.0b: patch against kernel 2.1.125 (1.12)|
|dc390-20f-20f1.diff.gz||2000-11-14||3k||Linux DC390 driver: patch 2.0f -> 2.0f1|
|dc390-20d-20f.diff.gz||2000-12-20||44k||Linux DC390 driver: patch 2.0d -> 2.0f||dc390-20e-20f.diff.gz||2000-12-20||9k||Linux DC390 driver: patch 2.0e -> 2.0f||dc390-20e7-20f.diff.gz||2000-12-20||2k||Linux DC390 driver: patch 2.0e7 -> 2.0f|
|dc390-20e6-20e7.diff.gz||2000-11-28||5k||Linux DC390 driver: patch 2.0e6 -> 2.0e7|
|dc390-20e5-20e6.diff.gz||2000-11-22||1k||Linux DC390 driver: patch 2.0e5 -> 2.0e6|
|dc390-20e4-20e5.diff.gz||2000-11-17||1k||Linux DC390 driver: patch 2.0e4 -> 2.0e5|
|dc390-20e3-20e4.diff.gz||00/10/14||1k||Linux DC390 driver: patch 2.0e3 -> 2.0e4|
|dc390-20e-20e4.diff.gz||00/10/14||4k||Linux DC390 driver: patch 2.0e -> 2.0e4|
|dc390-20e2-20e3.diff.gz||00/09/29||3k||Linux DC390 driver: patch 2.0e2 -> 2.0e3|
|dc390-20e1-20e2.diff.gz||00/05/27||1k||Linux DC390 driver: patch 2.0e1 -> 2.0e2|
|dc390-20e-20e1.diff.gz||00/05/25||1k||Linux DC390 driver: patch 2.0e -> 2.0e1|
|dc390-20d28-20e.diff.gz||00/05/24||3k||Linux DC390 driver: patch 2.0d28 -> 2.0e|
|dc390-20d-20e.diff.gz||00/05/24||41k||Linux DC390 driver: patch 2.0d -> 2.0e|
|dc390-20d25-20d28.diff.gz||00/02/14||12k||Linux DC390 driver: patch 2.0d25 -> 2.0d28|
|dc390-20d24-20d25.diff.gz||00/01/17||1k||Linux DC390 driver: patch 2.0d24 -> 2.0d25|
|dc390-20d-20d25.diff.gz||00/01/17||36k||Linux DC390 driver: patch 2.0d -> 2.0d25|
|dc390-20d21-20d23.diff.gz||99/08/27||7k||Linux DC390 driver: patch 2.0d21 -> 2.0d23|
|dc390-20d20-20d21.diff.gz||99/08/15||2k||Linux DC390 driver: patch 2.0d20 -> 2.0d21|
|dc390-20d19-20d20.diff.gz||99/07/19||1k||Linux DC390 driver: patch 2.0d19 -> 2.0d20|
|dc390-20d18-20d19.diff.gz||99/07/18||1k||Linux DC390 driver: patch 2.0d18 -> 2.0d19|
|dc390-20d17-20d18.diff.gz||99/07/18||1k||Linux DC390 driver: patch 2.0d17 -> 2.0d18|
|dc390-20d16-20d17.diff.gz||99/07/16||4k||Linux DC390 driver: patch 2.0d16 -> 2.0d17|
|dc390-20d15-20d16.diff.gz||99/07/13||1.5k||Linux DC390 driver: patch 2.0d15 -> 2.0d16|
|dc390-20d14-20d15.diff.gz||99/07/12||5k||Linux DC390 driver: patch 2.0d14 -> 2.0d15|
|dc390-20d13-20d14.diff.gz||99/07/05||2k||Linux DC390 driver: patch 2.0d13 -> 2.0d14|
|dc390-20d12-20d13.diff.gz||99/07/05||2k||Linux DC390 driver: patch 2.0d12 -> 2.0d13|
|dc390-20d10-20d12.diff.gz||99/07/04||2k||Linux DC390 driver: patch 2.0d10 -> 2.0d12|
|dc390-20d11-20d12.diff.gz||99/07/04||1k||Linux DC390 driver: patch 2.0d11 -> 2.0d12|
|dc390-20d9-20d10.diff.gz||99/06/20||14k||Linux DC390 driver: patch 2.0d9 -> 2.0d10|
|dc390-20d8-20d9.diff.gz||99/06/06||2k||Linux DC390 driver: patch 2.0d8 -> 2.0d9|
|dc390-20d-20d8.diff.gz||99/06/04||19k||Linux DC390 driver: patch 2.0d -> 2.0d8|
|dc390-20d2-20d8.diff.gz||99/06/04||16k||Linux DC390 driver: patch 2.0d2 -> 2.0d8|
|dc390-20d6-20d8.diff.gz||99/06/04||4k||Linux DC390 driver: patch 2.0d6 -> 2.0d8|
|dc390-20d4-20d6.diff.gz||99/06/02||4k||Linux DC390 driver: patch 2.0d4 -> 2.0d6|
|dc390-20d2-20d4.diff.gz||99/06/01||12k||Linux DC390 driver: patch 2.0d2 -> 2.0d4|
|dc390-20d-20d2.diff.gz||99/02/20||6k||Linux DC390 driver: patch 2.0d -> 2.0d2|
|dc390-20d-ac8.diff.gz||99/07/05||1k||Linux DC390 driver: patch 2.0d -> 2.0d-ac8 (bugfix for 2.2.10-ac8)|
|dc390-20c-20d.diff.gz||98/12/25||13k||Linux DC390 driver: patch 2.0c -> 2.0d|
|dc390-20c4-20d.diff.gz||98/12/25||6k||Linux DC390 driver: patch 2.0c4 -> 2.0d|
|dc390-20c-20c4.diff.gz||98/12/01||10k||Linux DC390 driver: patch 2.0c -> 2.0c4|
|dc390-20b-20c.diff.gz||98/11/19||8k||Linux DC390 driver: patch 2.0b -> 2.0c|
|dc390-20b-20b1.diff.gz||98/11/05||6k||Linux DC390 driver: patch 2.0b -> 2.0b1|
|dc390-20a-20b.diff.gz||98/10/24||6k||Linux DC390 driver: patch 2.0a -> 2.0b|
|dc390-120t-20a.diff.gz||98/10/14||8k||Linux DC390 driver: patch 1.20t -> 2.0a|
|dc390-120s-120t.diff.gz||98/09/07||14k||Linux DC390 driver: patch 1.20s -> 1.20t|
|dc390-120r5-120s.diff.gz||98/08/20||7k||Linux DC390 driver: patch 1.20r5 -> 1.20s|
A little bit of history. Here's how it started:
I did not want to spend much money for an Adaptec, but I wanted to have SCSI. Moreover, I heard rumors, that Adaptec does not support the Linux driver development. So I had to look for another PCI SCSI adapter. I once had an Tekram DC680 IDE caching controller which I was very satisfied of, so I had the idea to buy the DC390. However, I had to find out, whether it is supported by Linux. I had some e-mails with a guy from Tekram (Philip Giang), who told me, that there is a general AM53C974 driver, but it has problems. After some emails, I knew, that I would have enough support from Tekram to fix the bugs in the driver. I bought a DC390.
So I started to try to understand the AM53C974 driver. Before I had finished, Philip told me, that an engineer at Tekram wrote a driver for the DC390 adapter. tmscsim-1.0 was released by him in April 1996. Thanks! Since then, we made many minor fixes and enhancements. I tried to convince the Linux folks to add it to the kernel source tree which was finally successful: 2.0.3x and 2.1.50+ contain the driver, so people do not have to apply patches to have the DC390 work.
Development goes on. The driver in the kernel was 1.11 resp. 1.12.
There was a bunch of 1.20 versions, from 1.20a to 1.20t and now, the recent
version is 2.0. I submitted it to Linus and Alan for inclusion.
2.1.127 has 2.0b and 2.0.37p1 will include 2.0b1 driver.
Note, that the driver is very well tested, now. But, normal care applies, so
you should have a backup or at least a backup of your partition table.
Telling the kernel to remount-readonly the filesystem in case of any error
is also a good idea.(tune2fs -e remount-ro /dev/sdXX)
There's a README.tmscsim file included in the driver's distribution, which is worth reading. You may also want to read the README-file in this directory. It is a short version of README.tmscsim.
There are a lot of people that helped me testing the driver. I want to name some which contributed a lot: Chiaki Ishikawa, Andreas Haumer and Hubert Tonneau. Thank you!
If you have some weird devices (CDRs such as Yamaha CD-RW 4416, Scanners, ...), which are not recognized during the device scan, this is probably due to the fact, that these devices need a very long time to recover from a SCSI bus reset. Please have a look at the problems page for hints how to handle this.