Linux MPT Release Notes
(Driver Module names: mptbase, mptscsih, mptctl, mptlan)
(Firmware Download Utility name: mptfdu)
(Firmware Flash name: mptflash)

Driver Version: mptlinux-2.06.43
6/16/2006

Hardware Supported:
•	53C1020, 53C1030
•	FC909, FC919, FC929
•	FC919X, FC929X, FC929XL, FC939X, FC949X
•	SAS 1064, 1068, 1064E, 1068E, 1078

Bundling Information:
•	No update available at this time.
•	Official Kernel:
o	No update available at this time.

OS Release Restrictions: 
For restrictions with other Linux releases, please see the 
NOTES, ISSUES and DETAILS
section located at the end of this document.
 
Driver Release Restrictions:
•	If installing a Red Hat 2.4 kernel with a Driver Update Disk (DUD) to a disk drive attached to a LSI HBA, use this command at the install prompt:
linux dd updates

I	This command causes the mpt driver modules to be read from the DUD and those modules placed in the proper /lib/modules directories.  In addition, the mptclt module (IOCTL) will be automatically started with each reboot.  

Be sure to allow the floppy disk drive to be accessed a second time for the “updates” to be completed.  NOTE:  This procedure replaces the “post-script” procedure previously recommended.

	There appears to be an error in Red Hat 3.0 when using a USB floppy drive.  The USB floppy drive gets reassigned after the initial DUD access.  This reassignment does not get presented for selection during the “updates” portion of the install.  This causes the “updates” to not be run, resulting in the mptctl module to not be automatically loaded during system boot.  No known workaround at this time except replacing the USB floppy drive with another type of floppy drive.

•	Recommended FW:
o	1.0 series:  Initiator: Version 1.0.16 or later
o	1.1 series:  Initiator: Version 1.1.46 or later
o	1.1 Series:  Mirroring: Version 1.1.26 or later
•	LAN support requires 2.4 Kernel series.
•	IA64 requires 2.4 Kernel series.
•	Initiator support requires 2.2.12 or later 2.2 Kernel series, full 2.4 Kernel series support.
•	If you modify the system configuration after installation and these changes affect the label of the SCSI boot disk, i.e., disk was /dev/sda and is now /dev/sdg or vica versa, your system will fail to reboot.  In particular, the Linux driver always loads Channel A first. Therefore, if your boot disk is on Channel B of a dual channel adapter and disks are added to or removed from Channel A, the boot disk label will be altered preventing reboot.  It is recommended that your boot device be on Channel A of a dual channel controller.

Flash Utility Release Restrictions:
•	mptfdu should not be used when the 1030 FW version is less than 1.00.04 or when FC929 FW is less than 1.00.06.
 
•	Driver Release Package Contents

mptlinux-xxx-src.tar.gz:
Full driver source that is suitable for inclusion with any publicly available kernels.  Flash and download utilities are included in the mptfdu compressed tar file.   Other ioctl applications are included in the apps, mptutil and hptest compressed tar files.


mptlinux-xxx-rpms.zip:

RPM images are named as:
	mptlinux-vendor-<driver version>-release.arch.rpm
where:
	vendor = {suse, redhat}
	release = release tag for this rpm
	arch = ia64		 Itanium Processor
	  x86_64	 Opteron Processor, w/ x86_64 Install
	  i686		i686  or later processor (Redhat)
	  i686		x86 installations (SuSE)
		  ia32e	EM64T processor (Redhat)

Red Hat: 
i686
2.1	
	Base		2.4.9-e.3	(normal, BOOT, enterprise, smp, summit) DUD
	Update 4	2.4.9-e.40	(normal, BOOT, enterprise, smp, summit)
	Update 5	2.4.9-e.49	(normal, BOOT, enterprise, smp, summit) DUD
	Update 6	2.4.9-e.57	(normal, BOOT, enterprise, smp, summit) DUD

3.0	
Base		2.4.21-4.EL	(normal, BOOT, hugemem, smp)	DUD
		Update 2	2.4.21-15.EL	(normal, BOOT, hugemem, smp)	
		Update 3	2.4.21-20.EL	(normal, BOOT, hugemem, smp)	
		Update 4	2.4.21-27.EL	(normal, BOOT, hugemem, smp)	
		Update 5	2.4.21-32.EL	(normal, BOOT, hugemem, smp)	DUD
Update 6	2.4.21-37.EL	(normal, BOOT, hugemem, smp)	DUD
Update 7	2.4.21-40.EL	(normal, BOOT, hugemem, smp)	DUD


x86_64	
3.0	
		Base		2.4.21-4.EL	(normal, smp)			DUD		
		Update 2	2.4.21-15.EL	(normal, smp)			
		Update 3	2.4.21-20.EL	(normal, smp)			
Update 4	2.4.21-27.EL	(normal, smp)			
Update 5	2.4.21-32.EL	(normal, smp)			DUD
Update 6	2.4.21-37.EL	(normal, smp)			DUD
Update 7	2.4.21-40.EL	(normal, smp)			DUD

ia32e
	3.0
		Update 2	2.4.21-15.EL	(normal: implied smp)		
		Update 3	2.4.21-20.EL	(normal: implied smp)		
		Update 4	2.4.21-27.EL	(normal: implied smp)		DUD
		Update 5	2.4.21-32.EL	(normal: implied smp)		DUD
		Update 6	2.4.21-37.EL	(normal: implied smp)		DUD
		Update 7	2.4.21-40.EL	(normal: implied smp)		DUD


ia64
2.1	
	Base		2.4.18-e.12	(normal, BOOT, smp)		DUD
	Update 4	2.4.18-e.43	(normal, BOOT, smp)
	Update 5	2.4.18-e.47	(normal, BOOT, smp)		DUD
	Update 6	2.4.18-e.52	(normal, BOOT, smp)		DUD

3.0	
		Base		2.4.21-4.EL	(normal, smp)			DUD
		Update 2	2.4.21-15.EL	(normal, smp)
		Update 3	2.4.21-20.EL	(normal, smp)			
Update 4	2.4.21-27.EL	(normal, smp)			
Update 5	2.4.21-32.EL	(normal, smp)			DUD
Update 6	2.4.21-37.EL	(normal, smp)			DUD
Update 7	2.4.21-40.EL	(normal, smp)			DUD




SuSE:
SLES8
	x86
		BASE		2.4.19-82	(k_deflt, k_smp, k_psmp)
		SP 2.0A	2.4.19-304	(k_deflt, k_smp, k_psmp)
		SP 3.0	2.4.21-138	(k_deflt, k_smp, k_psmp)
		SP 4.0	2.4.21-278	(k_deflt, k_smp, k_psmp)

	x86_64
		BASE		2.4.19-189	(k_deflt, k_smp, k_psmp)
		SP 2.0	2.4.19-249	(k_deflt, k_smp, k_psmp)
		SP 3.0	2.4.21-143	(k_deflt, k_smp, k_psmp)
		SP 4.0	2.4.21-278	(k_deflt, k_smp, k_psmp)

	ia64
		BASE		2.4.19-97	(k_itanium2, k_itanium2_smp)
		SP 2.0	2.4.19-153	(k_itanium2, k_itanium2_smp)
		SP 3.0	2.4.21-112	(k_itanium2, k_itanium2_smp)
		SP 4.0	2.4.21-278	(k_itanium2, k_itanium2_smp)


mptlinux-xxx-y-disks.zip:
VFAT or EXT2 formatted disk images suitable for use as driver update disks during installation. The name of the file includes the Linux Vendor, driver version and release tag (corresponds with the RPM version and release tag). 

In this release, driver disks are provided for:
Red Hat and SuSE. 

Major Changes For Version 2.06.43
Release Date:  6/16/2006

General Changes

Functionality
•	The capability of having 2048 devices attached to single controller has been implemented.  These devices will be logically allocated to up to eight buses with up to 256 devices per bus. 

