LSI20320 U320 PCIe SCSI Device Driver for RHEL 4.0 Gold (x86 & x86_64) and SLES 9 SP3 x86_64 Driver Version : 3.02.83.12 Package Version: 3.02.83.12-5 TABLE OF CONTENTS ================= 1 Introduction 2 Compatibility / Minimum Requirements 3 Install Instructions 3.1 The package. 3.2 Installing the OS on a LSI20320 controller. 3.3 Adding the LSI20320 Driver to an Existing Linux system 3.4 Updating the LSI20320 Driver on an Existing Linux system. 4 Fixes or Enhancements in this Release 5 Important Information 6 Known issues 1 Introduction ============== This is the driver for following controllers: LSI20320 Adapters 2 Compatibility / Minimum Requirements ====================================== This Device Driver is compatible with RHEL 4 Gold and later updates, and SLES 9 SP3 distributions. Minimum LSI20320 FW version: 1.03.39.00.5.10.08.00.12 3 Installation Instructions =========================== The package is a compressed tar file. 3.1 The package. --------------- The package is a compressed tar file. To extract the components within the tar file, please follow the instructions as below: Preparation of the DUD image. 1. From the support site download the file. 2. Transfer the file to a Linux system. 3. Run "gunzip on the transferred file to unzip the file. 4. Run "tar -xvf *.tar" on the unzipped file. 5. Go into the appropriate sub-directory. 6. Transfer the image to the floppy. Use "dd if= of=/dev/fd0" On most systems, the floppy drive is designated by the /dev/fd0 special file. The RPM package. One of the components of the tar file is an RPM package with a filename ending in .rpm. 3.2 Installing the OS on a LSI20320 controller. ------------------------------------------- Use the command "Linux dd updates" at the beginning of the Linux installation process if you will be installing the O/S to a disk attached to the LSI20320 controller. This step is required because LSI PCI Ids are not in the kernel's supported device table. This work around will always be necessary for these kernels since they are pre-existing and cannot be patched. Detailed Steps: 1. You will be prompted with "Do you have a driver disk?" 2. Select "Yes" 3. You will be prompted to select the device from which to install drivers. Select fd0 4. You will be prompted to press OK after inserting the driver disk. Select "OK" 5. You will be prompted to load any more drivers. Select "No" 6. Continue with installation. 3.3 Adding the LSI20320 Driver to an Existing Linux system ------------------------------------------------------- 1. Install the DKMS rpm package. Use the command "rpm -ivh " 2. Install the Driver package. Use the command "rpm -ivh " 3. Restart the computer for the changes to take effect. 3.4 Updating the LSI20320 Driver on an Existing Linux system. --------------------------------------------------------- 1. If DKMS installation is needed, use the following instruction to install the package. Install the DKMS rpm package. Use the command "rpm -ivh " 2. Install the Driver package. Use the command "rpm -Uvh " 3. Restart the computer for the changes to take effect. 4. When upgrading from an older to newer version of the driver, first uninstall the older RPM doing: # rpm -e mptlinux-- Then install the new rpm doing: # rpm -ivh mptlinux--..rpm 4 Fixes or Enhancements in this Release ======================================= 1. Fixed issue where driver was incorrectly reporting the status of the virtual disk. 2. Added device link list to retain sas_address’s when devices are added. Devices are not removed from the list after they have been deleted, however when a device is added, there are sanity checks to insure there are unique target id and/or sas address populated in the list. 3. Fixed memory corruption issue in driver when updating the device lists. 4. Changed code to NOT update the SAS address list when a drive that is part of a volume is pulled/inserted 5. Status flags cleared so that status data returned on commands is always correct and not reporting stale or false data 6. TotalUserBlocks fields were being computed incorrectly in routine get_raid_config. The calculations for the uLowPart and uHighPart are now based on the 64 bit MaxLBA values, due to the 2 TB data range that is now possible. 7. The worker threads were not invoked fast enough following device_not_responding event, thus scsi mid layer was timing I/O out. The change is to issue target reset immediately when the event arrives from the interrupt handler. A link list is used to queue up the commands. 8. Added MODULE_VERSION, so driver version is displayed using modinfo 5 Important Information ======================= 5.1 Power state transition. -------------------------- Note that system power state transitions are not validated on Dell platforms under the Linux Operating Systems. If attempted, the system might hang and/or panic resulting in data loss. 5.2 DKMS AUTOINSTALL -------------------- DKMS AUTOINSTALL option should always be disabled in the DKMS configuration file for driver installation. 5.3 Possible Driver Install Issues After Kernel Update ------------------------------------------------------ After a kernel update, the driver needs to be built for the new kernel before rebooting into the new kernel. This is specifically applicable for storage controllers. As the mptlinux driver is not native to the kernel, the DKMS "add" and "install" steps have to be performed on the driver. The driver installation might fail if there is another DKMS-installed module which also does not have support in the upgraded kernel, and has to be part of the RAM disk image. Here is the example of the error message: ... Saving old initrd as /boot/initrd-2.6.9-22.ELsmp_old.img Making new initrd as /boot/initrd-2.6.9-22.ELsmp.img (If next boot fails, revert to the _old initrd image) mkinitrd....(bad exit status: 1) WARNING! WARNING! WARNING! There was a problem remaking your initrd. You must manually remake it before booting into this kernel. DKMS: uninstall Completed. ------------------------------ Deleting module version: v03.02.63 completely from the DKMS tree. ------------------------------ Done. When building and installing the driver for updated kernel, if this problem occurs, please follow the following steps to install the drivers: a) Manually re-build the initrd image. This will show what modules are missing from kernel module tree. Here is an example of the output of the command: # mkinitrd /boot/test.img `uname -r` No module found for kernel (2.6.9-22.ELsmp ) (Using this as an example), aborting. b) Record the list of missing module name and run the following commands on each of them: dkms build -m -v -k dkms install -m -v -k --directive "REMAKE_INITRD=no" This will install the module, but the initrd will not be rebuilt. c) After this, run the following command on mptlinux driver: dkms build -m mptlinux -v -k dkms install -m mptlinux -v -k This will install module and remake the initrd, including all drivers listed in module configuration file. 6 Known issues ============== No known issues.