Linux MPT SCSI OS Driver Release Notes
mptlinux-3.02.83.20
1/23/2007

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

Special Notes For This Build:
•	No special notes available at this time


 
Current Errata

•	SLES9, and all Service Packs prior to SP2 - Driver Update Disk installs don’t work when installing from CDROM attached to SAS controller. Work around is to install the OS using built-in drivers, then upgrade to newer driver using the RPM. This work around only applies to SP2, as this was the first time SAS support shipped on the distro. In addition, this issue no longer is a problem for SP3, as SP3 distro ships with split drivers, and there are no more work arounds for migrating from monolithic to split drivers, which is what broke the CDROM installation support

•	The isense.ko driver
o	This driver has been removed. To enable the printing of sense data that is available in the kernel do the following:
sysctl –w dev.scsi.logging_level=0x1000

•	Red Hat RHEL 4 – Driver Update Disk
o	When doing a Driver Update Disk Installation, at the first screen, enter:
linux dd updates
This replaces workaround in previous versions of the driver when running the post_install.scr.  The ‘updates’ signifies an anaconda update disk. This script handles copying mptctl.ko and mptlan.ko to the hard disk.

•	RHEL4 Update 3 (only) - When doing an install using a Driver Update Disk, the customer will need to follow up the install by installing our Driver Update RPM
o	With Update 3, we provided split driver modules (mptspi, mptsas, mptfc).  Six months ago Red Hat requested we add a new dummy driver who's purpose is to auto-load the split drivers. This dummy driver is named the same as an existing driver module called mptscsih. This new dummy driver has broken DUD's from working properly. The problem occurs when the installer expects the dummy driver, however it doesn't exist on the floppy; e.g - we never introduced the dummy driver concept to our internal driver stream. To correct this, the object file on the DUD was renamed from mptscsih.ko to mptscsi.ko.  This fixes the problem, however may introduce confusion to the end customer. To prevent future confusion, we ask customers install the driver update RPM after the installation and reboot. 
o	Red Hat is working to fix their issue, but it is not expected until Updape 5.

•	Driver Update RPM 
o	When upgrading from an older to newer version of the driver, first uninstall the older RPM doing:
rpm –e mptlinux-<version>-<os>

Then install the new rpm doing:
rpm –ivh mptlinux-<version>-<release>-<os>.<arch>.rpm

The rpm –Uvh option was fixed in the 3.02.56 driver’s version.  This rpm option will work if oldest version driver on the system is no older than the 3.02.56 driver.

Driver Release Package Contents

Source tarball
Source tarball is named as:
mptlinux-<version>-src.tar.gz
Full driver source suitable for inclusion with any publicly available kernels.  The flash utility is included in the utils/ subdirectory. 

RPM package
RPM images are named as:
mptlinux-<version>-<release>-<os>.<arch>.rpm
where:
	<version>	=	version tag for this rpm
	<release>	=	release tag for this rpm
	<os>		=	{rhel4, sles9, sles9sp1, sles9sp2, sles9sp3, nld9}
	<arch>	=	ia64 - Itanium Processor
	  		x86_64 - Opteron Processor, w/ x86_64 install
i686 - i686 or later processor (Red Hat)
	  		i586 - x86 installations (SuSE)

The kernels supported are listed in the Readme_rpms.txt included in the rpms.
 
SuSE:


i686
	SLES 9
		Gold (2.6.5-7.97)	(kernel-default, kernel-smp,kernel-bigsmp)
		NLD9 (2.6.5-7.111)	(kernel-default, kernel-smp,kernel-bigsmp)
		SP1 (2.6.5-7.139)	(kernel-default, kernel-smp,kernel-bigsmp)	
		SP2 (2.6.5-7.191)	(kernel-default, kernel-smp,kernel-bigsmp)	
		SP3 (2.6.5-7.244)	(kernel-default, kernel-smp,kernel-bigsmp)	

x86_64	
	SLES9
		Gold (2.6.5-7.97)	(kernel-default, kernel-smp) 		
		SP1 (2.6.5-7.139)	(kernel-default, kernel-smp)		
		SP2 (2.6.5-7.191)	(kernel-default, kernel-smp)			
		SP3 (2.6.5-7.244)	(kernel-default, kernel-smp)			

ia64
	SLES9
		Gold (2.6.5-7.97)	(kernel-default, kernel-64k-pagesize, kernel-sn2)   
		SP1 (2.6.5-7.139)	(kernel-default, kernel-64k-pagesize, kernel-sn2)	   			SP2 (2.6.5-7.191)	(kernel-default, kernel-64k-pagesize, kernel-sn2)	   
		SP3 (2.6.5-7.244)	(kernel-default, kernel-64k-pagesize, kernel-sn2)	   


RedHat:


i686
	RHEL4
		Gold (2.6.9-5.EL) 	 (normal, BOOT, hugemem, smp)	DUD
		U1 (2.6.9-11.EL) 	 (normal, BOOT, hugemem, smp)		
		U2 (2.6.9-22.EL) 	 (normal, BOOT, hugemem, smp)	DUD	
		U3 (2.6.9-34.EL) 	 (normal, BOOT, hugemem, smp)	DUD
		U4 (2.6.9-42.EL) 	 (normal, BOOT, hugemem, smp)	DUD

x86_64	

	RHEL4
		Gold (2.6.9-5.EL) 	(normal, smp)				DUD
		U1 (2.6.9-11.EL) 	(normal, smp)				
		U2 (2.6.9-22.EL) 	(normal, smp)				DUD
U3 (2.6.9-34.EL) 	(normal, smp, largesmp)		DUD		
U4 (2.6.9-42.EL) 	(normal, smp, largesmp)		DUD		

ia64	

	RHEL4
		Gold (2.6.9-5.EL) 	(normal)				DUD
		U1 (2.6.9-11.EL) 	(normal)				
		U2 (2.6.9-22.EL) 	(normal)				DUD
		U3 (2.6.9-34.EL) 	(normal, largesmp)			DUD
		U4 (2.6.9-42.EL) 	(normal, largesmp)			DUD

ppc64	
	RHEL4
U3 (2.6.9-34.EL) 	(normal)				DUD		
U4 (2.6.9-42.EL) 	(normal, smp, largesmp)		DUD		

Major Changes For Version 3.02.83.20-1
Release Date:  1/23/2007

General Changes
Functionality
•	RHEL4 Update 3 has been added to the build procedure for the ppc64.
•	DUD installs with RHEL 4 on a ppc64 system do not update the /lib/modules files correctly.  After installation completes and the reboot has completed, install the driver via the rpm facility to get the /lib/modules files updated with the current driver.
•	Support for SLES 9 on the ppc64 is not available at this time.
Defect fixes
•	The ppc64 has been added to the list of supported machine types.
•	When a Reply Frame is received and MPT_DEBUG_REPLY is turned on, the Function, IOCStatus, the contents of the Reply Frame and the contents of the Request Frame, including Chain Buffers,  are printed.
•	Manufacturing Page 0 is obtained for all board types, not just SAS, during IOC_BRINGUP.
•	Added argument reqBytes back in routine mpt_send_handshake_request so Target Driver can utilize this routine during a Target Assist operation.
•	Added csmisas_get_raid_element and csmisas_set_raid_operation support.
•	For all HBA types (SAS, FC and SPI), the sg_tablesize returned to the scsi mid-layer is returned as was calculated during initialization, for consistent operation.
•	For SAS IO’s which have an IOCStatus of MPI_IOCSTATUS_SCSI_IO_TERMINATED, the IO result is set to DID_SOFT_ERROR rather than DID_RESET, unless there is also a LogInfo of DID_BUS_BUSY which causes a result of DID_BUS_BUSY (no change from previous driver).  The DID_SOFT_ERROR results in the IO being retried.
•	If an IO request is received for a LUN greater than what the device supports, the IO will be completed with a DID_BAD_TARGET and the return value is changed from FAILED to 0.  This prevents the scsi mid-layer host_busy and device_busy values for the adapter’s host structure to be decremented only once instead of twice, as was the case if FAILED is returned.
•	Memory allocation in csmisas.c was changed from kmalloc to get_free_pages where more that 128 KB of memory may be requested.  This allows the IOCTL to proceed normally rather than failing due to a memory allocation failure.  This was noticed in the ssp_passthru routine that was being used by an application to flash disk drive FW that was about 750 KB.

Major Changes For Version 3.02.83.12-5
Release Date:  1/11/2007

General Changes
Functionality
•	Due to a change in the ftp site location where the build data is maintained, some of the DUD files were not present with the -4 version.  This has been corrected with the -5 version.