Defect fixes
•	A chip Diagnostic Reset and initialization is performed if the IOC is not Operational when a Task Management message is to be sent.
•	Issue:  System crashes caused by doubly-completing a SCSI command.
Reported by: Customer.
To Reproduce: Bad FC cables cause CRC errors and lost SCSI commands.  These commands time out and the mid-layer attempts to abort them.  If the abort times out, FC firmware will complete the abort with failure status, but the driver was not checking – it was looking only for the abort to complete.  When the abort finishes, the mid-layer completes the outstanding SCSI command, while unfortunately the firmware continues to work on it, and might complete it later itself.  If this happens, the driver will complete the SCSI command a second time, and the system will typically crash.
Description of Change: Keep track of the message frame assigned to a SCSI command (using the host_scribble field).  Validate this field before completing any SCSI command.  When aborting a SCSI command, check to see if it’s still outstanding when the abort completes from the firmware, and if so, fail the abort to the mid-layer.  (If the mid-layer sees the abort fail, it will not complete that SCSI command.)

Majo
Major Changes For Version 2.06.42
Release Date:  6/6/2006

General Changes

Functionality
•	The capability of having 1024 devices attached to single SAS controller has been implemented.  These devices can be allocated to four buses with up to 256 devices per bus.  The driver will obtain the actual number of buses and devices per bus and that information will be provided to the scsi midlayer during initialization.  A device discovery scan over those buses and id’s will occur.  Normal IOs will occur, since all IO requests contain a bus and id uniquely identifying each device on a particular HBA channel.

Defect fixes
•	A chip Diagnostic Reset and initialization is performed if the IOC is not Operational when a Task Management message is to be sent.
•	The IOCTL chip Reset handler now performs a wake-up of all sleeping threads.
•	The throttling mechanism utilizing aen_event_read_flag has been removed.  This results in a notification signal being sent to an application for each event that is received and needed by the application.
•	The ChainOffset and Reserved fields are cleared in CSMI Message Frames to the Firmware.
•	The timeout values were adjusted to allow for seconds, not milliseconds, before the request is failed.

Major Changes For Version 2.06.41		(5/1/2006)

Driver General Changes

Functionality
•	An OEM’s Tape TLR capability was added.
•	
Defect fixes
•	None.

Major Changes For Version 2.06.40		(4/10/2006)

Driver General Changes

Functionality
•	If a Raid Volume contains SATA drives, the CSMI IOCTL that requests the Serial number has been changed to include 4 bytes of data from the ExtDiskIdentifier field, producing a total of 20 bytes of data, including the 16 bytes of data from the DiskIdentifier field.  If the drives are not SATA drives, the 16 bytes of data in the DiskIdentifier field is provided.
•	If the LogInfo field in an IOC_TERMINATED reply indicates NEXUS_LOSS, a DID_BUS_BUSY result is returned to the scsi mid-layer.  This causes a retry of the command.
•	The 1.05.13 MPI Header files are used with this driver.
•	Support for the 1035, 1066 and 1066E chips has been removed, since those chips are not going to be released to customers.

Defect fixes
•	None.


Major Changes For Version 2.06.39		(3/31/2006)

Driver General Changes

Functionality
•	A command-line parameter, mpt_qas_disable, has been added.  Turning on this parameter disables QAS in all Ultra 320 negotiations.  The default is for QAS to be included in all Ultra 320 negotiations, if all devices on the SCSI bus operate at Ultra 320.
•	Red Hat 3.0, Update 7 has been added to the DUD and rpm files.


Defect fixes
•	A Task Management Target Reset is sent to the SAS Firmware when a DEVICE_NOT_RESPONDING Event is received.  This results in all outstanding commands to that device to be returned with IOCStatus of IOC_TERMINATED; those commands will be returned to the scsi mid-layer with an error status.

Major Changes For Version 2.06.38		(3/8/2006)

Driver General Changes

Functionality
•	None.

Defect fixes
•	If the initial Inquiry data received is less than 57 bytes, the drive is assumed to not be capable of Ultra 160 or Ultra 320 speeds.  Domain Validation will start with Ultra 80 (WDTR, SDTR) unless throttled further by NvRam data.  This prevents a hang condition when Ultra 2 drives are used in one OEM’s enclosure.
•	If an Event indicating a DEVICE_NOT_RESPONDING is received, the pointer to the device’s data structure is checked.  If NULL, no further action is taken.  This prevents a panic if the pointer is used.
•	When a Task Management request is made, the status of the chip is checked.  If the chip is not operational, a Hard Reset (Diagnostic Reset, chip initialization, etc) is performed, bring the chip to Operational status.  This fixes a situation where the chip has faulted and needs to be reset to Operational to continue normal operations.


Major Changes For Version 2.06.36		(2/1/2006)

Driver General Changes

Functionality
•	Full support for the SAS 1078 chip has been added. 
•	Support for SAS Enclosures with SMART drives for a particular OEM has been added.

Defect fixes
•	None.

Major Changes For Version 2.06.34		(1/11/2006)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	The code that checks for the necessity for a Firmware downloadboot when a chip is reset was not verifying if the HBA was a single channel adapter.  This caused a panic when a SAS HBA is  reset via a lsiutil request.  This check has been added.

Major Changes For Version 2.06.33		(12/20/2005)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	A Firmware downloadboot will be included when either channel of an onboard 1030 is reset.  This is necessary in order for the onboard 1030 to become operational.

