		      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 1.1.1.0:

 * Support for 2400/2500/2600 Series Fibre Channel adapters
 * Support for 8100/8200/8300 Series Converged Network Adapters

Between versions 1.1.1.0 and 1.1.2.0:

 * None

Between versions 1.1.2.0 and 1.1.3.0:

 * 10000 series adapter support.

Between versions 1.1.3.0 and 1.1.15.0:

 * None

Between versions 1.1.15.0 and 1.1.16.0:

 * Support for 8400 Series 10Gb Converged Network Adapters

Between versions 1.1.16.0 and 1.1.20.0:

 * None.

Between versions 1.1.20.0 and 1.1.21.0:

 * Support for 2700 Series Fibre Channel Adapters

Between versions 1.1.21.0 and 1.1.26.0:

 * None.

Between versions 1.1.26.0 and 1.1.27.0:

 * Remove support for 8044 adapter. This harware will not be productised.

Between versions 1.1.27.0 and 1.1.42.0:

 * None.

Between versions 1.1.42.0 and 1.1.43.0:

 * Support for device id 0x2261. This is Dual-port 2700 Series
Fibre Channel ASIC.

Between versions 1.1.43.0 and 1.1.69.0:

 * None.

1.2 Software Components

Between versions 1.1.1.0 and 1.1.2.0:

 * VMK API Management Support for FCoE adapters

Between versions 1.1.2.0 and 1.1.3.0:

 * None

Between versions 1.1.3.0 and 1.1.4.0:

 * Built with devkit that includes fix for vibname (qlnativefc
instead of vmware-esx-qlnativefc)

Between version 1.1.4.0 and 1.1.5.0

 * 10xxx pass-thru IOCTL support.

Between version 1.1.5.0 and 1.1.6.0

 * Loopback support for all CNAs.

Between version 1.1.6.0 and 1.1.7.0

 * None.

Between version 1.1.7.0 and 1.1.8.0

 * Add BPM support for 2500 Series Fibre Channel adapters.

Between version 1.1.8.0 and 1.1.9.0

 * Update ISP24XX and ISP25XX fw to version 7.00.01

Between version 1.1.9.0 and 1.1.10.0

 * Update ISP24XX and ISP25XX fw to version 7.00.02

Between version 1.1.10.0 and 1.1.15.0

 * None.

Between version 1.1.15.0 and 1.1.16.0

 * Add 8400 series 10Gb Converged Network Adapter support.

Between version 1.1.16.0 and 1.1.17.0

 * None.

Between version 1.1.17.0 and 1.1.18.0

 * Update ISP24XX and ISP25XX fw to version 7.01.00

Between version 1.1.18.0 and 1.1.20.0

 * None.

Between versions 1.1.20.0 and 1.1.21.0:

 * Support for 2700 Series Fibre Channel Adapters

Between versions 1.1.21.0 and 1.1.22.0:

 * None.

Between versions 1.1.22.0 and 1.1.23.0:

 * Update ISP24XX and ISP25XX fw to version 7.02.00

Between versions 1.1.23.0 and 1.1.26.0:

 * None.

Between versions 1.1.26.0 and 1.1.27.0:

 * Remove support for 8400 series adapter.

Between versions 1.1.27.0 and 1.1.28.0:

 * Update ISP24XX and ISP25XX fw to version 7.03.00

Between versions 1.1.28.0 and 1.1.32.0:

 * None.

Between versions 1.1.32.0 and 1.1.33.0:

 * Update ISP24XX and ISP25XX fw to version 7.04.00

Between versions 1.1.33.0 and 1.1.51.0:

 * None.

Between versions 1.1.51.0 and 1.1.52.0:

 * Update ISP24XX and ISP25XX fw to version 8.01.02

Between versions 1.1.52.0 and 1.1.70.0:

 * None.

Between versions 1.1.70.0 and 1.1.71.0:

 * Update ISP25XX fw version to 8.02.00.

Between versions 1.1.71.0 and 1.1.77.0:

 * None.

1.3 Bug Fixes

