     Fibre Channel and Fibre Channel over Ethernet (FCoE) Driver
                for VMware ESXi 5.0.x Release Notes

                       QLogic Corporation
                       All rights reserved


Table of Contents

1. Version
2. Changes
3. Bug Fixes
4. History
5. Additional Information
6. Firmware
7. Trademarks
8. Notices
9. Contacting Support


1. Version

These release notes describe the changes, fixes, and release details
that apply to the Fibre Channel and Fibre Channel over Ethernet (FCoE)
driver for QLogic Fibre Channel Adapters and Converged Network Adapters
on VMware ESXi 5.0.x, version 934.5.6.0-1vmw.


2. Changes

The following changes were made to the Fibre Channel-FCoE driver
for ESXi 5.0.x between the following versions:

 * Versions 901.k1.9vmw and 911.k1.1-5vmw
 * Versions 911.k1.1-5vmw and 911.k1.1-29vmw
 * Versions 911.k1.1-29vmw and 934.5.6.0-1vmw

Hardware Support
----------------

Changes made between versions 901.k1.9vmw and 911.k1.1-5vmw:

 * Support for 8200 Series Converged Network Adapters

Changes made between versions 911.k1.1-5vmw and 911.k1.1-29vmw:

 * None

Changes made between versions 911.k1.1-29vmw and 934.5.1.0-1vmw:

 * Support for 8300 Series 16Gb FC adapters and 10Gb Converged Network Adapters

Changes made between versions 934.5.1.0-1vmw and 934.5.6.0-1vmw:

 * None


OS Support
----------
No changes.

Software Components
-------------------

Changes made between versions 901.k1.9vmw and 911.k1.1-5vmw:

 * Host side QoS basic framework.
 * Host side QoS IOCTL interface.
 * 25XX: Add support for GET_SERDES_PARAMS ioctl.
 * APEX support for handling vport targets.
 * Update ISP24XX and ISP25XX firmware to 5.03.16
 * Added support for new 82XX Series Converged Network Adapter

Changes made between versions 911.k1.1-5vmw and 911.k1.1-6vmw:

 * 81XX: Add internal loopback support.

Changes made between versions 911.k1.1-6vmw and 911.k1.1-7vmw:

 * Provide method for updating I2C attached VPD.

Changes made between versions 911.k1.1-7vmw and 911.k1.1-8vmw:

 * Update ISP24XX and ISP25XX firmware to 5.05.04
 * Added support for Little River adapter.

Changes made between versions 911.k1.1-8vmw and 911.k1.1-9vmw:

 * Update ISP24XX and ISP25XX firmware to 5.05.05

Changes made between versions 911.k1.1-9vmw and 911.k1.1-12vmw:

 * Update ISP24XX and ISP25XX firmware to 5.06.00
 * 82XX: Add Beaconing enable/disable support.
 * 82XX: Ioctl support for extracting f/w minidump.
 * 82XX: Support for taking f/w minidump.

Changes made between versions 911.k1.1-12vmw and 911.k1.1-14vmw:

 * 82XX: Add APEX support.

Changes made between versions 911.k1.1-14vmw and 911.k1.1-15vmw:
Changes made between versions 911.k1.1-15vmw and 911.k1.1-16vmw:
Changes made between versions 911.k1.1-16vmw and 911.k1.1-17vmw:

 * None

Changes made between versions 911.k1.1-17vmw and 911.k1.1-18vmw:

 * Update ISP24XX and ISP25XX firmware to 5.06.02
 * 81XX: Add APEX support.

Changes made between versions 911.k1.1-18vmw and 911.k1.1-19vmw:

 * Updated LICENSE.qla2xxx file.

Changes made between versions 911.k1.1-19vmw and 911.k1.1-20vmw:

 * None

Changes made between versions 911.k1.1-20vmw and 911.k1.1-21vmw:

 * 82XX: Remove 82xx firmware file and references to ql82xx_fw.
 * Update ISP24XX and ISP25XX firmware to 5.06.03

