Linux MPT SCSI OS Driver Release Notes
Driver Version: mptlinux-3.02.77
6/14/2006

Compatibility:
	53C1020, 53C1030, 53C1035 (Scsi Mode)
	FC909, FC919, FC929
	FC919X, FC929X, FC929XL, FC939X, FC949X, FC949ES
	SAS 1064, 1066, 1068
	SAS 1064E, 1066E, 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 dont 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.


	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 drivers 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)	
		U1 (2.6.9-11.EL) 	 (normal, BOOT, hugemem, smp)		
		U2 (2.6.9-22.EL) 	 (normal, BOOT, hugemem, smp)		
		U3 (2.6.9-34.EL) 	 (normal, BOOT, hugemem, smp)


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

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



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 its 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:  6/05/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 ids 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
	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:
A Task Management Target Reset, to clear all outstanding commands in the Firmware.
A scsi_remove_device call.
A scsi_device_put call.

	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
	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 OEMs 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
	A Firmware downloadboot is done when either channel of the onboard 1030 is reset.  This is necessary in order for the onboard 1030 to become operational.


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
	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.
	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 doesnt 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 customers 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.  Its 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 HBAs dont 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 1s 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 RPMs (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 Firmwares) to 300 seconds.  

Defect fixes
	Issue: CSMI IOCTL get_raid_config  mixing sata and sas hot spares assigned to raid volumes shouldnt 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 fixs 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 paths 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 resyned.
	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 doesnt 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 Shirrons 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.  Its recommended to not issue passthrus 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 fixs in the application and driver.  Driver hang when compiled -static.  Application would say download succeeded, when it didnt.  Added diag reset after fw download to insure updated fw revision displayed in another CSMI call.  
	CSMI IOCTLS: Task management application fixs 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 Passthrus
	Added iocstate SySFS attribute.
	Host Buffer Support Fixs: 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 passthrus:  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 IOs 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 IOs 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 IOs 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 doesnt 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 doesnt 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 ioctls., 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 types 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 IOs 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.



