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 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.


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



