****************************************************************************** LINUX.TXT ******************************************************************************* This file presents general information about the LSI Logic 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 Features Symbios Devices Supported Upgrading the Linux Driver during Installation Installing the Linux Driver Troubleshooting ******************************************************************************* 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 URL http://www.gnu.org/copyleft/gpl.html. The official Linux kernel currently bundles three drivers that support the SYM53C8XX 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 SYM53C8XX controllers. The SYM53C8XX driver will install first and then the NCR53C8XX driver will install and support all remaining SYM53C8XX devices. The SYM53C8XX driver takes full advantage of the features of the latest SYM53C8XX 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 Ultra3 SYM53C1010 chip, uses 8 Kbyte on-chip RAM and handles phase mismatches in SCRIPTS for the SYM53C895, SYM53C895A, SYM53C896, SYM53C897, SYM53C1010 and the SYM53C1010_66 chips. The NCR53C8XX driver supports the entire NCR/SYM/LSI/53C8XX family of chips excluding the latest Ultra3 SYM53C1010 and SYM53C1010_66 parts released by LSI Logic. Note that this driver supports the earliest chips from NCR, such as the NCR53C810 revision 1. * * * * * * * * * * * * Features * * * * * * * * * * For the SYM53C8XX driver only: o Utilizes SCRIPTS LOAD/STORE command o Handles Phase Mismatch from SCRIPTS (for chips that support this feature) o Supports Parallel Protocol Request (PPR) negotiation o Supports Ultra3 Data Transfers (for chips that support this feature) For SYM53C8XX and NCR53C8XX drivers: o Supports Integrity Checking (Domain Validation for 2.2.X Kernels) o Handles one interrupt per I/O o Supports synchronous negotiation (including Fast SCSI/Ultra SCSI/Ultra2 SCSI) o Supports wide negotiation o Supports disconnect/reselect o Allows tagged command queuing o Supports scatter/gather o Supports shared interrupts o Supports SCSI parity checking o Supports master parity checking o Supports Symbios and Tekram formatted NVRAM o Allows memory-mapped or normal I/O (user configurable> o Supports command line options to override default configuration o Allows drivers to be built into kernel or built as a module o Allows installation of both drivers simultaneously * * * * * * * * * Symbios Devices Supported * * * * * * * * * Host adapters based on the SYM53C8XX family of chips are supported by the SYM53C8XX and NCR53C8XX drivers as follows: CHIP On Board Wide SCSI Max Supported by: Supported by: SDMS BIOS STD Sync NCR53C8xx driver SYM53C8XX driver SYM53C810 N N Fast10 10 MB/s Y N SYM53C810A N N Fast10 10 MB/s Y Y SYM53C815 Y N Fast10 10 MB/s Y N SYM53C825 Y Y Fast10 20 MB/s Y N SYM53C825A Y Y Fast10 20 MB/s Y Y SYM53C860 N N Fast20 20 MB/s Y Y SYM53C875 Y Y Fast20 40 MB/s Y Y SYM53C876 Y Y Fast20 40 MB/s Y Y SYM53C895 Y Y Fast40 80 MB/s Y Y SYM53C895A Y Y Fast40 80 MB/s Y Y SYM53C896 Y Y Fast40 80 MB/s Y Y SYM53C897 Y Y Fast40 80 MB/s Y Y SYM53C1010 Y Y Fast80 160 MB/s N Y SYM53C1010_66* Y Y Fast80 160 MB/s N Y * 66 and 33MHz PCI bus support. Details on the drivers can be found on your system in the file: /usr/src/linux/driver/scsi/README.ncr53c8xx * * * * * * * * * * * * * * * * * * * * * * * * * * * Upgrading the Linux Driver during Installation * * * * * * * * * * * * * * * * * * * * * * * * * * * It is possible to upgrade to the latest driver during installation of Red Hat 7.0 and 7.1. Driver update disks for these releases of Linux are available from ftp.lsil.com/HostAdapterDrivers/linux/DriverUpdateDisks Download the readme.txt file for further instructions. * * * * * * * * * * * * * * * * * * * * * * * * * * * Installing your Linux Driver * * * * * * * * * * * * * * * * * * * * * * * * * * * After installing the Linux operating system, you must patch the driver and other kernel files to upgrade to desired SYM53C8XX version (NCR53C8XX version). 1. Obtain and install the Kernel Source: The kernel source may be obtained through anonymous ftp from ftp.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- asm 4. Obtain the Driver Source or Patches: 4a. The latest version of the driver is stored in full-source format. For this driver, download, for example: sym-1.7.3a-all_kernels.tar.gz Download the tarball for the driver version of interest. ftp> cd HostAdapterDrivers/linux ftp> binary ftp> get sym-1.7.3a-all_kernels.tar.gz ftp> quit Extract the files from the tarball: # tar xzvf sym-1.7.3a-all_kernels.tar.gz Read the file INSTALL.txt for further instructions. 4b. Earlier versions of the driver are store in patch format. For the driver version of interest, download the patches. 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.2.16 and 2.2.17. (1010 support is bundled in 2.4.18). Extract the patch files from the tarball: Download the tarball for the kernel of interest. ftp> cd HostAdapterDrivers/linux 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: a) readme-2.2.13.ftp A listing of the driver version versus patch number. b) script-2.2.13 A shell script that can be executed to apply the patches in the correct order. c) files patch-ncr53c8xx-s-d--.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 extensions (dri or sys) may be applied in any order. Apply the Driver Patches Edit the script file and replace with the full path to the patches. For example, if the 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 #ln -s System.map- System.map #cp /usr/src/linux/arch/i386/boot/bzImage vmlinuz- #ln -s vmlinuz- 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. * * * * * * * * * * * 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 at URL: http://www.lsilogic.com/techsupp for additional assistance. Provide the 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, set the experimental option in menuconfig (or xconfig) and then enable the option under the feature list for the NCR53C8XX/SYM53C8XX drivers. Problem: Integrity checking (domain validation) is enabled but a device behaves badly. How can it be disabled? 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 Ultra3 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/techsupp and call the listed number if you need patches for an official kernel. LINUX IS A REGISTERED TRADEMARK OF LINUS TORVALDS RED HAT IS A REGISTERED TRADEMARK OF RED HAT SOFTWARE, INC.