LSI Logic Home PageHomeBuild Driver DiskettesInstallation InstructionsUtility InformationProduct InformationContact InformationTable of ContentsAbout This CD
The Communications Company (tm)
       SDMS™ Device Drivers for Linux

This file presents general information about the SDMS device drivers for Linux. It also describes the features and use of the device drivers for the Linux operating system environment.

It is divided into the following sections:

Introduction  

The Linux drivers are free software and are supported in source form. These drivers are distributed in the hope that they will be useful, but without any warranty and without even the implied warranty of merchantability or fitness for a particular purpose. You can redistribute them and/or modify them under the terms of version 2 or later of the GNU Public License as published by the Free Software Foundation. You should have received a copy of this license with your Linux kernel source tree (/usr/src/linux/COPYING). For detailed information on the GNU Public License, contact the Free Software Foundation, Inc. at 59 Temple Place - Suite 330, Boston, MA 02111-1307 or at http://www.gnu.org/copyleft/gpl.html.

The official Linux kernel currently bundles three drivers that support the LSI53C8XX family of PCI to SCSI chips: 53C7,8XX; NCR53C8XX; and SYM53C8XX. The latter two drivers use the same code base and are maintained. LSI Logic recommends that you install the SYM53C8XX driver if your controllers are supported by it. If you are not sure, configure the kernel to load both the SYM53C8XX and NCR53C8XX drivers (either built into the kernel or as modules).  The kernel will then select an appropriate driver for each of your LSI53C8XX or LSI53C1XXX controllers. The SYM53C8XX driver will install first and then the NCR53C8XX driver will install and support all remaining LSI53C8XX or LSI53C1XXX devices.

The SYM53C8XX driver takes full advantage of the features for the latest LSI53C8XX or LSI53C1XXX family of chips, although support for some of the earliest chips is no longer available. The differences between the two drivers are:

  • The SYM53C8XX driver supports only those NCR/SYM/LSI/53C8XX chips that perform Load/Store instructions. Additionally, it supports the Ultra160 LSI53C1010 chip, uses 8 Kbytes on-chip RAM and handles phase mismatches in SCRIPTS™ for the LSI53C895, LSI53C895A, LSI53C896, LSI53C897 and LSI53C1010 chips.
  • The NCR53C8XX driver supports the entire NCR/SYM/LSI/53C8XX family of chips excluding the latest Ultra160 SYM53C1010 parts released by LSI Logic. Note that this driver supports the earliest chips from NCR, such as the NCR53C810 revision 1.

back to top

Features

For the SYM53C8XX driver only, the supported features are:

  • Utilizes SCRIPTS Load/Store command
  • Handles Phase Mismatch from SCRIPTS
  • Parallel Protocol Request (PPR) negotiation
  • Ultra160 Data Transfers (for LSI53C1010)

For SYM53C8XX and NCR53C8XX drivers, the supported features are:

  • Integrity Checking (Domain Validation for 2.2.X Kernels)
  • Handles one interrupt per I/O
  • Synchronous negotiation (including Fast SCSI/Ultra SCSI/Ultra2 SCSI)
  • Wide negotiation
  • Disconnect/Reselect
  • Allows tagged command queuing
  • Scatter/Gather
  • Shared interrupts
  • SCSI parity checking
  • Master parity checking
  • Provides LSI Logic and Tekram formatted NVRAM
  • Allows memory-mapped or normal I/O user configurations
  • Command line options to override default configuration
  • Allows drivers to be built into the kernel or built as a module
  • Allows installation of both drivers simultaneously

back to top

LSI Logic Devices Supported

All LSI Logic devices and host adapters have undergone a name change. They have transitioned from a SYM prefix to an LSI prefix. No name changes have occurred for the SDMS Linux drivers.

Host adapters based on the LSI53C8XX or LSI53C1XXX family of chips (formerly prefixed with SYM) are supported by the SYM53C8XX and NCR53C8XX drivers as follows:

Chip On Board
SDMS BIOS
Wide SCSI
STD
Max
Sync
Supported by:
NCR53C8XX
driver
Supported by:
SYM53C8XX
driver
LSI53C810 N N FAST10