Changes made between versions 911.k1.1-21vmw and 911.k1.1-22vmw:

 * None

Changes made between versions 911.k1.1-22vmw and 911.k1.1-23vmw:

 * Update ISP24XX and ISP25XX firmware to 5.06.04

Changes made between versions 911.k1.1-23vmw and 911.k1.1-24vmw:

 * Update ISP24XX and ISP25XX firmware to 5.06.05

Changes made between versions 911.k1.1-24vmw and 911.k1.1-25vmw:
Changes made between versions 911.k1.1-25vmw and 911.k1.1-27vmw:
Changes made between versions 911.k1.1-27vmw and 911.k1.1-28vmw:
Changes made between versions 911.k1.1-28vmw and 911.k1.1-29vmw:

 * None

Changes made between versions 911.k1.1-29vmw and 934.5.1.0-1vmw:

 * Added support for 83XX series 16Gb FC Adapters and 10Gb Converged Network
   Adapters.
 * 83XX: Loopback support added for CNA.

Changes made between versions 934.5.1.0-1vmw and 934.5.3.0-1vmw:

 * None

Changes made between versions 934.5.3.0-1vmw and 934.5.4.0-1vmw:

 * MCTP support for Hilda FC16 adapters. 

Changes made between versions 934.5.3.0-1vmw and 934.5.6.0-1vmw:

 * None

Industry Standards Compliance
-----------------------------
Not Applicable


3. Bug Fixes

The following fixes were made to the Fibre Channel-FCoE driver for
ESXi 5.0.x between the following versions:

Bug fixes made between versions 901.k1.9vmw and 911.k1.1-5vmw:

 * Correcting debug log for fcport in device-reset handler.
 * Reduce FCP-cmd-status processing debug statements for good cases.
 * 82XX: Display hardware/firmware regs to get more information about the error.
 * 82XX: Updated the reset sequence for ISP82xx.
 * Display PortID information during FCP command-status handling.
 * Cleanup FCP-command-status processing debug statements.
 * Check for a match before attempting to set FCP-priority information.
 * Update copyright banner.
 * Correctly provide request-queue id as the MSB of the handle to abort-command.
 * 82XX: Corrected the "Flash FW version" display in proc.
 * Minor modification for cleaner debug messages.
 * Properly set tagging modifier while executing I/Os.
 * 82XX: Clear "online" flag only after waiting for pending cmds.
 * Freeing nport handle on LOGO.
 * Correctly free fcp_cmnd from fcp_cmnd_dma_pool.
 * Perform range check on luns list-length returned in REPORT LUNS response.
 * Cleanup ha from hostlist on scsi-add-host failure.
 * 82XX: Correctly propagate rom_lock timeout failure status.
 * 82XX: Handle mbx timeout condition with firmware still active.
 * Handle good underrun case.
 * Fix srb memory leak in scsi passthrough ioctl path.
 * 82XX: Fix compiler warnings.
 * 82XX: Abort pending commands for faster recovery during ISP reset.
 * 82XX: Retry device initialization in case of rom_lock failure.
 * 82XX: Issue mailbox commands only if device state is "READY" for ISP82XX.
 * 82XX: Perform FCoE context reset before trying adapter reset for ISP82XX.
 * 82XX: Safely operate on temp pointer during traversal through ha->vp_list.
 * 82XX: Correct request_irq params if msi-enabled.
 * 82XX: Don't perform a BIG_HAMMER if Get-ID (0x20) mailbox cmd fails on CNAs.
 * 82XX: Set port0 flag correctly.
 * 82XX: Populating model_number and model_desc correctly from nvram.
 * 82XX: Populate ha->chip_revision field properly from PCI config space.
 * 82XX: Skip loopback if f/w reset is active/needed.
 * 82XX: Memory wedge with peg_halt test in loop [ER73667]
 * 82XX: ER 76334 band aid for 82XX, to be removed on next fw drop.
 * Wait for pending vport commands in LUN reset, if applicable.
 * 82XX: Perform LUN reset for vports with outstanding I/O for proper cleanup.
 * Change MSI-X initialization from using incorrect request_irq parameter.
 * 82XX: Add QUIESCENT mode support.
 * 82XX: Release the rom-lock if the firmware died while holding it.
 * 82XX: Add 82XX support for "qla_gdmp" dump extraction utility.
 * 82XX: Add EBT support.
 * 82XX: Fix the flash write failure.
 * 82XX: Initial support added for 82XX FCoE hbas.

