1*4882a593SmuzhiyunRelease Date : Thu. Jun 19, 2014 17:00:00 PST 2014 - 2*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 3*4882a593Smuzhiyun Adam Radford 4*4882a593Smuzhiyun Kashyap Desai 5*4882a593Smuzhiyun Sumit Saxena 6*4882a593Smuzhiyun Uday Lingala 7*4882a593SmuzhiyunCurrent Version : 06.803.02.00-rc1 8*4882a593SmuzhiyunOld Version : 06.803.01.00-rc1 9*4882a593Smuzhiyun 1. Fix reset_mutex leak in megasas_reset_fusion(). 10*4882a593Smuzhiyun 2. Remove unused variables in megasas_instance. 11*4882a593Smuzhiyun 3. Fix LD/VF affiliation parsing. 12*4882a593Smuzhiyun 4. Add missing initial call to megasas_get_ld_vf_affiliation(). 13*4882a593Smuzhiyun 5. Version and Changelog update. 14*4882a593Smuzhiyun------------------------------------------------------------------------------- 15*4882a593SmuzhiyunRelease Date : Mon. Mar 10, 2014 17:00:00 PST 2014 - 16*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 17*4882a593Smuzhiyun Adam Radford 18*4882a593Smuzhiyun Kashyap Desai 19*4882a593Smuzhiyun Sumit Saxena 20*4882a593SmuzhiyunCurrent Version : 06.803.01.00-rc1 21*4882a593SmuzhiyunOld Version : 06.700.06.00-rc1 22*4882a593Smuzhiyun 1. Load correct raid context timeout value for multipathing & clustering. 23*4882a593Smuzhiyun 2. Fix megasas_ioc_init_fusion to use local stack variable. 24*4882a593Smuzhiyun 3. Return leaked MPT frames to MPT command pool. 25*4882a593Smuzhiyun 4. Add Dell PowerEdge VRTX SR-IOV VF device support. 26*4882a593Smuzhiyun 5. Version and Changelog update. 27*4882a593Smuzhiyun------------------------------------------------------------------------------- 28*4882a593SmuzhiyunRelease Date : Sat. Aug 31, 2013 17:00:00 PST 2013 - 29*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 30*4882a593Smuzhiyun Adam Radford 31*4882a593Smuzhiyun Kashyap Desai 32*4882a593Smuzhiyun Sumit Saxena 33*4882a593SmuzhiyunCurrent Version : 06.700.06.00-rc1 34*4882a593SmuzhiyunOld Version : 06.600.18.00-rc1 35*4882a593Smuzhiyun 1. Add High Availability clustering support using shared Logical Disks. 36*4882a593Smuzhiyun 2. Version and Changelog update. 37*4882a593Smuzhiyun------------------------------------------------------------------------------- 38*4882a593SmuzhiyunRelease Date : Wed. May 15, 2013 17:00:00 PST 2013 - 39*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 40*4882a593Smuzhiyun Adam Radford 41*4882a593Smuzhiyun Kashyap Desai 42*4882a593Smuzhiyun Sumit Saxena 43*4882a593SmuzhiyunCurrent Version : 06.600.18.00-rc1 44*4882a593SmuzhiyunOld Version : 06.506.00.00-rc1 45*4882a593Smuzhiyun 1. Return DID_ERROR for scsi io, when controller is in critical h/w error. 46*4882a593Smuzhiyun 2. Fix the interrupt mask for Gen2 controller. 47*4882a593Smuzhiyun 3. Update balance count in driver to be in sync of firmware. 48*4882a593Smuzhiyun 4. Free event detail memory without device ID check. 49*4882a593Smuzhiyun 5. Set IO request timeout value provided by OS timeout for Tape devices. 50*4882a593Smuzhiyun 6. Add support for MegaRAID Fury (device ID-0x005f) 12Gb/s controllers. 51*4882a593Smuzhiyun 7. Add support to display Customer branding details in syslog. 52*4882a593Smuzhiyun 8. Set IoFlags to enable Fast Path for JBODs for Invader/Fury(12 Gb/s) 53*4882a593Smuzhiyun controllers. 54*4882a593Smuzhiyun 9. Add support for Extended MSI-x vectors for Invader and Fury(12Gb/s 55*4882a593Smuzhiyun HBA). 56*4882a593Smuzhiyun 10.Add support for Uneven Span PRL11. 57*4882a593Smuzhiyun 11.Add support to differentiate between iMR and MR Firmware. 58*4882a593Smuzhiyun 12.Version and Changelog update. 59*4882a593Smuzhiyun------------------------------------------------------------------------------- 60*4882a593SmuzhiyunRelease Date : Sat. Feb 9, 2013 17:00:00 PST 2013 - 61*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 62*4882a593Smuzhiyun Adam Radford 63*4882a593SmuzhiyunCurrent Version : 06.506.00.00-rc1 64*4882a593SmuzhiyunOld Version : 06.504.01.00-rc1 65*4882a593Smuzhiyun 1. Add 4k FastPath DIF support. 66*4882a593Smuzhiyun 2. Don't load DevHandle unless FastPath enabled. 67*4882a593Smuzhiyun 3. Version and Changelog update. 68*4882a593Smuzhiyun------------------------------------------------------------------------------- 69*4882a593SmuzhiyunRelease Date : Mon. Oct 1, 2012 17:00:00 PST 2012 - 70*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 71*4882a593Smuzhiyun Adam Radford 72*4882a593SmuzhiyunCurrent Version : 06.504.01.00-rc1 73*4882a593SmuzhiyunOld Version : 00.00.06.18-rc1 74*4882a593Smuzhiyun 1. Removed un-needed completion_lock spinlock calls. 75*4882a593Smuzhiyun 2. Add module param for configurable MSI-X vector count. 76*4882a593Smuzhiyun 3. Load io_request DataLength in bytes. 77*4882a593Smuzhiyun 4. Add array boundary check for SystemPD. 78*4882a593Smuzhiyun 5. Add SystemPD FastPath support. 79*4882a593Smuzhiyun 6. Remove duplicate code. 80*4882a593Smuzhiyun 7. Version, Changelog, Copyright update. 81*4882a593Smuzhiyun------------------------------------------------------------------------------- 82*4882a593SmuzhiyunRelease Date : Tue. Jun 17, 2012 17:00:00 PST 2012 - 83*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 84*4882a593Smuzhiyun Adam Radford/Kashyap Desai 85*4882a593SmuzhiyunCurrent Version : 00.00.06.18-rc1 86*4882a593SmuzhiyunOld Version : 00.00.06.15-rc1 87*4882a593Smuzhiyun 1. Fix Copyright dates. 88*4882a593Smuzhiyun 2. Add throttlequeuedepth module parameter. 89*4882a593Smuzhiyun 3. Add resetwaittime module parameter. 90*4882a593Smuzhiyun 4. Move poll_aen_lock initializer. 91*4882a593Smuzhiyun------------------------------------------------------------------------------- 92*4882a593SmuzhiyunRelease Date : Mon. Mar 19, 2012 17:00:00 PST 2012 - 93*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 94*4882a593Smuzhiyun Adam Radford 95*4882a593SmuzhiyunCurrent Version : 00.00.06.15-rc1 96*4882a593SmuzhiyunOld Version : 00.00.06.14-rc1 97*4882a593Smuzhiyun 1. Optimize HostMSIxVectors setting. 98*4882a593Smuzhiyun 2. Add fpRead/WriteCapable, fpRead/WriteAcrossStripe checks. 99*4882a593Smuzhiyun------------------------------------------------------------------------------- 100*4882a593SmuzhiyunRelease Date : Fri. Jan 6, 2012 17:00:00 PST 2010 - 101*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 102*4882a593Smuzhiyun Adam Radford 103*4882a593SmuzhiyunCurrent Version : 00.00.06.14-rc1 104*4882a593SmuzhiyunOld Version : 00.00.06.12-rc1 105*4882a593Smuzhiyun 1. Fix reglockFlags for degraded raid5/6 for MR 9360/9380. 106*4882a593Smuzhiyun 2. Mask off flags in ioctl path to prevent memory scribble with older 107*4882a593Smuzhiyun MegaCLI versions. 108*4882a593Smuzhiyun 3. Remove poll_mode_io module parameter, sysfs node, and associated code. 109*4882a593Smuzhiyun------------------------------------------------------------------------------- 110*4882a593SmuzhiyunRelease Date : Wed. Oct 5, 2011 17:00:00 PST 2010 - 111*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 112*4882a593Smuzhiyun Adam Radford 113*4882a593SmuzhiyunCurrent Version : 00.00.06.12-rc1 114*4882a593SmuzhiyunOld Version : 00.00.05.40-rc1 115*4882a593Smuzhiyun 1. Continue booting immediately if FW in FAULT at driver load time. 116*4882a593Smuzhiyun 2. Increase default cmds per lun to 256. 117*4882a593Smuzhiyun 3. Fix mismatch in megasas_reset_fusion() mutex lock-unlock. 118*4882a593Smuzhiyun 4. Remove some un-necessary code. 119*4882a593Smuzhiyun 5. Clear state change interrupts for Fusion/Invader. 120*4882a593Smuzhiyun 6. Clear FUSION_IN_RESET before enabling interrupts. 121*4882a593Smuzhiyun 7. Add support for MegaRAID 9360/9380 12GB/s controllers. 122*4882a593Smuzhiyun 8. Add multiple MSI-X vector/multiple reply queue support. 123*4882a593Smuzhiyun 9. Add driver workaround for PERC5/1068 kdump kernel panic. 124*4882a593Smuzhiyun------------------------------------------------------------------------------- 125*4882a593SmuzhiyunRelease Date : Tue. Jul 26, 2011 17:00:00 PST 2010 - 126*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 127*4882a593Smuzhiyun Adam Radford 128*4882a593SmuzhiyunCurrent Version : 00.00.05.40-rc1 129*4882a593SmuzhiyunOld Version : 00.00.05.38-rc1 130*4882a593Smuzhiyun 1. Fix FastPath I/O to work with degraded RAID 1. 131*4882a593Smuzhiyun 2. Add .change_queue_depth support. 132*4882a593Smuzhiyun------------------------------------------------------------------------------- 133*4882a593SmuzhiyunRelease Date : Wed. May 11, 2011 17:00:00 PST 2010 - 134*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 135*4882a593Smuzhiyun Adam Radford 136*4882a593SmuzhiyunCurrent Version : 00.00.05.38-rc1 137*4882a593SmuzhiyunOld Version : 00.00.05.34-rc1 138*4882a593Smuzhiyun 1. Remove MSI-X black list, use MFI_REG_STATE.ready.msiEnable. 139*4882a593Smuzhiyun 2. Remove un-used function megasas_return_cmd_for_smid(). 140*4882a593Smuzhiyun 3. Check MFI_REG_STATE.fault.resetAdapter in megasas_reset_fusion(). 141*4882a593Smuzhiyun 4. Disable interrupts/free_irq() in megasas_shutdown(). 142*4882a593Smuzhiyun 5. Fix bug where AENs could be lost in probe() and resume(). 143*4882a593Smuzhiyun 6. Convert 6,10,12 byte CDB's to 16 byte CDB for large LBA's for FastPath 144*4882a593Smuzhiyun IO. 145*4882a593Smuzhiyun 7. Add 1078 OCR support. 146*4882a593Smuzhiyun------------------------------------------------------------------------------- 147*4882a593SmuzhiyunRelease Date : Thu. Feb 24, 2011 17:00:00 PST 2010 - 148*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 149*4882a593Smuzhiyun Adam Radford 150*4882a593SmuzhiyunCurrent Version : 00.00.05.34-rc1 151*4882a593SmuzhiyunOld Version : 00.00.05.29-rc1 152*4882a593Smuzhiyun 1. Fix some failure gotos from megasas_probe_one(), etc. 153*4882a593Smuzhiyun 2. Add missing check_and_restore_queue_depth() call in 154*4882a593Smuzhiyun complete_cmd_fusion(). 155*4882a593Smuzhiyun 3. Enable MSI-X before calling megasas_init_fw(). 156*4882a593Smuzhiyun 4. Call tasklet_schedule() even if outbound_intr_status == 0 for MFI based 157*4882a593Smuzhiyun boards in MSI-X mode. 158*4882a593Smuzhiyun 5. Fix megasas_probe_one() to clear PCI_MSIX_FLAGS_ENABLE in msi control 159*4882a593Smuzhiyun register in kdump kernel. 160*4882a593Smuzhiyun 6. Fix megasas_get_cmd() to only print "Command pool empty" if 161*4882a593Smuzhiyun megasas_dbg_lvl is set. 162*4882a593Smuzhiyun 7. Fix megasas_build_dcdb_fusion() to not filter by TYPE_DISK. 163*4882a593Smuzhiyun 8. Fix megasas_build_dcdb_fusion() to use io_request->LUN[1] field. 164*4882a593Smuzhiyun 9. Add MR_EVT_CFG_CLEARED to megasas_aen_polling(). 165*4882a593Smuzhiyun 10. Fix tasklet_init() in megasas_init_fw() to use instancet->tasklet. 166*4882a593Smuzhiyun 11. Fix fault state handling in megasas_transition_to_ready(). 167*4882a593Smuzhiyun 12. Fix max_sectors setting for IEEE SGL's. 168*4882a593Smuzhiyun 13. Fix iMR OCR support to work correctly. 169*4882a593Smuzhiyun------------------------------------------------------------------------------- 170*4882a593SmuzhiyunRelease Date : Tues. Dec 14, 2010 17:00:00 PST 2010 - 171*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 172*4882a593Smuzhiyun Adam Radford 173*4882a593SmuzhiyunCurrent Version : 00.00.05.29-rc1 174*4882a593SmuzhiyunOld Version : 00.00.04.31-rc1 175*4882a593Smuzhiyun 1. Rename megaraid_sas.c to megaraid_sas_base.c. 176*4882a593Smuzhiyun 2. Update GPL headers. 177*4882a593Smuzhiyun 3. Add MSI-X support and 'msix_disable' module parameter. 178*4882a593Smuzhiyun 4. Use lowest memory bar (for SR-IOV VF support). 179*4882a593Smuzhiyun 5. Add struct megasas_instance_temlate changes, and change all code to use 180*4882a593Smuzhiyun new instance entries: 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun irqreturn_t (*service_isr )(int irq, void *devp); 183*4882a593Smuzhiyun void (*tasklet)(unsigned long); 184*4882a593Smuzhiyun u32 (*init_adapter)(struct megasas_instance *); 185*4882a593Smuzhiyun u32 (*build_and_issue_cmd) (struct megasas_instance *, 186*4882a593Smuzhiyun struct scsi_cmnd *); 187*4882a593Smuzhiyun void (*issue_dcmd) (struct megasas_instance *instance, 188*4882a593Smuzhiyun struct megasas_cmd *cmd); 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun 6. Add code to support MegaRAID 9265/9285 controllers device id (0x5b). 191*4882a593Smuzhiyun------------------------------------------------------------------------------- 192*4882a593Smuzhiyun1 Release Date : Thur. May 03, 2010 09:12:45 PST 2009 - 193*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 194*4882a593Smuzhiyun Bo Yang 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun2 Current Version : 00.00.04.31-rc1 197*4882a593Smuzhiyun3 Older Version : 00.00.04.17.1-rc1 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun1. Add the Online Controller Reset (OCR) to the Driver. 200*4882a593Smuzhiyun OCR is the new feature for megaraid_sas driver which 201*4882a593Smuzhiyun will allow the fw to do the chip reset which will not 202*4882a593Smuzhiyun affect the OS behavior. 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun To add the OCR support, driver need to do: 205*4882a593Smuzhiyun a). reset the controller chips -- Xscale and Gen2 which 206*4882a593Smuzhiyun will change the function calls and add the reset function 207*4882a593Smuzhiyun related to this two chips. 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun b). during the reset, driver will store the pending cmds 210*4882a593Smuzhiyun which not returned by FW to driver's pending queue. Driver 211*4882a593Smuzhiyun will re-issue those pending cmds again to FW after the OCR 212*4882a593Smuzhiyun finished. 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun c). In driver's timeout routine, driver will report to 215*4882a593Smuzhiyun OS as reset. Also driver's queue routine will block the 216*4882a593Smuzhiyun cmds until the OCR finished. 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun d). in Driver's ISR routine, if driver get the FW state as 219*4882a593Smuzhiyun state change, FW in Failure status and FW support online controller 220*4882a593Smuzhiyun reset (OCR), driver will start to do the controller reset. 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun e). In driver's IOCTL routine, the application cmds will wait for the 223*4882a593Smuzhiyun OCR to finish, then issue the cmds to FW. 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun f). Before driver kill adapter, driver will do last chance of 226*4882a593Smuzhiyun OCR to see if driver can bring back the FW. 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun2. Add the support update flag to the driver to tell LSI megaraid_sas 229*4882a593Smuzhiyun application which driver will support the device update. So application 230*4882a593Smuzhiyun will not need to do the device update after application add/del the device 231*4882a593Smuzhiyun from the system. 232*4882a593Smuzhiyun3. In driver's timeout routine, driver will do three time reset if fw is in 233*4882a593Smuzhiyun failed state. Driver will kill adapter if can't bring back FW after the 234*4882a593Smuzhiyun this three times reset. 235*4882a593Smuzhiyun4. Add the input parameter max_sectors to 1MB support to our GEN2 controller. 236*4882a593Smuzhiyun customer can use the input parameter max_sectors to add 1MB support to GEN2 237*4882a593Smuzhiyun controller. 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun1 Release Date : Thur. Oct 29, 2009 09:12:45 PST 2009 - 240*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 241*4882a593Smuzhiyun Bo Yang 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun2 Current Version : 00.00.04.17.1-rc1 244*4882a593Smuzhiyun3 Older Version : 00.00.04.12 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun1. Add the pad_0 in mfi frame structure to 0 to fix the 247*4882a593Smuzhiyun context value larger than 32bit value issue. 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun2. Add the logic drive list to the driver. Driver will 250*4882a593Smuzhiyun keep the logic drive list internal after driver load. 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun3. driver fixed the device update issue after get the AEN 253*4882a593Smuzhiyun PD delete/ADD, LD add/delete from FW. 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun1 Release Date : Tues. July 28, 2009 10:12:45 PST 2009 - 256*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 257*4882a593Smuzhiyun Bo Yang 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun2 Current Version : 00.00.04.12 260*4882a593Smuzhiyun3 Older Version : 00.00.04.10 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun1. Change the AEN sys PD update from scsi_scan to 263*4882a593Smuzhiyun scsi_add_device and scsi_remove_device. 264*4882a593Smuzhiyun2. Takeoff the debug print-out in aen_polling routine. 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun1 Release Date : Thur. July 02, 2009 10:12:45 PST 2009 - 267*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 268*4882a593Smuzhiyun Bo Yang 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun2 Current Version : 00.00.04.10 271*4882a593Smuzhiyun3 Older Version : 00.00.04.08 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun1. Add the 3 mins timeout during the controller initialize. 274*4882a593Smuzhiyun2. Add the fix for 64bit sense date errors. 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun1 Release Date : Tues. May 05, 2009 10:12:45 PST 2009 - 277*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 278*4882a593Smuzhiyun Bo Yang 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun2 Current Version : 00.00.04.08 281*4882a593Smuzhiyun3 Older Version : 00.00.04.06 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun1. Add the fix of pending in FW after deleted the logic drives. 284*4882a593Smuzhiyun2. Add the fix of deallocating memory after get pdlist. 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun1 Release Date : Tues. March 26, 2009 10:12:45 PST 2009 - 287*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 288*4882a593Smuzhiyun Bo Yang 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun2 Current Version : 00.00.04.06 291*4882a593Smuzhiyun3 Older Version : 00.00.04.04 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun1. Add the fix of the driver cmd empty fix of the driver cmd empty. 294*4882a593Smuzhiyun2. Add the fix of the driver MSM AEN CMD cause the system slow. 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun1 Release Date : Tues. March 03, 2009 10:12:45 PST 2009 - 297*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 298*4882a593Smuzhiyun Bo Yang 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun2 Current Version : 00.00.04.04 301*4882a593Smuzhiyun3 Older Version : 00.00.04.01 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun1. Add the Tape drive fix to the driver: If the command is for 304*4882a593Smuzhiyun the tape device, set the pthru timeout to the os layer timeout value. 305*4882a593Smuzhiyun 306*4882a593Smuzhiyun2. Add Poll_wait mechanism to Gen-2 Linux driv. 307*4882a593Smuzhiyun In the aen handler, driver needs to wakeup poll handler similar to 308*4882a593Smuzhiyun the way it raises SIGIO. 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun3. Add new controller new SAS2 support to the driver. 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun4. Report the unconfigured PD (system PD) to OS. 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun5. Add the IEEE SGL support to the driver 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun6. Reasign the Application cmds to SAS2 controller 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun1 Release Date : Thur.July. 24 11:41:51 PST 2008 - 319*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 320*4882a593Smuzhiyun Sumant Patro 321*4882a593Smuzhiyun Bo Yang 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun2 Current Version : 00.00.04.01 324*4882a593Smuzhiyun3 Older Version : 00.00.03.22 325*4882a593Smuzhiyun 326*4882a593Smuzhiyun1. Add the new controller (0078, 0079) support to the driver 327*4882a593Smuzhiyun Those controllers are LSI's next generatation(gen2) SAS controllers. 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun1 Release Date : Mon.June. 23 10:12:45 PST 2008 - 330*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 331*4882a593Smuzhiyun Sumant Patro 332*4882a593Smuzhiyun Bo Yang 333*4882a593Smuzhiyun 334*4882a593Smuzhiyun2 Current Version : 00.00.03.22 335*4882a593Smuzhiyun3 Older Version : 00.00.03.20 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun1. Add shutdown DCMD cmd to the shutdown routine to make FW shutdown proper. 338*4882a593Smuzhiyun2. Unexpected interrupt occurs in HWR Linux driver, add the dumy readl pci flush will fix this issue. 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun1 Release Date : Mon. March 10 11:02:31 PDT 2008 - 341*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 342*4882a593Smuzhiyun Sumant Patro 343*4882a593Smuzhiyun Bo Yang 344*4882a593Smuzhiyun 345*4882a593Smuzhiyun2 Current Version : 00.00.03.20-RC1 346*4882a593Smuzhiyun3 Older Version : 00.00.03.16 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun1. Rollback the sense info implementation 349*4882a593Smuzhiyun Sense buffer ptr data type in the ioctl path is reverted back 350*4882a593Smuzhiyun to u32 * as in previous versions of driver. 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun2. Fixed the driver frame count. 353*4882a593Smuzhiyun When Driver sent wrong frame count to firmware. As this 354*4882a593Smuzhiyun particular command is sent to drive, FW is seeing continuous 355*4882a593Smuzhiyun chip resets and so the command will timeout. 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun3. Add the new controller(1078DE) support to the driver 358*4882a593Smuzhiyun and Increase the max_wait to 60 from 10 in the controller 359*4882a593Smuzhiyun operational status. With this max_wait increase, driver will 360*4882a593Smuzhiyun make sure the FW will finish the pending cmd for KDUMP case. 361*4882a593Smuzhiyun 362*4882a593Smuzhiyun1 Release Date : Thur. Nov. 07 16:30:43 PST 2007 - 363*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 364*4882a593Smuzhiyun Sumant Patro 365*4882a593Smuzhiyun Bo Yang 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun2 Current Version : 00.00.03.16 368*4882a593Smuzhiyun3 Older Version : 00.00.03.15 369*4882a593Smuzhiyun 370*4882a593Smuzhiyun1. Increased MFI_POLL_TIMEOUT_SECS to 60 seconds from 10. FW may take 371*4882a593Smuzhiyun a max of 60 seconds to respond to the INIT cmd. 372*4882a593Smuzhiyun 373*4882a593Smuzhiyun1 Release Date : Fri. Sep. 07 16:30:43 PST 2007 - 374*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 375*4882a593Smuzhiyun Sumant Patro 376*4882a593Smuzhiyun Bo Yang 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun2 Current Version : 00.00.03.15 379*4882a593Smuzhiyun3 Older Version : 00.00.03.14 380*4882a593Smuzhiyun 381*4882a593Smuzhiyun1. Added module parameter "poll_mode_io" to support for "polling" 382*4882a593Smuzhiyun (reduced interrupt operation). In this mode, IO completion 383*4882a593Smuzhiyun interrupts are delayed. At the end of initiating IOs, the 384*4882a593Smuzhiyun driver schedules for cmd completion if there are pending cmds 385*4882a593Smuzhiyun to be completed. A timer-based interrupt has also been added 386*4882a593Smuzhiyun to prevent IO completion processing from being delayed 387*4882a593Smuzhiyun indefinitely in the case that no new IOs are initiated. 388*4882a593Smuzhiyun 389*4882a593Smuzhiyun1 Release Date : Fri. Sep. 07 16:30:43 PST 2007 - 390*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 391*4882a593Smuzhiyun Sumant Patro 392*4882a593Smuzhiyun Bo Yang 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun2 Current Version : 00.00.03.14 395*4882a593Smuzhiyun3 Older Version : 00.00.03.13 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun1. Setting the max_sectors_per_req based on max SGL supported by the 398*4882a593Smuzhiyun FW. Prior versions calculated this value from controller info 399*4882a593Smuzhiyun (max_sectors_1, max_sectors_2). For certain controllers/FW, 400*4882a593Smuzhiyun this was resulting in a value greater than max SGL supported 401*4882a593Smuzhiyun by the FW. Issue was first reported by users running LUKS+XFS 402*4882a593Smuzhiyun with megaraid_sas. Thanks to RB for providing the logs and 403*4882a593Smuzhiyun duplication steps that helped to get to the root cause of the 404*4882a593Smuzhiyun issue. 2. Increased MFI_POLL_TIMEOUT_SECS to 60 seconds from 405*4882a593Smuzhiyun 10. FW may take a max of 60 seconds to respond to the INIT 406*4882a593Smuzhiyun cmd. 407*4882a593Smuzhiyun 408*4882a593Smuzhiyun1 Release Date : Fri. June. 15 16:30:43 PST 2007 - 409*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 410*4882a593Smuzhiyun Sumant Patro 411*4882a593Smuzhiyun Bo Yang 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun2 Current Version : 00.00.03.13 414*4882a593Smuzhiyun3 Older Version : 00.00.03.12 415*4882a593Smuzhiyun 416*4882a593Smuzhiyun1. Added the megasas_reset_timer routine to intercept cmd timeout and throttle io. 417*4882a593Smuzhiyun 418*4882a593SmuzhiyunOn Fri, 2007-03-16 at 16:44 -0600, James Bottomley wrote: 419*4882a593SmuzhiyunIt looks like megaraid_sas at least needs this to throttle its commands 420*4882a593Smuzhiyun> as they begin to time out. The code keeps the existing transport 421*4882a593Smuzhiyun> template use of eh_timed_out (and allows the transport to override the 422*4882a593Smuzhiyun> host if they both have this callback). 423*4882a593Smuzhiyun> 424*4882a593Smuzhiyun> James 425*4882a593Smuzhiyun 426*4882a593Smuzhiyun1 Release Date : Sat May. 12 16:30:43 PST 2007 - 427*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 428*4882a593Smuzhiyun Sumant Patro 429*4882a593Smuzhiyun Bo Yang 430*4882a593Smuzhiyun 431*4882a593Smuzhiyun2 Current Version : 00.00.03.12 432*4882a593Smuzhiyun3 Older Version : 00.00.03.11 433*4882a593Smuzhiyun 434*4882a593Smuzhiyun1. When MegaSAS driver receives reset call from OS, driver waits in reset 435*4882a593Smuzhiyunroutine for max 3 minutes for all pending command completion. Now driver will 436*4882a593Smuzhiyuncall completion routine every 5 seconds from the reset routine instead of 437*4882a593Smuzhiyunwaiting for depending on cmd completion from isr path. 438*4882a593Smuzhiyun 439*4882a593Smuzhiyun1 Release Date : Mon Apr. 30 10:25:52 PST 2007 - 440*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 441*4882a593Smuzhiyun Sumant Patro 442*4882a593Smuzhiyun Bo Yang 443*4882a593Smuzhiyun 444*4882a593Smuzhiyun2 Current Version : 00.00.03.11 445*4882a593Smuzhiyun3 Older Version : 00.00.03.09 446*4882a593Smuzhiyun 447*4882a593Smuzhiyun 1. Memory Manager for IOCTL removed for 2.6 kernels. 448*4882a593Smuzhiyun pci_alloc_consistent replaced by dma_alloc_coherent. With this 449*4882a593Smuzhiyun change there is no need of memory manager in the driver code 450*4882a593Smuzhiyun 451*4882a593Smuzhiyun On Wed, 2007-02-07 at 13:30 -0800, Andrew Morton wrote: 452*4882a593Smuzhiyun > I suspect all this horror is due to stupidity in the DMA API. 453*4882a593Smuzhiyun > 454*4882a593Smuzhiyun > pci_alloc_consistent() just goes and assumes GFP_ATOMIC, whereas 455*4882a593Smuzhiyun > the caller (megasas_mgmt_fw_ioctl) would have been perfectly happy 456*4882a593Smuzhiyun > to use GFP_KERNEL. 457*4882a593Smuzhiyun > 458*4882a593Smuzhiyun > I bet this fixes it 459*4882a593Smuzhiyun 460*4882a593Smuzhiyun It does, but the DMA API was expanded to cope with this exact case, so 461*4882a593Smuzhiyun use dma_alloc_coherent() directly in the megaraid code instead. The dev 462*4882a593Smuzhiyun is just &pci_dev->dev. 463*4882a593Smuzhiyun 464*4882a593Smuzhiyun James <James.Bottomley@SteelEye.com> 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun 3. SYNCHRONIZE_CACHE is not supported by FW and thus blocked by driver. 467*4882a593Smuzhiyun 4. Hibernation support added 468*4882a593Smuzhiyun 5. Performing diskdump while running IO in RHEL 4 was failing. Fixed. 469*4882a593Smuzhiyun 470*4882a593Smuzhiyun1 Release Date : Fri Feb. 09 14:36:28 PST 2007 - 471*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 472*4882a593Smuzhiyun Sumant Patro 473*4882a593Smuzhiyun Bo Yang 474*4882a593Smuzhiyun 475*4882a593Smuzhiyun2 Current Version : 00.00.03.09 476*4882a593Smuzhiyun3 Older Version : 00.00.03.08 477*4882a593Smuzhiyun 478*4882a593Smuzhiyuni. Under heavy IO mid-layer prints "DRIVER_TIMEOUT" errors 479*4882a593Smuzhiyun 480*4882a593Smuzhiyun The driver now waits for 10 seconds to elapse instead of 5 (as in 481*4882a593Smuzhiyun previous release) to resume IO. 482*4882a593Smuzhiyun 483*4882a593Smuzhiyun1 Release Date : Mon Feb. 05 11:35:24 PST 2007 - 484*4882a593Smuzhiyun (emaild-id:megaraidlinux@lsi.com) 485*4882a593Smuzhiyun Sumant Patro 486*4882a593Smuzhiyun Bo Yang 487*4882a593Smuzhiyun2 Current Version : 00.00.03.08 488*4882a593Smuzhiyun3 Older Version : 00.00.03.07 489*4882a593Smuzhiyun 490*4882a593Smuzhiyuni. Under heavy IO mid-layer prints "DRIVER_TIMEOUT" errors 491*4882a593Smuzhiyun 492*4882a593Smuzhiyun Fix: The driver is now throttling IO. 493*4882a593Smuzhiyun Checks added in megasas_queue_command to know if FW is able to 494*4882a593Smuzhiyun process commands within timeout period. If number of retries 495*4882a593Smuzhiyun is 2 or greater,the driver stops sending cmd to FW temporarily. IO is 496*4882a593Smuzhiyun resumed if pending cmd count reduces to 16 or 5 seconds has elapsed 497*4882a593Smuzhiyun from the time cmds were last sent to FW. 498*4882a593Smuzhiyun 499*4882a593Smuzhiyunii. FW enables WCE bit in Mode Sense cmd for drives that are configured 500*4882a593Smuzhiyun as WriteBack. The OS may send "SYNCHRONIZE_CACHE" cmd when Logical 501*4882a593Smuzhiyun Disks are exposed with WCE=1. User is advised to enable Write Back 502*4882a593Smuzhiyun mode only when the controller has battery backup. At this time 503*4882a593Smuzhiyun Synhronize cache is not supported by the FW. Driver will short-cycle 504*4882a593Smuzhiyun the cmd and return success without sending down to FW. 505*4882a593Smuzhiyun 506*4882a593Smuzhiyun1 Release Date : Sun Jan. 14 11:21:32 PDT 2007 - 507*4882a593Smuzhiyun Sumant Patro <Sumant.Patro@lsil.com>/Bo Yang 508*4882a593Smuzhiyun2 Current Version : 00.00.03.07 509*4882a593Smuzhiyun3 Older Version : 00.00.03.06 510*4882a593Smuzhiyun 511*4882a593Smuzhiyuni. bios_param entry added in scsi_host_template that returns disk geometry 512*4882a593Smuzhiyun information. 513*4882a593Smuzhiyun 514*4882a593Smuzhiyun1 Release Date : Fri Oct 20 11:21:32 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com>/Bo Yang 515*4882a593Smuzhiyun2 Current Version : 00.00.03.06 516*4882a593Smuzhiyun3 Older Version : 00.00.03.05 517*4882a593Smuzhiyun 518*4882a593Smuzhiyun1. Added new memory management module to support the IOCTL memory allocation. For IOCTL we try to allocate from the memory pool created during driver initialization. If mem pool is empty then we allocate at run time. 519*4882a593Smuzhiyun2. Added check in megasas_queue_command and dpc/isr routine to see if we have already declared adapter dead 520*4882a593Smuzhiyun (hw_crit_error=1). If hw_crit_error==1, now we donot accept any processing of pending cmds/accept any cmd from OS 521*4882a593Smuzhiyun 522*4882a593Smuzhiyun1 Release Date : Mon Oct 02 11:21:32 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 523*4882a593Smuzhiyun2 Current Version : 00.00.03.05 524*4882a593Smuzhiyun3 Older Version : 00.00.03.04 525*4882a593Smuzhiyun 526*4882a593Smuzhiyuni. PCI_DEVICE macro used 527*4882a593Smuzhiyun 528*4882a593Smuzhiyun Convert the pci_device_id-table of the megaraid_sas-driver to the PCI_DEVICE-macro, to safe some lines. 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun - Henrik Kretzschmar <henne@nachtwindheim.de> 531*4882a593Smuzhiyunii. All compiler warnings removed 532*4882a593Smuzhiyuniii. megasas_ctrl_info struct reverted to 3.02 release 533*4882a593Smuzhiyuniv. Default value of megasas_dbg_lvl set to 0 534*4882a593Smuzhiyunv. Removing in megasas_exit the sysfs entry created for megasas_dbg_lvl 535*4882a593Smuzhiyunvi. In megasas_teardown_frame_pool(), cmd->frame was passed instead of 536*4882a593Smuzhiyun cmd->sense to pci_pool_free. Fixed. Bug was pointed out by 537*4882a593Smuzhiyun Eric Sesterhenn 538*4882a593Smuzhiyun 539*4882a593Smuzhiyun1 Release Date : Wed Sep 13 14:22:51 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 540*4882a593Smuzhiyun2 Current Version : 00.00.03.04 541*4882a593Smuzhiyun3 Older Version : 00.00.03.03 542*4882a593Smuzhiyun 543*4882a593Smuzhiyuni. Added Reboot notify 544*4882a593Smuzhiyunii. Reduced by 1 max cmds sent to FW from Driver to make the reply_q_sz same 545*4882a593Smuzhiyun as Max Cmds FW can support 546*4882a593Smuzhiyun 547*4882a593Smuzhiyun1 Release Date : Tue Aug 22 16:33:14 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 548*4882a593Smuzhiyun2 Current Version : 00.00.03.03 549*4882a593Smuzhiyun3 Older Version : 00.00.03.02 550*4882a593Smuzhiyun 551*4882a593Smuzhiyuni. Send stop adapter to FW & Dump pending FW cmds before declaring adapter dead. 552*4882a593Smuzhiyun New variable added to set dbg level. 553*4882a593Smuzhiyunii. Disable interrupt made as fn pointer as they are different for 1068 / 1078 554*4882a593Smuzhiyuniii. Frame count optimization. Main frame can contain 2 SGE for 64 bit SGLs and 555*4882a593Smuzhiyun 3 SGE for 32 bit SGL 556*4882a593Smuzhiyuniv. Tasklet added for cmd completion 557*4882a593Smuzhiyunv. If FW in operational state before firing INIT, now we send RESET Flag to FW instead of just READY. This is used to do soft reset. 558*4882a593Smuzhiyunvi. megasas_ctrl_prop structure updated (based on FW struct) 559*4882a593Smuzhiyunvii. Added print : FW now in Ready State during initialization 560*4882a593Smuzhiyun 561*4882a593Smuzhiyun1 Release Date : Sun Aug 06 22:49:52 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 562*4882a593Smuzhiyun2 Current Version : 00.00.03.02 563*4882a593Smuzhiyun3 Older Version : 00.00.03.01 564*4882a593Smuzhiyun 565*4882a593Smuzhiyuni. Added FW tranistion state for Hotplug scenario 566*4882a593Smuzhiyun 567*4882a593Smuzhiyun1 Release Date : Sun May 14 22:49:52 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 568*4882a593Smuzhiyun2 Current Version : 00.00.03.01 569*4882a593Smuzhiyun3 Older Version : 00.00.02.04 570*4882a593Smuzhiyun 571*4882a593Smuzhiyuni. Added support for ZCR controller. 572*4882a593Smuzhiyun 573*4882a593Smuzhiyun New device id 0x413 added. 574*4882a593Smuzhiyun 575*4882a593Smuzhiyunii. Bug fix : Disable controller interrupt before firing INIT cmd to FW. 576*4882a593Smuzhiyun 577*4882a593Smuzhiyun Interrupt is enabled after required initialization is over. 578*4882a593Smuzhiyun This is done to ensure that driver is ready to handle interrupts when 579*4882a593Smuzhiyun it is generated by the controller. 580*4882a593Smuzhiyun 581*4882a593Smuzhiyun -Sumant Patro <Sumant.Patro@lsil.com> 582*4882a593Smuzhiyun 583*4882a593Smuzhiyun1 Release Date : Wed Feb 03 14:31:44 PST 2006 - Sumant Patro <Sumant.Patro@lsil.com> 584*4882a593Smuzhiyun2 Current Version : 00.00.02.04 585*4882a593Smuzhiyun3 Older Version : 00.00.02.04 586*4882a593Smuzhiyun 587*4882a593Smuzhiyuni. Remove superfluous instance_lock 588*4882a593Smuzhiyun 589*4882a593Smuzhiyun gets rid of the otherwise superfluous instance_lock and avoids an unsafe 590*4882a593Smuzhiyun unsynchronized access in the error handler. 591*4882a593Smuzhiyun 592*4882a593Smuzhiyun - Christoph Hellwig <hch@lst.de> 593*4882a593Smuzhiyun 594*4882a593Smuzhiyun 595*4882a593Smuzhiyun1 Release Date : Wed Feb 03 14:31:44 PST 2006 - Sumant Patro <Sumant.Patro@lsil.com> 596*4882a593Smuzhiyun2 Current Version : 00.00.02.04 597*4882a593Smuzhiyun3 Older Version : 00.00.02.04 598*4882a593Smuzhiyun 599*4882a593Smuzhiyuni. Support for 1078 type (ppc IOP) controller, device id : 0x60 added. 600*4882a593Smuzhiyun During initialization, depending on the device id, the template members 601*4882a593Smuzhiyun are initialized with function pointers specific to the ppc or 602*4882a593Smuzhiyun xscale controllers. 603*4882a593Smuzhiyun 604*4882a593Smuzhiyun -Sumant Patro <Sumant.Patro@lsil.com> 605*4882a593Smuzhiyun 606*4882a593Smuzhiyun1 Release Date : Fri Feb 03 14:16:25 PST 2006 - Sumant Patro 607*4882a593Smuzhiyun <Sumant.Patro@lsil.com> 608*4882a593Smuzhiyun2 Current Version : 00.00.02.04 609*4882a593Smuzhiyun3 Older Version : 00.00.02.02 610*4882a593Smuzhiyuni. Register 16 byte CDB capability with scsi midlayer 611*4882a593Smuzhiyun 612*4882a593Smuzhiyun "This patch properly registers the 16 byte command length capability of the 613*4882a593Smuzhiyun megaraid_sas controlled hardware with the scsi midlayer. All megaraid_sas 614*4882a593Smuzhiyun hardware supports 16 byte CDB's." 615*4882a593Smuzhiyun 616*4882a593Smuzhiyun -Joshua Giles <joshua_giles@dell.com> 617*4882a593Smuzhiyun 618*4882a593Smuzhiyun1 Release Date : Mon Jan 23 14:09:01 PST 2006 - Sumant Patro <Sumant.Patro@lsil.com> 619*4882a593Smuzhiyun2 Current Version : 00.00.02.02 620*4882a593Smuzhiyun3 Older Version : 00.00.02.01 621*4882a593Smuzhiyun 622*4882a593Smuzhiyuni. New template defined to represent each family of controllers (identified by processor used). 623*4882a593Smuzhiyun The template will have definitions that will be initialised to appropriate values for a specific family of controllers. The template definition has four function pointers. During driver initialisation the function pointers will be set based on the controller family type. This change is done to support new controllers that has different processors and thus different register set. 624*4882a593Smuzhiyun 625*4882a593Smuzhiyun -Sumant Patro <Sumant.Patro@lsil.com> 626*4882a593Smuzhiyun 627*4882a593Smuzhiyun1 Release Date : Mon Dec 19 14:36:26 PST 2005 - Sumant Patro <Sumant.Patro@lsil.com> 628*4882a593Smuzhiyun2 Current Version : 00.00.02.00-rc4 629*4882a593Smuzhiyun3 Older Version : 00.00.02.01 630*4882a593Smuzhiyun 631*4882a593Smuzhiyuni. Code reorganized to remove code duplication in megasas_build_cmd. 632*4882a593Smuzhiyun 633*4882a593Smuzhiyun "There's a lot of duplicate code megasas_build_cmd. Move that out of the different codepaths and merge the reminder of megasas_build_cmd into megasas_queue_command" 634*4882a593Smuzhiyun 635*4882a593Smuzhiyun - Christoph Hellwig <hch@lst.de> 636*4882a593Smuzhiyun 637*4882a593Smuzhiyunii. Defined MEGASAS_IOC_FIRMWARE32 for code paths that handles 32 bit applications in 64 bit systems. 638*4882a593Smuzhiyun 639*4882a593Smuzhiyun "MEGASAS_IOC_FIRMWARE can't be redefined if CONFIG_COMPAT is set, we need to define a MEGASAS_IOC_FIRMWARE32 define so native binaries continue to work" 640*4882a593Smuzhiyun 641*4882a593Smuzhiyun - Christoph Hellwig <hch@lst.de> 642