10 MB/s

Y N
LSI53C810A N N FAST10

10 MB/s

Y Y
LSI53C815 Y N FAST10 10 MB/s Y N
LSI53C825 Y Y FAST10 20 MB/s Y N
LSI53C825A Y Y FAST10 20 MB/s Y Y
LSI53C860 N N FAST20 20 MB/s Y Y
LSI53C875 Y Y FAST20 40 MB/s Y Y
LSI53C876 Y Y FAST20 40 MB/s Y Y
LSI53C895 Y Y FAST40 80 MB/s Y Y
LSI53C895A Y Y FAST40 80 MB/s Y Y
LSI53C896 Y Y FAST40 80 MB/s Y Y
LSI53C897 Y Y FAST40 80 MB/s Y Y
LSI53C1010* Y Y FAST80 160 MB/s N Y

* 66 and 33 MHz PCI bus support.

Details on the drivers can be found on your system in the file:

/usr/src/linux/driver/scsi/README.ncr53c8xx

back to top

Installing your Linux Driver

After installing the Linux operating system, you must patch the driver and other kernel files to upgrade to SYM53C8XX version 1.60 (NCR53C8XX version 3.30).

  1. Obtain and install the kernel source.

    Note: Patches are available for kernel versions 2.2.5, 2.2.12, Red Hat 6.1 kernel (2.2.12-20), 2.2.13, 2.2.14, Red Hat 6.2 kernel (2.2.14-5), 2.2.15, 2.3.99-pre8 and 2.3.99-pre9.

    The kernel source may be obtained through anonymous ftp from http://www.us.kernel.org/pub.

    Be sure to use binary mode to download the kernel file. For this example, the bz2 compressed kernel was downloaded and stored under /root/Kernels.

  2. Uncompress and install the kernel by typing at the prompt:

    #cd /usr/src
    #rm linux
    #bunzip2 -c /root/Kernels/linux-2.2.13.tar.bz2 | tar xvf -

    Note: bunzip2 is not installed by default with Red Hat 6.1 version.

  3. Reset the soft links and type at the prompt:

    #mv linux linux-2.2.13
    #ln -s linux-2.2.13 linux
    #cd linux/include
    #ln -s asm-<platform> asm

  4. Obtain the driver patches.

    Patches for driver versions are stored in tarball format:

    <driver version>-2.2.13.tar.gz

    and may be obtained either from the SDMS Software Device Drivers and Utilities CD-ROM at:

    {CD-ROM Mount Point}drivers/8xx-1010/unixes/linux

    or

    by anonymous ftp from:

    ftp://ftp.lsil.com/HostAdapterDrivers/linux

    When using ftp, download the tarball for the kernel of interest by typing these instructions:

    ftp> cd 8xx-driver
    ftp> binary
    ftp> get 2.2.13.tar.gz
    ftp> quit

    Extract the patch files from the tarball:

    #tar xzvf 2.2.13.tar.gz

    The newly created directory 2.2.13 will contain:

    • readme-2.2.13.ftp - A listing of the driver version versus patch number.

    • script-2.2.13 - A shell script that can be executed to apply the patches in the correct order.

    • files in the format:

      patch-ncr53C8xx-s<setno>-d<patchno>-<extension>-<kernelversion>.gz

      These files are generated with diff -u and compressed using gzip. Typically, all patches are applied in order beginning with the lowest set and patch number. Some patches have an additional extension of dri or sys to indicate that they are patches to the driver files or the system files. Patches with the same set and patch number but different extension (dri or sys) may be applied in any order.

    back to top

  5. Apply the driver patches.

    Edit the script file and replace <your patch directory> with the full path to the patches. For example, if the full path to your patches is:

    /home/myself/kernelpatches/2.2.13

    then the script becomes:

    echo "Patching ncr53c8xx/sym53c8xx to versions 3.3b and 1.6b - kernel 2.2.13"