Major Changes For Version 02.06.32		(12/12/2005)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	Writes for IOCPage4 will be done for only SCSI (1030) controllers.
•	Domain Validation will be initiated upon completion of the first successful Inquiry command to devices attached to SCSI (1030 controllers. 
•	Changes to the code that writes to the IntMask register will allow LSI PCI Express chips to be recognized and operate properly with the Linux driver.
•	Hot Spare information provided by the IOCTL interface will not list SATA drives for Raid arrays with SAS drives and conversely, SAS drives will not be listed for Raid arrays with SATA drives.
•	RH 3.0 Update 6 kernel was added to the dkms build procedure.
•	Directory names were changed from amd64 to x86_64 in SLES 8 DUDs and RH 3.0 rpm files.

Major Changes For Version 02.06.31		(11/28/2005)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	After chip initialization and the chip is Operational, the instruction for allowing Reply Message Interrupts to occur was changed slightly.  This allows Reply Message Interrupts to occur as expected on LSI PCI Express chips, such as the 1068E chip.  Prior to this change, the Reply Message Interrupts Mask bit was not being disabled, causing no 1068E interrupts to occur, hanging the system.

Major Changes For Version 02.06.30		(11/10/2005)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	The SCSI Domain Validation routine is changed to do Domain Validation to one “device” only, rather than loop through all the devices on an IOC.  For a non-Raid device, Domain Validation is performed on that single device.  For a Raid device, Domain Validation is done on each physical disk of the array.
•	The SCSI Domain Validation routine is scheduled and executed for each device that successfully completes its first Inquiry command.
•	The SCSI Domain Validation routine is scheduled and executed when an Event of MPI_EVENT_RAID_RC_DOMAIN_VAL_NEEDED is received.

Major Changes For Version 02.06.29		(11/07/2005)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	SCSI Domain Validation is done upon successful completion of the first Inquiry command, during initialization.  This allows Domain Validation to be done immediately, without waiting for an application to issue Read Capacities (disk drives) or Mode Sense (cdroms, tape drives) as was done previously.  A tape application demonstrated issues when Domain Validation was not done during initialization.
•	A new line containing “Version 0” has been added at the beginning of file modinfo in the build_files directory.  This file is copied to  DUDs.  DKMS DUD generation also uses this file, so it is now universal across builds.
•	The DKMS build procedure was modified to automatically load the IOCTL module, mptctl, when a system with the mpt driver is booted.  This allows applications to operate without having to manually start the IOCTL module.  The mptctl module is removed when the mpt driver is deactivated.

Major Changes For Version 02.06.28		(10/27/2005)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	DATA OVERRUN replies will report good status and resid = 0.  This allows wide SCSI tape drives negotiated at Ultra 80 or slower to operate properly when an odd number of data bytes are requested.

Major Changes For Version 02.06.27		(10/11/2005)

Driver General Changes

Functionality
•	Red Hat 3.0 Update 6 is included in the DUD and rpm files. 

Defect fixes
•	Code has been added to provide crash dump output.
•	 CSMI Phase III support – modifications are added in the driver and the hptest application. Support was added in sas_phy_control, which allows link rate change, disabling/enabling phys, and returning default phy settings.  Support was also added in sas_get_location which returns locate array info for raid volumes.  Using the updated hptest provided in the driver source, one can validate these changes.  The hptest tool selection items 18 and 19 will test these updated ioctls.  
•	CSMI Ioctls – Timeout values are honored by the application timeout value, which are provided in the ioctl header.  Previously, the driver was using a 10 second timeout.

Major Changes For Version 02.06.26		(9/27/2005)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	Commands are placed in a PendingQ while a Task Management operation is occurring.  Those commands are now started upon the completion of the Task Management operation.  Note: Task Management operations can be initiated by the driver as a result of a scsi-midlayer request, or by an IOCTL request.  This change allows commands that are in the PendingQ to be started upon Task Management completion, specifically those that were queued as a result of a Task Management via an IOCTL execution.
•	Code was added to detect if Flash Memory is present on a SAS HBA.  This information is provided to applications that requests HBAPCIINFO ioctl execution (Mptutil in particular).
•	File post-script on the DUD for rhel3 EM64T machines was modified to install the object files from the ia32e directories, rather than the `uname –m` directories.  A `uname –m` execution returns x86_64 on EM64T machines, resulting in x86_64 files being installed rather than the correct ia32e files.
•	The dkms.conf files were corrected in the binary and rpm build procedures, allowing correct dkms rpm operations.

Major Changes For Version 02.06.25		(9/7/2005)

Driver General Changes

Functionality
•	MPI Header files 1.05.12 are in use. 

Defect fixes
•	When the driver receives a Reply with RC_NOT_RESPONDING, a Task Management Device Reset message is sent for that device.  This results in the SAS firmware to reply for all outstanding IO’s with a Terminated IOC Status.  The IO’s are then completed back to the SCSI mid-layer, preventing IO timeouts, aborts, etc.
•	“New” error handling has been implemented, replacing “Old” error handling.  This approach allows Task Management Aborts, Device Resets and Bus Resets to complete when IO’s timeout.  This change was a result of problems that occurred when power was removed from drives associated with SAS Volumes, resulting in Hot Spare drives being activated, etc.
•	Mptlan – Fix for the Lan driver. In the interrupt handler, message frames were not being freed in certain circumstances.
•	Fix for ioctl= MPTEVENTQUERY. The event log size was returning ‘0’ instead of ‘50’, when driver first loaded.  Previously the driver would only initialize the event log size after ioctl=MPTEVENTENABLE was called.
•	Fix for Asyn event notification logic.  The aen_event_read_flag was never getting turned on when SIGIO event was raised. This flag is used to inhibit SIGIO notification between reading the event log.
•	Fix for CSMI get_raid_config_info.  This fix involves recognizing smart errors, and marking a drive as degraded when smart errors are detected.


Major Changes For Version 02.06.24		(8/23/2005)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	MPT_HOST_LOCK and MPT_HOST_UNLOCK removed when returning running commands to the scsi midlayer before an IOC reset (host_reset requested by the midlayer) is attempted.  This prevents a possible spinlock conflict.
•	Changed possible wait time from 10 seconds to 2 seconds for a previous Task Management to complete before attempting to issue another Task Management.   This prevents an NMI watchdog spinlock timer from timing out on certain SuSE systems.
•	Return SUCCESS rather than FAILURE when an Abort Task Management completes successfully.
•	Only set LIPRESET option in MsgFlags field of Bus Reset Task Management request if the IOC is Fibre Channel.
•	CSMI – Get Raid Config – Fix for setting Phys Disk to REBUILDING state when the volume is being resyn’ed.

Major Changes For Version 02.06.23

Driver General Changes

Functionality
•	None. 

Defect fixes
•	“New” error handling has been implemented.  This allows Abort, Target Reset, Bus Reset and Host Reset tasks to function via the Task Management interface much more cleanly.
•	Task Management functionality has been improved, especially Bus Resets.  The scsi midlayer/driver now has the capability to request a host reset if a Bus Reset fails to complete on time.

Major Changes For Version 02.06.22		(8/8/2005)

Driver General Changes

Functionality
•	CSMI – CC_CSMI_SAS_SSP_PASSTHRU and CC_CSMI_SAS_STP_PASSTHRU – remove the quiece io surrounding raid  passthru request. 

Defect fixes
•	CSMI – CC_CSMI_SAS_SSP_PASSTHRU, CC_CSMI_SAS_STP_PASSTHRU – add check in code to insure that driver doesn’t write beyond user space when returning data for scsi passthrus request.
•	CSMI – CC_CSMI_GET_RAID_CONFIG – Initialize the bDriveCount field to zero.  In some cases the application was sending an non-zero value, and the driver incremented the drive count assuming bDriveCount was zero.   Thus if bDriveCount was non-zero, the driver would report more drives in raid volume than actually existed
•	CSMI – CC_CSMI_GET_RAID_CONFIG – The application was sending a buffer size larger than what was actually allocated by the application.  The driver would overwrite the entire buffer when data was returned to user space.  When the application freed the memory allocated for this transaction, the application would crash.
•	CSMI – CC_CSMI_GET_RAID_CONFIG – Fix a panic in the driver when divide by zero occurred.   This occurred due to firmware falsely reporting that raid1 volume was re-syncing.  The driver was calculating the rebuilding rate expecting the divisor to be non-zero value, thus resulting in the panic.


 Major Changes For Version 02.06.21

Driver General Changes

Functionality
•	None.

Defect fixes
•	Big endian/Little Endian fix's thru out code, but mostly in ioctls. 
•	csmi ssp_passthru and stp_passthru - check to see if there is data transfer to device. If there is not going to be data transfer, then eliminate the need to allocate memory with zero data length.
•	csmi ssp_passthru and stp_passthru - remove the commented code for quiesing io. This was commented out in previous 3.02.53. There has been a fix for this in the 4.01+ firmware for thus.
csmi get_raid_info - max drives per set was returning 0 when there were no volumes created. This release will always return valid data for this member even if there are no volumes. Typical value for this is 10.

Major Changes For Version 02.06.20		(7/19/2005)

Driver General Changes

Functionality
•	None.

Defect fixes
•	Checks were added for request_data_sz > 0 before memory allocation to ensure SSP, STP and SMP PASSTHRUs do not fail when there is to be no data transfer.
•	Added MPT_DEBUG_LOCKS for debugging spin locks and printing where they are invoked.
•	Fixes were added to the mptutil interfaces.
•	RESIDUAL_MISMATCH processing was modified per Engenio MPP requirements for controller failover.

Major Changes For Version 02.06.19

Driver General Changes

Functionality
•	None.

Defect fixes
•	CSMI – get controller config – was not returning the proper data for usSlotNumber.  The driver returns the slot number from IOC Page 1.  If the ioc_page1->pci_slot_number = 0xFF, then return SLOT_NUMBER_UNKNOWN
•	CSMI – get phy info – was not returning the proper device type for the attached device. This driver returns the Attached Device Info bits regarding device type from Phy Page 0. 
•	CSMI – get raid config – was not returning spare drive info.  This driver returns the spare pool info from IOC page 5.
•	SAS adapter type changed from 02 to 03 ( Signifies SCSI protocol through a SAS Adapter) for MPTIOCINFO IOCTL.

Major Changes For Version 02.06.18		(7/12/2005)

Driver General Changes

Functionality
•	IR Event Handling – Added support for handling IR Events such as Volume Creation/Deletion, Phys Disks Creation/Deletion.
•	CSMI STP/SSP passthru support for IR hidden phys disk. The driver will pass scsi command block to physical disks hidden in a volume. The driver will Quiese IO during passthru.
•	Added clearing persistency table full
•	Asynchronous Event Notification (AEN) – Added support for raising SIGIO for persistent events.

Defect fixes
•	None


Major Changes For Version 02.06.17		(5/13/2005)

Driver General Changes

Functionality
•	None.

Defect fixes
•	Ioctl allows FW download of FW image even if a Boot loader image is not found when a FW downloadboot is requested.
•	User memory for FW downloadboot operation since this data is handshook one word at a time.  This eliminates kernel memory allocation, which is restricted to 128 K bytes.  The SAS IR FW is larger than 128 K bytes.
•	Sync Cache commands will be issued to only disk drives upon driver termination.

Major Changes For Version 02.06.16		(4/25/2005)

Driver General Changes
There is a known issue when trying to install Red Hat 3 Update kernels to a disk drive attached to a LSI 1030 HBA, using an LSI  DUD, on an x86_64 machine.  Instead of using a DUD, install normally.  After rebooting the system, upgrade the driver using the LSI rpm package containing this driver.

Functionality
•	Default mpt_sg_tablesize is increased to 128.  This allows increased IO performance, especially with large IO’s.

Defect fixes
•	Removed “reason” check for IOC_BRINGUP when obtaining IOC reply_size, reply_depth, req_depth and PortFacts.  This is needed for SAS FW download boot to work properly.
•	A 1 millisecond delay was added during SAS FW download boot, to allow the FW to initialize properly.
•	A check for a NULL task management pointer was added in mptctl_ioc_reset to prevent use of the NULL pointer.  This was seen during IR Volume testing when a device didn’t respond to an Inquiry, causing the application to request IOC resets.
•	Read_16 and Write_16 CDB opcodes (16 byte CDB) were added to switch statements that set data direction.
•	If an Abort request is received for a target that is not present, the “result” is set to DID_BAD_TARGET and SCSI_ABORT_ERROR status is returned.  If a Bus Reset is received for a command that is on the PendingQ, the command and chain buffers are returned to their free queues, “result” is set to DID_RESET and SCSI_RESET_SUCCESS status is returned.  These changes prevent a loop and panic if many devices are powered down simultaneously (probably in a JBOD) while performing IO  stress tests to those devices.
•	Sync Cache commands are only issued to Direct Access, WORM and Optical devices during driver termination.  This prevents problems with “tape” devices that claim they support Q-Tags.


Major Changes For Version 02.06.15		(4/22/2005)

Driver General Changes

Functionality
•	Fibre Channel device persistency is implemented utilizing World Wide names.
•	Asynchronous Event Notification (AEN) has been implemented.  This causes the driver to notify applications when certain events occur so they can immediately perform related activities.
•	A Peripheral Qualifier Filter command line option is implemented.  This allows certain Raid controllers to operate properly.
•	The EBOS option in Echo Buffer data is checked.  Reserve and Release commands during Domain Validation are not issued if this option is present.
•	Upgraded to 1.05.09 MPI headers.

Defect fixes
•	The default Reply Buffer count has been reduced to 64, to be consistent with other LSI drivers.
•	IOCInfo data is not printed for replies generated by Target Mode or LAN driver commands.  Those driver perform their own functions based upon that data.
•	Event Notification message frames that are outstanding when a Diagnostic Reset is performed are returned to the Message Frame pool.  Currently only the 1030 FW do not return Event Notification message frames immediately to the driver.  This change allows those message frames to become available for normal operation after a Diagnostic Reset has completed.
•	Debug code was added to detect and handle an instance of the FW returning a non-active message frame to the driver.
•	Code was re-arranged to ensure that PCI Config Space (MOST, MMRC values) is set for both instances of dual function HBA’s.
•	MsgVersion and HeaderVersion fields are set based upon the machine’s Big Endian/Little Endian characteristics.
•	SAS FW Download Boot code searches the FW data for the BOOTLOADER ImageType and sends that image.
•	FW download code was adjusted to accommodate SAS chip requirements.
•	Code to allow handshakes of commands has been implemented.  This is only done during SAS FW download or download boot operations.
•	Added mptscsih command line option:
mpt_pq_filter: Enable peripheral qualifier filter: enable=1 (default=0)
•	A Pending Queue is implemented.  This queue holds request from the scsi-layer that cannot be immediately issued.  Requests may be placed in this queue during a Diagnostic Reset, if no message frame is available or if insufficient Chain Buffers are available to contain the entire Scatter/Gather list.  These commands are then issued when the Diagnostic Reset is complete or when sufficient resources become available.
•	Internally generated commands that do not DMA data have their Control field set to NODATATRANSFER.  This eliminates unexpected FW replies, especially on Sync Cache commands to 1030 chips during driver termination.
•	An IOCTL that performs a Diagnostic Reset, then waits for the chip to go to READY, has been implemented.  This is needed for SAS FW download to a new or erased board.


Major Changes For Version 02.06.14		(2/18/2005)

Driver General Changes

Functionality
•	None.

Defect fixes
•	Driver returns an ABORT_PENDING status to the scsi-layer if no Message Frame is available to perform an Abort.
•	Send a Task Management AbortTask  rather than a ResetBus when a SAS IO times out.
•	Target memory is not freed when a SAS NOT_RESPONDING event is received.  SAS devices may go offline periodically for short periods of time without system operation being affected.
•	The x86 BOOT mpt modules were inadvertently left out of the 2.06.13 DUDs, causing the mpt driver to not install properly.  Those modules have been restored in the build process and are contained in this driver release.
 
Major Changes For Version 02.06.13		(2/10/2005)

Driver General Changes

Functionality
•	Upgraded to 1.5.7 MPI headers.
•	Added processes in Red Hat rpms and DUDs to detect LSI Logic chips that have no associated driver.  These processes will update /etc/modules.conf and generate Ram Disk Images including the 2.06.13 driver so the driver will be loaded on the next boot.  Driver installation via an rpm will perform the above processes automatically and will load the driver if it is not already loaded, so a reboot is not necessary.  Note: this is due to Red Hat Kudzu not recognizing the 1064 and 1068 chips yet.
•	To perform the above process when installing via DUD:
At the last screen just before exiting to reboot (double quotes are for emphasize; do not enter):
Change to the prompt screen by entering “<cntl><alt><f2>”
Change root by entering “chroot /mnt/sysimage”
Make a floppy mount point “mkdir /floppy”
Mount the DUD “mount /dev/fd0 /floppy”
Change to floppy mount point “cd /floppy”
Execute process “./post-script”
Return to the installation screen by entering “<cntl><alt><f7>”
Exit the installation
•	Added new version update for LSIUTIL v1.30
•	Added case for MPI_FUNCTION_TOOLBOX in IOCLT path for MPI Passthru’s
•	Host Buffer Support Fix’s: added new function mpt_host_page_alloc.

Defect fixes
•	Code was modified to eliminate a panic situation when multiple SAS or SATA driver are powered down nearly simultaneously.
•	Fix in IOCTL path for SCSI_IO passthru’s:  the sense width in the message flags was getting overwritten by a call to mpt_msg_flags() .


Major Changes For Version 02.06.12		(1/28/2005)

Driver General Changes

Functionality
•	Upgraded to 1.5.6 MPI headers.
•	Added v.83 CSMI headers.
•	Added CSMI ioctls framework for get_location, get_connector_info, phy_control.
•	For Integrated Raid, added support for recreating the SAS device link list when volumes are added or deleted.
•	Cleanup and renaming SAS support routines in mptbase.

Defect fixes
•	Recognition for MPI_FUNCTION_TOOLBOX was added to mptctl_do_mpt_command in module mptctl, allowing processing needed by utility Mptutil for SAS Firmware downloads and uploads.
•	Added mptctl_hba_pciinfo code to obtain SAS HBA parameters for utility Mptutil.
•	Fixed code so that all Ultra 320 devices have QAS disabled if at least one non-Processor device is running at a speed less than Ultra 320 on the SCSI bus.
•	Minor fixes in CSMI – get raid configuration.

Major Changes For Version 02.06.11		(1/7/2005)

Driver General Changes

Functionality
•	None.

Defect fixes
•	Code was changed to return “BUS_BUSY” for IO’s that are received for which there are no available Message Frames, insufficient Chain Buffers, or if the IOC is being reset.  This causes the IO’s to be retried rather than placed in a “doneQ” and never started (causing an infinite Abort request loop).  The “doneQ” was removed as was all associated code.
•	Code was added to force the host sg_tablesize  parameter to be no more than the number of Scatter/Gather entries in the Chain Buffers plus the number of Scatter/Gather entries in a Message Frame.  This ensures that IO’s can be completed.  Performance can be severely impacted if the number of Chain Buffers is small (this can be done by setting the mpt_chain_alloc_percent to 1 or two), causing the IO’s to be retried often.  If mpt_chain_alloc_percent is set to zero, sg_tablesize is set to the amount of Scatter/Gather entires that will fit in a Message Frame; this reduces performance somewhat but does not cause IO’s to be retried.

Major Changes For Version 02.06.10

Driver General Changes

Functionality
•	Debug code added (MPT_DEBUG_QCMD_DEPTH) added for tracking when then number of outstanding IO’s near the IOC’s can_queue limit.

Defect fixes
•	New chip recognition code was modified so that only one set of code is used, eliminating the possibility that new chips would not be detected.
•	Message Frame allocation is mpt_can_queue + 12 to allow for messages that are sent to the IOC but the IOC doesn’t return the Message Frame back to the host driver.  An example of this is the Event Notification request.  This also reduces the amount of memory allocated per IOC.
•	CSMISAS ioctl code was moved from file mptctl.c to file csmisas.c.  This file is included if CSMISAS ioctl code is needed.
•	MPTHBAPCIINFO ioctl code has been removed, as requested by kernel.org.  This information can be obtained from other sources.

Major Changes For Version 02.06.09

Driver General Changes

Functionality
•	Added support for FC939X, FC949X
•	Added support for SAS1066, SAS1068, SAS1064E, SAS1066E, SAS1068E
•	Added mptbase command line options:
mpt_can_queue: Maximum IO depth per HBA instance (default 128).
mpt_sg_tablesize: Maximum Scatter/Gather entries allowed per IO (default 40).
mpt_reply_depth: Maximum number of reply buffers allocated per HBA instance (default 128).
mpt_chain_alloc_percent: Chain buffer allocation percentage 
(default 100).
Above options are specified with the kernel.org preferred methodology.  Example:
	mptbase mpt_can_queue=256 mpt_sg_tablesize=128
These options can be used to modify the amount of memory allocated for each HBA instance, and to enhance performance by allowing more concurrent IO’s and/or more Scatter/Gather entries per IO.
•	Added linked list for HBA instances.  Eliminated hard coded limit 
of 18 HBA instances.
•	Added SAS Clear Task Set ioctl capability.

Defect fixes
•	Standardized utilization of HBA instance types: SCSI, FC, SAS.
•	Eliminated unused code.
•	Fixed Big Endian/Little Endian conversion of Facts Blocksize.
•	Allow up to 5 minutes for Raid Capable HBA instances to initialize.
•	Changed mptscsih command line options to use kernel.org preferred methodology:
mpt_dv: Perform SCSI Extended Domain Validation (default 1).
mpt_width: Allow all SCSI devices to operate in 16 bit mode if capable (default 1).
mpt_factor: Allow all SCSI devices to operate with this Sync Factor if capable (default 08: Ultra 320).
mpt_saf_te:  All SCSI enclosures are to be regarded as SAF-TE capable (default 0).
mpt_pt_clear: Clear all Persistance tables (default 0).
Above options are specified with the kernel.org preferred methodology.  Example:
	mptscsih mpt_dv=1 mpt_width=0
•	Removed check for zero length data transfer in a DATA_UNDERRUN case and return an error code if true.
•	Set resid field for all IO commands that don’t complete successfully, based upon the amount of data that was transferred.

Major Changes For Version 02.06.08

Driver General Changes

Functionality
•	Added /dev/mptctl ioctl node file generation in the Red Hat rpm’s.  Requested by the LSI test team.

Defect fixes
•	Added code to allow only one downloadboot to onboard dual function MPT chips when the mpt driver is removed.
•	Removed code to turn on Information Unit (IU)  during Ultra 160  negotiations.  The 1030 SCSI chip doesn’t properly support IU at Ultra 160 speeds.
•	Fixed code to properly do Big Endian/Little Endian conversions of req_idx in the get and put Message Frames routines.  This prevents panics on Big Endian machines.

Major Changes For Version 02.06.07

Driver General Changes

Functionality
•	Added downloadboot capability via an application ioctl.
•	Added CSMI Raid Support ioctl’s.
•	If a SAS event of SAS_DEVICE_CHANGE with indicator of SAS_DEVICE_RC_ADDED (device added) is received, the device’s memory and pointer are generated.  This allows applications to detect the added device immediately.
•	If a SAS event of SAS_DEVICE_CHANGE with indicator of SAS_DEVICE_RC_NOT_RESPONDING (device removed) is received, the device’s memory and pointer are removed.  This allows applications to detect the removed device immediately.

Defect fixes
•	Removed unused code.
•	Added “static” to some routines.
•	Reset Host Diagnostic Buffer indicators during a Diagnostic Reset sequence.
•	Added debug print statements.
•	Simplified HBA list parsing.

Major Changes For Version 02.06.06

Driver General Changes

Functionality
•	Removed device structure and pointer if IOCStatus of DEVICE_NOT_THERE reply is received.  This allows applications to obtain an accurate list of active devices after a device is removed from the system.


Defect fixes
•	Corrected the ClearFlashBadSignature bit setting in the 1030 Downloadboot sequence.
Major Changes For Version 02.06.05

Driver General Changes

Functionality
•	None.

Defect fixes
•	Routine mptctl_reply was modified to process ioctl completions without any Reply buffer.  Examples of this are SCSI IO’s issued by ioctl routines that complete successfully (Turbo reply).

Major Changes For Version 02.06.04

Driver General Changes

Functionality
•	None.

Defect fixes
•	More routines were declared Static per a Redhat request.
•	MPI_FUNCTION_DIAG_BUFFER_POST processing was added in routine mptctl_reply.  In that processing, if the IOCStatus is MPI_IOCSTATUS_DIAGNOSTIC_RELEASED, RELEASED is added to the buffer type’s status, eliminating the need to manually release the buffer.  In addition, if MsgLength is long enough to include TranferLength, that length is saved and returned in Query requests.  Both of the above checks are also include if an asynchronous MPI_FUNCTION_DIAG_BUFFER_POST reply is received; this may occur if the proper ProductSpecific value is set in the request.
•	For stp passthru, bug in checking stp drives, would fall past a failure condition check, even though it failed.  Also, SATA drives are not enabling the STP_TARGET bit in the device config page, therefore a check was added to insure we could issue STP passthru to SATA devices.
•	Requests sent by mptlan do not include the NB bits.

Major Changes For Version 02.06.03

Driver General Changes

Functionality
•	None.

Defect fixes
•	Some routines were declared Static per a Redhat request.
•	Host Diagnostic ioctl code was expanded to handle the UniqueId word, and to check for application compatibility.
•	Host Diagnostic ioctl code now sets the Flags field in buffers being returned to applications.
•	Fixed driver to correctly honor the command-line request dv:n.  The driver will now only do the Basic portion of Domain Validation if this request is received.
•	SCSI non-packetized devices (devices running at Ultra 160 or slower) are now limited to 64 luns.  This prevents “phantom” luns being generated if a full lun scan is done.


Major Changes For Version 02.06.02

Driver General Changes

Functionality
•	Support for the SAS 1064 chip has been added.  

Defect fixes
(1) SAS Fixes:

* CC_CSMI_SAS_GET_PHY_INFO - CSMI Ioctl was not returning
proper sas address for attached devices.
* CC_CSMI_SAS_FIRMWARE_DOWNLOAD - CSMI Ioctl minor bug fix, was
not successfully downloading image, due to flag not set in msg frame.
* CC_CSMI_SAS_GET_SCSI_ADDRESS - CSMI Ioctl minor bug fix, was
failing to find sas address properly in device link list.
* CC_CSMI_SAS_TASK_MANAGEMENT - CSMI Ioctl new implementation.
* Added support for Generic STP and SMP msg frame passthroughs.
* Added Host Page Buffer support for releasing memory to the fw, 
implemented thru doorbell handshake
* CSMI Ioctl application updates from CSMI vendor, and updated to v79 headers.


(2) Kernel.org Updates:

* remove sources for sense data, as this is already supported
by kernel : isense.[c,h], ascq_tbl,[c,sh]
IMPORTANT NOTE: Full sense data reporting can be enabled in kernel by:

sysctl -w dev.scsi.logging_level=0x1000

* Additions to loginfo debug info.
* Added IOC debug error code info
* Added Dump FCP ResponseInfo
* Added element "segmentID" in get_iocinfo IOCTL.
* Request from Jeff Garzik: Replace wrappers for CHIPREG_XXX with defines.
* Removed __init from mptscsih_setup, Removed __init from get_setup_token.
* Change naming of MPTSCSIH_DISABLE_DOMAIN_VALIDATION to MPTSCSIH_ENABLE_VALIDATION.
* fix from Christoph Hellwig in mptscsih_AddSGE "fusion casts the dma handle for non-sg requests 
to a void *, making it horribly fail on systems with dma addresses bigger than 
the pointer size (e.g. x86 withPAE)"


Major Changes For Version 02.05.23

Driver General Changes

Functionality
•	None.  
Defect fixes
•	Task Management (TM) completion processing has been revised.  The field determining a TM completion’s status has been changed from the Reserved2[0] field to the IOCStatus field.  In addition, if the TM fails, the command’s Lookup table entry is set to NULL indicating the command has completed and a DID_SOFT_ERROR status is returned to the scsi_layer for this command.  The possible use of a NULL pointer has been eliminated.

Major Changes For Version 02.05.22

Driver General Changes

Functionality
•	None.  
Defect fixes

•	The MPI_FLAGS_SGE_END_OF_BUFFER  flag was added to the Data In Scatter/Gather entry for Ioctl commands that have both a Data In and a Data Out operation.  This allows certain MyStorage commands to complete properly.

Major Changes For Version 02.05.21

Driver General Changes

Functionality
•	None.  
Defect fixes

•	One of the changes to driver version 2.05.20 caused all IO request to Fibre Channel devices to be sent with a Control field indicating UNTAGGED.  The UNTAGGED Control field setting caused some devices to not respond to some commands and indicate a Check Condition with Overlapped Commands with other commands.  This has been changed to send all IO commands with a Control field of Simple-Q to Fibre Channel devices.  Those device now operate properly.

Major Changes For Version 02.05.20

Driver General Changes

Functionality
•	None.  
Defect fixes

•	The Firmware Upload code was simplified and enhanced to upload firmware from both channels of onboard 1030 chips.  This increases performance significantly since the firmware can now use that memory space for its internal buffers.  In addition, only one memory allocation is used for both uploads, reducing memory requirements.  Lastly, when fusion_exit is executed, only one Firmware Download is performed to the onboard 1030 chip, speeding driver termination.
•	A few changes to the scsi negotiation code was made to ensure the negotiations and QAS settings were implemented as specified via NvRam settings (Configuration Utility settings).
•	RESIDUAL_MISMATCH processing was changed to examine the Reply TransferCount field.  If TransferCount is greater than or equal to the command’s minimum data transfer count, the command is returned with good status.  If TransferCount is zero, the command is retried (this occurs when a CRC error is encountered).  Otherwise, an error status is returned.
•	The code to release ReqToChain, RequestNB and ChainToChain memory was moved from file mptscsih to file mptbase in routine mptbase_disable_adapter.  This prevents those memory allocations from being released prematurely, which caused a kernel panic when insmod mptscsih, rmmod mptscsih and insmod mptscsih were executed in succession.  This change is a direct result of Reply, Request and Chain buffers being allocated in one memory chunk rather than separately.
•	An error status of DID_SOFT_ERROR is returned when an IOCStatus of SCSI_PROTOCOL_ERROR is encountered.
•	Checking for SAF-TE processors is now done during Domain Validation of Inquiry data.  This allows SAF-TE processors to be detected and IOCPage4 writes to be done if not done on the first Inquiry command from the scsi layer.  SuSE systems issue only Inquiries with 36 bytes of data requested, not sufficient for the SAF-TE check.  The Domain Validation Inquiry requests 96 bytes of data, more than enough for the SAF-TE processor checks.
•	Some changes were need to ensure that device negotiations were done correctly, after the SAF-TE change above.
•	The code to send Reply buffer addresses to the IOC’s was moved to after the Reply, Request and Chain buffer allocation.  This allows those Reply Buffers to be available to the IOC after a Diagnostic Reset is performed (the memory for Reply, Request and Chain buffers is not re-allocated during this time).
•	The check for IOC status after a Diagnostic Reset was changed to include MPI_IOC_STATE_OPERATIONAL (in addition to MPI_IOC_STATE_READY).  This allows a Diagnostic Reset to complete properly when it is done to an onboard 1030, since this also includes a Firmware Downloadboot that results in an OPERATIONAL state.

Major Changes For Version 02.05.19

Driver General Changes

Functionality
•	None.  
Defect fixes

•	Code was added to calculate the amount of system memory that is needed for Reply, Request and Chain Buffers for each IOC.  This amount of DMA memory is allocated during initialization, replacing separate memory allocations for those buffers.  The memory is divided amongst those buffer types and ensures that these buffers will be contained within the same 4 GB of memory space.  This brings the mpt driver into compliance with the MPI Spec.

•	Several performance enhancements have been implemented.  In particular, utilizing the “NB” bits of requests in the Request FIFO writes to limit the amount of data being transmitted across the PCI bus.  Cosmetic coding changes were also made to reduce the amount of CPU utilization.

Major Changes For Version 02.05.18

Driver General Changes

Functionality
•	None.  
Defect fixes
•	Queue_depth is set to 31 for “Dummy Lun 0” devices instead of 1.   If a “scsi single-device-add” is done and an actual device is now assigned to that device, it’s queue_depth will now be 31 instead of 1.  This allows LSI Raid controllers to operate properly.
•	Negotiation of narrow, async will be done on the first command to a device.  This setting will be maintained until Domain Validation is scheduled and performed.  This prevents an infinite loop when a wide device is physically placed behind a narrow device on a SCSI bus.

Major Changes For Version 02.05.17

Driver General Changes

Functionality
•	None.  
Defect fixes
•	A check for PCI Function Number was added in the mpt_toolbox routine.  If the Function Number is odd, the ISTWI Address to be read is set to 0xB2.  If even, the Address to be read is set to 0xB0.  This allows the correct UPIC data to be read on an I2C bus.
•	Valid SCSI LUNS are limited to 0-63 for devices running at speeds slower that Ultra 160, since the LUN field in the Identify byte is limited to 6 bits.  This prevents multiple occurrences of the same device at LUNS greater than 63.
•	Checks for QAS capability is now also done after the Inquiry data compares in Domain Validation.  In addition, the Inquiry data length is increased to MPT_MAX_INQUIRY_SIZE (96 bytes) so that sufficient data is available for the QAS check.  This eliminates the problem of insufficient Inquiry data being requested on SuSE systems.
•	After a successful Firmware downloadboot, the driver performs an IocInit operation, placing the IOC into Operational state.  This allows volume resyncing to continue while the driver is not running.
•	Changed code slightly to eliminate SuSE compile warning messages.  Miscellaneous changes to satisfy: 
              (1) Andi Kleen[ak@suse.de]
            put warning "Device (0:0:0) reported QUEUE_FULL!"                    into debug messages

              (2) Alexander Stohr[Alexander.Stohr@gmx.de]
            fix warnings from mptscsih_setup and get_setup_token, when driver isn't compiled as module

              (3) Randy.Dunlap[rddunlap@osdl.org]
                  Remove unnecessary min/max macros and change calls to 
use kernel.h macros instead.


Major Changes For Version 02.05.16

Driver General Changes

Functionality
•	None.  
Defect fixes

•	SDTR/WDTR Disallow bits were not being set in Device Configuration Page 1 for SEP devices.
•	Increase the timeout in RAID Action Request from 2 to 10 seconds.  Under stress conditions, the QUIESCE_PHYS_IO action request was taking longer than 2 seconds timeout to complete, thus resulting in the driver going into a host bus reset.
•	Replace sys_ioctl with our own defined function compat_mptctl_ioctl. This removes the warning messages.



Major Changes For Version 02.05.15

Driver General Changes

Functionality
•	None.  
Defect fixes

•	Processing of an IOCStatus of MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH was changed to allow the OS SCSI layer to retry the command.
•	Firmware upload and downloadboot was simplified to match the algorithms in the MPI 1.2 spec.


Major Changes For Version 02.05.14 

Driver General Changes

Functionality
•	None.  
Defect fixes
•	Search IOCPage3 for Id being a physical drive of a volume.  If so, don’t include its information in Ioctl TargetInfo data.
•	Default to QAS before checking for QAS capable in inquiry data.  
This allows Ultra320 drives to operate with QAS in SuSE systems.

Major Changes For Version 02.05.13

Driver General Changes

Functionality
•	None.  
Defect fixes
•	Read IOCPage2 and IOCPage3 on each Ioctl TargetInfo request.  Prevents stale data from being used if volume is changed while the driver is operational (via Ioctl interface).
•	Extend time to at least 5 seconds for Doorbell Interrupt and Ack checks.
•	Allow Check Conditions to take precedence over data length checks in DATA_UNDERRUN error processing.

Major Changes For Version 02.05.12 

Driver General Changes

Functionality
•	The driver now supports the FC929XL.  
•	The driver now supports I2C requirements.  Toolbox message generation and processing has been added to IOCTL processing.
•	Rpm and DUD files are now available for Redhat 3.0 on ia64 machines.

Defect fixes
•	Added code to check for QAS enabled or disabled in SCSI Port Page 0.  Ultra 320 negotiations will reflect the QAS setting in SCSI Port Page 0.
•	Added code to obtain IOC Page 2 data in order to provide Volume data in Target Info Data returned by an IOCTL request.
•	Fixed Target Info code to prevent overrunning the data buffer length provided by the application.  Also fixed that code to include checking for the last id on the IOC.
•	Added code in the data underrun response processing to return an error code if no data was transferred.
•	Added code to properly set each device’s queue_depth for Fibre Channel devices.
•	Fixed code to allow Ioctl operation on ia64 machines.

Minor Changes 
•	Version bump.
•	Performance enhancements were made.





Major Changes For Version 02.05.11 

Driver General Changes

Functionality
•	The driver now supports up 256 Luns per device Id.
Defect fixes
•	The Maximum Outstanding Split Transactions (MOST) is set to 1 for the 919X and 929X chips.  This prevents a possible data corruption situation when using those chips.
•	The ReqToChain fields are now properly set via a loop using a defined value rather than a memset function call during adapter structure initialization.  This prevents a panic situation seen on an Opteron x86_64 system.
•	If a data underrun condition exists and the amount of data transferred is less than the command’s underflow amount, an error status is returned rather than a good status.  This prevents a false good status from being returned and allows the upper SCSI layer to retry the command if needed.
•	A “for” loop replaces a “while” loop during adapter detection.  This prevents a possible infinite loop during initialization.
•	A generic compatible ioctl interface replaces a sparc specific interface, to allow a fuller range of systems to work with the ioctl interface.  The sys_ioctl linkage is now used.  The ioctl interface is now properly unregistered if a failure occurs during ioctl initialization.  This prevents a possible panic situation.

Minor Changes 
•	Version bump.
•	Performance enhancements were made.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.



Major Changes For Version 02.05.10  (9/29/2003)

Driver General Changes

Functionality
•	The driver now checks NVRAM data and performs Level 1 Domain Validation only, if requested.  This limitation can be set on a per-device basis via the LSI Configuration Utility.
Defect fixes
•	The IOC Page 4 read is now done after the SCSI Port Settings and the SCSI Device Page Headers are obtained.
•	The return code from pci_map_sg is checked and a FAILED status is returned if the return code indicates that a failure occurred, as Scatter/Gather entries are being obtained.
•	If IOCStatus of MPI_IOCSTATUS_STATUS_RESIDUAL_MISMATCH is received, an error status is returned to the SCSI layer.  This status is received when the Fibre Channel firmware detects a CRC error during a data transfer.
•	If the SCSI layer request an abort or bus reset for an IO that is not currently running, an error status is returned and the scsi_done call is not performed.  This prevents problems when the IO has completed before the abort or bus reset is received.
•	In a mixed device configuration (Ultra 320 and Non-Ultra 320 devices are present on an HBA channel), code was fixed to prevent negotiating for QAS on all Ultra 320 devices on that channel.  This keeps the Ultra 320 devices from dominating the SCSI bus, preventing Non-Ultra 320 IO’s from executing.
•	The SenseBufferLength field is properly set when an IOCTL IO is processed.  This allows sense data to be obtained and returned to the application if a Check Condition occurs on the IO.

Minor Changes 
•	Version bump.
•	Performance enhancements were made.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.
 
Major Changes From Version 02.05.07  (6/30/2003)

Driver General Changes

Functionality
•	Added the following sequence to allow the ID of a SAF-TE device to be stored in IOC Page 4. Step 1): Gather full INQ data; 2) If 56 bytes are available, and the INQ data indicates SCSI Processor, check for SAF-TE device; 3) If #2 indicates SAF-TE device, add this ID to IOC Page 4; 4) If #2 has insufficient INQ data, check for SCSI Processor, if true make this the SAF-TE device ID stored in IOC Page 4; 5) #4 is only true if command line option SAF-TE:1 is in effect.
•	In conjunction with the above, if kernel 2.5 or 2.6 is in effect, the first INQ will always be 36 bytes. If the kernel determines it’s okay, then the driver may ask for additional INQ up to 256 bytes and do so immediately after the initial INQ. This data may be parsed to determine if the device at that ID is a SAF-TE device that should have its ID stored in IOC Page 4.