Major Changes For Version 3.02.83.12-4
Release Date:  1/4/2007

General Changes
Functionality
•	TheDKMS files are now available with the -4 release.

Defect fixes
•	None.


Major Changes For Version 3.02.83.12-3
Release Date:  12/1/2006

General Changes
Functionality
•	Red Hat 4.0 with Update 4 ppc64 rpm and DUD packages are now available with the -3 release.
•	SuSE 9 with SP 3 ppc64 rpm and DUD packages are now available with the -3 release.

Defect fixes
•	None.

Major Changes For Version 3.02.83.12
Release Date:  11/16/2006

General Changes
Functionality
•	None.

Defect fixes
•	Issue:  System hang at bootup after installing csmi agents.
Defect fixes
•	Issue:  System hang at bootup after installing csmi agents.
Reported by: Test
To Reproduce: Install csmi agent.
Description of Change: Fixed a panic in csmisas_fill_location_data_raid() due to NULL pointer.

Major Changes For Version 3.02.83.11
Release Date:  11/15/2006

General Changes
Functionality
•	Change ioc->DevicesPerBus max value based on port_facts->PortSCSIID, instead of ioc->MaxDevices.    This is to insure proper device scan at driver load time.  The MaxDevice fields means max number of targets the firmare will enumerate, but with persistant ids, its does not reflect the maxium number of target_ids that firmare could assign.   The firmware reserves some target_ids for persistent_ids, but it will not exceed PortSCSIID, thus this required change.

Defect fixes

•	Issue: SSP_PASSTHRU doesn’t display info on resyn IM volume
Reported by: Test
To Reproduce: Create an IM volume, remove a drive and resinsert. While IM volme is resyncing, issue SSP_PASSTHRU, and observe data being returned for all drives.
Description of Change: Incorrect implementation for semaphores that were added to control access to sas_device_info_list.  This resulted in memory corruption which would over write the ioc->num_ports parameter to zero. This resulting in ssp_passthru failing due to a sanity check on bPhyIndentifier; a parameter passed in from user space.


•	Issue: SSP_PASSTHRU doesn’t display info for drives that are members of inactive volumes.  GET_RAID_CONFIG not displaying info for inactive volumes. 
Reported by: Test
To Reproduce: Create an Inactive volume, and observe data returned for both SSP_PASSTHRU and GET_RAID_CONFIG.
Description of Change: Adding support for inactive volumes. This involved adding devices found in inactive volume into the sas_device_info_list at driver load time, and when driver received MPI_EVENT_IR2_RC_FOREIGN_CFG_DETECTED event.  A separate inactive_list was implemented to maintain PHY_DISK info for inactive volumes (which is not provided in ioc_page_3), required inside mptscsih_is_phys_disk and csmisas_is_phys_disk.




Major Changes For Version 3.02.83.10
Release Date:  11/11/2006

General Changes
Functionality
•	None

Defect fixes

•	Issue: CSMI GET_RAID_CONFIG Ioctl shows RAID volume status as “Degraded” when actually the drives in the volume are rebuilding
Reported by: Customer
To Reproduce: Create a 2-drive SAS IM volume. Remove one of the SAS drives and replace with a new unconfigured SAS drive. Issue GET_RAID_CONFIG Ioctl and note that “Raid status” shows as “Degraded”
Description of Change: Updated check for volume status using VolumeStatus.Flags field instead of VolumeStatus.State

•	Issue: Both SSP_PASSTHROUGH and GET_LOCATION CSMI Ioctls does not show information of new drives hotswap inserted in a RAID volume
Reported by: Customer
To Reproduce: Create a 2-drive IM volume using drives SAS1 and SAS2. Remove SAS2 drive and insert a new drive SAS3 in same location. SAS1 and SAS3 drives will start rebuilding. Issue SSP_PASSTHROUGH and GET_LOCATION and note that they do not show information for SAS3 drive. Insert new unconfigured drive SAS4 in a new location and note that both Ioctl do not show information for SAS4 drive too
Description of Change: 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.   

•	Issue: CSMI GET_RAID_CONFIG Ioctl shows same SAS Address for a replaced drive and a pulled drive from a raid set
Reported by: Customer
To Reproduce: Create a 2-drive IM volume using drives SAS1 and SAS2. Remove SAS2 drive and insert a new drive SAS3 in same location. Issue GET_RAID_CONFIG Ioctl and note that SAS Address of inserted SAS3 drive is same as that of pulled SAS2 drive
Description of Change: 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.   



Major Changes For Version 3.02.83.09
Release Date:  11/07/2006

General Changes
Functionality
•	None

Defect fixes

•	Issue: Deleting a hot spare drive does not return the drive back to OS
To Reproduce: Create an IM volume and then create a hot spare drive using CFGGEN. Note that /proc/scsi/scsi does not have the hot spare drive listed. Now delete the hot spare drive using CFGGEN and note that the drive is not returned to OS (/proc/scsi/scsi does not list the drive)
Description of Change:  When the hot spare is deleted, scsi mid-layer sends an inquiry to the new device, FW responds with no device found. The solution is to set ev->isRaid=0 for PHYSDISK_DELETE event before mptsas_hotplug_work thread is spun. This sends a TUR and REPORT_LUNS to the device before an inquiry command from scsi mid-layer is sent down to FW


Major Changes For Version 3.02.83.07
Release Date:  11/1/2006

General Changes
Functionality
•	Update 4 has been added to the builds.  Update 1 has been removed from the DUDs in order to include Update 4.

Defect fixes

•	Issue: When a Raid Volume fails or becomes optimal, the proper operations are not done to remove or add the volume from the OS.
Reported by: Development.
To Reproduce: Create a IS volume and pull a drive.  Execute “cat /proc/scsi/scsi” and notice the volume is still present.  Reboot the system or unload and load the sas modules.  Notice the volume is not present in /proc/scsi/scsi.  Add the drive.  Notice the volume is still not present in /proc/scsi/scsi.
Description of Change:  When the driver receives an Integrated Raid Event with ReasonCode of VOLUME_STATUS_CHANGED and the state is STATUS_STATE_FAILED, a hot plug of DEL_DEVICE  is scheduled and executed; if the state is STATUS_STATE_OPTIMAL, a hot plug of ADD_DEVICE is scheduled and executed.  The /proc/scsi/scsi file will show the correct devices and the devices  are removed or added as appropriate to the OS.
•	Issue: CSMI IOCTL results are inconsistent between the 2.4 and 2.6 drivers.
Reported by: Customer.
To Reproduce: The same csmitest application is executed on both OS versions.  Some of the output differs.
Description of Change:  Common csmisas files are used in both drivers.  Code to handle the different interfaces (mainly timer and completions) are separated by “ifdef DRVR_206” or “ifdef DRVR_302”, with corresponding declarations added to the  Makefiles.

Major Changes For Version 3.02.83.05
Release Date:  10/20/2006

General Changes
Functionality
•	All Debugging printk’s in csmisas.c module are moved under MPT_DEBUG_CSMISAS.  Also added more enhanced debugging for ssp_passthru.
•	CSMI GET_LOCATION – add hot spare support when the target id is for a logical volume.
•	CSMI SSP_PASSTHRU – move code to read in payload buffer for a WRITE to the top of function, where the entire buffer could be properly read in from user to kernel space.
•	CSMI GET_RAID_CONFIG – fix volume size for greater than 2TB, but in raid component calculation and hot spare sanity checks
•	Ioctl status flags cleanup, in both mptctl and csmi.
•	Task aborts were returning FAILED to scsi mid-layer, even though the task management request succeeded.  Thus was fixed in the hd->tm_iocstatus check in mptscsih_IssueTaskMgmt function, adding TASK_TERMINATED and IOC_TERMINATED.

Defect fixes

•	Issue: csmitool – GET_RAID_CONFIG doesn’t show fault tolerant volume with rebuilding status when it’s rebuilding.
Reported by: Customer.
To Reproduce: Create a IM volume, and pull a drive, and reinsert. Use csmitool to display raid_config, and notice the RaidStatus.  
Description of Change:  The driver wasn’t looking at the correct member in the volume_page0 structure to determine if the array was rebuilding, or if the array was inactive.


•	Issue: csmitool – SSP_PASSTHRU was sending passthru to incorrect target after a logical volume is created. 
Reported by: Development.
To Reproduce: Create a volume, and send INQUIRY via SSP_PASSTHRU. Notice that one of the sas_address’s will return data to the logical volume instead of the hidden physical disk.
Description of Change:  The change is to look at the phy_info->attached.phys_disk_num to determine if the device is a hidden raid component, and for RAID_PASSTHRU, send the correct target phys disk number for the target_id. 
















