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

 * Support for 2400/2500/2600/2700/2800 Series Fibre Channel adapters
 * Support for 8100/8200/8300 Series Converged Network Adapters
 * Mt. Rainier support.

Between versions 3.1.1.0 and 3.1.9.0:

 * None

Between versions 3.1.9.0 and 3.1.10.0:

* Remove support for Fabric Cache (Mt. Rainier) adapter

Between versions 3.1.10.0 and 3.1.31.0:

* None


1.2 Software Components

Between versions 3.1.1.0 and 3.1.3.0:

 * None

Between versions 3.1.3.0 and 3.1.4.0:

 * End-to-End QoS fabric priority support
 * Update ISP25XX fw version to 8.08.01.

Between versions 3.1.4.0 and 3.1.6.0:

 * None

Between versions 3.1.6.0 and 3.1.7.0:

 * Revert update ISP25XX fw version to 8.08.01.
   FW version is now back to 8.07.00

Between versions 3.1.7.0 and 3.1.10.0:

 * None

Between versions 3.1.10.0 and 3.1.11.0:

 * Update ISP25XX fw version to 8.08.01.
 * Add support for Mach Auxiliary Image Status and
suppporting flash-related functionality improvements

Between versions 3.1.11.0 and 3.1.12.0:

 * SmartSAN features disabled by default 

Between versions 3.1.12.0 and 3.1.16.0:

 * None

Between versions 3.1.16.0 and 3.1.17.0:

 * Secure flash update support for ISP28XX 

Between versions 3.1.17.0 and 3.1.18.0:

 * None
 
Between versions 3.1.18.0 and 3.1.19.0:

 * Simplified Fabric Discovery support 

Between versions 3.1.19.0 and 3.1.27.0:

 * None

Between versions 3.1.27.0 and 3.1.28.0:

 * Update ISP25XX fw to version 8.08.207

Between versions 3.1.28.0 and 3.1.29.0:

 * Revert ISP25XX fw to version 8.08.206

Between versions 3.1.29.0 and 3.1.31.0:

 * None 


1.3 Bug Fixes

Between versions 3.1.1.0 and 3.1.2.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 3.1.2.0 and 3.1.3.0:

Problem Description:
Issue with Mach adapter fw dump
Solution:
Fix firmware dump template entry to not
insert extra dword of info.

Between versions 3.1.3.0 and 3.1.4.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 3.1.4.0 and 3.1.5.0:

Problem Description:
Flash writes were failing.
Solution:
Ensure dword count and byte count were used correctly in flash write routine.

Between versions 3.1.5.0 and 3.1.6.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 3.1.6.0 and 3.1.7.0:

None 

Between versions 3.1.7.0 and 3.1.8.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 3.1.8.0 and 3.1.9.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 3.1.9.0 and 3.1.10.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 3.1.10.0 and 3.1.11.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 3.1.11.0 and 3.1.12.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 3.1.12.0 and 3.1.13.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 3.1.13.0 and 3.1.14.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 3.1.14.0 and 3.1.15.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 3.1.15.0 and 3.1.16.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 3.1.16.0 and 3.1.17.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 3.1.17.0 and 3.1.18.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 3.1.18.0 and 3.1.19.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 3.1.19.0 and 3.1.20.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 3.1.20.0 and 3.1.21.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 3.1.21.0 and 3.1.22.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 3.1.22.0 and 3.1.23.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 3.1.23.0 and 3.1.24.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 3.1.24.0 and 3.1.25.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 3.1.25.0 and 3.1.26.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 3.1.26.0 and 3.1.27.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 3.1.27.0 and 3.1.28.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 3.1.28.0 and 3.1.29.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 3.1.29.0 and 3.1.30.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 3.1.30.0 and 3.1.31.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.