Defect fixes
•	None.

Minor Changes 
•	Version bump.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.
 
Major Changes From Version 02.05.06  (6/16/2003)

Driver General Changes

Functionality
•	Check SCSI Port Page 2 DV bits to either disable DV or limit DV to Inquiry only checks. This is per OEM request and is in the Rev D MPI Addendum. This is a modification to section 4.10.2.5, “SCSI-SPI Port Pages”. Additional bits are defined for the PortFlags field of the SCSI-SPI Port Page 2 configuration page. Bits 5 and 6 of the PortFlags field were previously reserved, but now control domain validation.

Bit 6 Bit 5	Domain Validation (DV) Control
  0      0	Host driver will perform Basic and Enhanced DV to devices on this port.
  0      1	Host driver will only perform Basic DV to devices on this port.
  1      0	Reserved
  1      1	Host driver will not perform DV to devices on this port. Speed negotiations to a device should be based upon the stored values in the corresponding DeviceSettings field.

Defect fixes
•	None.

Minor Changes 
•	Version bump.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.
 
Major Changes From Version 02.05.05  (5/12/2003)

Driver General Changes

Functionality
•	None. 

Defect fixes
•	Zero out unused CDB field on SCSI IO commands.

Minor Changes 
•	Version bump.
•	Changed mailto addresses.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.
 