Major Changes For Version 3.02.83.03
Release Date:  10/4/2006

General Changes

Functionality
•	None

Defect fixes
•	Issue: Incorrect Inquiry data returned as a result of a ssp passthrough Inquiries.
Reported by: Customer
To Reproduce:  Have a OEM System Health agent running on a system with a PCI-E SAS host adapter with a disk drive attached.  Run a script that repeatedly issues ssp passthrough Inquiries to the SAS disk drive.  Note that some of the Inquiries only return 4 bytes of data and the data is incorrect.
Description of Change: Changed code top clear driver IOCTL status flags before each IOCTL request is issued, instead of after.  Some IOCTL requests were not clearing those flags so that subsequent request completions were examining stale data, causing the command to fail with no status data.  The issue only occurred with PCI-E SAS HBA’s since they return an IOCStatus of 0x07 (Invalid Field) whereas PCI-X SAS HBAs return IOCStatus of 0x02 (Busy) for Toolbox commands with ISTWI_READ_WRITE_TOOL that are issued by the System Health agent.

Issue: The 32 bit DataLength field in IOCTL SCSI requests was being filled with cpu_to_le16 (16 bits) rather than cpu_to_le32 (32 bits), causing a possible problem.
Reported by: Developer
Description of Change: Changed code to cpu_to_le32 for those requests.

Issue: TotalUserBlocks fields were being computed incorrectly in routine get_raid_config.
Reported by: Developer
Descritpion of Change: 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.

Major Changes For Version 3.02.83.01
Release Date:  9/12/2006

General Changes

Functionality
•	None

Defect fixes
•	Issue: SAS Address of pulled drive that is part of an IR volume is all zero’s in the data returned from CSMI GET_RAID_CONFIG Ioctl call
Reported by: Customer
To Reproduce: Create an IM/IS volume and pull out one of the drives in the volume. Using csmitest tool issue CC_CSMI_SAS_GET_RAID_CONFIG call to display Drives information and note the SAS Address field of the drive that was pulled is all zero’s
Description of Change: Changed code to NOT update the SAS address list when a drive that is part of a volume is pulled/inserted

•	Issue: Hot spare drive (of same drive type as that of drive in volume) is listed as member of an IS  (RAID 0) volume when CSMI GET_RAID_CONFIG Ioctl call is issued
Reported by: Customer
To Reproduce: Create a 2 drive IM volume with a hot spare and a 2 drive IS volume all of the same drive type. Using csmitest tool, issue CC_CSMI_SAS_GET_RAID_CONFIG call to display Drives information and note that the hot spare drive is also listed as member of the IS volume
Description of Change: Added a check for IS volume type and ignored while trying to add a hot spare drive as a member of the volume


Major Changes For Version 3.02.83
Release Date:  8/04/2006

General Changes

Functionality
•	None

Defect fixes
•	Issue: SAS Address of hot spare drive is all zero’s in the data returned from CSMI GET_RAID_CONFIG Ioctl call
Reported by: Customer
To Reproduce: Create an IM volume with a hot spare drive and using csmitest tool issue CC_CSMI_SAS_GET_RAID_CONFIG call to display Drives information and note the SAS Address field for the hot spare drive
Description of Change: Moved memset of buffer before filling in SAS Address for a hot spare drive

•	Issue: uChangeCount field in CSMI Ioctl is being incremented for all RAID actions and phys disk status changes for non-SAS controllers too
Reported by: Developer
To Reproduce: Attach a 1030 SCSI controller and create and delete a volume. Run the csmitest tool to display fields in GET_RAID_INFO Ioctl and notice that Change Count value is incremented which should reflect the change count events only for SAS controllers
Description of Change: Moved incrementing csmi_change_count from mptbase to mptsas so it is confined to changes to SAS events

•	Issue: Some of the fields returned by GET_RAID_CONFIG CSMI Ioctl call are not filled-in or returns default values for hot spare drives
Reported by: Developer
To Reproduce: Create an IM volume with a hot spare drive and using csmitest tool issue CC_CSMI_SAS_GET_RAID_CONFIG call to display Drives information and note that usBlockSize, uDriveIndex are returned zero and bDriveType is returned UNKNOWN
Description of Change: Filled in usBlockSize, uDriveIndex, and bDriveType fields for hot spare drives in GET_RAID_CONFIG Ioctl


Major Changes For Version 3.02.82
Release Date:  7/25/2006

General Changes

Functionality
•	Implemented following CSMI 0.90 Phase I and II changes and additional features:
-	CSMI_SAS_GET_CNTLR_CONFIG – updated uControllerFlags
-	CSMI_SAS_GET_RAID_INFO – updated uMaxDriverPerSet and implemented new fields
-	CSMI_SAS_GET_RAID_CONFIG – updated bDriveCount, bStatus, bInformation, union.Drives and implemented new fields
-	CSMI_SAS_GET_RAID_FEATURES – new IOCTL
-	CSMI_SAS_GET_RAID_CONTROL – new IOCTL
•	Updated CSMI_SAS_GET_CONNECTOR_INFO Ioctl by filling in data from Manufacturing Page 7

Defect fixes
•	Issue: mptsas and mptctl drivers not automatically loaded when SAS1078 controller is installed on either RHEL or SLES systems
Reported by: Developer
To Reproduce: Install a SAS1078 card on RHEL or SLES and upgrade the driver using DUD or RPM installation. On loading the OS, the mptsas and mptctl modules are not loaded automatically
Description of Change: The Device Id for SAS1078 has been updated from 0x60 to 0x62 in fusion.mptctl, update.kernel and suse-install.sh scripts that is packaged in RPM and DUD images for both RHEL and SLES, as well as in DKMS package


Major Changes For Version 3.02.81
Release Date:  7/20/2006

General Changes

Functionality
•	None

Defect fixes
•	Issue: A kernel panic occurs during Domain Validation to physical drives in a Raid volume on drives attached to a 1030.
Reported by: Customer.
To Reproduce: Run version 3.02.80.  Have drives configured as a Raid volume and attached to a 1030.  Domain Validataion occurs when driver module mptspi is loaded and a panic occurs in routine mptscsih_doDv.
Description of Change: A NULL pointer was being used when checking if the drive is part of a Raid volume.  A check for a NULL pointer has been inserted before it is used.

An additional change has been made in mptscsi_qas_check to send the proper negotiation parameters to Raid Volume drives rather than Async, Narrow if QAS support is not allowed on the bus (mixed QAS and non-QAS devices are present or they have been throttled back to Ultra 160 or slower speeds via the Configuration Utility).

Major Changes For Version 3.02.80
Release Date:  7/7/2006

General Changes

Functionality
•	None

Defect fixes
•	Issue: A kernel panic occurs with SLES 9 when the driver modules are unloaded.
Reported by: Customer.
To Reproduce: Run version 3.02.79 with SLES 9.  Have devices attached to a 1030 where the boot device is not attached to any 1030 HBAs.  Issue “rmmod mptspi”.
Description of Change: The call to routine scsi_host_remove was replaced with a loop through all the devices attached to the IOC, calling routine scsi_remove_device.  This removes the device entries in /proc/scsi/scsi, sg_map and lsscsi for that IOC.  A Bugzilla has been generated with SuSE but no response has been received at this time.


Major Changes For Version 3.02.79
Release Date:  6/21/2006

General Changes

Functionality
•	During device discovery, in routine mptsas_scan_target, a loop has been added to send a Test Unit Ready command to the device every second until the device responds with a good status.  A command line parameter, mpt_cmd_retry_count, is available to control the number of loop iterations, with the default set to 60.  Once a good status is received or the loop is exhausted, a Report Luns command is sent (this may be done up to 10 times with a 1 second interval until a good status is received).  This is done to ensure certain Raid controllers are on-line and have their devices available.

Defect fixes
•	Issue: If MaxDevices reported by a PortFacts request is not a multiple of 256, the NumberOf Buses is off by one, due to rounding down of the calculation.  For example, if MaxDevices is reported to be 500, the NumberOfBuses would be 1 rather than the expected 2.
Reported by: Development
To Reproduce: Run version 3.02.77 with FW that reports MaxDevices that is not a multiple of 256 (FC FW does that).  With MPT_DEBUG_INIT compiled in, the NumberOf Buses will be one short of the expected.
Description of Change: Code was changed to round up the NumberOfBuses calculation, allowing for an additional bus allowing for the extra number of devices that is greater than the multiple of 256.  In the example above, the NumberOfBuses is 2.