cd /usr/src
ln -s /home/myself/kernelpatches/2.2.13 source
gzip -d <source/patch-53c8xx-s01-d00-dri-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s01-d00-sys-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s01-d01-sys-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s01-d01-dri-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s01-d02-sys-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s01-d02-dri-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s01-d03-sys-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s01-d03-dri-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s04-d00-sys-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s04-d00-dri-2.2.13.gz | patch -p0
gzip -d <source/patch-53c8xx-s04-d01-2.2.13.gz     | patch -p0
rm source

Execute the script by typing at the prompt:

#./script-2.2.13

Note 1: The script must have execute permission. If it does not, set the permission by typing at the prompt:

#chmod +x script-2.2.13

Note 2: If you uncompress the patch files to examine the content, you can still apply the patch either by recompressing with gzip or by replacing "gzip -d <" with "cat" in the script file.

  1. Reconfigure and rebuild the kernel.

    Rebuild the kernel in the usual way for your platform. It is strongly recommended that you make an emergency boot diskette prior to rebuilding the kernel. See your system documentation or use the online documentation ($man mkbootdisk) for more information.

    To rebuild the kernel on an I386 platform, type at the prompt:

    #cd /usr/src/linux
    #make mrproper        (
    to reset to default state)
    #make xconfig         (
    or: #make menuconfig)

    At this point, enable the Joliet file system for CD-ROMs under the Filesystems option. Then continue:

    #make dep
    #make clean
    #make bzImage         (
    for an Alpha platform: #make boot)
    #make modules
    #make modules_install
    #cd /boot
    #rm System.map vmlinuz module-info
    #cp /usr/src/linux/System.map System.map-<kernel version>
    #ln -s System.map-<kernel version> System.map
    #cp /usr/src/linux/arch/i386/boot/bzImage vmlinuz-<kernel version>
    #ln -s vmlinuz-<kernel version> vmlinuz

    WARNING: If you modify the previous kernel and are using lilo, you must update and run your boot loader (#lilo -v). If you forget to do so and do not have an emergency boot diskette, your system will be unbootable. There is no recovery method if you boot from a SCSI disk. See $man mkbootdisk for instructions on how to make a boot diskette.

    back to top  

Troubleshooting

If you have problems with any of these patches or if you need patches for an official kernel not listed, refer to the LSI Logic Technical Support Page for additional assistance. Provide details about the kernel version. If patches have failed, also specify if it is an official kernel or vendor kernel and which patches failed.

Some potential problems and their suggested solutions are:

Problem: Integrity Checking (Domain Validation) is not enabled.

Solution:

To enable integrity checking, run menuconfig (or xconfig). Under SCSI support-->SCSI Low-level drivers-->NCR53C8XX (or SYM53C8XX), select Perform integrity check.  Rebuild the kernel and run lilo -v.

Problem: Integrity Checking (Domain Validation) is enabled but a device behaves badly. How can it be disabled?

Solution:

  1. To disable integrity checking, type at the prompt:

    #insmod ncr53c8xx "ncr53c8xx=buschk:4"

    or

    #insmod sym53c8xx "sym53c8xx=buschk:4"

  2. To disable integrity checking when the driver is built into the kernel, type at the lilo prompt:

    lilo: linux root=/dev/hda2 ncr53c8xx=buschk:4

    or

    lilo: linux root=/dev/hda2 sym53c8xx=buschk:4

    where hda2 is the root partition.

Problem: The C1010 boards are shipped with the default speed set to Ultra2.

Solution:

To run at Ultra160 speeds, update the sync speed in the configuration (set to 80) and change the setting in NVRAM. If necessary, use the command line arguments nvram:7, sync:9 and wide:1 to the setup command. For example, with insmod:

#insmod sym53c8xx "sym53c8xx=nvram:7 wide:1 sync:9"

Problem: There are no patches for your kernel.

Solution:

You may go to the LSI Logic Technical Support Home Page, which is located at  http://www.lsilogic.com/support/index.html and call the listed number if you need patches for an official kernel.

back to top

LINUX IS A REGISTERED TRADEMARK OF LINUS TORVALDS
RED HAT IS A REGISTERED TRADEMARK OF RED HAT SOFTWARE, INC.