Major Changes From Version 02.05.03  (4/14/2003)

Driver General Changes

Functionality
•	Old EH enabled for all 2.4 and 2.2 kernels.
•	Changes to the error handling functions (TMHandler, intra-driver callback functions). These changes were implemented for stability with the New EH but the code will be executed regardless of the OS error handling scheme. 

Defect fixes
•	Altered DV routine to honor NVRAM settings.  AMD64 (x86_64) support required a tweak. The change resulted in a few cases where the driver would negotiate faster than what was specified by the NVRAM. (Minor).
•	The setting and clearing of use flags in the mptctl driver was altered to close a small hole that would leave the driver in a state that future IOCTL requests that required an interrupt would be rejected.  Unloading/reloading the driver would clear the condition. (Minor). 

Minor Changes 
•	Version bump.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.
 
Major Changes From Version 02.05.00  (3/17/2003)

Driver General Changes

Functionality
•	Added x86_64 support.
•	Controller Q depth increased to 127.
•	Base driver: Increased timeouts on waits for FW to ACK a handshake request. On IA64 platforms during driver unload, driver resets channel A, performs a downloadboot, then resets channel B.  Channel B did not respond in allowed time window resulting in printing of a warning message (harmless). 
•	Base driver: Reworked the initialization code to handle a greater set of cases where one channel of a dual-channel part fails to initialize.  Leaves controller inactive if initialization fails.
•	SCSI driver: Reworked the initialization routine to handle multiple ports. Changes should be transparent in the single-port case.
•	2.5 Kernel Changes (Affects 2.5 SCSI, lan drivers only):  Added new OS entry points and removed obsolete code.