Bug fixes made between versions 911.k1.1-5vmw and 911.k1.1-6vmw:

 * Correctly get "wwpn" from incoming QOS api request.
 * Removing QOS ioctls not required and correcting debug prints.
 * Correctly allocate and return buffer for get-vport-list ioctl.
 * Turn on multi-queue QoS support by default.
 * Provide "topology" info in query-hba-port ioctl.
 * Display the request-queue ID for vport (in multiqueue-qos mode).

Bug fixes made between versions 911.k1.1-6vmw and 911.k1.1-7vmw:
Bug fixes made between versions 911.k1.1-7vmw and 911.k1.1-8vmw:

 * None

Bug fixes made between versions 911.k1.1-8vmw and 911.k1.1-9vmw:

 * 81XX: Fixed the incorrect zero test on array new_config[].

Bug fixes made between versions 911.k1.1-9vmw and 911.k1.1-12vmw:

 * 82XX: Set beacon blink state.
 * 82XX: Minidump: Correct opcodes for AND and OR operation.
 * 82XX: Assign correct timeout value for config-led mailbox command.
 * Correct failure return status for qla2x00_set_led_24xx.
 * 82XX: Correct beaconing debug messages.
 * 82XX: Add 82xx, 25xx to beaconing feature supported list.
 * Use proper init_cb_size which considers MID/non-MID init-cb structure sizes.
 * Use correct vport variable in proc display.
 * Minidump: Dump collection need not be protected with idc-lock.
 * Minidump: Introduce ql2xenablemd to enable/disable minidump.
 * Minidump: Implement reset_owner logic
 * Correct exit condition of for-loops in request queue iterations.
 * 81XX: Handle MPI timeout indicated by AE8002
 * 82XX: Correct IS_QLA82XX macro for 82XX extraction utility.

Bug fixes made between versions 911.k1.1-12vmw and 911.k1.1-14vmw:

 * Fix queue_count variable initial value in queue-deletion routine.
 * Fix miscellaneous compilation warnings.
 * 82XX: Set correct port0 flag based on pci-dev function.
 * Fix queue_count variable initial value in re-initialization routine.
 * 82XX: Handle graceful idc state change from COLD -> INITIALIZING -> FAILED.

Bug fixes made between versions 911.k1.1-14vmw and 911.k1.1-15vmw:

 * 81XX: Correct erroneous check for vp-idx to allow MPI reset for base-vha
   only.
 * Initialize temperature values for covering get-thermal-temp failure case.
 * Correct inadvertent loop state transitions during port-update handling.
 * Refactor call to qla2x00_read_sfp for thermal temperature.

Bug fixes made between versions 911.k1.1-15vmw and 911.k1.1-16vmw:

 * Allow an override of the registered maximum LUN.
 * Correct keywords printed in dump file in dump retrieval utility.
 * Perform FDMI and FC4 registration on resync due to "Clear Virtual Link" FIP.

Bug fixes made between versions 911.k1.1-16vmw and 911.k1.1-17vmw:

 * Add mqenable check before calling multi-queue init/delete routines.

Bug fixes made between versions 911.k1.1-17vmw and 911.k1.1-18vmw:

 * 82XX: Corrected f/w dump structure assignment.
 * 82XX: Correct the drv_state log message.
 * 82XX: Complete mbx cmds in interrupt mode only if waiting for it.
 * 82XX: Display minidump feature information in proc node.
 * 82XX: Enable minidump capture capability by default.

Bug fixes made between versions 911.k1.1-18vmw and 911.k1.1-19vmw:

 * 82XX: Correct FW_ISP8021 index for 82xx firmware blob.