•	Issue: Routine mptscsih_writeFCPortPage3 always writes with bus=1.
Noticed by: Development
To Reproduce: Run 3.02.77 with a FC HBA and FC devices attached.
Description of Change: An additional parameter, bus, was added to the routine and the routine calls.  This values is used to write the proper bus value.

•	Issue: A panic occurs if a Target only mpt HBA is in the system and lsiutil is executed for IOCInfo.
Reported by: Development
To Reproduce: Run version 3.02.77 with a Target only mpt HBA and execute GetIOCInfo.
Description of Change: Code was added in mptctl to ensure the Target_List pointer is not NULL, as it is with a Target only HBA.


Major Changes For Version 3.02.77
Release Date:  6/14/2006

General Changes

Functionality
•	Added check for IOC Status from Task Management Reply Message and return FAILURE to SCSI mid-layer on all TasK Management call back functions. A FAILURE is returned when IOC Status returned by Firmware is not MPI_IOCSTATUS_SUCCESS

Defect fixes
•	Issue: Panic occurs when creating an IME Raid Volume immediately after deleting all Raid Volumes using the cfggen utility.
Reported by: Test Team
To Reproduce: Establish an IME Raid Volume with drives attached to a SAS HBA.  Reboot the system.  Have the cfggen utility installed and execute: 
cfggen <HBA Number> delete noprompt
cfggen <HBA Number> create ime max <disk drive numbers of prior volume> noprompt
Panic occurs but nothing is displayed on console screen; two lights are blinking.
Description of Change: Code was changed to prevent use of invalid pointer in interrupt routine.

•	Issue: NumberOfBuses calculation was incorrect and was not reported to the scsi mid-layer.
Reported by: Developer.
To Reproduce: Using a SAS HBA with FW that supports 1024 devices, enable MPT_DEBUG_INIT, compile and load the driver modules.  Examine the dmesg output when mptsas is loaded.  The NumberOfBuses is set to 1 and no buses other than bus 0 is scanned in mptsas_slave_alloc.
Description of Change: Code was changed to correctly calculate the NumberOfBuses from the PortFacts MaxDevices and the DevicesPerBus.  Code was changed to set the scsi mid-layer max_channels to NumberOfBuses.  This causes logical buses 0, 1, 2 and 3 to be scanned for devices if the MaxDevices is 1024, as is the case for this FW.

•	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)


Major Changes For Version 3.02.74
Release Date:  5/31/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.
•	Revoked all CSMI 0.89 changes back to CSMI 0.83. CSMI 0.89 is not backward compatible to previous versions

Defect fixes
•	None

Major Changes For Version 3.02.73
Release Date:  5/22/2006

General Changes

Functionality
•	Implemented following CSMI 0.89 Phase II changes and additional features:
-	CSMI_SAS_GET_CNTLR_CONFIG – updated uControllerFlags
-	CSMI_SAS_GET_RAID_INFO – updated uMaxDriverPerSet and implemented new fields
-	CSMI_SAS_GET_RAID_CONFIG – updated bDriveCount, bStatus, bInformation, union.Drives and implemented new fields
-	CSMI_SAS_GET_RAID_FEATURES – new IOCTL
-	CSMI_SAS_GET_RAID_CONTROL – new IOCTL

Defect fixes
•	Issue: Hang condition during SAS cable pull case
Reported by: Customer
To Reproduce: Run IO to mounted partition
Description of Change: Target Reset in slave_destroy entry was causing the hang. To fix, we moved the target reset to hotplug_work threads.  Also inhibit IO to end device once device is known to be removed.

•	Issue: Port down retry situation is not returing DID_BUS_BUSY during SAS cable pull case
Reported by: Customer
To Reproduce: Pull cable.
Description of Change: The msb of the ioc status was being over written with zero during the masking of the register.  

•	Issue: Luns greater than zero ignored during cable push case
Reported by: Customer
To Reproduce: Cable push to end device having more than one lun
Description of Change:  The isRaid field in the mptsas_hotplug_event structure was not being initialized, thus garbage was there, and the incorrect path was taken in the hotplug_work thread which resulted in REPORT_LUNS not being called.


Major Changes For Version 3.02.71
Release Date:  4/19/2006

General Changes

Functionality
•	Added Hot Plug support for Multi-LUN devices
•	Added Tape TLR support
•	Added RHEL 4 U3 support – kernel 2.6.9-34

Defect fixes
•	None



		
Major Changes For Version 3.02.69
Release Date:  4/11/2006

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 3.02.68
Release Date:  3/30/2006

General Changes

Functionality
•	A command-line parameter, mpt_qas_disable, has been added to the mptspi module.  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.
•	Routine mptctl_open has been added and the routine has been added to the mptctl_fops structure.  The routine simply returns a zero value.

Defect fixes
•	Issue: Panic when power is turned off to a SAS device during IOs.
Reported by: Test Team.
To Reproduce: Start an IO stream to a SAS tape drive; power down the tape drive.
Description of Change:  When a SAS event indicates a device is not responding (ReasonCode=MPI_EVENT_SAS_DEV_STAT_RC_NOT_RESPONDING), routine mptsas_hotplug_work is scheduled to perform the hotplug device removal.  That routine was modified to:
	Issue a Task Management Target Reset
	Execute scsi_remove_device
	Execute scsi_device_put
The Task Management Target Reset causes the SAS Firmware to return all outstanding commands that are present at the Firmware to be returned with an IOCStatus of IOC_TERMINATED, causing the driver to return those commands to the scsi mid-layer with an error status.  Prior to this version, the Task Management Target Reset was being done after the device had been removed at the scsi mid-layer by scsi_remove_device, causing a panic when outstanding commands are returned to the scsi mid-layer.

•	Routine mptscsi_remove has been modified to eliminate a panic when module mptspi is uloaded in a SLES 9 system.  The scsi_remove_host routine call was replaced, for each attached target, with:
1) A Task Management Target Reset, to clear all outstanding commands in the Firmware.
2) A scsi_remove_device call.
3) A scsi_device_put call.
•	Issue: Domain Validation may not be performed when a device is added.
Reported by: Developer.
To Reproduce: Power on a device and access it.  Observe Domain Validation IOs.
Description of Change:  Code that set a flag indicating valid Inquiry data has been received in routine mptscsi_slave_alloc has been removed.  This allows Domain Validation to be performed when the added device is accessed.

Major Changes For Version 3.02.66
Release Date:  3/15/2006

General Changes

Functionality
•	SAS Hot Plug support has been added.

Defect fixes
•	Issue: Hang condition when Ultra 80 drive is used in an OEM’s enclosure.
Reported by: Customer
To Reproduce: Bring system up with that drive and enclosure.
Description of Change:  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.


Major Changes For Version 3.02.65
Release Date:  3/15/2006

General Changes

Functionality
•	Support for SAS Enclosures with SMART drives for a particular OEM has been added.

Defect fixes
•	None.


Major Changes For Version 3.02.64
Release Date:  3/15/2006

General Changes

Functionality
•	SAS 1078 support has been added.

Defect fixes
•	None.

Major Changes For Version 3.02.63.01
Release Date:  2/24/2006

General Changes

Functionality
•	None

Defect fixes
•	Issue: Offensive comments, code.
Reported by: IBM.
To Reproduce: View the driver source code and application files.
Description of Change:  The code base has been sanitized, removing as many references to particular OEM customers as is practical.  Also an offensive panic in one of the mptlan.c routines has been replaced with a more definitive print statement and a return with error indication.
•	Issue: Onboard 1030 Channel B reset fails.
Reported by: Developer.
To Reproduce: Use lsiutil to reset Channel B of Onboard 1030.
Description of Changes: 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.
•	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 03.02.63
Release Date:  12/21/2005

General Changes

Functionality
•	Added SuSE SP3 Support – 2.6.9-7.244
•	Added SuSE NLD9 Support – 2.6.9-7.111 (only i568)
•	Added debug messages for new firmware asynchronous events: MPI_EVENT_IR_RESYNC_UPDATE, MPI_EVENT_IR2, MPI_EVENT_SAS_DISCOVERY, MPI_EVENT_LOG_ENTRY_ADDED
•	Service Script `fusion.mptcl` used for loading the mptctl driver, has been modified so the ioctl driver is always first to be loaded, and last to be unloaded.
•	Source RPM has a couple suggested changes from a customer.

Defect fixes
•	SuSE Driver Update Disks – added support for USB Floppy and USB CDROM – handles issues with drive letter assignments so the USB devices obtain drive letter assignments after mpt fusion. 
•	Fix in dkms kit. A change in the dkms.conf to fix problem where not all the scsi llds were included in the ramdisk image, and rebooting resulted in a panic.