Defect fixes
•	Fixed backwards compatibility on IOCINFO that failed due to an unexpected pad with IA64 platforms.
•	Base driver: downloadboot int returns mapped to u32, resulted in suppression of a warning message on failure.  (MINOR)

Minor Changes 
•	Added code to dump the device Queue depth.
•	Added “rev0” definitions to IOCTL structures that have changed.
•	2.5 Kernel Changes: Affected code layout – SCSI driver and LAN header files are Kernel-Tree specific.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.
 
Major Changes From Version 02.04.00  (1/15/2003)

Driver General Changes

Functionality
•	None.

Defect fixes
•	A performance related issue was discovered based on the HW configuration.  Particular configurations could result in a queue depth of 7, instead of the desired 31.

Minor Changes 
•	Version bump.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.
 
Major Changes From Version 02.03.01  (12/18/2002)

Driver General Changes

Functionality
•	None.

Defect fixes
•	None.

Minor Changes 
•	Version bump.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.
 
Major Changes From Version 02.03.00  (11/18/2002)

Driver General Changes

Functionality
•	Driver will reload IOC Page 3 if a diagnostic reset occurs or if a physical disk is not listed in the cached page.
•	Registration, driver load and unload changes (requested by kernel.org).
•	Proc file system handled changed (requested)
•	Performance changes: queue depth; inlining some functions; New Error Handling Code is enabled for the 2.4.18 and later kernels (previously only enabled for 2.5 kernels);  will read IOC Page 1 and reset the Coalescing Timeout to 0x10 if necessary.
•	1030_1035 Support.
•	Rev C 1030 support (MOST).