Bug fixes made between versions 911.k1.1-19vmw and 911.k1.1-20vmw:

 * Display serial number of adapter in proc node.
 * 82XX: Prevent collecting f/w minidump directly on an 0x8002 event.
 * 82XX: Temperature monitoring for P3P core.

Bug fixes made between versions 911.k1.1-20vmw and 911.k1.1-21vmw:

 * 82XX: Nothing to be done on 0x8002 event as it will be followed by f/w abort.
 * 82XX: Disable generating pause frames when firmware hang detected.

Bug fixes made between versions 911.k1.1-21vmw and 911.k1.1-22vmw:

 * Enhance multi-queue firmware dump support.
 * Remove call to pci_get_drvdata in dump routines.
 * Correctly initialize and enable vports after fw reset.
 * 82XX: Add coredump interrupt handler in msix mode (qla82xx_msix_poll).

Bug fixes made between versions 911.k1.1-22vmw and 911.k1.1-23vmw:

 * Increase array size that stores board serial number.
 * 81XX: Print out contents of mailbox 4 for 8012 async events.
 * 81XX: Defensive check to prevent mpi-reset for other ISPs.

Bug fixes made between versions 911.k1.1-23vmw and 911.k1.1-24vmw:

 * None

Bug fixes made between versions 911.k1.1-24vmw and 911.k1.1-25vmw:

 * 82XX: Added error logging for recoverable f/w abort.
 * 82XX: Remove unwanted ms reset-unreset code piece.

Bug fixes made between versions 911.k1.1-25vmw and 911.k1.1-26vmw:

 * 82XX: Check peg-halt-status bits 8-28 for f/w abort error code.
 * Improved IOCTL command recovery in the event of timeout.

Bug fixes made between versions 911.k1.1-26vmw and 911.k1.1-27vmw:

 * Correctly skip enqueuing aens for pre-boot hosts.

Bug fixes made between versions 911.k1.1-27vmw and 911.k1.1-28vmw:

 * Remove protected nvram-update for 2G and 4G hbas.
 * Perform safe freeing of memory for every vha cleanup.
 * Correctly perform cleanup after early "ha" allocation failure.

Bug fixes made between versions 911.k1.1-28vmw and 911.k1.1-29vmw:

 * Make f/w dump extraction independent of dpc thread activity.
 * 82XX: Maintain total IO count statistics for phsyical and virtual port.

Bug fixes made between versions 911.k1.1-29vmw and 934.5.1.0-1vmw:

 * 83XX: Separate chip-reset option for FCoE and NIC-Core reset.
 * 83XX: Set IDC-Control and Clear IDC-Lock-Recovery regs on first driver load.
 * 83XX: Allow reset-recovery to be initiated on state change to NEED RESET.
 * 83XX: Solution for handling bogus peghalt AENs.
 * 83XX: Support for IDC AUDIT
 * 83XX: Support for IDC Lock Recovery.
 * 83XX: Display both FCoE and NIC f/w version in proc.
 * 83XX: Revert back to 0x81 as the common CNA VPD region.
 * 83XX: Perform correct check during loopback operation.
 * Added IOCTL interface to generically access I²C attached devices.
 * Complete the timed out mbx cmd to avoid mbx access failures for next command.

Bug fixes made between versions 934.5.1.0-1vmw and 934.5.2.0-1vmw:

 * 83XX: Get the correct vpd region starting offset for CNA.
 * Remove unwanted references to hw-event logging.
 * 83XX: Fix for handling some error conditions in loopback.

Bug fixes made between versions 934.5.2.0-1vmw and 934.5.3.0-1vmw:

 * Remove unnecessary wait for mbx 0x2a to complete.
 * Fix for updating topology when loop-state = DEAD.
 * 83XX: Perform ROM mbx cmd access only after ISP soft-reset during f/w
   recovery.

Bug fixes made between versions 934.5.3.0-1vmw and 934.5.4.0-1vmw:
 
 * Fix for updating topology with loopback connector for all CNA and 16GB FC hbas.
 * 81XX: Assign correct Coredump handler.
 * Remove qla2x00_wait_for_loop_ready function.