Between versions 1.1.1.0 and 1.1.2.0:

 * None

Between versions 1.1.2.0 and 1.1.3.0:

 * Problem Description: None; Improvement:
 * Solution: It would be best to have two api interfaces
with separate signatures for maintaining the common apis and the cna specific
extension apis. This would also help us maintain a single API library which can
attach to both inbox as well as out-of-box driver.

 * Problem Description: CNA information (vlan-id, vn-port-mac-address) were not
displayed using vmkmgmt key-value pair mechanism.
 * Solution: Fix the display buffer "length" to be calculated correctly for cna
specific fields.

 * Problem Description: Get FCET dump callback would fail due to insufficient
buffer size error.
 * Solution: Fix the FCET dump size to be about 4 * FCET_SIZE i.e. 4 * 64K which
is sufficient enough to accommodate the organized fcet data buffer. Also fixed
the fcet-length calculation while building fcet buffer.

 * Problem Description: Core dump fails on SAN lun.
 * Solution: Implemented the proper handler needed for the Coredump on SAN for
QLA81XX, QLA82XX and QLA83XX.

 * Problem Description: Improvement
 * Solution: In order to have a common solution we removed "mode" field from
the hba-port callback structure. "mode" was being derived from "topology" which
was already supplied in get-hba-port. Hence it will be now handled by api and
we no longer need to provide the same from driver.

Between versions 1.1.3.0 and 1.1.4.0:

 * Problem Description: PSOD during IO's running from 4 VMs.
 * Solution: Need to protect the fclun list with a lock.

 * Problem Description: None; Improvement:
 * Solution: It would be best to have two api interfaces

 * Problem Description: QLA82XX do not receive any interrupts in legacy intx
mode. Some minor improvement in interrupt handler.
 * Solution: Checks for nx_legacy_intr.int_vec_bit and
ISR_IS_LEGACY_INTR_TRIGGERED in 1st level interrupt handler instead of 2nd level
interrupt handler. Change the name values in msix_entries from "qla2xxx" to "qlnativefc".

Between versions 1.1.4.0 and 1.1.5.0:

 * Problem Description: Hitting a psod while running vport creation/deletion.
 * Solution: Destroy the scsi_scan world before freeing the scsi adapter.
Also wait for the scsi_scan world to be destroyed.

 * Problem Description: Calling alloc_fcport function and then freeing the
fcport was not destroying the fcluns list spinlock.
 * Solution: VMware had created a qla2x00_free_fcport function for the ESX 5.5
inbox driver with the intention of properly destroying the fcluns_list_lock.
This change was brought into this patch.

 * Problem Description: In our standard log message, we use the value of
vmk_ScsiGetAdapterName which returns "Invalid" until the PSA driver is online.
Then we see vmhbaX.
 * Solution: Replaced "Invalid" with nothing when vmhba is not available.

 * Problem Description: Set Parameters MB Cmd 59h was using the mb regs method
for sending down driver version for all chip types.
 * Solution: The correct method for ISP chips is to pass down the driver
version in a host memory buffer and pass down the DMA address.

 * Problem Description: In a single CPU system, periodic PSOD and IOMMU issues
were seen
 * Solution: Make sure on a unsupported system, cpu affinity setup does not
take place. Also, clean up some of the log messages to not confuse matters.

 * Problem Description: On a rescan over 10xxx connected to a target with