Defect fixes
•	None.

Minor Changes 
•	Removed obsolete IOCTLs.
•	Minor changes for 2.5 as requested by kernel.org.

Flash Utility General Changes
Functionality
•	None.
Defect fixes
•	 None.
Minor Changes 
•	None.
 
Major Changes From Version 02.02.03  (11/01/2002)

Driver General Changes

Functionality
•	None.

Defect fixes
•	None.

Minor Changes 
•	Version bump from 2.02.03 to 2.03.00.

Flash Utility General Changes

Functionality
•	None.

Defect fixes
•	 None.

Minor Changes 
•	None.
 
Major Changes From Version 02.02.02  (10/18/2002)

Driver General Changes

Functionality

Defect fixes
•	Disable interrupts prior to deleting IOC from linked list
•	Register vendor specific IOCTLs with sparc midlayer interface.

Minor Changes 
•	Release no longer calls kickstart
•	Add write of 0xFF prior to entering diagnostic mode
•	Added check in SCSIIO IOCTL for validity of Target ID
•	Return NULL if Serial Number 0
•	Set defaults to –1 instead of 0
•	Return –ENODEV if user supplies incorrect SCSI host number (instead of returning 0).

Flash Utility General Changes

Functionality
•	None.

Defect fixes
•	 None.

