IBM PS/2 SCSI-Subsystem support Homepage

IBM PS/2 SCSI-Subsystem Driver for MCA-Linux

Welcome to the maintainer-page of the IBM PS/2 SCSI-Subsystem Driver for MCA-Linux. On this page you find the latest Linux-driver release for IBM PS/2 SCSI-Subsystem adapters and some related background information. What you get from here is just this driver. You have to copy/patch the files over your MCA-Linux source-tree and recompile the kernel to get it included. From kernel release 2.1.x, the MCA-bus support is fully included, so there is no need for patching the kernel itself any longer and you just need the driver sources in order to update your system. From time to time, the kernel contains the currently latest version, so you need not to update if your kernel-source already includes the latest driver release. The version of the driver is shown during boottime.

Latest driver release is: 4.2rc6 for Kernel 2.4.X from March 5, 2005.

Driver Version Status

The Hardware

Supported SCSI-Adapters and Controllers

The listed SCSI-adapters are only available as Microchannel (MCA) version, where the IBM Integrated SCSI Controller is included in the mainboard of e.g. model 50. The methods of addressing devices and the command-registers are very similar between the different models. The SCSI-2 Fast/Wide adapter is the most modern device from this family. It is now fully supported for internal SCSI-devices. The external bus is not yet fully supported.

Synchronous Datatransfer on IBM SCSI-Subsystems

Support of synchronous datatransfer is negotiated on a per-command level. As the adapters only support 5 MBit/s (SCSI-2 Fast/Wide Adapter has 10 MBit/s on SCSI-2 internal bus (fixed), 20 MBit/s on the internal F/W (fixed) and 5 MHz or 10 MHz on the external SCSI-bus) datatransfer rate at maximum, this is quite slow, compared to todays requirements, where synchronous transfer is at minimum 10 MBit/s up to 80 MBit/s on SCSI-U2W. On each read/write command, sent by Linux to the adapter, the Linux-driver runs the adapter in synchronous mode to guarantee a maximum possible transfer rate. If some SCSI-device has a smaller synchronous data-transfer-rate, the adapters will automatically slow down to that speed.

PS/2 Hardware for Testing

Thanks to everybody, who contributed hardware to my test-environment for the IBM SCSI-driver. With the variety of systems and adapters it is possible to test for bugs and problems directly on my place. This allows now a much faster development of the code. So again, a lot of thanks to every contributor!

The Driver Facts

Download the driver sources

To get the latest driver running, you need to copy the following files into your linux-tree to the directory:


Please note, that the filenames, you must have in your linux/drivers/scsi directory have the fixed names: ibmmca.c, ibmmca.h and README.ibmmca. Every modern released driver version is listed here for historical reasons. Releases, older than 3.0g are not listed, as they appear too much buggy from todays' point of research. If you still use a driver release, older than 3.0g it is absolutely necessary to upgrade to the latest release in order to avoid troubles and maybe also datalosses. The first entry of the list contains always the latest release!

How to Download

The files of the driver all come as ASCII source-code files. To download them correctly, do the following things: Do not click on the file and save it after you see it in the browser. That could cause troubles, as it seems that most browsers scramble the original linebreaks, which could cause recognition problems by the compiler. The source-code is checked and must compile without troubles. If you have problems with compiling the sourcecode, your linebreaks are scrambled. In most cases, duconv will solve the problem.

Driver User Statistics

If you are using the IBM MCA SCSI driver for Linux, please let me know something about the environment, where and how you use this driver. This is of high interest for future development. The questions are kept anonym, so you really risk nothing.

The driver source ibmmca.c

Version 4.2rc6 (Kernel 2.4.x or higher ONLY!)

Version 4.0b (Kernel 2.4.x or higher ONLY!)

Version 4.0a (Kernel 2.4.x or higher ONLY!)

Version 4.0 (Kernel 2.4.x or higher ONLY!)

Version 3.2

Version 3.2pre9 - Prepared for Kernel 2.4 (for Testing!)

Version 3.2pre8 - Prepared for Kernel 2.4 (for Testing!)

Version 3.2pre7 - Prepared for Kernel 2.4 (for Testing!)

Version 3.2pre2 (for Testing!)

Version 3.1e

Version 3.1b

Version 3.1a

Version 3.1b1

Version 3.0g

The driver headerfile ibmmca.h

This is the meta-headerfile for the IBM SCSI-subsystem driver that runs with all modern kernel versions.

Additional Software

If you have a model 95 (8595, 9595), you can get the source of linuxinfo, that is linuxinfo.c. This program shows you the current CPU-load, date, time, uptime and the kernel-version on the 95s' LED display. The information is continuously scrolled from right to left. E.g., you may get some text like this: Linux version 2.2.14, Time: Sun Apr 23 16:29:05 2000, Sys-Load: 1.31/0.75/0.40, Sys-Uptime: 4905.86 3993.81 *** This allows system-load-control, even if you are not logged-in and no monitor is connected to the system (like in central computing rooms). As the two very right LED-letters are kept blank, it works great together with the IBM SCSI-Subsystem driver with the commandline-parameter ibmmcascsi=display. The source-code is compiled by the following line: gcc -O -o linuxinfo linuxinfo.c (do not forget the -O).

Patch for scsi_scan.c

Bootproblems with the ibmmca.c driver could also be caused by some additional TEST_UNIT_READY command, when probing the devices by Linux later. This patch could also solve bootproblems, that appear with other SCSI-adapters and on other system-architectures. This is some contribution from P. Gortmaker and in no way yet official!. So any try is really completely at your own risk!

Additional/Historical Stuff to run the Driver

If you use the Kernel 2.0.x, patched with the MCA add-ons by Chris Beauregard and ZP Gu, you should get the following two files in order to be enabled to use the full features of the IBM SCSI-subsystem low level driver. Copy the files over the old ones. Do not apply the following files on Kernel 2.1.x or higher as there it is already included in the distribution!


The IBM SCSI-subsystem low level driver is the merged release, built and optimized by the following authors: If you have general questions about Microchannel-support under Linux that do not belong to SCSI on MCA-machines, please send your questions to David Weinehall, who is the maintainer of the general MCA-support.

Plug & Pray and send bug-reports, comments, suggestions and curious things that appeared with your SCSI-devices to me.

E-Mail to the Maintainer

Accesses to this page:
Last changes: January 14, 2001
(IBM, the IBM-logo and PS/2 are registered trademarks of International Business Machines Corp.)