a large # of LUNs, error entries are reported in the response queue.
 * Solution: Limit sg entries per IO to 128 (Mt.R's limit) Introduce mod params
for sg count and max xfer size. Cleanup abort code to use ref counts
(as qla_os.c does)

 * Problem Description: Register Host Info code review, no problem.
 * Solution: register_host_info needs to be populated with correct values.

 * Problem Description: Target lun info could not be acquired using
scsi-passthrough apis.
Solution: Correctly handle data-buffer allocations for control cmds (size=0).
Also make sure we return "success" status on passthrough cmd completion.

 * Problem Description: Previous checkin with mod params (qlfxmaxxfersize)
did not set hostMaxSectors using the mod param.
 * Solution: This checkin sets hostMaxSectors based on the mod param configured.

Between versions 1.1.5.0 and 1.1.6.0:

 * Problem Description: Firmware dump file created during a system crash
sometimes is of zero size.
 * Solution: Do not create the qlnativefc_dump file incase of no firmware dump
is collected.

 * Problem Description: Large IO support in 10xxx needs to be enabled only if f/w is
capable of supporting it.
 * Solution: Use fw attribute to determine Large IO support in 10xxx.

 * Problem Description: Code improvement
 * Solution: Add code to support MPI reset for CNA.

 * Problem Description: Code improvement
 * Solution: 1.Change debug log message to common format debug log message for
qlfx00. 2. Fixed compilation error and minor indentation changes.

 * Problem Description: P3P adapter load flash takes > 30 seconds.
 * Solution: Sleeps for 100 micros in the code path were taking 4 millis.
This was being done for every 4 bytes of data read resulting the in 30 sec duration.
Fix was to use vmk_WorldYield instead of vmk_WorldSleep.

 * Problem Description: Restart adapter resulted in targets not getting
reported. Driver startup with f/w with boot bios enabled failed.
 * Solution: AEN events were getting missed during restart adapter. Check for
timeout was incorrect after driver shutdown was issued.

 * Problem Description: 10xxx: Target links flapping results in erratic behaviour
 * Solution: Call vmk_ScsiNotifyPathStateChangeAsync after a target comes back
online. Re-use vmk_psa_tgt_id when a target comes back online.

 * Problem Description: FDMI information (host_name) on switch not being populated.
 * Solution: Populate host name using WWNN of the HBA.

 * Problem Description: P3P handling of peg halt was incorrect.
 * Solution: Set ISP ABORT NEEDED bit in dpc_flags when driver detects a
recoverable error.

Between versions 1.1.6.0 and 1.1.7.0:

 * Problem Description: PSOD during P3P peg halt testing.
 * Solution: Correctly pass the address of internal structure to vmk pci api
to prevent stack corruption.

Between versions 1.1.7.0 and 1.1.8.0:

 * Problem Description: Recursive panic while performing core dump on
SAN for Mt. Rainer.
 * Solution: Do not hold lock while executing BH Handler for core dump.

 * Problem Description: get-aen vmkMgmt API would always fail.
 * Solution: Correctly comparing the buffer size passed by application layer.

 * Problem Description: Mt. Rainer - do not re-init if f/w is already been
initialized.
 * Solution: Check pseudo-aen register to confirm if initialization is already done.

 * Problem Description: New target added into the fc zone is not getting recognized.
 * Solution: Driver should enable link up, and thus fabric resync, for Port Update
async events that are global or pertinent login state change.

 * Problem Description: Lun reset timeout would cause all subsequent lun resets
to fail.
 * Solution: Send Marker IOCB even after a timeout Lun Reset IOCB.

 * Problem Description: PSOD screen showing "DiskDUmp: Failed".
 * Solution: Return good status from dump routine and log any error messages.

 * Problem Description: Mt. Rainer - After a reboot, node name of VMware Host
not getting populated.
 * Solution: Only register host info with f/w once the system has completed
bootup process.

Between versions 1.1.8.0 and 1.1.9.0:

 * Problem Description: Seen timeout error messages while updating Boot/HBA
parameters for 82XX adapters.
 * Solution: Introduce 10 usec delay every 100 iterations before we can perform
next 'status register read' operation.

 * Problem Description: Continual ISP resets could be encountered when get loop
id fails.
Solution: To avoid continually doing ISP resets when get loop id fails to
obtain the adapter loop id, first try to do a link initialization.

 * Problem Description: Code review.
 * Solution: Add handling of 8200 async event for Hilda MCTP capable adapters.

Between versions 1.1.9.0 and 1.1.10.0:

 * Problem Description: CNA flash f/w info not being read.
 * Solution: Reading the CNA flash f/w info for both 82XX and 8031.

 * Problem Description: Driver has stale flash version after a f/w update.
 * Solution: Added new ioctl, that would enable driver to refresh the flash
version.

 * Problem Description: With P3P card, PSOD seen while running all three traffic
with FW reset and driver load/unload in parallel.
 * Solution: Only check Firmware status, only when reset required.

 * Problem Description: Changing the VLAN ID through the management app on
P3P adapters caused the FCoE link to never come up.
 * Solution: Pass the new VLAN ID to the f/w.

Between versions 1.1.10.0 and 1.1.11.0:

 * Problem Description: Encountering PSOD when ioctl cmd times out.
 * Solution: Correctly handle the timing logic during the execution of ioctl.

Between versions 1.1.11.0 and 1.1.12.0:

 * Problem Description: Duplicate target entries would remain after long run of
switch port toggle test.
 * Solution: In case of SNS discovery failure, bailout and fallback to GA_NXT
method of target discovery.

 * Problem Description: Serdes operation support for QLA2031.
 * Solution: Add interface for read/write serdes register.

 * Problem Description: While performing FW reset and recovery, QLA82xx fails
to restart.
 * Solution: In interrupt polling mode, only clear host interrupt status in case
of a actual event and not always.

 * Problem Description: In case of congestion in the san network, IO's from
VM would hang and VM would freeze.
 * Solution: Remove LUN queue management from driver. This is removed as scsi
layer already manages LUN queue length.

 * Problem Description: Mt. Rainer - PSOD while rebooting the server after driver installation.
 * Solution: Do a graceful exit when driver is unable to attach to Mt.
Rainer adapter.

Between versions 1.1.12.0 and 1.1.13.0:

 * Problem Description: Beaconing feature not working for 83xx adapters.
 * Solution: Correctly invoke beacon blink from dpc thread.

Between versions 1.1.13.0 and 1.1.14.0:

 * Problem Description: During FW reset testing on P3P, driver fails to rediscover
targets.
 * Solution: Correctly check if rediscovery attempt is need with LOOP_RESYNC_NEEDED
flag when re-initializing adapter.

Between versions 1.1.14.0 and 1.1.15.0:

 * Problem Description: FW Dump extraction for QLA82XX not working.
 * Solution: Send Fw Dump in chunk of 256 bytes to the application layer.

 * Problem Description: Memory leak during FW dump extraction.
 * Solution: Correctly free the memory once FW dump is complete.

 * Problem Description: Mt. Rainer - Change in warm reset procedure.
 * Solution: Update the  warm reset sequence for Qlogic 10000 adapters.

 * Problem Description: In low memory servers, could encounter PSOD.
 * Solution: Disable Extended Trace before freeing up the appropriate memory.

 * Problem Description: For QLA82XX, minidump collection fails.
 * Solution: Correctly set the mailbox registers to collect the minidump template.

 * Problem Description: PSOD while performing adapter restart on some occassions.
 * Solution: Correctly remove any unnecessary freeing of irqs and performs only
disabling and enabling of interrupts during warm reset.

 * Problem Description: In certain setups, extended buffer to buffer credits
settings might not work as expected.
 * Solution: Correctly pass the extended buffer to buffer setting to the firmware.

Between versions 1.1.15.0 and 1.1.16.0:

 * Problem:
   8044 in legacy interrupt mode would be non-functional and result in a PSOD.
 * Solution:
   Implement 8044 ack handler for legacy interrupt mechanism.

 * Improvement:
   8044: Improve fcoe function re-attach fix.
   Earlier we were re-initing fcoe from timer context which can violate
   scheduling in an interrupt context rule.
   In case of pci function forced to detach form IDC, a better way to
   comeback is to wait for f/w recovery to complete and allow fcoe re-init to
   happen within nic-core-reset dpc context.

Between versions 1.1.16.0 and 1.1.17.0:

 * Problem Description: ql2xoperationmode not getting enforced for ISP81XX, ISP25xx and
ISP83XX adapters.
 * Solution: Correctly set the zio mode setting to the f/w when
ql2xoperationmode is set to zero.

Between versions 1.1.17.0 and 1.1.18.0:

 * Problem Description: While performing IO with NPIV enabled, failure in
vmkmgmt API error messages are seen in the vmkernel log.
No functionality impact experienced.
 * Solution: Increase the debug level of the vmkapi error message.

Between versions 1.1.18.0 and 1.1.19.0:

 * Problem Description: Driver initialization would fail if NVRAM region
read fails.
 * Solution: Fall back to default nvram configuration and try to initialize
the adapter.

 * Problem Description: 8044: In certain cases, firmware dumps total size is
not being reported correctly.
 * Solution: Driver should skip any minidump template entry that driver
does not understands.

Between versions 1.1.19.0 and 1.1.20.0:

 * Improvement:
   Add support for new opcodes (RDDFE, RDMDIO, POLLWR) for QLA8044 minidump.

Between versions 1.1.20.0 and 1.1.21.0:

 * Problem Description: Driver not replying back to firmware about the IDC
ack request.
 * Solution: Correctly use the work queue in order to perform operations.

 * Problem Description: Ethernet Serdes operation support for QLA8044 adapter.
 * Solution: Add interface for read/write ethernet serdes register.

Between versions 1.1.21.0 and 1.1.22.0:

 * Improvement: Separate out the module parameter to set capture_mask
for 8400 and 8200 series adapters.

 * Problem Description: PSOD seen when repetitive "Invalid status handle"
responses is encountered.
 * Solution: Correctly initiate reset recovery when driver encounter
"Invalid status handle".

 * Problem Description: Observing spurious interrupt on ISP25XX
adapters with MSIX enabled.
 * Solution: For ISP25XX and ISP26XX continue in polling mode.

 * Problem Description: P3P and Helga adapters are not able to discover targets.
 * Solution: During init time, correctly fill the port number field.

 * Problem Description: PSOD while printing the vmk mgmt key-val pair.
 * Solution: Removing the use of a invalid/null pointer.

Between versions 1.1.22.0 and 1.1.23.0:

 * None.

Between versions 1.1.23.0 and 1.1.24.0:

 * Problem Description: For vmkmgmt_keyval information driver display wrong
FC target port list for NPIV ports.
 * Solution: Display correct FC target port list for NPIV ports.

 * Improvement: Create separate heap pool to avoid any kind of failure for
dump memory allocation.

Between versions 1.1.24.0 and 1.1.25.0:

 * Problem Description: PSOD is observed while running IO on a ISP25XX adapter.
 * Solution: In certain circumstances, driver should be scheduling the
scsi cmd done and not calling it directly.

 * Improvement: Implemented the driver unload feature.

Between versions 1.1.25.0 and 1.1.26.0:

 * Problem Description: PSOD is observed while running IO on a ISP25XX adapter.
 * Solution: After discussion with VMware, appropriate changes in the scons
files were made.

Between versions 1.1.26.0 and 1.1.27.0:

 * Problem Description: PSOD when setting the vmkmgmt value for QLE10500 adapter.
 * Solution: Make call to appropriate function based on adapter type.

 * Improvement: For ISPFX00 adapter, change in warm reset sequence.

 * Improvement: Improve FW Init code for QLE10500.

 * Improvement: Protect fcluns list for QLE10500 adapter.

Between versions 1.1.27.0 and 1.1.28.0:

 * Problem Description: FC ELS passthrough commands not working.
 * Solution: Correctly handle the ELS passthrough commands response.

 * Problem Description: In certain circumstances, System would PSOD
after running IO's.
 * Solution: Correctly handle the scenario where scsi check condition
is set and sense key is set to recovered error.

Between versions 1.1.28.0 and 1.1.29.0:

 * Improvement: Provide support for FDMI-2.

 * Improvement: Collect firmware dump in case the mailbox command times out.

 * Problem Description: For CNA adapters, FCoE context reset fails.
 * Solution: Correctly handle the FCoE context reset request from
the application.

Between versions 1.1.29.0 and 1.1.30.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 1.1.30.0 and 1.1.31.0:

 * Improvement: Added support for Fabric QoS feature.

Between versions 1.1.31.0 and 1.1.32.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 1.1.32.0 and 1.1.33.0:

 * None.

Between versions 1.1.33.0 and 1.1.34.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 1.1.34.0 and 1.1.35.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 1.1.35.0 and 1.1.36.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 1.1.36.0 and 1.1.37.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.

Between versions 1.1.37.0 and 1.1.38.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 1.1.38.0 and 1.1.39.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 1.1.39.0 and 1.1.40.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 1.1.40.0 and 1.1.41.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 1.1.41.0 and 1.1.42.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 1.1.42.0 and 1.1.43.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 1.1.43.0 and 1.1.44.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 1.1.44.0 and 1.1.45.0:

 * Problem Description: PSOD while starting VM with NPIV enabled.
 * Solution: Disable the Vendor unique T10 Dif support.

Between versions 1.1.45.0 and 1.1.46.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 1.1.46.0 and 1.1.47.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 1.1.47.0 and 1.1.48.0:

 * Improvement: OEM Specific SAN feature is only for ISP25XX and ISP2031 adapters.

 * Improvement: Disable the Vendor unique T10 Dif support.

Between versions 1.1.48.0 and 1.1.49.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 1.1.49.0 and 1.1.50.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 1.1.50.0 and 1.1.51.0:

 * Improvement: For OEM Specific T10 DIF, added support for Inquiry Data Changed UA.

Between versions 1.1.51.0 and 1.1.52.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 1.1.52.0 and 1.1.53.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 1.1.53.0 and 1.1.54.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 1.1.54.0 and 1.1.55.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 1.1.55.0 and 1.1.56.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 1.1.56.0 and 1.1.57.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 while during chip reset.
 * Solution: During ISP abort procedure, cleanup all outstanding commands
on all the active V-Ports.

Between versions 1.1.57.0 and 1.1.58.0:

 * Improvement: Remove switch capability check in IOCB-base Fabric Priority feature.

Between versions 1.1.58.0 and 1.1.59.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 1.1.59.0 and 1.1.60.0:

 * Problem Description: System panics while running scsi passthru traffic.
 * Solution: Create global dummy lun for use while executing scsi passthru
commands.

Between versions 1.1.60.0 and 1.1.61.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 1.1.61.0 and 1.1.62.0:

 * Improvement: Forcing Diagnostic Echo test to be done using ECHO ELS.

Between versions 1.1.62.0 and 1.1.63.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 1.1.63.0 and 1.1.64.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 1.1.64.0 and 1.1.65.0:

 * Improvement: Reverting the "Forcing Diagnostic Echo test to be done using ECHO ELS".

Between versions 1.1.65.0 and 1.1.66.0:

 * Improvement: Reverting the "ESXOPNATIVEFC-5: PSOD CPU tried to re-acquire
 lock hardware_lock."

Between versions 1.1.66.0 and 1.1.67.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 1.1.67.0 and 1.1.68.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 1.1.68.0 and 1.1.69.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 1.1.69.0 and 1.1.70.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 1.1.70.0 and 1.1.71.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 1.1.71.0 and 1.1.72.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 1.1.72.0 and 1.1.73.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 1.1.73.0 and 1.1.74.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 1.1.74.0 and 1.1.75.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 1.1.75.0 and 1.1.76.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 1.1.76.0 and 1.1.77.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.

    
2. Known Issues

None


3. Notices

2. Known Issues

None


3. Notices

Information furnished in this document is believed to be accurate and
reliable. However, QLogic Corporation assumes no responsibility for
its use, nor for any infringements of patents or other rights of
third parties which may result from its use. QLogic Corporation
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. QLogic Corporation
makes no representation nor warranty that such applications are
suitable for the specified use without further testing or
modification. QLogic Corporation 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 2016. All rights reserved worldwide. QLogic, the QLogic
logo, and the Powered by QLogic logo are registered trademarks of
QLogic Corporation. All other brand and product names are trademarks
or registered trademarks of their respective owners.
