QLogic Driver Release Notes QLogic Corporation All rights reserved Table of Contents 1. Change History 2. Known Issues 3. Notices 4. Contacting Support 1. Change History This section contains: * 1.1 Hardware Support * 1.2 Software Component * 1.3 Bug Fixes 1.1 Hardware Support Initial Drop 2.1.1.0: * Support for 2400/2500/2600/2700 Series Fibre Channel adapters * Support for 8100/8200/8300 Series Converged Network Adapters * Mt. Rainier support. Between versions 2.1.1.0 and 2.1.13.0: * None Between versions 2.1.13.0 and 2.1.14.0: * Support for device id 0x2261. This is Dual-port 2700 Series Fibre Channel ASIC. Between versions 2.1.14.0 and 2.1.65.0: * None Between versions 2.1.65.0 and 2.1.66.0: * Support for device ids 0x2081, 0x2281, 0x2089, 0x2289. This is the 2800 Series Fibre Channel ASIC. Between versions 2.1.66.0 and 2.1.74.0: * None Between versions 2.1.74.0 and 2.1.75.0: * Remove support for Fabric Cache (Mt. Rainier) adapter Between versions 2.1.75.0 and 2.1.96.0: * None 1.2 Software Components Between versions 2.1.1.0 and 2.1.3.0: * None Between versions 2.1.3.0 and 2.1.4.0: * Update ISP24XX and ISP25XX fw to version 7.04.00 Between versions 2.1.4.0 and 2.1.23.0: * None. Between versions 2.1.23.0 and 2.1.24.0: * Update ISP24XX and ISP25XX fw to version 8.01.02 Between versions 2.1.24.0 and 2.1.43.0: * None. Between versions 2.1.43.0 and 2.1.44.0: * Update ISP25XX fw version to 8.02.00. Between versions 2.1.44.0 and 2.1.50.0: * None. Between versions 2.1.50.0 and 2.1.51.0: * Application Services (VMID) Support Between version 2.1.51.0 and 2.1.54.0: * None. Between version 2.1.54.0 and 2.1.55.0: * Update ISP25XX fw version to 8.05.00. Between version 2.1.55.0 and 2.1.56.0: * Minimum Link Speed support. Between version 2.1.56.0 and 2.1.57.0: * None. Between version 2.1.57.0 and 2.1.59.0: * LR distance support though NVRAM enable/disable * IOCB-based fabric priority per logged in FC port. Between version 2.1.59.0 and 2.1.60.0: * Priority Tagging VMID support. Between version 2.1.60.0 and 2.1.61.0: * None Between version 2.1.61.0 and 2.1.62.0: * Disable Priority Tagging VMID support Between version 2.1.62.0 and 2.1.65.0 * None Between versions 2.1.65.0 and 2.1.66.0: * Enable Priority Tagging VMID support * Update ISP25XX fw to version 8.07.00 Between versions 2.1.66.0 and 2.1.68.0: * None Between versions 2.1.68.0 and 2.1.69.0: * End-to-End QoS fabric priority support * Update ISP25XX fw version to 8.08.01. Between versions 2.1.69.0 and 2.1.71.0: * None Between versions 2.1.71.0 and 2.1.72.0: * Revert update ISP25XX fw version to 8.08.01. FW version is now back to 8.07.00 Between versions 2.1.72.0 and 2.1.75.0: * None Between versions 2.1.75.0 and 2.1.76.0: * Update ISP25XX fw version to 8.08.01. * Add support for Mach Auxiliary Image Status and suppporting flash-related functionality improvements Between versions 2.1.76.0 and 2.1.77.0: * SmartSAN features disabled by default Between versions 2.1.77.0 and 2.1.81.0: * None Between versions 2.1.81.0 and 2.1.82.0: * Secure flash update support for ISP28XX Between versions 2.1.82.0 and 2.1.83.0: * None Between versions 2.1.83.0 and 2.1.84.0: * Simplified Fabric Discovery support Between versions 2.1.84.0 and 2.1.92.0: * None Between versions 2.1.92.0 and 2.1.93.0: * Update ISP25XX fw to version 8.08.207 Between versions 2.1.93.0 and 2.1.94.0: * Revert ISP25XX fw to version 8.08.206 Between versions 2.1.94.0 and 2.1.96.0: * None 1.3 Bug Fixes Between versions 2.1.1.0 and 2.1.2.0: * Improvement: Add support to unload driver with QLFXXX. * Problem Description: Vmkmgmt-keyval instance does not display all NPIV port's information. * Solution: Create multiple key value management instances per vmhba. * Problem Description: When new opcode added to existing template, we often see data size mismatch between collected data and total minidump data size. * Solution: Skip the entry and adjust the total buffer size by subtracting the size of skipped opcode from total minidump size. * Improvement: Remove unnecessary delays from fw dump code path and add features to track the failure at various different stages during capturing the firmware dump. * Improvement: Adding support for FA-WWPN functionality. * Improvement: Updated Release Notes recommended by Marketing Team. * Problem Description: Setting extended error logging causes the system to PSOD. * Solution: PSOD was caused because of dereferencing a invalid pointer. Added check before dereferencing pointer. * Improvement: Add D-Port functionality. * Problem Description: PSOD seen in case of 8G ISP reset recovery path. * Solution: In case of FCET enable mbx failure, we try to free the fcet dma buffer using unassigned dma address. We need to use the global ha->fcet_dma address instead. * Problem Description: PSOD seen while running CT_Ping from application. * Solution: Allocation DMA memory for msiocb_passthru ioctl command with maximum size between request_length and response_length. * Problem Description: Driver frees the cmd and returns error in case of timeout and when we receive response after 66 sec we hit an invalid condition. * Solution: Increase driver timeout to (66 * 5) sec. * Improvement: Adding Application level support for D-port feature. * Improvement: Improvement in FDMI attributes * Improvement: Allow nvram bit to enable/disable FA-WWPN * Improvement: In case of FAWWPN, revert back to the factory wwpn when the driver marks the LOOP as DEAD. Between versions 2.1.2.0 and 2.1.3.0: * Improvement: Added support for Fabric QoS feature. Between versions 2.1.3.0 and 2.1.4.0: * Problem Description: PSOD after installing on ESX5.5 with QLA82XX and QLA83XX adapter. * Solution: Provide module heap ID when creating the spinlock specific to QLA82XX and QLA83XX adapter. * Problem Description: V-Port creation failed. * Solution: Driver should drop all references from the vport during last VPort deletion. Between versions 2.1.4.0 and 2.1.5.0: * Problem Description: Hitting PSOD when using Vport with Fabric QoS. * Solution: Correctly check whether or not Fabric QoS is enabled or not. Between versions 2.1.5.0 and 2.1.6.0: * Problem Description: Under certain circumstances, VPort creation failed. * Solution: Correctly drop the reference from a vport during the service of vmk-Mgmt API request. * Problem Description: PSOD while fw-dump capture from Application. * Solution: Free fw dump DMA memory to correct heap pool. * Problem Description: Hitting PSOD when using Vport with Fabric QoS. * Solution: Correctly check whether or not Fabric QoS is enabled or not. Between versions 2.1.6.0 and 2.1.7.0: * Problem Description: Seen invalid packet entry while updating QoS Value for running vport. * Solution: Do not reinitialise request queue in pointer for existing vport. * Improvement: Change QoS feature that vCenter Plug-in will only display the entity from the NVRAM. * Problem Description: With ISP27XX adapter in system bootup taking longer time. * Solution: Removed the 500 msec delay between reading of each fwdump template entry. * Improvement: Improvement regarding firmware dump collection in ISP27XX adapter. Between versions 2.1.7.0 and 2.1.8.0: * Problem Description: LUN Related data is not present in VI Client using Qlogic vCenter Plug-in. * Solution: If LUN 0 is not present, driver needs to create a dummy LUN. * Problem Description: Internal loopback operations fail when loop is down. * Solution: No need to check the loop status when performing internal loopback operations. * Problem Description: PSOD when trying to discover Adapters using Qlogic CIM Adapter Provider. * Solution: In case the scsi command is generated by the driver, driver should not use the second level LunID API. Between versions 2.1.8.0 and 2.1.9.0: * Problem Description: Driver did not update VP count during ISP Abort. * Solution: Update VP count every time ISP abort happens. * Improvement: While enabling Fabric QoS, removing the check for QoS support target. Between versions 2.1.9.0 and 2.1.10.0: * Problem Description: Not able to save certain HBA Parameters using the Qlogic vCenter Plug-in. * Solution: Correct operating mode in case of a Point to Point mode. * Improvement: For ISP27xx use the request/response queue index shadow registers to avoid directly accessing them on the PCI bus. * Problem Description: Fabric QoS feature is disabled by default. * Solution: Enable the Fabric QoS feature by passing correct attributes to the firmware. Between versions 2.1.10.0 and 2.1.11.0: * Problem Description: For QLA27XX firmware dump collected did not contain complete valid information. * Solution: Correct processing of the FW dump template. * Improvement: For QLA27XX disabling the interrupt handshaking by default. * Problem Description: 32G port speed missing from FC attributes. * Solution: Adding 32G FC port speed in the FC attributes. * Problem Description: For QLA27XX Beacon feature is not working. * Solution: Correct the beacon feature for QLA27XX adapter. * Improvement: For QLA27XX, added FCP Priority Data support. * Improvement: For QLA27XX, correcting procedure for chip reset. * Improvement: For QLA27XX, call get FW version mbx command in case of ISP Abort. * Improvement: For QLA27XX, various interrupt related enhancements. * Improvement: For QLA27XX, display additional information in vmkMgmgt key value pair. * Problem Description: For QLA27XX, various features for vmkMgmt interface was not working. * Solution: Enabling all ioctl interface features for QLA27XX adapters. * Problem Description: For QLA27XX, BB credit setting in the NVRAM was not being used. * Solution: Honor the BB credit setting in the NVRAM. * Improvement: For QLA27XX, remove excessive logging during FW Dump Template routine. Between versions 2.1.11.0 and 2.1.12.0: * Problem Description: For QLA27XX, beacon and QoS features are not working. * Solution: Add QLA27XX check in update_beacon path and Provide QoS vender as QLogic for noentry. * Problem Description: During Chip reset CPU lockup causes PSOD. * Solution: Remove busy wait while holding a spinlock. Between versions 2.1.12.0 and 2.1.13.0: * Improvement : Adding FSC related Port Attributes for RPA and RPRT services. * Improvement: For QLA27XX, allocate one FW dump buffer. This would considerably decrease the demand for heap. * Improvement: OEM Specific T10 DIF support. * Problem Description: PSOD while HBA initialization fails. * Solution: Properly check for invalid pointers during clean up. Between versions 2.1.13.0 and 2.1.14.0: * Improvement: Fix various issues with attributes related to RPA and RPRT. * Problem Description: System PSOD After QMI2672 Flash in ESXi6.0. * Solution: IO's generated via IOCTL interface should use the normal IO path and not the T10 DIF IO path. * Improvement: For QLA27XX, adding support for T10 DIF. Between versions 2.1.14.0 and 2.1.15.0: * None Between versions 2.1.15.0 and 2.1.16.0: * Improvement: Implemented the OEM Specific RDP support. * Problem Description: OEM Specific RHBA is getting rejected. * Solution: Fill default values to attributes in RHBA. Between versions 2.1.16.0 and 2.1.17.0: * Problem Description: PSOD while starting VM with NPIV enabled. * Solution: Disable the Vendor unique T10 Dif support. Between versions 2.1.17.0 and 2.1.18.0: * Problem Description: PSOD while testing loopback test. * Solution: Correctly decrement the reference counter. * Improvement: Display status of FEC feature in proc entry information. * Improvement: Renaming RPA/RPRT parameters. * Improvement: Adding SFP/SFP+ bit support in the RDP Response. * Problem Description: Incorrect Fabric portname and Fabric nodename in the RDP response. * Solution: Get the Fabric portname and nodename, from the switch before sending the RDP response. * Problem Description: Diagnostic Loopback failed with command error. * Solution: Do ISP reset when driver get command error with MBX[1] =17h for Diagnostic loopback for all adapter. * Problem Description: Checking failure of memory allocation in RDP Response handling. * Solution: Gracefully handle the failure to allocate memory while preparing the RDP response frame. * Improvement: Assign default values to RHBA attributes. * Problem Description: PSOD occurred during normal testing in inquiry snoop function when copying data from inquiry buffer. * Solution: Check scatter-gather element length before copying to local buffer as it could be greater than size of buffer. * Problem Description: PSOD while booting with pre-boot host configuration. * Solution: Correcting the initialization of global vha list. Also, disabling pre-boot host configuration. Between versions 2.1.18.0 and 2.1.19.0: * Improvement: Allocate correct size of global dump buffer for Baker adapters. * Problem Description: Pre-boot NPIV is not working. * Solution: Implement end to end pre-boot NPIV. Between versions 2.1.19.0 and 2.1.20.0: * Improvement: OEM Specific SAN feature is only for ISP25XX and ISP2031 adapters. * Improvement: Disable the Vendor unique T10 Dif support. Between versions 2.1.20.0 and 2.1.21.0: * Problem Description: In a NPIV environment, sometime the VM ends up in a hung state. * Solution: Properly exit the vmk World, when a related vmk status is returned. * Improvement: Enable the Vendor unique T10 Dif support. * Problem Description: Pre-boot NPIV information not showing correctly. * Solution : Store the correct vmk device per pre-boot NPIV adapter. Between versions 2.1.21.0 and 2.1.22.0: * Improvement: For QLA27XX adapter, add support for MPI version and PEP version. * Problem Description: For QLA27XX adapters, only showing 32Gb speed. * Solution: Fix the description to include the 16Gb speed as well. * Improvement: For QLA27XX adapters, add support for online flash update. Between versions 2.1.22.0 and 2.1.23.0: * Improvement: For OEM Specific T10 DIF, added support for Inquiry Data Changed UA. Between versions 2.1.23.0 and 2.1.24.0: * Problem Description: For T10 DIF, Inquiry Data Change UA not working as expected. * Description: Provide sufficient buffer for Inquiry response. Also, clear feature flag before rediscovery. Between versions 2.1.24.0 and 2.1.25.0: * Problem Description: PSOD while driver unload/load test. * Description: Disable the hardware handshake when driver is unloaded. * Improvement: Remove unnecessary vmk device checks in QuiesceDevice function. * Improvement: Setting OEM Specific SAN Security support value to 1. * Improvement: Correcting the description of CPU Affinity module parameter. * Improvement: Vendor unique T10 Dif, check response length before protection bit in Inquiry Command. * Problem Description: Continuous logging of Vendor Specific T10 DIF support messages. * Description: Putting the log messages under debug level. Between versions 2.1.25.0 and 2.1.26.0: * Problem Description: Vendor unique T10 Dif, dynamically turning off T10 Dif not working as expected. * Description: Do not use stale copy of the SCSI CDB from firmware. Between versions 2.1.26.0 and 2.1.27.0: * Problem Description: ATS miscompare check conditions were not being reported to upper layer. * Solution: Driver was interpreting the error condition as a "dropped frame" scenario and the issue was never rectified. Fix was to check for this miscompare condition before determining if it was indeed a "dropped frame". Between versions 2.1.27.0 and 2.1.28.0 * Problem Description: With certain storage array, IO's are failing with T10 DIF errors. * Solution: For T10 DIF, correctly check the vendor string while verifying if vendor specific T10 DIF is applicable. Between versions 2.1.28.0 and 2.1.29.0 * Problem Description: Omit SCSI opcode check in ATS miscompare check condition. * Solution: Omit SCSI opcode check and rely on sense key and ASC to determine if this scenario is encountered. * Improvement: IOCB-based Fabric Priority support added. * Problem Description: PSOD is encountered during chip reset. * Solution: During ISP abort procedure, cleanup all outstanding commands on all the active V-Ports. Between versions 2.1.29.0 and 2.1.30.0: * Improvement: Remove switch capability check in IOCB-base Fabric Priority feature. Between versions 2.1.30.0 and 2.1.31.0: * Improvement: Add feature for BBCredit Stats and Private stats. * Problem Description: System PSOD's when driver is unloaded. * Solution: Free firmware dump buffer only once. Between versions 2.1.31.0 and 2.1.33.0: * Problem Description: System panics while running scsi passthru traffic. * Solution: Create global dummy lun for use while executing scsi passthru commands. Between versions 2.1.33.0 and 2.1.34.0: * Problem Description: Missed 8014 async events were observed periodically during reboot test which resulted in the link state never being "ready" and targets would not get discovered. * Solution: Remove clearing of RISC interrupt during initialization. Between versions 2.1.34.0 and 2.1.35.0: * Improvement: Forcing Diagnostic Echo test to be done using ECHO ELS. Between versions 2.1.35.0 and 2.1.36.0: * Improvement: Changing FDMI Port State values in accordance with latest SNIA standards. * Problem Description: In some systems, driver fails to allocated contiguous dump memory. * Solution: For firmware dump memory, allocated memory should be physically contiguous. * Problem Description: Certain port states are not being displayed properly in user-space application. * Solution: Application needs mailbox 1 register data in user space to display correct port state. Between versions 2.1.36.0 and 2.1.37.0: * Problem Description: PSOD CPU tried to re-acquire lock hardware_lock. * Solution: From the start scsi context, driver should be calling cmd done without any lock. * Problem Description: BBCR initial value is not populated correctly. * Solution: Read from the correct location in the report ID acquisition IOCB. Between versions 2.1.37.0 and 2.1.38.0: * Improvement: Reverting the "Forcing Diagnostic Echo test to be done using ECHO ELS". Between versions 2.1.38.0 and 2.1.39.0: * Improvement: Reverting the "ESXOPNATIVEFC-5: PSOD CPU tried to re-acquire lock hardware_lock". Between versions 2.1.39.0 and 2.1.40.0: * Problem Description: ER138356: ESX6.0 IOVP DDV testing fails with PSOD. * Solution: Added memory allocation checks. Use correct vmk API's while using vmk_Name. Between versions 2.1.40.0 and 2.1.41.0: * Problem Description: For Baker adapter, when link speed is 32G, port speed is being displayed as unknown. * Solution: Correctly display the port speed for the baker adapter. * Problem Description: System Panics while performing HBA failover test. * Solution: Check the return status of memory allocation. Also made the change to the fw dump heap, changing it to type "simple". Between versions 2.1.41.0 and 2.1.42.0: * Problem Description: System panic with 8G FC HBA; driver used un-initialized parameter during vmk_PCIMapIOResource function. It leads qlnativefc driver FW failure during system bootup. * Solution: Use initialized parameters while calling vmk_PCIMapIOResource. * Problem Description: PSOD is observed while running IO. * Solution: Defer calling cmd done in a workqueue. * Problem Description: PSOD due to IOMMU fault due to driver not checking the failure case when memory allocation failed.. * Solution: Check the return status for all memory allocation point. * Problem Description: OEM specific Smart SAN fixes. * Solution: Found during testing. * Problem Description: PSOD encountered when enabling T10 DIF operation on Baker adapters. * Solution: Special slabs used for Command CRC_2 IOCBs were not getting created at start of day due to incorrect isp_ops function pointer. * Problem Description: A PSOD is encountered when an 8070h AEN indicating temperature of adapter has passed threshold value. * Solution: Release hw spinlock before calling reset_adapter as the function assumes lock will not be held. * Improvement: Added three new SmartSAN RDP Descriptors Between versions 2.1.42.0 and 2.1.43.0: * Problem Description: T10 DIF is not working for Qlipper and Baker adapters. * Solution: Enable T10 DIF support for Qlipper and Baker adapters. Between versions 2.1.43.0 and 2.1.44.0: * Problem Description: Code improvement. * Solution: Change source files to support BSD license. * Problem Description: Smart SAN 2.0 needed. * Solution: Various SmartSAN 2 improvements * Problem Description: B2B credit not correctly passed in the RDP Response. * Solution: Get the B2B credit from firmware before placing it in the RDP Response. * Problem Description: When VP decoupling enabled, there could be a window where, FLOGI from initiators can be dropped before VP0 is enabled, causing link level recovery. * Solution: Retry FLOGI to avoid link level recovery. Set regardless of topology for now. * Problem Description: Code improvement. * Solution: Various fixes found at VMware during vSphere 2016 inbox testing. Between versions 2.1.44.0 and 2.1.45.0: * Improvement: Add support/interface for DPORT. * Improvement: Add support/interface for statistics reset. * Problem Description: DPORT enable is hard-coded. * Solution: Remove the hard-coding and let the nvram do the enable. Between versions 2.1.45.0 and 2.1.46.0: * Improvement: Return correct sense data error to vmkernel when sense data buffer not available * Problem Description: BBCR enable bit and value adjustment through VI Plugin was not taking effect after reboot. * Solution: Get Adapter ID mailbox command function was failing to read the Mailbox 15 output and so BBCR values were always returned as zero from this function. Fix was to set the Mailbox 15 value in the bit mask before execution. Between versions 2.1.46.0 and 2.1.47.0 Problem Description: RDP Optical Product Data Descriptor field 'revision' was incorrect (zeros), it was being read from the wrong sfp offset (36, 37) and in wrong endianess. Solution: Read the OPDD revision from correct sfp offset (38, 39) in correct endianess. Problem: RDP Optical Product Data Descriptor field 'revision' has been redefined in FC-LS. Solution: Redefine the Revision field in the OPDD structure, and rework its access method. Between versions 2.1.47.0 and 2.1.48.0 Problem Description: VVOL support was not working properly when T10 DIF was enabled. Solution: Correctly populate Second Level LUN ID info in T10 DIF I/O path. Problem Description: Driver correctly writes the ELS opcode 0x18 to the opcode field in the ELS iocb, but due to an incorrect BUG check in earlier FW (8.02.51), the FW sets the OXID of the RDP response to 0xFFFF. Solution: Since the customer cannot/willnot change their FW, the driver will write zero to the opcode field in the ELS iocb, this causes the FW to bypass the incorrect BUG check and apply the correct OXID. Between versions 2.1.48.0 and 2.1.49.0 Problem Description: Baker/Qlipper based adapters showed a generic description that did not differentiate QLE names and link speeds in vSphere GUI and lspci output. Solution: Add entries in qlnativefc_devices.py to distinguish Baker/Qlipper based adapters. Minor improvement: Print message where sense data buffer is zero in verbose logging mode only. Problem Description: Require LR Distance support for 27xx. Solution: Copy LR distance from nvram to Execute Firmware MBC. Problem Description: FDMI and RDP data show incorrect supported speeds for 16G 27xx boards. Solution: Check the fw ability and set the FDMI/RDP supported speeds correctly. Problem Description: Driver cannot receive RDP request for 27xx cards. Solution: Include 27xx in RDP purex driver intercept. Problem Description: BOOT BIOS STATE FDMI parameter can't be obtained and is optional anyway. Solution: Remove this parameter from FDMI RHBA registration. Between versions 2.1.49.0 and 2.1.50.0 Problem Description: RHBA was getting rejected by the switch due to incorrect attribute count. Solution: Dynamically calculate attribute count rather than hard code value in header file. Problem Description: qla2xenablesmartsan module parameter wasn't showing up in vmkmgmt module query. Solution: Added to GetDriverInfo display. Between versions 2.1.50.0 and 2.1.51.0 Problem Description: Debug print statements in vmkmgmt path had compile errors. Solution: Fixed the statements to compile. Improvement: Removed uncessary log messages for RDP path and put the rest under DEBUG2 check. Also, fixed tabbing in purex IOCB handling function. Between version 2.1.51.0 and 2.1.52.0 Problem Description; ESXi host is not responding when more than 8 guest shut down at the same time with NPIV ports enabled. Solution: System call made by driver to destroy world during vport deletion would sleep causing the vport delete world to hang in some circumstances. Avoid system call that could sleep and use a signaling mechanism from destroyed world to vport delete world. Also, added fix to avoid PSOD when traversing vport list in this code path, exposed with the initial fix. Problem Description: PSOD encountered after enabling NPIV with VMID enabled. Solution: Create hash table to store VMIDs for NPIV ports. Also, make workqueue for Application Services part of the ha structure. Problem Description: Description in ql2xvmidsupport module parameter was incorrect. Solution: Description for ql2xvmidsupport module parameter incorrectly showed that VMID was enabled by default. Fixed to show the default as disabled. Between version 2.1.52.0 and 2.1.53.0 Problem Description: qlnativefcScsiDone worlds will show up as null in ps command output Solution: Use correct char array when naming ScsiDone worlds Problem Description: Value of ql2xfwloadbin had been changed inadvertently in previous patch. Solution: Change back to default of 0. Problem Description: The driver would not verify the validity of the VMID returned by the application server, allowing the use of reserved values. Solution: Do a range check on the VMID returned and retry RAPP_IDENT up to 10 times if VMID provided is in the reserved range (0x0-0x1f). NOTE: 0 returned by application server is considered a reject. Problem Description: Driver is observed to be sending out a DAPP_IDENT CT frame while I/O is running. Solution: Due to some quirks in the system clock cycles API, driver needs to ensure 2 clock cycles difference is a non-negative number before determining if the timer has expired. Problem Description: The vmkmgmt VMID info was shown indicating time since last I/O even though the link was down due to switchport disabled. Solution: Do not show potentially stale VMID info when the link state is down. Problem Description: QCC CLI from ESX 5.5 and 6 display wrong MPI firmware version Solution: When calling About FW Mailbox Command for 27xx based adapters, ensure that Mailbox 10 is included in the read output. Between version 2.1.53.0 and 2.1.54.0 Problem Description: ATS miscompare messages can sometimes happen frequently enough to flood logs with this message. Solution: Move ATS miscompare messages to be shown only when enabling ql2xextended_error_logging. Problem Description: The current vendor unique T10 DIF solution determined support only at the target level. Solution: For next phase of feature, implemented support for vendor unique T10 DIF to be tracked at the LUN level Between version 2.1.54.0 and 2.1.55.0 Problem Description: PSOD occurs during management I/O completion handling by vmkernel. Solution: I/O that originated from management interface was incorrectly returned to vmkernel which had no reference to it. Fix was to check for internally generated I/O flag before completing I/O or not to upper layers. Between version 2.1.55.0 and 2.1.56.0 Problem Description: T10 DIF I/O would take a 60 seconds to time out in a particular customer configuration when doing ISL breaks. Solution: The driver was not setting the firmware internal timer as had been done with normal I/O. Fix was to now set this time out value. Between version 2.1.56.0 and 2.1.57.0 Problem Description: Unload of driver would fail with "Non-empty heap (qlnativefc-gen) being destroyed". Solution: Properly clean up VMID and P3P resources in detach function. Problem Description: FDMI2 interface on the switch was not reporting the correct hostname from our adapters. Solution: Obtain correct hostname from vmk_ConfigParamGetString API and populate the FDMI2 RPA command with that value. Between version 2.1.57.0 and 2.1.59.0 Problem Description: PSOD during unload/load testing Solution: Check UNLOADING flag and DEATH_PENDING check before executing DPC function. Problem Description: Dereference of sp after its memory is freed may cause crash. Solution: Do the dereference before freeing the sp. Problem Description: Driver is selecting to run LB rather than echo for F_Port. Solution: Move the parentheses in the vmkmgmt if logic; this steers execution of MBC 0x44 and not MBC 0x45. Also, allow MBC 0x44 to set the options word into MB1; this is required with the CLI change of setting bit15 in req->Options for executing ELS ECHO (via MBC 0x44). Problem Description: AEN8200 should not be processed for FC cards. Solution: Place a conditional in front of AEN8200 processing code. Problem Description: If the SNS fabric login failed at all, it would not be retried. Solution: Check both the function return value and the MBC completion for failure, and if either have failed return the function return value, this causes the DPC to retry this login. Problem Description: When MBC fails, the first 4 MB register contents are printed regardless of the incoming MB register bitmask (i.e. so some of the registers were not read, so their residual data is printed, leading to mis-diagnosis of the MBC failure). Solution: Print the first 4 of the MB registers in the incoming MB register bitmask. Problem Description: If switch domain controller continuously tries to login, there exists a window where driver database and firmware database can go out of sync causing fabric discovery failure, and the login retry count is exhausted. Solutuon: Increase the login retry count to original value of 30. Between version 2.1.59.0 and 2.1.60.0 None Between version 2.1.60.0 and 2.1.61.0 Problem Description: The driver fails to report minimum speeds correctly for Baker and Qlipper based adapters. Solution: In vmkmgmt interface callback, report minimum speeds based on NVRAM values. Problem Description: ECHO ELS test using QCC CLI was failing with invalid WWPN status. Solution: Allow 0xfffffd and 0xfffffe port ids to send ELS passthrough commands. Between version 2.1.61.0 and 2.1.62.0 None Between version 2.1.62.0 and 2.1.63.0 Problem Description: PSOD occurs when NPIV port configured with VMID support enabled. Solution: Removed old ifdefs that were preventing NPIV code path to initalize VMID support structures properly. Between version 2.1.63.0 and 2.1.64.0 Problem Description: Relogin is being triggered too fast. Solution: The relogin process suppose to be spaced apart by 1 second. The relogin process is being driven by on the DPC thread. The DPC thread is overloaded with many jobs. Because of the multiple jobs, the relogin is triggered to relogin too fast. Between version 2.1.64.0 and 2.1.65.0 Problem Description: Login failures would get retried indefinitely due to the reset of the login retry count. Solution: Don't reset login retry count for the fcport upon login failure Between versions 2.1.65.0 and 2.1.66.0: Problem Description: Inquiry response snooping does not take into account the possiblity of multiple scatte gatther elements. Solution: Get entire command length before copying to local buffer. Also, pre-allocate temp buffer at start of day to avoid possible stack issues. Problem Description: Driver fails during fast reboot testing. Solution: Various fixes addressed to help with detach, unload execution. Between versions 2.1.66.0 and 2.1.67.0: Problem Description: Improvements Solution: Various Mach-related fixes uncovered during testing. Problem Description: Failing during unload testing for ESX 6.7 Solution: Proper cleanup during detach function. Between versions 2.1.67.0 and 2.1.68.0: Problem Description: Issue with Mach adapter fw dump Solution: Fix firmware dump template entry to not insert extra dword of info. Between versions 2.1.68.0 and 2.1.69.0: Problem Description: Secure flash requires that the driver only writes to flash through MB Cmds for Qlipper and newer adapters. Solution: Patch up holes in write flash routine that could cause the driver to use register access. Problem Description: Driver was advertising Application Services support in the RFT_ID command regardless if enabled or not. Solution: Only enable Application Services if ql2xvmidsupport is turned on. Problem Description: Target devices are temporariry not accessible when the link toggle occurs on one of the target device paths. Solution: Clear the "login needed" bit when the initial login attempt fails. This login will get retried in the relogin dpc call. This prevents target ports remaining in a "login needed" state despite disappearing from the fabric entirely. Problem Description: Driver was not handling ABTS received IOCB in response to a PUREX IOCB failure. Solution: Code was implemented to handle ABTS received. Problem Description: Driver would not send the full RDP response with a switch port that was not in the logged in state. Solution: Remove the limitation as the new firmware now supports splitting up the RDP response payload over multiple frames This will be based on a check of the supported firmware versions. Problem Description: Code improvement. Solution: Move ql2xvmidsupport check to module_init routine Problem Description: VMID information was not getting displayed for the NPIV key value in the vmkmgmt interface. Solution: Added VMID information to NPIV vmkmgmt output Problem Description: Code improvement Solution: DPORT improvement - return mb1 and mb2 contents after execution. Also added more info in DPORT AEN messages. Problem Description: ESX 6.7 IOVP DDV testing was failing. Solution: Use proper cleanup of driver resources in error paths Between versions 2.1.69.0 and 2.1.70.0: Problem Description: Flash writes were failing. Solution: Ensure dword count and byte count were used correctly in flash write routine. Between versions 2.1.70.0 and 2.1.71.0: Problem Description: Driver read incorrectly from flash for E2E QoS values, leading to invalid table readings and disabling of feature. Solution: Pass in byte count instead of dword count to flash read function. Problem Descriptoin: RDP response payload was not formatted correctly, leading to missing contents or response frame not transmitted. Solution: Properly populate link services attribute and implement correct check of firmware version and login state when building payload. Problem Description: Driver was advertising 1G speed support for 8G adapters. Solution: Remove 1G speed support for 8G adapters. Also, cleaned up supported speed code for various features and adapters. Problem Description: FDMI info showing incorrect supported speeds for 16G mezz adapters in FDMI. Solution Remove 4G supported speed if NVRAM parameter indicates to do so. Between versions 2.1.71.0 and 2.1.72.0: None Between versions 2.1.72.0 and 2.1.73.0: Problem Description: When E2E QoS solution was disabled on a LUN, driver was still populating the priority field in the CS_CTL for I/O to that LUN. Solution: Don't fall back to standard fabric priority QoS unless the fabric priority bit in the NVRAM is set. Between versions 2.1.73.0 and 2.1.74.0: Problem Description: qlnativefc driver would fail to load on a system with NPAR enabled on NIC adapter. Solution: Dump callback registration has a hard limit of 40 (ESX limit), so on a system with many adapters/functions registering a callback, this call could fail. Solution was to treat a failed dump callback registration as non-fatal and continue with driver load. Between versions 2.1.74.0 and 2.1.75.0: Problem Description: New compiler in ESX engineering drop uncovered coding issues Solution: Fix existent coding issues uncovered. Problem Description: Code inspection - driver was ignoring potential retry delay returned in FCP Response frame from target. Solution: Handle retry delay by returning VMK_SCSI_HOST_RETRY for specified time. Problem Description: FDMI info registered on switch was inconsistent across different OSes. Solution: Sync up information registered to switch for FDMI across all drivers. Problem Description: Errors encountered during DDV testing. Solution: Fix issues uncovered during DDV inbox testing at VMware. Improvement: Cleanup various log messages Problem Description: Set Params mailbox command was failing during initialization. Solution: Only send CS_CTL map info using Set Params MB Cmd when GFO successful. Problem Description: Flash access was failing during Mach adapter bring-up Solution: Flash access routines were converting flash addresses incorrectly. Problem Description: Problems with Mach bring-up with new flash signature. Description: Add check for new Mach flash signature during initialization Problem Description: Targets would fail to get logged into if a target on the fabric list sent a REJECT for a given login. Solution: Continue with the logins in the scan loop despite seeing a login failure Between versions 2.1.75.0 and 2.1.76.0: Problem Description: Certain HBAs full marketing name was being trucated when executing the "esxcli storage san fc list" command. Solution: Copy over full contents of VPD product description field to API. Between versions 2.1.76.0 and 2.1.77.0: Problem Description: Fabric Discovery could take a long time, which could result in path loss or in the case of NPIV, vports could not get created. Solution: GFO sent to an unsupported switch would take 20 seconds to timeout. Fix was to send the GFO command in a separate thread then the fabric discovery. Problem Description: A management application doing periodic small reads of flash would cause the system to experience I/O failures with "RETRY" status. Solution: Eliminate the code to block I/O during small read operations of the flash. This code is no longer needed. Between versions 2.1.77.0 and 2.1.78.0: Code improvement: Turn on ql2xattemptdumponpanic module parameter by default. Code improvement: Remove uncessary RISC parity disable/enable sequence during ISP abort - only needed on obsoleted adapters. Problem Description: Incorrect supported speeds were being reported by driver on Mach adapter. Solution: Correctly interpret supported speeds returned by FW after execution. Problem Description: FW dump template entry T262 was showing "bad range" in the logs. Solution: If start and end address are equal, this is a valid dump entry. Problem Description: NPIV port creation would fail with "Physical uid does not match VPORT uid, NPIV Disabled for this VM" Solution: Ensure the target ID assigned to the WWPN on the physical port is the same on the NPIV port. Between versions 2.1.78.0 and 2.1.79.0: Code improvement: Various log messages improvement. Problem Description: PSOD observed while running DDV test Solution: Check for NULL pointer during memory alloc call before using buffer. Between versions 2.1.79.0 and 2.1.80.0: Problem Description: Fabric registrations were not taking place with Fabric Priority support enabled. Solution: Don't unecessrily clear REGISTER_FC4_NEEDED flag in fabric scan code Problem Description: Hazard C16 test was failing with input/output error. Solution: Virtual Reset code needs to abort all I/Os on a given world, whereas the old code would stop searching for outstanding I/O in the event of one abort failure. Fix was to not exit I/O loop until all oustanding I/O have had an abort attempt. Problem Description: Dell-EMC VMAX/PMAX setup would not report any LUNs Solution: Omit check for same domain and area as adapter's during "local loop" device discovery Between versions 2.1.80.0 and 2.1.81.0: Code Review: Add brackets missing for secondary VPD location assignment. Problem Description: If ql2xattemptdumponpanic is set and dump partition is on SAN LUN, saving off of coredump during PSOD will fail Solution: Reset and re-init adapter after FW dump attempt so paths to LUNS come back online. Set ql2xattemptdumponpanic to default to 0 as well. Between versions 2.1.81.0 and 2.1.82.0: Problem Description: PSOD observed during NPIV failover testing. Solution: scsiDoneList only initialized and used in the base vha, so fix was to ensure the cmd done code path used the base vha scsiDoneList Problem Description: Incorrect supported speed values were being reported in management app. Solution: Return correct supported speed bit map values in vmkmgt interface Problem Description: FW dump callback was only saving off one 27xx/28xx dump Solution: Improve dump callback logic to save off and/or take fw dumps on all adapters available. Between versions 2.1.82.0 and 2.1.83.0: Problem Description: Flash update failing on Mach adapter Solution: Fix non-secure flash updates on Mach. Also, improved the code to handle multiple chunks for a FW update. Added support for MPI and PEP FW updates. Problem Description: Loss of paths when target sends ASC/ASCQ of 0x3F/0x3 (Inquiry Data has changed) Solution: Vendor unique T10 DIF code existed to intercept this status and handle the change internally, however it was not within a check to see if LUN supported this feature or not. Fix was to put this handling within the T10 DIF supported code path only. Problem Description: Sending SCSI pass thru commands to an NPIV port was failing Solution: Correctly pass in NPIV vha structure to pass thru function, instead of the base vha which would not have the corret vport index to pass to firmware. Between versions 2.1.83.0 and 2.1.84.0: Problem Description: Secure Flash Update MB Cmd was failing during testing with operational firmware. Solution: Driver was passing down incorrect SFUB length in bytes - should be in DWORD count. Problem Description: Code improvement Solution: Secure adapter and fw support displayed in vmkmgmt interface Problem Description: Code improvement Solution: Correctly indicate default values for module parameter Between versions 2.1.84.0 and 2.1.85.0: Problem Description: DDV testing for vSphere next inbox was failing. Solution: Re-work some of the memory cleanup in different failure paths to avoid driver reload issues during DDV testing. Problem Description: Driver vmkmgmt shows the VMID info under the NPIV section, when NPIV is not enabled. Solution: This info was reprinted in the NPIV section unecessarily, already produced in the HBA section, so it was removed. Problem Description: Various issues introduced Simplified Fabric Discovery support. Solution: Fixed VMID, application and unload issues introduced with this new feature. Between versions 2.1.85.0 and 2.1.86.0: Problem Description: ql2xt10difvendor was disabled and associated with ql2xenablesmartsan Solution: Re-enable ql2xt10difvendor and separate the two features out.a Problem Description: During ESX 6.7U2 beta testing, a PSOD was encounterd during driver load. Solution: Recent changes for Simplified Fabric Discovery introduced deferred work threads to handle further IOCB processing after interrupts. workLock protected the deferred work list and posting however the hardwareLock with the same lock rank could be held at the same time. Solution was to lower the workLock rank below that of the hardwareLock. Between versions 2.1.86.0 and 2.1.87.0: Problem Description: PSODs during ESX 6.5 U2 BETA testing. Solution: Adjust spinlock usage and ranking for locks introduced for Simplified Fabric Discovery feature. Between versions 2.1.87.0 and 2.1.88.0: Problem Description: zdump fails to get saved off on BFS configuration Solution: Properly initialize code to execute I/O for dump callback - this was was missing due to new logic introduced with Simplified Fabric Discovery Problem Description: PSODs encountered during open zone testing and utilizing NPIV. Solution: Various improvments and fixes to Simplified Fabric Discovery handling when NPIV is enabled. Problem Description: DDV testing failure encountered during VMWare inbox driver testing Solution: Memory cleanup fix in the IOCTL memory alloc logic Problem Description: 'show fdmiƒ_T command does not list ƒ_oOS Name and Versionƒ__ and "CT Payload Length" field on Cisco switches Solution: Added "OS Name and Version" and "CT Payload Length" attributes to original FDMI implementation. Between versions 2.1.88.0 and 2.1.89.0: Problem Descrption: System would PSOD during driver unload/load testing. Solution: Release hardware lock before vmk_WorldYield calls in fw dump rouintes. Problem Description: I/O were not getting completed properly when FW would fail an IOCB with invalid entry status. This lead to continous aborts observed. Solution: Populate handle field in srb when command is submitted to firmware. Problem Description: ISL cable pulls were resulting in path loss and PSODs. Solution: RSCN handling logic made the same regardless of type. The code to handle domain change was old and removed with this fix. Between versions 2.1.89.0 and 2.1.90.0: Proble Description: During ISL disable/enable testing, some target ports not coming back online Solution: Handle Port Down I/O status so that the discovery state gets set to DELETED. Problem Description: PSOD occurs during ISL disable/enable testing. Solution: When cleaning up I/O, don't decrement refcount twice. Between versions 2.1.90.0 and 2.1.91.0: Proble Description: Code improvement Solution: Unecessary sp free call made in GPNFT done path Problme Description: Code improvement Solution: Print out all mailboxes up to 7 for AEN 8002 per FW team's request Problem Description: Code Improvement Solution: Cleanup pDIF log messages Problem Description: Used fc-esxcli version 1.0.20 to check negotiated PCI width and speed for the FC adapters but it is not displayed. Same is true with VI plugin. Solution: Return 16-bit value for PCIe Link Status register. Previous code was returning a 32-bit value and shifting the PCIe width and speed values up 16 bits. Problem Description: PSOD encountered during open zone testing with cable pulls and I/O. Solution: Initialization of work item for simplified fabric discovery needs to be done at the time of allocation, not each time a work item is queued. This could lead to link lists being broken. Problem Description: Driver lock-ups could occur with MPI heartbeat stop async event Solution For MPI heartbeat stop async event, this patch would capture MPI FW dump and chip reset. FW will tell which function to capture FW dump. Also, added handling for timeout occuring during fw dump where the dump procedure would be shortened Problem Description: Flash update failures can occur on single port 28XX adapters. Solution: For single port 28XX adapter, the second core can still runs in the back ground. The flash semaphore can be held by the non-active core. This patch tell MPI FW to check for this case and clear the semaphore from the non-active core. Problem Description: Code Improvement Solution: Added MPI dump handling when firmware panic occurs Problem Description: FDMI 2 RHBA command was getting rejected by the switch. Solution: Correctly formwat version strings in attribute list. Also, bring formatting inline with other OS drivers. Problem Description: GetActiveRegions API not supported on Baker/Qlipper Solution: Added support for this API call Between versions 2.1.91.0 and 2.1.92.0: Problem Description: PSOD occurs during flash update with multi-queue disabled. Solution: Only execute qpair code logic in ISP abort handler if mq is enabled. Problem Descrption: PSOD occurs during Boot From SAN (BFS) and RSCN storm testing Solution: SRB timer code was not being canceled correctly if still active during driver shutdown Problem Description: PSOD occurs during VMID and VVOL testing Solution: gblDsdList for Command Type 6 IOCBs was not fully protected during command processing Between versions 2.1.92.0 and 2.1.93.0: Problem Description: DDV tests during IOVP were failing Solution: Various fixes and improvments to the driver detach routine as well as memory allocation failure paths. Problem Description: FW Dump on PSOD was failing when ql2xattemptdumponpanic was set. Solution: Don't do an ISP abort after fw dump. Between versions 2.1.93.0 and 2.1.94.0: Problem Description: On systems with ql2xmqcpuaffinity disabled OR if the number of NUMA nodes is 1, a PSOD could occur during command processing. Solution: Properly initialize qpair pointer when ql2xcpuaffinity is not enabled in the command submission path. Between versions 2.1.94.0 and 2.1.95.0: Problem Description: Target remained OFFLINE during port toggle testing after a FW panic (8002). Solution: During target session deletion, set FCF_ASYNC_SENT flag to prevent other session management commands from being executed. Also, other improvements to the fcport deletion state handling. ER146424 Problem Description: I/O errors were seen when driver encountered a FW panic. Solution: Properly clean up outstanding I/O and populate with correct host status when aborted during 8002 Async Event processing. ER146425 Problem Description: vmkmgmt output was showing incorrect number of response queues when multi-queue was disabled Solution: Calculate proper response queue count to display; also show CPU affinity disabled/enabled. ER146367 Problem Description: Hilda mezz adapters showed incorrect supported speeds Solution: Do runtime check for Synergy Quartz mezz card - show only 16G supported speed. ER146323 Problem Description: Mach adapter driver strings showed 64G FC in qlnativefc_devices.py file. Solution: Base string off of subsystem device ID for better clarity and improve generic Mach string to show 32G/64G support. ER146372 Between versions 2.1.95.0 and 2.1.96.0: Problem Description: PSOD was seen during testing on blade servers with 8G and Hilda adapters Solution: Removed reads from request queue in pointers during normal operation. Also, correctly initialize request queue in pointer address during non multi-queue operation. ER146525 Problem Description: PSOD during driver load on one NUMA node server. Solution: Do not attempt to set fw_started bit on qpairs using the queue pair map if it hasn't bee allocated. ER146639 2. Known Issues * Setting ql2xattemptdumponpanic=1 not supported if dump partition is on SAN 3. Notices Information furnished in this document is believed to be accurate and reliable. However, Cavium, Inc. assumes no responsibility for its use, nor for any infringements of patents or other rights of third parties which may result from its use. Cavium, Inc. reserves the right to change product specifications at any time without notice. Applications described in this document for any of these products are only for illustrative purposes. Cavium, Inc. makes no representation nor warranty that such applications are suitable for the specified use without further testing or modification. Cavium, Inc. assumes no responsibility for any errors that may appear in this document. 4. Contacting Support For further assistance, contact QLogic Technical Support at: http://support.qlogic.com Trademarks Accelera, Accelerating Cluster Performance, InfiniCon Systems, InfiniNIC, InfiniPath, InfiniView, QLA, QLogic, the QLogic logo, ReadyPath, SANdoctor, SANsurfer, and SilverStorm are registered trademarks of QLogic Corporation. All other brand and product names are trademarks or registered trademarks of their respective owners. (c) Copyright 2019. All rights reserved worldwide. Cavium, Inc, the Cavium logo, and the Powered by Cavium logo are registered trademarks of Cavium, Inc. All other brand and product names are trademarks or registered trademarks of their respective owners.