Bug fixes made between versions 934.5.4.0-1vmw and 934.5.5.0-1vmw:

   * Problem Description: Per VMWare's request for ESX 5.x async drivers - need
to throttle the printing of "dropped frame" messages.  Since 5.0 driver will
not have IODM event support on 5.1, that is a regression from inbox driver. The
need to implement throttled log messages for Frame Drop events, is because this is a
common but hard to debug situation. The reason the log has to be throttled is
because the event can happen to many commands at a short period of time, thus
causing Panic. The recommended frequency is log it every 5s.
   * Solution: Create a log timer for this particular event where the printing of
any Frame Drop messages happens no more than once every 5 seconds.

   * Problem Description: If driver failed to attach during probe time, the cleanup
path would blindly cleanup the dpc workqueues.  This would lead to a PSOD if they
weren't properly initialized.
   * Solution: Check that the workqueue pointer is non-NULL before making the destroy
call.

   * Problem Description: The MCTP feature incorrectly checked the wrong pointer
when allocating a buffer for the peg dump.  If the MCTP dump buffer allocation
failed, this could lead to incorrectly assuming it had succeeded.
   * Solution:  Fixed the check to the correct buffer pointer.

   * Problem Description: Need to use Set Paramter Mb Cmd (0x59) to pass to the
firmware the driver version for OCBB feature.
   * Solution:  Implemented the option 0x9 of this mailbox command to pass the 24
byte value to be utilized by the firmware.

   * Problem Description: EFI and Fcode versions on certain flash packages will show up
as "0.00" on the proc entry. 
   * Solution: Changed code to display "N/A" instead to make it more clear to the end user.

Bug fixes made between versions 934.5.6.0-1vmw and 934.5.6.0-1vmw:

   * Problem Description: AEN 8070 has been enhanced to provide for additional
reporting in 83XX hbas.  Drivers that already handle 8070 for specific mezz cards,
will now need to handle the new reason codes for 8070 by looking at additional mailboxes.
   * Solution: Added code to handle 8070 AEN and the various subcodes expected.  The change
made is only informational and doesn't effect regular operation. 

   * Problem Description: Loopback command was failing after connecting a loopback connector
to an QLA83XX adapter after it was connected to an F_Port on a switch.
   * Solution:  The problem was stale topology being exported to the API that resulted in 
the wrong buffer size being sent down through the IOCTL interface.  This lead to an echo
command being incorrectly submitted to the firmware.  The topology is now defaulted to "loop (NL)"
in the event of 8030 AEN for 83XX and all CNA adapters.

4. History

Not Applicable


5. Additional Information

None.


6. Firmware

This section provides release details for the firmware in the
driver, including:

 * 4Gb/8Gb Fibre Channel Adapters and 8000 Series Converged Network
   Adapter (Embedded in driver): 5.06.05

 * 8200 Series Converged Network Adapter: By default, loads firmware from
   Flash.

 * 8300 Series FC or CNA mode: By default, loads firmware from Flash.

7. Trademarks

Accelera, Accelerating Cluster Performance, FastFabric, InfiniCon
Systems, InfiniNIC, InfiniPath, InfiniView, Intelligent NIC,
Networking University, NetXen, QLA, QLogic, the QLogic logo,
ReadyPath, SANdoctor, SANsurfer, and SilverStorm are registered
trademarks of QLogic Corporation. To the extent a name or logo does
not appear on this list does not constitute a waiver of any and all
intellectual property rights that QLogic Corporation or its
subsidiaries has established in any of its product, feature, or
service names or logos. All other brand and product names are
trademarks or registered trademarks of their respective owners.


8. 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.


9. Contacting Support

Please feel free to contact your QLogic approved reseller or QLogic
Technical Support at any phase of integration for assistance. QLogic
Technical Support can be reached by the following methods:

 Web:    http://support.qlogic.com
 E-mail: support@qlogic.com


(c) Copyright 2010-2012. 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.
