11 Release Date : Tues. July 28, 2009 10:12:45 PST 2009 - 2 (emaild-id:megaraidlinux@lsi.com) 3 Bo Yang 4 52 Current Version : 00.00.04.12 63 Older Version : 00.00.04.10 7 81. Change the AEN sys PD update from scsi_scan to 9 scsi_add_device and scsi_remove_device. 102. Takeoff the debug print-out in aen_polling routine. 11 121 Release Date : Thur. July 02, 2009 10:12:45 PST 2009 - 13 (emaild-id:megaraidlinux@lsi.com) 14 Bo Yang 15 162 Current Version : 00.00.04.10 173 Older Version : 00.00.04.08 18 191. Add the 3 mins timeout during the controller initialize. 202. Add the fix for 64bit sense date errors. 21 221 Release Date : Tues. May 05, 2009 10:12:45 PST 2009 - 23 (emaild-id:megaraidlinux@lsi.com) 24 Bo Yang 25 262 Current Version : 00.00.04.08 273 Older Version : 00.00.04.06 28 291. Add the fix of pending in FW after deleted the logic drives. 302. Add the fix of deallocating memory after get pdlist. 31 321 Release Date : Tues. March 26, 2009 10:12:45 PST 2009 - 33 (emaild-id:megaraidlinux@lsi.com) 34 Bo Yang 35 362 Current Version : 00.00.04.06 373 Older Version : 00.00.04.04 38 391. Add the fix of the driver cmd empty fix of the driver cmd empty. 402. Add the fix of the driver MSM AEN CMD cause the system slow. 41 421 Release Date : Tues. March 03, 2009 10:12:45 PST 2009 - 43 (emaild-id:megaraidlinux@lsi.com) 44 Bo Yang 45 462 Current Version : 00.00.04.04 473 Older Version : 00.00.04.01 48 491. Add the Tape drive fix to the driver: If the command is for 50 the tape device, set the pthru timeout to the os layer timeout value. 51 522. Add Poll_wait mechanism to Gen-2 Linux driv. 53 In the aen handler, driver needs to wakeup poll handler similar to 54 the way it raises SIGIO. 55 563. Add new controller new SAS2 support to the driver. 57 584. Report the unconfigured PD (system PD) to OS. 59 605. Add the IEEE SGL support to the driver 61 626. Reasign the Application cmds to SAS2 controller 63 641 Release Date : Thur.July. 24 11:41:51 PST 2008 - 65 (emaild-id:megaraidlinux@lsi.com) 66 Sumant Patro 67 Bo Yang 68 692 Current Version : 00.00.04.01 703 Older Version : 00.00.03.22 71 721. Add the new controller (0078, 0079) support to the driver 73 Those controllers are LSI's next generatation(gen2) SAS controllers. 74 751 Release Date : Mon.June. 23 10:12:45 PST 2008 - 76 (emaild-id:megaraidlinux@lsi.com) 77 Sumant Patro 78 Bo Yang 79 802 Current Version : 00.00.03.22 813 Older Version : 00.00.03.20 82 831. Add shutdown DCMD cmd to the shutdown routine to make FW shutdown proper. 842. Unexpected interrupt occurs in HWR Linux driver, add the dumy readl pci flush will fix this issue. 85 861 Release Date : Mon. March 10 11:02:31 PDT 2008 - 87 (emaild-id:megaraidlinux@lsi.com) 88 Sumant Patro 89 Bo Yang 90 912 Current Version : 00.00.03.20-RC1 923 Older Version : 00.00.03.16 93 941. Rollback the sense info implementation 95 Sense buffer ptr data type in the ioctl path is reverted back 96 to u32 * as in previous versions of driver. 97 982. Fixed the driver frame count. 99 When Driver sent wrong frame count to firmware. As this 100 particular command is sent to drive, FW is seeing continuous 101 chip resets and so the command will timeout. 102 1033. Add the new controller(1078DE) support to the driver 104 and Increase the max_wait to 60 from 10 in the controller 105 operational status. With this max_wait increase, driver will 106 make sure the FW will finish the pending cmd for KDUMP case. 107 1081 Release Date : Thur. Nov. 07 16:30:43 PST 2007 - 109 (emaild-id:megaraidlinux@lsi.com) 110 Sumant Patro 111 Bo Yang 112 1132 Current Version : 00.00.03.16 1143 Older Version : 00.00.03.15 115 1161. Increased MFI_POLL_TIMEOUT_SECS to 60 seconds from 10. FW may take 117 a max of 60 seconds to respond to the INIT cmd. 118 1191 Release Date : Fri. Sep. 07 16:30:43 PST 2007 - 120 (emaild-id:megaraidlinux@lsi.com) 121 Sumant Patro 122 Bo Yang 123 1242 Current Version : 00.00.03.15 1253 Older Version : 00.00.03.14 126 1271. Added module parameter "poll_mode_io" to support for "polling" 128 (reduced interrupt operation). In this mode, IO completion 129 interrupts are delayed. At the end of initiating IOs, the 130 driver schedules for cmd completion if there are pending cmds 131 to be completed. A timer-based interrupt has also been added 132 to prevent IO completion processing from being delayed 133 indefinitely in the case that no new IOs are initiated. 134 1351 Release Date : Fri. Sep. 07 16:30:43 PST 2007 - 136 (emaild-id:megaraidlinux@lsi.com) 137 Sumant Patro 138 Bo Yang 139 1402 Current Version : 00.00.03.14 1413 Older Version : 00.00.03.13 142 1431. Setting the max_sectors_per_req based on max SGL supported by the 144 FW. Prior versions calculated this value from controller info 145 (max_sectors_1, max_sectors_2). For certain controllers/FW, 146 this was resulting in a value greater than max SGL supported 147 by the FW. Issue was first reported by users running LUKS+XFS 148 with megaraid_sas. Thanks to RB for providing the logs and 149 duplication steps that helped to get to the root cause of the 150 issue. 2. Increased MFI_POLL_TIMEOUT_SECS to 60 seconds from 151 10. FW may take a max of 60 seconds to respond to the INIT 152 cmd. 153 1541 Release Date : Fri. June. 15 16:30:43 PST 2007 - 155 (emaild-id:megaraidlinux@lsi.com) 156 Sumant Patro 157 Bo Yang 158 1592 Current Version : 00.00.03.13 1603 Older Version : 00.00.03.12 161 1621. Added the megasas_reset_timer routine to intercept cmd timeout and throttle io. 163 164On Fri, 2007-03-16 at 16:44 -0600, James Bottomley wrote: 165It looks like megaraid_sas at least needs this to throttle its commands 166> as they begin to time out. The code keeps the existing transport 167> template use of eh_timed_out (and allows the transport to override the 168> host if they both have this callback). 169> 170> James 171 1721 Release Date : Sat May. 12 16:30:43 PST 2007 - 173 (emaild-id:megaraidlinux@lsi.com) 174 Sumant Patro 175 Bo Yang 176 1772 Current Version : 00.00.03.12 1783 Older Version : 00.00.03.11 179 1801. When MegaSAS driver receives reset call from OS, driver waits in reset 181routine for max 3 minutes for all pending command completion. Now driver will 182call completion routine every 5 seconds from the reset routine instead of 183waiting for depending on cmd completion from isr path. 184 1851 Release Date : Mon Apr. 30 10:25:52 PST 2007 - 186 (emaild-id:megaraidlinux@lsi.com) 187 Sumant Patro 188 Bo Yang 189 1902 Current Version : 00.00.03.11 1913 Older Version : 00.00.03.09 192 193 1. Memory Manager for IOCTL removed for 2.6 kernels. 194 pci_alloc_consistent replaced by dma_alloc_coherent. With this 195 change there is no need of memory manager in the driver code 196 197 On Wed, 2007-02-07 at 13:30 -0800, Andrew Morton wrote: 198 > I suspect all this horror is due to stupidity in the DMA API. 199 > 200 > pci_alloc_consistent() just goes and assumes GFP_ATOMIC, whereas 201 > the caller (megasas_mgmt_fw_ioctl) would have been perfectly happy 202 > to use GFP_KERNEL. 203 > 204 > I bet this fixes it 205 206 It does, but the DMA API was expanded to cope with this exact case, so 207 use dma_alloc_coherent() directly in the megaraid code instead. The dev 208 is just &pci_dev->dev. 209 210 James <James.Bottomley@SteelEye.com> 211 212 3. SYNCHRONIZE_CACHE is not supported by FW and thus blocked by driver. 213 4. Hibernation support added 214 5. Performing diskdump while running IO in RHEL 4 was failing. Fixed. 215 2161 Release Date : Fri Feb. 09 14:36:28 PST 2007 - 217 (emaild-id:megaraidlinux@lsi.com) 218 Sumant Patro 219 Bo Yang 220 2212 Current Version : 00.00.03.09 2223 Older Version : 00.00.03.08 223 224i. Under heavy IO mid-layer prints "DRIVER_TIMEOUT" errors 225 226 The driver now waits for 10 seconds to elapse instead of 5 (as in 227 previous release) to resume IO. 228 2291 Release Date : Mon Feb. 05 11:35:24 PST 2007 - 230 (emaild-id:megaraidlinux@lsi.com) 231 Sumant Patro 232 Bo Yang 2332 Current Version : 00.00.03.08 2343 Older Version : 00.00.03.07 235 236i. Under heavy IO mid-layer prints "DRIVER_TIMEOUT" errors 237 238 Fix: The driver is now throttling IO. 239 Checks added in megasas_queue_command to know if FW is able to 240 process commands within timeout period. If number of retries 241 is 2 or greater,the driver stops sending cmd to FW temporarily. IO is 242 resumed if pending cmd count reduces to 16 or 5 seconds has elapsed 243 from the time cmds were last sent to FW. 244 245ii. FW enables WCE bit in Mode Sense cmd for drives that are configured 246 as WriteBack. The OS may send "SYNCHRONIZE_CACHE" cmd when Logical 247 Disks are exposed with WCE=1. User is advised to enable Write Back 248 mode only when the controller has battery backup. At this time 249 Synhronize cache is not supported by the FW. Driver will short-cycle 250 the cmd and return success without sending down to FW. 251 2521 Release Date : Sun Jan. 14 11:21:32 PDT 2007 - 253 Sumant Patro <Sumant.Patro@lsil.com>/Bo Yang 2542 Current Version : 00.00.03.07 2553 Older Version : 00.00.03.06 256 257i. bios_param entry added in scsi_host_template that returns disk geometry 258 information. 259 2601 Release Date : Fri Oct 20 11:21:32 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com>/Bo Yang 2612 Current Version : 00.00.03.06 2623 Older Version : 00.00.03.05 263 2641. 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. 2652. Added check in megasas_queue_command and dpc/isr routine to see if we have already declared adapter dead 266 (hw_crit_error=1). If hw_crit_error==1, now we donot accept any processing of pending cmds/accept any cmd from OS 267 2681 Release Date : Mon Oct 02 11:21:32 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 2692 Current Version : 00.00.03.05 2703 Older Version : 00.00.03.04 271 272i. PCI_DEVICE macro used 273 274 Convert the pci_device_id-table of the megaraid_sas-driver to the PCI_DEVICE-macro, to safe some lines. 275 276 - Henrik Kretzschmar <henne@nachtwindheim.de> 277ii. All compiler warnings removed 278iii. megasas_ctrl_info struct reverted to 3.02 release 279iv. Default value of megasas_dbg_lvl set to 0 280v. Removing in megasas_exit the sysfs entry created for megasas_dbg_lvl 281vi. In megasas_teardown_frame_pool(), cmd->frame was passed instead of 282 cmd->sense to pci_pool_free. Fixed. Bug was pointed out by 283 Eric Sesterhenn 284 2851 Release Date : Wed Sep 13 14:22:51 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 2862 Current Version : 00.00.03.04 2873 Older Version : 00.00.03.03 288 289i. Added Reboot notify 290ii. Reduced by 1 max cmds sent to FW from Driver to make the reply_q_sz same 291 as Max Cmds FW can support 292 2931 Release Date : Tue Aug 22 16:33:14 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 2942 Current Version : 00.00.03.03 2953 Older Version : 00.00.03.02 296 297i. Send stop adapter to FW & Dump pending FW cmds before declaring adapter dead. 298 New varible added to set dbg level. 299ii. Disable interrupt made as fn pointer as they are different for 1068 / 1078 300iii. Frame count optimization. Main frame can contain 2 SGE for 64 bit SGLs and 301 3 SGE for 32 bit SGL 302iv. Tasklet added for cmd completion 303v. 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. 304vi. megasas_ctrl_prop structure updated (based on FW struct) 305vii. Added print : FW now in Ready State during initialization 306 3071 Release Date : Sun Aug 06 22:49:52 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 3082 Current Version : 00.00.03.02 3093 Older Version : 00.00.03.01 310 311i. Added FW tranistion state for Hotplug scenario 312 3131 Release Date : Sun May 14 22:49:52 PDT 2006 - Sumant Patro <Sumant.Patro@lsil.com> 3142 Current Version : 00.00.03.01 3153 Older Version : 00.00.02.04 316 317i. Added support for ZCR controller. 318 319 New device id 0x413 added. 320 321ii. Bug fix : Disable controller interrupt before firing INIT cmd to FW. 322 323 Interrupt is enabled after required initialization is over. 324 This is done to ensure that driver is ready to handle interrupts when 325 it is generated by the controller. 326 327 -Sumant Patro <Sumant.Patro@lsil.com> 328 3291 Release Date : Wed Feb 03 14:31:44 PST 2006 - Sumant Patro <Sumant.Patro@lsil.com> 3302 Current Version : 00.00.02.04 3313 Older Version : 00.00.02.04 332 333i. Remove superflous instance_lock 334 335 gets rid of the otherwise superflous instance_lock and avoids an unsave 336 unsynchronized access in the error handler. 337 338 - Christoph Hellwig <hch@lst.de> 339 340 3411 Release Date : Wed Feb 03 14:31:44 PST 2006 - Sumant Patro <Sumant.Patro@lsil.com> 3422 Current Version : 00.00.02.04 3433 Older Version : 00.00.02.04 344 345i. Support for 1078 type (ppc IOP) controller, device id : 0x60 added. 346 During initialization, depending on the device id, the template members 347 are initialized with function pointers specific to the ppc or 348 xscale controllers. 349 350 -Sumant Patro <Sumant.Patro@lsil.com> 351 3521 Release Date : Fri Feb 03 14:16:25 PST 2006 - Sumant Patro 353 <Sumant.Patro@lsil.com> 3542 Current Version : 00.00.02.04 3553 Older Version : 00.00.02.02 356i. Register 16 byte CDB capability with scsi midlayer 357 358 "Ths patch properly registers the 16 byte command length capability of the 359 megaraid_sas controlled hardware with the scsi midlayer. All megaraid_sas 360 hardware supports 16 byte CDB's." 361 362 -Joshua Giles <joshua_giles@dell.com> 363 3641 Release Date : Mon Jan 23 14:09:01 PST 2006 - Sumant Patro <Sumant.Patro@lsil.com> 3652 Current Version : 00.00.02.02 3663 Older Version : 00.00.02.01 367 368i. New template defined to represent each family of controllers (identified by processor used). 369 The template will have defintions that will be initialised to appropritae 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. 370 371 -Sumant Patro <Sumant.Patro@lsil.com> 372 3731 Release Date : Mon Dec 19 14:36:26 PST 2005 - Sumant Patro <Sumant.Patro@lsil.com> 3742 Current Version : 00.00.02.00-rc4 3753 Older Version : 00.00.02.01 376 377i. Code reorganized to remove code duplication in megasas_build_cmd. 378 379 "There's a lot of duplicate code megasas_build_cmd. Move that out of the different codepathes and merge the reminder of megasas_build_cmd into megasas_queue_command" 380 381 - Christoph Hellwig <hch@lst.de> 382 383ii. Defined MEGASAS_IOC_FIRMWARE32 for code paths that handles 32 bit applications in 64 bit systems. 384 385 "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" 386 387 - Christoph Hellwig <hch@lst.de> 388