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

KernelLatest Driver VersionComments
2.2.X3.2  
2.4.X4.0b (4.2rc6)4.2rc6 released for testing!
2.6.X4.0b [not working]under development

The Hardware

Supported SCSI-Adapters and Controllers

Adapter Photos POS 0 POS 1 ADF-File Status
IBM SCSI-2 Fast/Wide Adapter Short Slotcard, 32-Bit 0x8e0xfc @8efc.adf OK (internal bus only)
IBM 7568 Industrial Computer SCSI Adapter w/Cache 7568 Gearbox,
7568 DASD Module,
Gearbox Mainboard
0x8e0xfd @8efd.adf no public feedback
IBM Expansion Unit SCSI Controller --- 0x8e0xf8 @8ef8.adf no public feedback
IBM SCSI Adapter w/Cache Long Slotcard, 32-Bit, old,
Long Slotcard, 32-Bit, new
0x8e0xff @8eff.adf OK
IBM SCSI Adapter Long Slotcard, 32-Bit, old,
Short Slotcard, 32-Bit, new
0x8e0xfe @8efe.adf OK
IBM Integrated SCSI Controller 8557, 8557slc, 9557, 9577 0xff0xff --- OK
 (Replace the '_' by '@' after having downloaded some ADF-file here!)

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

  • Compiles with Linux 2.0.x, 2.1.x, 2.2.x, 2.3.x and 2.4.x.
  • Multiple IBM SCSI-subsystem hostadapter support (up to 8).
  • Detects onboard SCSI-controllers and SCSI-adapter cards. Support of arbitrary combinations of the supported adapter-types is provided.
  • A driver-controlled dynamical logical device assignment allows support of arbitrary SCSI-bus configuration and SCSI-devices.
  • Dynamical remapping of logical device numbers in the subsystem in order to support more than 15 devices. In fact, with dynamical mapping, support is given for up to 56 SCSI-PUN/LUN combinations (112 for F/W).
  • Device mapping in ANSI/IBM- or Linux-SCSI-order for PUN/LUN probing is possible by choice in the configuration or from the commandline.
  • Commandline parameters are recognized with Kernel 2.0.x through 2.4.x. (see README-file for parameters of ibmmcascsi=).
  • Chipset update level and status is shown for integrated controllers. The adapter ROM address is shown for slot-cards.
  • Supports forced hardware detection.
  • Linux module support (from Kernel >2.1.31).
  • Support for all types of Linux-known SCSI-devices and read/write commands up to 12-byte-commands.
  • Tape-drive support (Exabyte/DAT).
  • CD-ROM full multimedia-function support (audio+sampling).
  • HP- and other SCSI-scanner support.
  • WORM and CD-writer/burner support.
  • MO-Drive support.
  • CD-/Medium-Changer support.
  • Wide-SCSI-addressing is supported for the IBM SCSI-2 F/W adapter.
  • Autoprobing synchronous datatransfer rate on the adapters.
  • /proc-filesystem support. Statistical information about the driver is shown.
  • Use of the activity indicator on all PS/2 systems. Fancy displaying on models 95, using the alphanumeric LED display panel. Superfancy activity displaying on models 95A, where LED indicator and panel can be used simultaneously. See README.ibmmca for details.
  • Full documentation of the driver, its commandline parameters and its compatibility problems, including a FAQ is provided in the file README.ibmmca.

Download the driver sources

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

linux/drivers/scsi

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:
  • Netscape Navigator: Click with the right mouse-button on the link, where the file is located and select Save link as.... A filebrowser will appear and you just save the file.
  • Internet Explorer: Click the right mouse-button and select Save target as. Beware, that it is possible, that the files get anyway modified. When copying the files into Linux, you should first convert them into Linux-format for beeing sure, as the linebreaks may differ. This tool is called duconv.
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!
  • make sure you have kernel 2.3preXXX source installed
  • change the directory to linux/drivers/scsi
  • copy the file scsi_scan.c to scsi_scan.c.old
  • get the patchfile
  • copy it to linux/drivers/scsi
  • patch the code by patch < scanpatch
  • make your kernel again

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!

IBM MCA SCSI-People

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.


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

9595 Main Page