Minor Changes 
•	None.



 
Major Changes From Version 02.02.01.06  (10/03/2002)

Driver General Changes

Functionality
•	mptscsih.c:
•	Added defines for MAX_SECTORS and (user configurable) MAX_SGE
•	Reworked allocation of Chain buffers to be based on can_queue value and max number sge / command.
•	Stopped caching sense data in MPT_SCSI_HOST structure.
•	2.5 Kernel compatibility changes
•	Enable highmem_io for 2.5 kernel tree and for 2.4 kernels where CONFIG_HIGHIO is defined (skip bound buffers)
•	IOCTL counter additions (reset counters)
•	mptctl.c:  Custom IOCTL work.
•	mptlan.[ch]: 2.5 kernel compatibility changes
•	mptbase.h:
•	Added counters for soft resets, hard resets and timeouts.
•	Added max_sge and num_chain to MPT_SCSI_HOST structure. 
•	mptbase.c
•	Will reload_fw if detect a loginfo of 0x1101.
•	Added SCSI log info fields.  
•	Added Msg Unit Reset prior to Diagnostic Reset for SCSI parts.
•	linux_compat.h: 
•	Added 2.5 Kernel compatibility changes.
•	Defined MPT_INIT_WORK to INIT_WORK or to internal macro.
•	Defined mpt_work_struct to work_struct or to tq_struct.
•	lsi/ updated to the 1.02.09.00 header set
•	Config.in:  Added capability set the max number of sge / sgl in the config utility. Default is 40. Config.help (separate)

Defect fixes
•	mptbase.c:
•	Fixed comments on MOST fix for 929X
•	mptscsih.c:
•	Allow QAS if RAID OR if disk capable of QAS
•	Check bits 0 and 1 of Byte56 for IU and QAS support
•	Disk FW Workaround: Issue untagged Request Sense if DV and wide and init det error occurs. (WNW)
•	If Diag Reset occurs, neg async/narrow to devices where DV has not completed.
•	QAS check skips current ID
•	mptctl.c:  Altered debug statements.

Minor Changes 
•	mptscsih.c:
•	Added debug statements

Flash Utility General Changes

Functionality
•	None.

Defect fixes
•	 None.

Minor Changes 
•	None.


 
Major Changes From Version 02.02.01  (9/06/2002)

Driver General Changes

Functionality
•	lsi/ updated to the 1.02.09.00 header set
•	Config.in:  Added capability set the max number of sge / sgl in the config utility. Default is 40.
•	mptbase.c: 
•	Will reload_fw if SCSI and detect a loginfo of 0x1101. Added SCSI log info fields.
•	Added write of 0xFF during diag reset
•	Will check cached ptr value instead of relying on facts data for downloadboot algorithm.
•	mptbase.h: 
•	Added max_sge and num_chain to MPT_SCSI_HOST structure
•	Added define for Inq with data length > 56
•	MPT_MAX_ADAPTERS increased to 18 from 16.
•	mptscsih.c: 
•	Stopped caching sense data in MPT_SCSI_HOST structure.
•	Reworked allocation of Chain buffers to be based on can_queue value and max number sge / command
•	Setting the scsi host field unique_id to the iocnumber
•	Modified the SCSI Error Report. Shortened. Writes message only if an error occurred on a read or a write
•	Added capability to write max_sectors for 2.4.7 and later kernels (performance).
•	DV routine will issue an untagged Request Sense if first full speed Inquiry is tagged, wide bus, IOCStatus of GOOD, but SCSI State of AUTOSENSE_FAILED. (Disk FW workaround).
•	doDv returns an int instead of a void
•	Removes tracker for untagged devices. If device untagged and FW is too old, DV will not be executed. Otherwise, relies on the FW returning a status of BUSY. Will try again later.
•	bios_param changed prototype in 2.5.28 kernel.
•	mptscsih.h: Add define for MAX_SECTORS and MAX_SGE
•	linux_compat.h: Modified mptscsih_save(restore)_flags. These functions are called by the _detect routine. For 2.5, invoke	 the driver lock instead of save_flags/cli() etc

Defect fixes
•	mptctl.c: Fixed define for vendor specific IOCTLs
•	mptbase.c: Added MOST fix for 919X and 929X (HW)
•	mptbase.c: Added a MessageUnitReset if MakeIocReady is called for any parallel SCSI adapter (FW)

Minor Changes 
•	Altered logging. SCSI Error report generated only if failure occurs on a read or write command.

Flash Utility General Changes

Functionality
•	None.

Defect fixes
•	 None.

Minor Changes 
•	None.

Build Procedure Changes
Functionality
•	Added Red Hat 8.0 driver disk support
•	This release contains no Red Hat 7.1 or 7.0 support OR any 64-bit support.
•	RPMs have been modified to reduce most of the information messages displayed to the user.
•	Red Hat i686 RPM includes Red Hat 8.0 support.

 
Major Changes From Version 02.02.00  (8/23/2002)

Driver General Changes

Functionality
•	None.

Defect fixes
•	Bug Fix: memory leak in mptctl.c
•	Bug Fix: Incorrect mask in ANSI Version of inquiry data (2 bits instead of 3 bits)

Minor Changes 
•	Altered logging.

Flash Utility General Changes

Functionality
•	None.

Defect fixes
•	 None.

Minor Changes 
•	None.

 



1.	Known issues
None.


Disclaimer:

LSI Logic Corporation and/or its respective suppliers make no representations about the suitability of the information contained in these documents and related graphics. All such documents and related graphics are provided “AS IS” without warranty of any kind.  LSI Logic Corporation and/or its respective suppliers hereby disclaim all warranties and conditions with regard to this information, including all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement. In no event shall LSI Logic Corporation and/or its respective suppliers be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out of or in connection with the use or performance of information contained in these documents and related graphics. Some states do not allow the exclusion or limitation of liability for consequential damages so the foregoing limitation may not apply.   

