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
Latest driver release is: 4.2rc6 for
Kernel 2.4.X from March 5, 2005.
Driver Version Status
|Kernel||Latest Driver Version||Comments|
|2.4.X||4.0b (4.2rc6)||4.2rc6 released for testing!|
|2.6.X||4.0b [not working]||under development|
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.
(Replace the '_' by '@' after having downloaded some ADF-file here!)
|IBM SCSI-2 Fast/Wide Adapter
||Short Slotcard, 32-Bit
||OK (internal bus only)|
|IBM 7568 Industrial Computer SCSI Adapter w/Cache
7568 DASD Module,
||no public feedback|
|IBM Expansion Unit SCSI Controller
||no public feedback|
|IBM SCSI Adapter w/Cache
||Long Slotcard, 32-Bit, old,
Long Slotcard, 32-Bit, new
|IBM SCSI Adapter
||Long Slotcard, 32-Bit, old,
Short Slotcard, 32-Bit, new
|IBM Integrated SCSI Controller
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
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
- 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
Download the driver
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
directory have the fixed names: ibmmca.c,
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.
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.
- 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.
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.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!)
The driver headerfile ibmmca.h
This is the meta-headerfile for the IBM SCSI-subsystem driver that runs
with all modern kernel versions.
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
- 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
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
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.)