•	Issue: SPI/53C1030 panic 
Reported by: Testing.
To Reproduce: Install using Driver Update Disk, results in driver not loading.
Description of Change:  The fix is to write ‘MPI_HIM_DIM’ to the Host Interrupt Mask register, when enabling interrupts.  Apparently in previous release of driver, writing a ‘0’ to the HIM, was incorrect, as the doorbell interrupts were enabled.  The ISR doesn’t properly handing this type of interrupt, thus we need to mask this.

•	Issue:  SPI/53C1030 panic and freezes.
Reported by: Customer.
To Reproduce: Install SuSE SLES9 SP2 onto RAID1 volume.  Install customer’s application.  Pull drive, and reinsert.  Mirror then is resyncing.  In time, the system will freeze.
Description of Change:  The ioctl driver stack is using wait_event_interruptible_timeout(), for waiting on firmware request to complete.   It appears that sometimes we are getting control back from this function before the application actually completed this command, thus resulting in the returning of stale data back to the application.  It’s believed the application is using signals for inter thread communication, thus resulting in the problem.  The fix is to using wait_event_timeout(), which will not be interrupted by outside signals.

•	Issue:  SPI/53C1030 driver hang when unloading the driver for a flash less controller.
Reported by: Testing.
To Reproduce: Unload the driver when the controller is an embedded controller with no flash.
Description of Change:  When unloading the driver, the downloading of firmware to flash has changed from download to the first ioc, to downloading to the second ioc. Apparently the driver hang is due to SYNCHRONIZE_CACHE being sent to devices on the 2nd ioc after the first ioc had downloaded the firmware.



Major Changes For Version 03.02.62
Release Date:  11/28/2005

General Changes

Functionality
•	Change in slave_destroy – target reset issued when devices are being removed is changed so only devices detected from the  slave_configure entry point will have a target reset issued.  
•	DV poor performance – another fix (look at 3.02.61 release notes). The synchronization between alt_ioc bringup and domain validation is moved around mptscsih_doDv; because config pages which issue negotiation could fail due to alt_ioc bringup.

Defect fixes
•	Issue: SAS PCI Express HBA’s don’t work. 
Reported by: Customer.
To Reproduce: Loading the driver with an appropriate SAS card having PCI Express, would result in error recovery.
Description of Change: Root caused to lost interrupts.  The fix is to write  ‘0’ to the Host Interrupt Mask register, when enabling interrupts.  Apparently writing ‘1’s to some of the reserved bits was causing problems with lost interrupts.



Major Changes For Version 03.02.61
Release Date:  11/16/2005

General Changes

Functionality
•	Change bus_type = SCSI, to SPI
•	Added "module=THIS_MODULE" in mptfc/mptsas/mptspi - scsi_host_template, so the driver will not unload when a device handle is opened
•	Proper handling of return error codes in probe functions for mptfc/mptsas/mptspi
•	flush the hot plug work queue when the mptsas driver unloads
•	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

Defect fixes
•	Issue: panic - when calling ioctl HP_GETHOSTINFO
Reported by: Customer.
To Reproduce: This ioctl calls toolbox f/w call to gather the
backplane info for HP.  The interrupt handler was accessing a NULL pointer, thus resulted in panic.
Description of Change: A rewrite of the code to use the existing wait_event_interruptible_timeout() mechanism that is there in mptctl.  The old toolbox code is deleted.

•	Issue: poor performance on Ultra 320 controllers, 1030, 1020A, 1020
Reported by: People from the linux community.
To Reproduce: Domain Validation is failing to negotiate better than asyn-narrow speeds.  Domain Validation is done thru work queue spawned in thread.  The problem occurs when the thread on the first channel is still running when the second channel is being initialized. When the 2nd channel is brought up, the Domain Validation on the other channel is killed.
Description of Change: Add synchronization between domain validation thread and initialization of controller. This is done by using spin_lock called initializing_hba_lock.


Major Changes For Version 03.02.60
Release Date:  10/26/2005

General Changes

Functionality
•	Red Hat RHEL4 Update 2 –support added in RPMs and Driver Update Disks.
•	DKMS – Combined RedHat and SuSE into single RPM.
•	Added service script that will auto load the mptctl driver at boot time. This driver is a character driver which handles the IOCTLs. This is added to RPM’s (binary and DKMS), and SuSE Driver Update Disks. This was not added to RHEL4 series Driver Update disks.
•	lsiutil version 1.40 update.
•	mpt_get_msg_frame() – this function is used for obtaining a message frame.  With this release, the failure of this call will be using the dfailprintk mask debug option.   This will improve debugging this particular failure case. Its enabled by uncomment `EXTRA_CFLAGS += -DMPT_DEBUG_FAIL` in the driver makefile, and re-compiling the driver. 
•	Increased port enable timeout for SAS(both IR and IT Firmware’s) to 300 seconds.  

Defect fixes
•	Issue: CSMI IOCTL get_raid_config – mixing sata and sas hot spares assigned to raid volumes shouldn’t be allowed.
Reported by: Customer.
To Reproduce: Create a RAID volume.  A SATA hot spare should be assigned only to SATA volumes, and SAS hot spares should be assigned only to SAS  volumes.
Description of Change: The device type is checked when assigning hot spares to active raid volumes.  Also capacity check was added to insure the hot spares are large enough to fit into its assigned raid volume.

•	Issue: Adding/Removing SAS devices could result in a panic.
Reported by: Internal Test Labs.
To Reproduce: Hot adding/removing many devices(at least 4), or turning power on/off many times, could result in panic.  This can be reproduced as well by creating/deleting raid volumes.
Description of Change: Adding a semaphore around the hot plug thread.  It seems this thread was being re-entered causing a device link list to become corrupted.

•	Issue: Panic unloading driver – FC949.
Reported by: Customer.
To Reproduce: The panic occurs during unloading the driver.  When the first channel has been unloaded, the 2nd channel is trying to be freed, but wait, a host reset occurs, then there is panic. This driver fix’s the panic, not the host reset.  
Description of Change:  There is a pointer in the per host adapter data area that points to the other channel per host adapter data area. This pointer is called ioc->alt_ioc. Its used so one channel can see the other channel data configuration.  The panic occurs because this pointer was not reset back to zero when the first channel was freed during driver unload time.  When the 2nd channel begins to be unloaded, a host reset occurred for some reason. IN the host reset code, it was accessing the ioc->alt_ioc pointer which now is invalid pointer since the other channel has already unloaded.   The fix is to set those pointers to zero when a respective channel has unloaded. 

•	Issue: CSMI IOCTL get_location – memory leak
Reported by: Developer
To Reproduce: N/A
Description of Change: Several exit path’s in this ioctl were not properly cleaning up the freeing of allocated memory.



Major Changes For Version 03.02.59
Release Date:  09/29/2005

General Changes

Functionality
•	CSMI Ioctls – Timeout values are honored by the application timeout value, which is sent by the ioctl header.  Previously the driver was hard coding a 10 second timeout.
•	Add command line option “mpt_sas_hot_plug_enable”.  This will allow the end user to disable hot swap support for when “SCSI devices are not responding”.   Hot swap support for “SCSI devices being added”, is not affected by this change.
•	The power management suspend function – the definition of the input parameter called “state” has changed in the 2.6.12 kernel; this driver adds support for this change so the driver can compile in the newer kernels.
•	  CSMI Phase III support – modifications are added in both driver and 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.  

Defect fixes
•	Issue: CSMI IOCTL get_raid_config – driver was not recognizing smart errors for hot spares.
Reported by: Customer.
To Reproduce: Create a RAID volume, attach a hot spare with known smart error.  Then use the hptest application provided in driver source to verify that the hotspare drive status has been set to CSMI_SAS_DRIVE_STATUS_DEGRADED, instead of CSMI_SAS_DRIVE_STATUS_OK.
Description of Change: Check SAS Phys disk Page 0 for Smart Errors, then for Hot Spare return “degraded” drive state. 

•	Issue: Panic in mptlan driver during any type of error recovery; as long as there are no Fibre Channels controllers present in configuration.
Reported by: Developer test.
To Reproduce:  Using “sg_reset –h /dev/sg0” will replicate this issue as long as mptlan.ko is loaded, ( there are no Fibre Channel controllers present).
Description of Change: When there are no Fibre Channel Controllers present in the configuration, and when mptlan.ko is loaded, the net_device instance will not be created.  If the error handling entry point is called, the driver was not checking whether the net_device pointer was a NULL pointer.


Major Changes For Version 03.02.58
Release Date:  09/08/2005

Driver General Changes

Functionality
•	MPI Headers v1.05.12 upgrade 

Defect fixes
•	IR Performance fix – The performance problem is due to a fix made in the 3.02.16 driver, where a target reset was added in mptscsih_slave_destroy() function.  This target reset would be killing domain validation on hidden physical disks in a raid volume, resulting in some disks to negotiate at 2MB/s ( async narrow speeds). The fix is to only prevent the target reset for SPI, and disk hidden in a raid volume. The previous fix made in 3.02.16 is not backed out for FC and SAS, as well as SPI for disks not members of raid volumes.

Major Changes For Version 03.02.57
Release Date:  08/26/2005

Driver General Changes

Functionality
•	Verbose kernel messages for Integrated RAID events.

Defect fixes
•	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 03.02.56
Release Date:  08/18/2005

Driver General Changes

Functionality
•	MPI Headers v1.05.11 upgrade
•	The function mpt_interrupt is split into two separate functions, for cleaner readable code. This requested by patch on linux-scsi@ mailing list

Defect fixes
•	Fix ‘oops’ when loading mptctl.ko, with initiator mode disabled.  This fix in SCSI LLD probe routines, when in initiator mode, the routine was returning a failure code = –ENODEV.  When the probe routine returned a failure code, the pcidev->driver pointer was not initialized, thus causing a ‘oops’ later when mptctl.ko registered itself to mptbase.ko
•	CSMI – Get Raid Config – Fix for setting Phys Disk to REBUILDING state when the volume was being resyn’ed.
•	Several build environment RPM fixes.  The rpm was not properly handling rpm –Uvh upgrade, which is when upgrading from an older to newer version driver.  Also fix problem with driver loading order in ramdisk image, so drive mapping is conserved when other scsi controllers are listed in the initrd configuration files.








Major Changes For Version 03.02.55
Release Date:  08/05/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 03.02.54
Release Date:  07/22/2005

Driver General Changes

Functionality
•	lsitutil v1.38 – update
•	Added pci id support for FC949ES
•	CSMI support compiled in for RHEL4
•	Added SLES9 SP2 support. Details follows.
•	SLES9 SP2 Support: msleep was changed to msleep_compat, and msleep_interruptible changed to msleep_interruptible_compat.  The msleep API was a backported to SLES9 SP2, thus we had to change this to compat from linux-compat.h.  Also both msleep and msleep_interruptible implementation was updated to 2.6.13 kernel implementation.
•	Some backports from kernel.org - from 2.6.11, 2.6.12, and 2.6.13 kernels – Details follows:
•	Backports: eh thread are now called with interrupts enabled
•	Backports: mptscsih_shutdown - change parameters being passed - from device to pci_dev
•	Backports:  ioctls - interface changes - x86_64 compatibility for 32 apps 
•	Backports: change_queue_depth API - added new sysfs attribute
•	Backports: mptscsih_suspend - change to parameters being passed - from u32 to pm_message_t
•	Kconfig - added `default m` so the new modules {mptspi, mptfc, mptsas} are compiled as modules by default 

Defect fixes
•	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. 
•	Remove scsi_device_online from linux-compat.h, as well as from mptscsih_flush_running_cmds(). This check if device is online is no longer needed as eh_threads in the driver are more robust, and task managment request will be completed in the contents of the eh handlers.  Before we were using timers in the driver, and it was possible that scsi-mid layer would offline devices before the host reset.





Major Changes For Version 03.02.53
Release Date:  07/07/2005

Driver General Changes

Functionality
•	MPI Headers v1.5.10 update
•	lsitutil v1.37 - update
•	mptutil v00.00.06 - update
•	CSMI initial implementation - CC_CSMI_SAS_GET_LOCATION 
•	CSMI initial implementation - CC_CSMI_SAS_PHY_CONTROL  
•	CSMI initial implementation - CC_CSMI_SAS_GET_CONNECTOR_INFO 

Defect fixes

•	Added Steve Shirron’s SCSI_RESIDUAL_MISMATCH data corruption fix.
•	Changed MPT_IOCTL_INTERFACE_SAS from (2) to (3).  This is used in the ioctl path, and returned in GET_IOC_INFO.
•	CSMI – CC_CSMI_SAS_SSP_PASSTHRU and CC_CSMI_SAS_STP_PASSTHRU – comment out quiece io – due to bug in firmware, the driver would timeout waiting for a reply message frame.  It’s recommended to not issue passthru’s that write data to the media, as this could result in data corruption.
•	mpt_reply_depth – This command line option default value is increased from 64 to 128.  This prevents certain cases in which the device driver becomes depleted of message frames.









Major Changes For Version 03.02.52
Release Date:  06/22/2005

Driver General Changes

Functionality
•	Added support for displaying a string which translates the meaning of SAS loginfo dword returned from the firmware into something more meaningful to the enduser.
•	Added bounds check in ISR that validates the cb_idx value in the message context of the reply frame.  The cb_idx is an index to which driver issued the original request to firmware.
•	Added bus reset after port enable. This only for SCSI.  SCSI port page 2 , PortFlags is read to determine whether we can issue bus reset or not.   This was added for cases when there is no BIOS, and its possible for initiator and target to not be at the negotiation parameters when the driver loads, which could result in command timeout at driver load time.

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.
•	SuSE driver update disks - were broken for SCSI, and FC parts older than FC949/FC939.  This release will solve those issues where there are older SCSI/FC parts, and when there are combinations of SCSI/FC/SAS in same system.  This release also will only load the drivers(mptspi/mptsas/mptfc) that are present at time of installation, e.g. the dud will auto detect the chips.
•	SuSE binary rpms – added support for auto detecting the chips present at time of installing rpm, and only the respective split driver (mptspi/mptsas/mptfc) for those chips detected will be loaded.

 





Major Changes For Version 03.02.51
Release Date:  06/01/2005

Driver General Changes

Functionality
•	Added dumping Response Code for task management request on reply.
•	For valid FC Response Info, added to the debug print string are the host, target, and lun ids.   This give better understanding of where this info came from.


Defect fixes

•	Fix Loading driver with SAS and SCSI at the same time.  The fix was mptsas.c was registering MPTSPI_DRIVER when it called mpt_register, when it should off have been MPTSAS_DRIVER.



















Major Changes For Version 03.02.50
Release Date:  05/25/2005

Driver General Changes

Functionality
•	Introducing the split drivers format.  There are three new drivers for each bus type; e.g. mptsas.ko, mptspi.ko, and mptfc.ko.
•	Deliverables binary rpms will contain only kernels for SuSE service packs and RedHat updates.  Use the source rpm if your wanting to build drivers for interim errata kernels.  Support for SUSE Professional 9.1 and 9.2 has been removed.


Defect fixes

•	Source RPMs – fix for compiling drivers for all kernels installed on the system. Before the source rpm was only compiling drivers for the booting kernel.
•	Redhat DUD contains anaconda update for solving the issue of mptctl and mptlan not being copied from driver update disk to hard disk.  This will solution will be used instead of running post install script.  When using DUD, you will need to pass:

“linux dd updates” at command line.












Major Changes For Version 03.02.19
Release Date:  05/09/2005

Driver General Changes

Functionality
•	RAID Hot Plug Events – When using online application which creates and deletes RAID Volumes, the driver will add and remove the scsi devices on the fly.  In addition, the driver will respond to VOLUME STATUS changes, such as volume changing from Online to failed state, and vice versa.   Also - the entire hot plug logic was streamlined into one worker thread, whereas before it was two separate threads handling adding and removing devices separately.
•	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.
•	Only allow SYNCHRONIZE CACHE to be issued to disk peripherals. Before it was working for any device that supported qtags.
•	Inhibit dumping FCP Response Info whenever MPI_SCSI_STATE_INFO_VALID was set by adding an additional check in the reply message for ResponseInfo being valid.
•	In Kconfig - clarifying the help message for FUSION_MAX_SGE.

Defect fixes
•	pci_disable_io_access - this function changed so only bit 0 was being set to 0, before it was setting the upper 8 bits of the word to zero.  This function is used for fixing an errata in 1064/1068 for disabling port io access, called from FWDLB.


Major Changes For Version 03.02.18
Release Date:  04/21/2005

Driver General Changes

Functionality
•	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.
•	Support for system with multiple pci domains, ia64 platforms.  mpt_detect_bound_ports was modified so cards with same device:slot:func on different domains are recognized.
•	Increased FUSION_MAX_SGE in Kconfig from 40 to 128.
•	Support for MPI_EVENT_PERSISTENT_TABLE_FULL – when the driver receives this event, it will clear the persistent mappings for devices not present.

Defect fixes
•	Some target devices can respond with Data Underrun on top of a Busy status. The MPT driver was returning SOFT_ERROR for the Data Underrun condition, instead of reporting the BUSY ststus. The driver has been changed to ignore the Data Underrun in this situation, and only report the BUSY status. 
•	When a target device responds with BUSY status, the MPT driver was sending DID_OK to the SCSI mid layer, which caused the IO to be retried indefinitely between the mid layer and the driver.  By changing the driver return status to DID_BUS_BUSY, the target BUSY status can now flow through the mid layer to an upper layer Failover driver, which will manage the I/O timeout. 





Major Changes For Version 03.02.17
Release Date:  03/31/2005

Driver General Changes

Functionality
•	LUN Persistency has been added. The Linux driver has the ability to perform a hard reset (kick start) of the chip, which causes the chip to loose the existing PUN mappings. After the chip has been restarted, it re-establishes communication with the devices on the link. If the device configuration has changed (devices added or removed) from when the system initially booted, the new mappings can be different, resulting in data corruption. LUN Persistency insures that mappings will not change across hard resets.
•	MPI headers 1.5.9
•	Host Page Buffer Persistent support.
•	Added SRPMS – source RPMs, instead of binary RPMs.
•	Prevent printing ioc info for lan and stm drivers within the interrupt handler.

Defect fixes
•	None.





Major Changes For Version 03.02.16
Release Date:  03/17/2005

Driver General Changes

Functionality
•	Added command line option mpt_pq_filter.

Defect fixes
•	Added Target Reset in mptscsih_slave_destroy – do this prior to flushing outstanding scsi commands and message frames.  Before this fix, we were issuing target reset after scsi_remove_device, which could result in message frames being freed twice, and resulting in a panic from mptscsih_io_done.
•	Added check in mptscsih_io_done, to check for 0xdeadbeef signature, which indicates that a message frame we are about to free was already previously freed.
•	Removed calling mpt_free_msg_frame in some places in mptctl.c, when it should not of been called, as it is already handled in the context of mptctl_reply.
•	Removed calling mpt_free_msg_frame() from mptscsih_abort.
•	Properly return from mptscsih_abort when there is an error returned from mptscsih_TMHandler.
•	Added more verbose reporting of scsi command during calling of error handling entry points.



Major Changes For Version 03.02.14
Release Date:  03/04/2005

Driver General Changes

Functionality
•	Upgraded to 1.5.8 MPI headers.
•	Added lsiutil version 1.32., and use –I../ in the makefile so headers are referenced in above folder.
•	Added new version update for MPTUTIL 
•	Added FC Transport Attributes backward compatibility to SLES9
•	EBOS support
•	Error handling – For data UNDERUN and scsi status returns SAM_STAT_BUSY, change is to return SAM_STAT_BUSY instead DID_SOFT_ERROR

Defect fixes
•	Fix hot plug issue: Fixed the bug of sas device status change events not being processed for one of two controllers. The driver was using global work task, it was fixed by putting the work task member in the per device extension.
•	Fix hot plug issue: removing and adding drives, would result in “error 1” string displayed from mid layer. This was because driver was not calling scsi_device_put, which decrements device count; this occurred when the device was being removed from mid-layer.
•	CSMI IOCLTS: Firmware download fix’s in the application and driver.  Driver hang when compiled “-static”.  Application would say download succeeded, when it didn’t.  Added diag reset after fw download to insure updated fw revision displayed in another CSMI call.  
•	CSMI IOCTLS: Task management application fix’s for displaying completion data in proper format.
•	CSMI IOCTLS: Set phy info, is not supported, thus application will announce that this call is not supported.



Major Changes For Version 03.02.13
Release Date:  02/22/2005

Driver General Changes

Functionality
•	None

Defect fixes
•	Pulling power to JBOD having more than one SATA drive would cause a PANIC or hang.  There is a fix to correct this problem by maintaining a link list of SAS device change events, and to transverse this link list from the work task queue. This fix also includes code will which complete all SCSI commands that are outstanding for this when device when it is removed.  The TARGET_RESET has been added back in asyn event handling, which was removed in previous driver release.



Major Changes For Version 03.02.12
Release Date:  02/10/2005

Driver General Changes

Functionality
•	Upgraded to 1.5.7 MPI headers.
•	Added new version update for LSIUTIL v1.30
•	Added new version update for MPTUTIL 
•	Added case for MPI_FUNCTION_TOOLBOX in IOCLT path for MPI Passthru’s
•	Added iocstate SySFS attribute.
•	Host Buffer Support Fix’s: added new function mpt_host_page_alloc.

Defect fixes
•	Removed target reset code during handling asynchronous event request for sas device removal.
•	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 03.02.11
Release Date:  01/28/2005

Driver General Changes

Functionality
•	Added target reset support for SCSI bus type.
•	Upgraded to 1.5.6 MPI headers.
•	MSI Support – created a command line option “mpt_msi_enable” for enabling MSI support.  Default is MSI disabled.
•	Removed the watchdog timer code in the ioctl path. The new method will wait for completion of request in the same thread.
•	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.
•	Added enhanced the event reporting code.
•	Added CSMI ioctls framework for get_location, get_connector_info, phy_control.
•	Added v.83 CSMI headers.

Defect fixes
•	Minor fixes in CSMI – get raid configuration.
•	Fix for when an Ultra320 device has a greater ID than a Ultra160 device, the Ultra320 device was negotiated with QAS enabled. 


Major Changes For Version 03.02.10
Release Date:  01/11/2005

Driver General Changes

Functionality
•	None.

Defect fixes
•	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.
•	Removed the watchdog timer code for task management request handling in mptscsih.  This is a request from Kernel.org. The new method will wait for completion of task management request in the same thread.


Major Changes For Version 03.02.09
Release Date:  12/15/2004

Driver General Changes

Functionality
•	None.

Defect fixes
•	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.

Major Changes For Version 03.02.08
Release Date:  12/06/2004

Driver General Changes

Functionality
•	Moved the SAS CSMI IOCTLS to a separate source code called csmisas.c.
•	PortEnable Timeout adjusted for Raid Volumes.
•	Added new MPI Headers version 1.5.3.
•	Replaced ioc_chip with bus_type.
•	Hotswap fix so SAS drives added/removed immediately without having to use rescan script.
•	Changing how command line options are passed, passing the mptscsih string has been removed. Use modinfo to see usage and description of the new parameters.
•	Removed IOCTL mptctl_hba_pciinfo .

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.
•	Removed mptscsih_slave_destroy vdev != NULL check fixed by removing the DEVICE_NOT_THERE calling of same function.


Major Changes For Version 03.02.06
Release Date:  10/25/2004

Driver General Changes

Functionality
•	Update to mpi headers v1.5.2
•	PIO fix errata => disabling IO access
•	mptctl_hba_pciinfo => usage of ioc link list, usage of __user API
•	mptctl_fw_downloadboot => usage of __user API
•	full use of lower endian api in GetSasInfo(mptbase.c), and CSMI Ioctls(mptctl.c)
•	use link list api for ioc->SasDevice
•	add new PCI Device IDs for 1064a,1064e,1066,1066e,1068,1068a,1068e,939x,949x
•	always return residual id from mptscsih_io_done
•	issue task management target reset when SAS drive is added within asyn event handler
•	usage of semicolon (instead of comma or white space) for command line options
•	Kernel.org updates: usage of __iomem and msleep_interruptible

Defect fixes
•	None.

Major Changes For Version 03.02.05
Release Date:  10/08/2004

Driver General Changes

Functionality
•	Added ioctl downloadboot capability via application mptfdu.
•	Added ioctl hba pciinfo.
•	Added MSI Support.
•	Added CSMI Raid Support ioctl’s., Get Raid Config, Get Raid Info.
•	Hot Swap - pulling drive, will automatically remove the per device memory allocation.
•	Added new sysfs attribute queue_depth.
•	Added new sysfs attribute fc_transport: port-id, port-name, node-name, however this code is ifdef via MPTSCSIH_ENABLE_FC_TRANSPORT, and has to be recompiled to be enabled from the Makefile.
•	More List API updates from Kernel.org.
•	Clean ups in the slave_configure and slave_destroy, from Kernel.org.
•	Removed FusionInitCalled code, from Kernel.org.
•	Removed MPTSCSIH_DBG_TIMEOUT code.
•	Added debug print statements.
•	Removed dead code in driver: Multipath, and DumpDriver(MPTDMP_DRIVER).
•	Reset Host Diagnostic Buffer indicators during a Diagnostic Reset sequence.
•	Application mptfdu updates.
•	Application hptest/csmisas bug fix's.
•	Added application mptutil.

Defect fixes
•	None.


Major Changes For Version 03.02.04
Release Date:  09/08/2004

Driver General Changes

Functionality
•	None.

Defect fixes
•	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.
•	Removed MPT_DEBUG_IRQ define from mptbase.c and Makefile, as its not longer used.
•	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.
•	Requests sent by mptlan do not include the NB bits.
•	Routine mptctl_reply was modified to process ioctl completions without any Reply buffer.  Examples of this are SCSI IO’s issued by ioctl routines which complete successfully (Turbo reply).


Major Changes For Version 03.02.03
Release Date:  08/20/2004

Driver General Changes

Functionality
•	None.

Defect fixes
•	Some routines were declared Static per a Kernel.org 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 03.02.01
Release Date:  08/09/2004

Driver General Changes

Functionality
•	SAS Support added, Diag Buffer Support Added.
•	CC_CSMI_SAS_GET_PHY_INFO - Ioctl was not returning proper sas address for attached devices.
•	CC_CSMI_SAS_FIRMWARE_DOWNLOAD - Ioctl minor bug fix, was not successfully downloading image, due to flag not set in msg frame. 
•	CC_CSMI_SAS_GET_SCSI_ADDRESS - Ioctl minor bug fix, was failing to find sas address properly in device link list.
•	CC_CSMI_SAS_TASK_MANAGEMENT - 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.
•	Ioctl application updates, and updated to v79 headers.

Defect fixes

Major Changes For Version 03.01.14.23
Release Date:  08/05/2004

Driver General Changes

Functionality
•	
•	
Defect fixes
•	A fix for the module parameter “mptscsih”; which was not being exported.



Major Changes For Version 03.01.13.23
Release Date:  07/27/2004

Driver General Changes

Functionality
•	
•	
Defect fixes
•	Fix panic for IM config when driver is loading.  This was due to a NULL pointer in mptscsih_initTarget.


Major Changes For Version 03.01.12.23
Release Date:  07/14/2004

Driver General Changes

Functionality
•	The port of the 2.05.22 thru 2.05.23 driver.
•	Patch provided by Christoph Hellwig : remove the isense code.
Defect fixes
•	None



Major Changes For Version 03.01.11.22
Release Date:  07/07/2004

Driver General Changes

Functionality
•	The port of 2.05.17 thru 2.05.22 driver
Defect fixes
•	None

Major Changes For Version 03.01.10
Release Date:  07/02/2004

Driver General Changes

Functionality
•	Patch provided by Masao Fukuchi: mptctl updates for hot plug.
•	Patch provided by Christoph Hellwig: mptlan updates for hot plug; remove CONFIG_LBD ifdefs from fusion mptscsih
Defect fixes
•	None


Major Changes For Version 03.01.09
Release Date:  06/18/2004

Driver General Changes

Functionality
•	Patch provided by Masao Fukuchi: Remove limit on number of support hosts.
•	Patch provided by Christoph Hellwig: kill scsi_to_pci_dma_dir usage, both pci and scsi use the same bits; kill mptscsih_io_direction and always trust the midlayer; kill usage of Scsi_Foo typedefs; use <scsi/*.h> headers; avoid list search in fusion ->proc_info.
•	Patch provided by Jeremy Higdon: Add readX_relaxed .
Defect fixes
•	None




Major Changes For Version 03.01.08
Release Date:  05/26/2004

Driver General Changes

Functionality
•	The port of 2.05.13 thru 2.05.16.01 driver
Defect fixes
•	None

Major Changes For Version 03.01.07
Release Date:  05/24/2004

Driver General Changes

Functionality
•	Patch provided by Christoph Hellwig: clean up backword compatibility with 2.4 kernel and older
Defect fixes
•	None



Major Changes For Version 03.01.06
Release Date:  05/04/2004

Driver General Changes

Functionality
•	Change in mptscsih_io_done. For MPI_IOCSTATUS_SCSI_PROTOCOL_ERROR return DID_SOFT_ERROR.
Defect fixes
•	None



Major Changes For Version 03.01.05
Release Date:  04/22/2004

Driver General Changes

Functionality
•	Added FC909 support back.
Defect fixes
•	None

Major Changes For Version 03.01.04
Release Date:  04/14/2004

Driver General Changes

Functionality
•	Additions to loginfo debug info.
•	Added IOC debug error code info.
•	Dump FCP ResponseInfo.
•	Added element "segmentID" in get_iocinfo IOCTL.
•	
Defect fixes
•	Fix a Oops in mptscsih_flush_running_cmds().



Major Changes For Version 03.01.03
Release Date:  03/23/2004

Driver General Changes

Functionality
•	Request from Jeff Garzik: Replace wrappers for CHIPREG_XXX with defines.
•	Remove support for FC909.
•	Remove PortIo modules parameter.
•	Move procmpt_destroy function before pci_unregister_driver, as the memory allocated for the proc was not being deallocated.
•	Remove mptscshi_reset_timeouts function. The timer was already expired when mod_timer is called.
•	Fix small bug in slave_destroy, which could prevent domain validation on hidden drive in a RAID volume.
Defect fixes
•	Fix fifo memory allocation under 64bit systems.



Major Changes For Version 03.01.02
Release Date:  03/17/2004

Driver General Changes

Functionality
•	Request from Andi Kleen: put warning "Device (0:0:0) reported QUEUE_FULL!" into debug messages.
•	Request from Alexander Stohr: fix warnings from mptscsih_setup and get_setup_token, when driver isn't compiled as module.
•	Request from Randy Dunlap: Remove unnecessary min/max macros and change calls to use kernel.h macros instead.
Defect fixes
•	None



Major Changes For Version 03.01.01
Release Date:  03/17/2004

Driver General Changes

Functionality
•	None.
Defect fixes
•	IM fix in slave_destroy, poor RAID1 performance.

Major Changes For Version 03.01.00
Release Date:  03/05/2004

Driver General Changes

Functionality
•	The port of the 2.05.03 thru 2.05.13 driver.
Defect fixes
•	None



Major Changes For Version 03.00.04
Release Date:  02/24/2004

Driver General Changes

Functionality
•	Kconfig cleanup.
•	Merged LAN driver updates from Kernel.org.
Defect fixes
•	Fix bug with driver loading and no devices attached.

Major Changes For Version 03.00.03
Release Date:  02/12/2004

Driver General Changes

Functionality
•	None.
Defect fixes
•	Fix for discarded symbol in mptscsih.c, as seen in ia64. { mptscsih_exit() }

Major Changes For Version 03.00.02
Release Date:  02/02/2004

Driver General Changes

Functionality
•	Hot plug fix's requested from Christoph Hellwig.
•	mptbase_remove cleanups.
•	mptbase_shutdown - calls the sub drivers entry points.
•	__init, __ exit cleanups
Defect fixes
•	None

Major Changes For Version 03.00.01
Release Date:  01/13/2004

Driver General Changes

Functionality
•	Hot plug updates.
•	Define shutdown entry point to replace old reboot notifier call.
•	mptbase_pci_table clean up.
•	Change naming of MPTSCSIH_DISABLE_DOMAIN_VALIDATION to MPTSCSIH_ENABLE_VALIDATION.
•	CONFIG_PM defined incorrectly.
•	probe/release cleanup
•	replace do_div with sector_div
Defect fixes
•	None




Major Changes For Version 03.00.00
Release Date:  01/06/2004

Driver General Changes

Functionality
•	Added new PCI API support.
•	Added ACPI support.
•	Added CONFIG_LBA, READ16, WRITE16 support.
•	Reduce task management (abort=2sec,reset bus=5sec, timeout=10sec).
Defect fixes
•	Underun fix.
•	Chain buffer free list not being init properly.


Major Changes For Version 02.05.00.06
Release Date:  01/16/2004

Driver General Changes

Functionality
•	None.
Defect fixes
•	IOMMU fix for SUSE.


Major Changes For Version 02.05.00.05
Release Date:  11/12/2003

Driver General Changes

Functionality
•	None.
Defect fixes
•	Error handling fixes, e.g. use of host_lock.


Major Changes For Version 02.05.00.04
Release Date:  11/04/2003

Driver General Changes

Functionality
•	Removed __init from mptscsih_setup.
•	Removed __init from get_setup_token.
•	Changed copyright from 2002 to 2003.
•	Added new mailto, and removed Pam.Delaney.
Defect fixes
•	Added fix for 32bit emulation when unloading mptctl module.



