                          ============================
                           R E L E A S E    N O T E S
                          ============================
                                     QED

Version 8.53.0.0 (May 12, 2020)
===============================
Internal FW 8.50.16.0

Fixes:
------
 1. Problem:    CQ108678 - Incorrect PSN reported while sending NAKs.

    Change:     [FW] Always report updated PSN to MStorm in Rx-Write paths.

    Introduced: Day 1.

    Relevance:  RoCE.

 2. Problem:    Case 59059/57286 - PXP error while transmitting using
                PVRDMA's namespaces.

    Change:     [FW] Fix namespace assignment in QP Responder creation.

    Introduced: Day 1.

    Relevance:  RoCE PVRDMA.

 3. Problem:    CQ108564 - FW may assert if RDMA packet, destined to a VF, is
                received during RDMA_RAMROD_FUNC_CLOSE ramrod processing.

    Change:     [FW] Made CFC-delete error assert a non-fatal in case of VF RDMA
                connection.

    Introduced: Day 1.

    Relevance:  VF RDMA.

Version 8.50.25.0 (Apr 23, 2020)
================================
Internal FW 8.50.15.0

Fixes:
------
 1. Problem:    Crash after unloading and reloading only roce driver.

    Change:     Save the ecore_int_dummy_comp_cb() address to p_hwfn
                to avoid stale entries in pi_info_arr[].

    Introduced: 8.40.9.0.

    Relevance:  All.

 2. Problem:    CQ108553 - System crash in overnight reboot test on multiple
                VMs.

    Change:     Clear VF Timer ILT during FLR.

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

 3. Problem:    Tx Path stops processing additional packets, effectively timing
                out the Tx Path, in a degenerative (illegal, yet possible) non
                LSO scenario in which
                BD0.data.pkt_len > ETH_TX_MAX_NON_LSO_PKT_LEN.

    Change:     [FW] Fix FW Tx Path flow logic so as to assert on the described
                illegal scenario.

    Introduced: Day 1.

    Relevance:  ETH.

 4. Problem:    CQ108494 - iWARP report generic error in case of incoming send
                that is larger than the RqWqe.

    Change:     [FW] Aligned with RoCE to report a more specific error.

    Introduced: Day 1.

    Relevance:  iWARP.

 5. Problem:    CQ108331 & CQ108266 - Second fix for leaking CIDs when closing
                QPs that haven't exchanged any data.

    Change:     [FW] Fix iWARP QP init flow.

    Introduced: Day 1.

    Relevance:  iWARP.

 6. Problem:    FW_ASSERT on failure to translate internal error code to HSI
                one.

    Change:     [FW] Add missing translation for internal error code.

    Introduced: Day 1.

    Relevance:  iWARP.

 7. Problem:    CQ108555 - VF RDMA System crash on multiple reboots of VMs with
                VFs. LL2 VF queues counter not decremented on VF FLR. FW assert
                due to VF queues counter wrap-around.

    Change:     [FW] Fix LL2 VF queues classification enable logic.

    Introduced: 8.50.0.0.

    Relevance:  VF RDMA.

 8. Problem:    If update_rss_ind_table flag set and RSS disable, update has
                no effect. Unused indirect table updated instead.

    Change:     [FW] In case of RSS disable, use rss_id from ramrod data to
                update RSS block configuration.

    Introduced: Day 1.

    Relevance:  ETH (Windows only).

 9. Problem:    CQ108621 - If RQ WQEs contains 3 SGEs and RQ PBL contains more
                than 1 page, crossing RQ page might result in QP error.

    Change:     [FW] Fix how FW handles misc RQ WQE sizes.

    Introduced: Day 1.

    Relevance:  RoCE.

10. Problem:    CQ108450 - RoCE DcQcn could get stuck in for loop in function
                yRoceDcQcnNpSetCnpTimer.

    Change:     [FW] Changing slotidx type to uint16.

    Introduced: Day 1.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Add API to reset RDMA stats of specific Stats Queue.

Version 8.50.24.0 (Mar 18, 2020)
================================
Internal FW 8.50.14.0

Version 8.50.23.0 (Mar 05, 2020)
================================
Internal FW 8.50.14.0

Fixes:
------
 1. Problem:    QM's PQ getters return invalid values during QM reconf.

    Change:     Lock QM info during reconfiguration.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    BZ1724205 - NIC fails to synchronize to Master clock via unicast
                mode.

    Change:     Add support for Timestamping the L2 unicast PTP packets.

    Introduced: Day 1.

    Relevance:  PTP.

Version 8.50.22.0 (Feb 27, 2020)
================================
Internal FW 8.50.14.0

Fixes:
------
 1. Problem:    CQ107597: Back-channel time-outs while disabling VF in
                the guest VM.

    Change:     Reset VF back-channel flags at proper place.

    Introduced: 8.60.4.0.

    Relevance:  VF driver unload.

 2. Problem:    Fix firmware assert caused due to an improper ramrod sent
                by the PF on vport stop requested by the VF and there are
                no active vports for that VF.

    Change:     PF validate that if there are no active vports then send
                failure to the VF instead of sending improper ramrod to FW.

    Introduced: Day 1.

    Relevance:  SR-IOV.

 3. Problem:    Potential false printouts of TLVs in the SRIOV channel.

    Change:     Fix a mismatch between the channel TLV's array and its
                corresponding string array.

    Introduced: 8.50.14.0.

    Relevance:  SR-IOV / VF-RDMA.

Version 8.50.21.0 (Feb 20, 2020)
================================
Internal FW 8.50.14.0

Fixes:
------
 1. Problem:    CQ108139 - VMs crash randomly upon advanced property
                disable/enable with Max VFs enumerated on all PFs.

    Change:     ecore_hw_stop returns actual code from ecore_vf_pf_reset.

    Introduced: Day 1.

    Relevance:  Windows VF in Windows Hyper-V environment.

 2. Problem:    CQ108123 - System crash seen while disabling NDIS driver while
                running RoCEv2 IPv6 traffic on MOS.

    Change:     Always free IRQ/ORQ on rdma_destroy_qp.

    Introduced: VF-RDMA Day 1.

    Relevance:  RoCE.

 3. Problem:    CQ108268 - System crash upon enabling RDMA on MOS vnics created
                on all NPAR PFs.

    Change:     Make sure that the stats ID of a LL2 queue doesn't exceed the
                total amount of statistics counters.

    Introduced: VF-RDMA Day 1.

    Relevance:  LL2.

Version 8.50.20.0 (Feb 13, 2020)
================================
Internal FW 8.50.14.0

Fixes:
------
 1. Problem:    Kernel crash in RDMA qed tests in non-RDMA personality.

    Change:     Check RDMA before accessing RDMA info.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    Kernel panic since slowpath task executes after driver
                structures are freed.

    Change:     Kill off a pending delayed_work.

    Introduced: 8.40.19.0.

    Relevance:  All.

 3. Problem:    If edpm is sent for a wqe without a completion indication
                request, FW will reach retransmission scenario.

    Change:     Driver gives rdma-core an inidication that the ack-request
                flag should always be turned on for edpm.

    Introduced: Day one.

    Relevance:  RDMA.

 4. Problem:    CQ95819 - Error appear when trying to login to Target.

    Change:     [FW] Avoid verifying the RSP payload length.

    Introduced: Day 1.

    Relevance:  FCoE.

 5. Problem:    Ecn packets may lead to stuck Rx pipe.

    Change:     [FW] Disable nig -> ysem interface.

    Introduced: Day 1.

    Relevance:  BB Ecn.

Enhancements:
-------------
 1. Request:    Add interfaces for Enhanced System Lockdown status.

 2. Request:    Add support for Enhanced System Lockdown status.

 3. Request:    Expose dif block size and dif on host enable flags to iscsi
                ecore clients.

Version 8.50.19.0 (Feb 06, 2020)
================================
Internal FW 8.50.13.0

Fixes:
------
 1. Problem:    ecore_hw_init returns wrong return code when allocating
                fw_overlay_mem fails.

    Change:     Fix return code.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CFC write-back after ILT lines are freed.

    Change:     [FW] Reinstate CFC delete in VF function close flow as best
                effort.

    Introduced: 8.42.0.0.

    Relevance:  ROCE SRIOV.

 3. Problem:    CQ108160 - Incoming PDUs are being placed in Rx queues causing
                the driver out of order handling.

    Change:     [FW] Change Rx Flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

 4. Problem:    QM reconf fails acquiring MFW lock while mcp is halted.

    Change:     Retry acquiring MFW lock until success/timeout.

    Introduced: 8.50.12.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    VF soft FLR support.

Version 8.50.18.0 (Jan 30, 2020)
================================
Internal FW 8.50.12.0

Fixes:
------
 1. Problem:    VF QP's are incorrectly set to loopback mode.

    Change:     Reset the QP structure before filling it with information from
                the channel.
                In addition, add force_lb field to the channel_qp structure.

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

 2. Problem:    CQ107784 - VF-RDMA: Windows2k19 VM crashes on Linux Hypervisor
                while running IO on SMB RAMDisk.

    Change:     Add new field cnq_sb_start_id and a corresponding capability
                VFPF_RDMA_ACQUIRE_CAP_CNQ_SB_START_ID in the rdma_acquire
                request message. This field (together with the capability bit)
                should be set by the VF in order to indicate to the PF what is
                the first status block which will be used for CNQs.

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

Enhancements:
-------------
 1. Request:    Percolate vf_id_valid bit to RoCE create requester/responder
                ramrods.

Version 8.50.17.0 (Jan 23, 2020)
================================
Internal FW 8.50.12.0

Fixes:
------
 1. Problem:    CQ107699 - After update Firmware to 08.50.27 some servers fails
                to boot to OS.
                CQ108004 - System crash when SRIOV enabled on few partitions
                and disabled on few partitions using OneView.

    Change:     Reset all the ILT blocks at the beginning of ILT compute - this
                is done in order to prevent memory allocation for irrelevant
                blocks afterwards (e.g. VF timer block after disabling VF-RDMA).

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

Version 8.50.16.0 (Jan 17, 2020)
================================
Internal FW 8.50.12.0

Fixes:
------
 1. Problem:    Cont00107989 - fastlinq doesn't compile on newer kernels.

    Change:     Kernel compatibility changes.

    Introduced: NA.

    Relevance:  Newer kernels (RHEL8.2/SLES15SP2).

Version 8.50.15.0 (Dec 30, 2019)
================================
Internal FW 8.50.12.0

Fixes:
------
 1. Problem:    CQ107844 - SYN packets keep receiving on the LL2 queue
                constantly when ECN and iWRAP is enabled.

    Change:     [FW] Ignore ECE and CWR flags in loop back iWARP SYN detection
                logic.

    Introduced: 8.42.3.0.

    Relevance:  iWARP.

Enhancements:
-------------
 1. Request:    [FW] Support RoCE PVRDMA DPT.

 2. Request:    RoCE Bonding: Add a module parameter roce_lag_delay which
                determines the delay (in msec) between DCBx negotiation and
                failback. When 0, do not wait for DCBx negotiation before
                failback.

Version 8.50.14.0 (Dec 17, 2019)
================================
Internal FW 8.50.11.0

Fixes:
------
 1. Problem:    Kernel crash after qede unload.

    Change:     Prevent slowpath workqueue schedules after driver unload.

    Introduced: 8.40.4.0.

    Relevance:  All.

 2. Problem:    CQ107759 - VFRDMA-Driver compatibility test: RDMA interfaces are
                down on VM with driver 8.42.9.0 and 8.50.12.0 driver on HV.
                CQ107751 - VM-Failed to start VPORT: HV using 8.42.9.0 driver
                and GuestOS using 8.50.12.0.

    Change:     Move SRQ related TLVs to the end of the list.

    Introduced: 8.45.0.1.

    Relevance:  VF-RDMA.

 3. Problem:    ExpCmdSn and MaxCmdSn didn't advance on non-first R2T PDUs.

    Change:     [FW] Fix iSCSI Target Tx flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

 4. Problem:    Leaking CIDs when closing QPs that haven't exchanged any data.

    Change:     [FW] Fix iWARP QP init flow.

    Introduced: Day 1.

    Relevance:  iWARP.

 5. Problem:    Potential memory leak in case eq_list_lock allocation fails.

    Change:     Release p_sriov structure before returning with error.

    Introduced: Day 1.

    Relevance:  SRIOV.

Version 8.50.13.0 (Dec 05, 2019)
================================
Internal FW 8.50.10.0

Enhancements:
-------------
 1. Request:    Remove PTP timestamp read retry. It should be handled in client
                driver.

Version 8.50.12.0 (Nov 28, 2019)
================================
Internal FW 8.50.10.0

Fixes:
------
 1. Problem:    CQ107258: ESX70 E4 iSCSI: PSOD when running init port toggle
                test.

    Change:     Use MFW lock in QM reconfiguration.

    Introduced: Day one.

    Relevance:  All.

 2. Problem:    Register access errors observed in MS block static debug
                related writes.

    Change:     [FW] Skip MS block static debug register writes in debug tools.

    Introduced: 8.18.0.0.

    Relevance:  Debug Data Collection.

 3. Problem:    Incorrect error handle of RX queue producer update fail.

    Change:     [FW] Fix FW flow.

    Introduced: 8.40.25.0.

    Relevance:  LL2.

Enhancements:
-------------
 1. Request:    [FW] Add support for forcing a QP to send data to the loopback.

Version 8.50.11.0 (Nov 14, 2019)
================================
Internal FW 8.42.4.0

Fixes:
------
 1. Problem:    PTP timestamp is missing in some tx packets while running
                traffic.

    Change:     Wait for timestamp update before reading it.

    Introduced: Day 1.

    Relevance:  PTP Timestamp.

Enhancements:
-------------
 1. Request:    Support ESX PVRDMA namespaces.

Version 8.50.10.0 (Nov 04, 2019)
================================
Internal FW 8.42.4.0

Fixes:
------
 1. Problem:    CQ107318: One time Firmware assertion during load/unload
                after running RoCE traffic.

    Change:     Prevent processing MFW events after unload request is sent.

    Introduced: Day one.

    Relevance:  Unload flow.

Enhancements:
-------------
 1. Request:    Add PCIe Advanced Error Recovery (AER) support.

 2. Request:    Clear CFC WEAK_ENABLE register on graceful VF close, so that
                context loads from parser due to incoming packets will result
                with a load-cancel rather than context load which can clash with
                CFC delete flow which FW instigates on VF close.

 3. Request:    Support VF-RDMA SRQ's.

Version 8.45.0.0 (Oct 16, 2019)
===============================
Internal FW 8.42.4.0

Fixes:
------
 1. Problem:    Link caps are not available for certain board/sfp combinations.

    Change:     Use correct mask while reading the board-config from shmem, this
                field is used during the enumeration of link capabilities.

    Introduced: Day 1.

    Relevance:  ethtool link display.

 2. Problem:    In non-LSO-only scenarios, a delay may be formed in the BD
                consumer update frequency to host being too low.

    Change:     [FW] Fix BD Consumer update logic.

    Introduced: 8.42.0.0.

    Relevance:  [E4 only] ETH.

 3. Problem:    CQ106961 - Fatal FW assertion in case of single-frame
                exchange payload overflow.

    Change:     [FW] Detect overflow and report error to the driver.

    Introduced: Day 1.

    Relevance:  FCoE.

Version 8.42.9.0 (Oct 03, 2019)
===============================
Internal FW 8.42.3.0

Fixes:
------
 1. Problem:    CQ104721 - Ethtool "Link Partner advertised mode" seems
                incorrect on 10GBaseT module.

    Change:     User transceiver info to determine the partner adv_speed mask.

    Introduced: Day 1.

    Relevance:  ethtool link display.

 2. Problem:    Async EQE VF ID was not initiated.

    Change:     [FW] Init eqe.vfId.

    Introduced: Day 1.

    Relevance:  RoCE VF-RDMA / SRQ.

 3. Problem:    ILT dump feature reading wrong memory addresses leading to
                wrong content, possible crash and parse failure.

    Change:     [FW] Correct the calculation of ILT dump size and content.

    Introduced: 8.40.26.0 (ILT Dump day 1).

    Relevance:  Debug data collection.

 4. Problem:    CQ107256 - SYN packets not passing to Ll2 when ECN is enabled.

    Change:     [FW] Ignore ECE and CWR flags in the iWARP SYN flow.

    Introduced: Day 1.

    Relevance:  iWARP.

 5. Problem:    VF <-- PF Timeout on the channel.

    Change:     Fix the VF sleep duration on the channel while it waits for PF
                response.

    Introduced: 8.42.2.0.

    Relevance:  SRIOV.

 6. Problem:    CQ107312 - ESXi7.0-E4-SRIOV: PSOD after enabling SRIOV in ESXi.

    Change:     Disable VF-RDMA in case VF-RDMA parameters were not filled by
                the client.

    Introduced: VF-RDMA Day 1.

    Relevance:  VF-RDMA.

Version 8.42.8.0 (Sep 19, 2019)
===============================
Internal FW 8.42.1.0

Fixes:
------
 1. Problem:    CQ107209 - E4-AH-Request to improve not to get CPU 100% with
                FWUpg for active-active application.

    Change:     Perform flash upgrade (nvm-write) in preemptable context.

    Introduced: Day 1.

    Relevance:  Flash upgrade.

 2. Problem:    Crash on driver load.

    Change:     Do not invoke IOV DB recovery handler before iov struct was
                allocated.

    Introduced: VF Doorbell Recovery day 1.

    Relevance:  All.

 3. Problem:    CQ107255 - FW assertion when RDMA mode is disabled in HII and
                SR-IOV VFs are created in OS.

    Change:     Disable RDMA for VF in case personality isn't RoCE.

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

 4. Problem:    CCQ107256 - E4 TCP connections failure to VMs when iWARP
                enabled.

    Change:     Fix iWARP SYN packet mac filtering in driver.

    Introduced: 8.40.19.0.

    Relevance:  iWARP.

Enhancements:
-------------
 1. Request:    Backport 9e54ba7c37 (qed*: Fix size of config attribute dump)
                from upstream driver.

Version 8.42.7.0 (Sep 10, 2019)
===============================
Internal FW 8.42.1.0

Fixes:
------
 1. Problem:    CQ105508 - QED soft lock up issue, exceeding occupation of CPU
                for more than 680 ms.

    Change:     Use msleep instead of udelay in the sleep-able contexts.

    Introduced: Day 1.

    Relevance:  SFP read.

 2. Problem:    CQ106915 - SRIOV: VM crash with driver verifier.

    Change:     Fix leak in resource memory allocations for VFs.

    Introduced: VF-RDMA Day 1.

    Relevance:  SRIOV.

 3. Problem:    CQ107049 - NPAR-RDMA Bonding: qedr unload causes HW error after
                creating bonding interfaces using NPAR functions.

    Change:     Prevent RDMA bonding for non-default MF modes.

    Introduced: RDMA bonding day 1.

    Relevance:  RDMA bonding.

 4. Problem:    CQ106454 - VF-RDMA - Ramrod stuck while changing vnic on the
                VM while VF RDMA traffic running (Config - 16 VFs enum (4 VMs,
                4 VFs each)).

    Change:     Set the QM according to the max active VFs (instead of to the
                current active number). The max active VFs will be determined
                by the ecore client and will be passed as parameter to
                ecore_iov_pci_enable_prolog().
                In case there aren't enough PQs for VF-RDMA (which ideally
                needs a separate PQ for each VF), a single PQ will be used for
                VF-RDMA and will serve all the VFs.

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

 5. Problem:    Soft lockup during driver load after failed QM initialization.

    Change:     Avoid accessing the uninitialized eq_list.

    Introduced: 8.40.20.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Backport patch b35e1a333f (qed: Add APIs for reading config id
                attributes) from upstream driver.

 2. Request:    Backport patch 4d07bdb212 (qed: Add APIs for configuring grc
                dump config flags) from upstream driver.

 3. Request:    Add qed test to set/clear print_dbg_data flag.

 4. Request:    Fix compilation warnings for FreeBSD.

 5. Request:    Support VF RDMA even when there aren't sufficeint QM PQs for
                each VF to have one. Provide single PQ for all RDMA VFs in this
                case.

Version 8.42.6.0 (Sep 02, 2019)
===============================
Internal FW 8.42.1.0

Fixes:
------
 1. Problem:    CQ106711 - DCBx-Remote traffic classes are not displayed when
                DCBx set as CEE and priority set to Strict on switch.

    Change:     Use 4 bit mask while reading the PGID from prio_to_tc table.

    Introduced: Day 1.

    Relevance:  DCBX.

Version 8.42.5.0 (Aug 29, 2019)
===============================
Internal FW 8.42.1.0

Fixes:
------
 1. Problem:    VF receive only the first EQ completion.

    Change:     Change EQ completion in the bulletin board from a flag to a
                counter.

    Introduced: 8.40.22.0.

    Relevance:  VF-RDMA.

 2. Problem:    VM crash when driver verifier enabled.

    Change:     qed_llh_alloc should not be called for VFs.

    Introduced: 8.40.14.0.

    Relevance:  VF.

Enhancements:
-------------
 1. Request:    Backport patch de0e4fd2f07c (qed: Add cleanup in
                qed_slowpath_start) from upstream.

Version 8.42.4.0 (Aug 21, 2019)
===============================
Internal FW 8.42.1.0

Fixes:
------
 1. Problem:    CQ106839 - VF RDMA - "qevbda!ecore_rdma_register_tid_inner"
                assert while VM reboot in sequence.

    Change:     ecore_cxt_free_ilt_range() will also take care of zeroing the
                specific range, in order to prevent future access to old iids
                which don't occupy an entire ILT line.

    Introduced: 8.40.11.0.

    Relevance:  All.

 2. Problem:    CQ106417 - VF RDMA - Continuous VM Crash during reboot cycle
                with 4 Vfs in one VM.

    Change:     Release ll2 core CID's during FLR.

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

 3. Problem:    VF-Rdma being unnecessarily disabled during driver load.

    Change:     Correct ILT line reservation calculation for VF-RDMA for QM
                (Reserve amount of connections of single VF per VF PQ instead
                of amount of all VFs connections per VF PQ).

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

 4. Problem:    Ethtype is being set incorrectly for app-tlv in cee mode.

    Change:     Interpret app-tlv type param as per DCB_APP_IDTYPE_* macros.

    Introduced: Day 1.

    Relevance:  Debugfs app-tlv tests in cee mode.

Version 8.42.3.0 (Aug 12, 2019)
===============================
Internal FW 8.42.1.0

Fixes:
------
 1. Problem:    Crash in error handling during driver load.

    Change:     Check whether the context manager information for aquired VFs
                isn't NULL before resetting it.

    Introduced: SRIOV day 1.

    Relevance:  SRIOV.

 2. Problem:    CQ106588 - Firmware assertion upon booting VMs with max VFs
                enumerated on all NPAR PFs.

    Change:     Enable timer scan for VFs only in case rdma_enable flag is on
                (should be off in NPAR environment).

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

 3. Problem:    CQ106833 Memory leak of Timers ILT.

    Change:     Do not reset the Timers ILT client information in ILT free.

    Introduced: 8.40.24.0.

    Relevance:  VF-RDMA unload.

 4. Problem:    CQ106626 - vlan indication did not arrive to the driver
                in UFP mode.

    Change:     [FW]Set vlan indication in UFP mode.

    Introduced: 8.30.5.0.

    Relevance:  FCoE (Windows only).

Enhancements:
-------------
 1. Request:    Pass BW update notifications from MFW to protocol drivers.

 2. Request:    Backport patch 3690c8c9a8ed (Force the string buffer NULL
                terminated) from upstream.

Version 8.42.2.0 (Jul 26, 2019)
===============================
Internal FW 8.42.0.0

Fixes:
------
 1. Problem:    CQ105665 - VF RDMA: NVMe login failed over VFs.

    Change:     Increase VF RDMA tasks from 1K to 16K.

    Introduced: VF RDMA Day 1.

    Relevance:  VF-RDMA.

 2. Problem:    CQ106380 - HP13.00 - VF RDMA - VM Crash while Host reboot when
                RDMA Traffic with Max 128 QPs running in VM.

    Change:     Set IRQ and ORQ to NULL after freeing them, in order to avoid
                double free.

    Introduced: VF RDMA Day 1.

    Relevance:  VF-RDMA.

 3. Problem:    CQ106590 - HP13.00_Synergy: System crash while installing iSCSI
                driver on Quagmire2 adapter.

    Change:     Avoid initializing VF doorbell bar in non-SRIOV setups.

    Introduced: VF RDMA Day 1.

    Relevance:  All.

 4. Problem:    CQ106361 - Assert while setting up port-mirroring on VF.

    Change:     [FW]Fix RoCE VF function close flow.

    Introduced: Day 1.

    Relevance:  RoCE VF-RDMA.

 5. Problem:    CQ106698 - Assert while Configuring many XRC SRQs
                on more than 1 PF.

    Change:     [FW]Fix SRQ cache-out flow.

    Introduced: Day 1.

    Relevance:  RDMA SRQ.

 6. Problem:    CQ106698 - Assert while Configuring many XRC SRQs
                on more than 1 PF.

    Change:     [FW]Fix SRQ cache-in flow.

    Introduced: Day 1.

    Relevance:  RDMA SRQ.

 7. Problem:    CQ106671 - Assert while iWARP handles READ WQEs and ROCE
                VF is FLRed.

    Change:     [FW]Fix iWARP ORQ cache seizing flow.

    Introduced: Day 1.

    Relevance:  iWARP together with RoCE SRIOV.

Enhancements:
-------------
 1. Request:    In case RDMA is not supported for VFs, don't waste SBs on VF
                CNQs.

 2. Request:    Send RDMA driver version to MFW.

Version 8.42.1.0 (Jun 28, 2019)
===============================
Internal FW 8.40.32.0

Fixes:
------
 1. Problem:    CQ106089 - 100G: Failed to create VF-RDMA interfaces.

    Change:     Add CNQs number of the second hw function to the total interrupt
                lines request.

    Introduced: VF-RDMA Day 1.

    Relevance:  VF-RDMA.

 2. Problem:    CQ105666 - In case of PF down scenario (ifconfig down/no cable)
                L2 link is up after "VF state enabled" but not for RDMA devices.

    Change:     In VF query port, the port state and the link speed are taken
                from the bulletin board.

    Introduced: VF RDMA Day 1.

    Relevance:  VF-RDMA.

 3. Problem:    CQ106237 - VF RDMA - System crash while running VF RDMA traffic
                in max VFs configuration.

    Change:     Increase num_vf_pqs to the maximum possible number VFs can use.
                In case ILT compute fails, try to recompute after disabling
                VF-RDMA.

    Introduced: VF-RDMA Day 1.

    Relevance:  VF-RDMA.

 4. Problem:    CQ106382 - crash while running load/unload iWARP.

    Change:     Fix race between iWARP syn processing and termination.

    Introduced: Day 1.

    Relevance:  iWARP.

 5. Problem:    1. When VMs exist, HV crash during driver unload.
                2. RDMA traffic doesn't work on VMs after qedr unload on HV.

    Change:     1. Use the correct rdma_info in the RDMA functions.
                2. Set RDMA async event callback to NULL on PF down flow.
                3. Do not clear PRS_REG_ROCE_DEST_QP_MAX_VF, as it can stop
                RDMA traffic on VMs when removing qedr on HV.

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

Enhancements:
-------------
 1. Request:    Add multi rate SFP link modes support to be displayed in
                ethtool.

 2. Request:    Increase default ILT page size to 256KB by modifying module
                parameter ilt_page_size from 5 to 6.

 3. Request:    Avoid disabling the parser registers during
                ecore_hw_stop_fastpath(), in order to allow VFs to run RDMA
                traffic from a VM even if the PF interface is down.

 4. Request:    CQ105577 - Add support for RDMA bonding on 4 port AH modules.

 5. Request:    Fix LL2 error flows.

 6. Request:    Add support for Timestamping the unicast PTP packets.

Version 8.42.0.0 (Jun 06, 2019)
===============================
Internal FW 8.40.32.0

Version 8.40.26.0 (Jun 03, 2019)
================================
Internal FW 8.40.32.0

Fixes:
------
 1. Problem:    CQ106196 - FW false alarms - invalid FC payload.

    Change:     [FW]Fix FCoE payload validation flow.

    Introduced: Day 1.

    Relevance:  FCoE.

 2. Problem:    CQ106101 -  System crash while collecting GRC dump.

    Change:     [FW]Skip NWS static debug dump.

    Introduced: 8.40.0.0.

    Relevance:  All.

Version 8.40.25.0 (May 29, 2019)
================================
Internal FW 8.40.31.0

Fixes:
------
 1. Problem:    Crash in ll2 code due to uninitialized lock.

    Change:     Register the callbacks after initializing the lists and locks.

    Introduced: Day 1.

    Relevance:  LL2.

 2. Problem:    Potential RAM corruption when updating CNQ producer for VF.

    Change:     Write 16 bits instead of 32 bits.

    Introduced: VF-RDMA Day 1.

    Relevance:  VF-RDMA.

 3. Problem:    CQ105980 System crash while upgrading qevbd driver in NPAR EP.

    Change:     Don't treat Grc attentions which are not grcTimeout as Fatal.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    BZ1703770 - Driver should ratelimit ptp error logging.

    Change:     Reduce the severity of timestamp related errors.

    Introduced: Day 1.

    Relevance:  PTP.

 5. Problem:    Complete (removed/missing) fix for CQ101904.

    Change:     [FW]Fix the Tx Drop flow.

    Introduced: 8.40.0.0.

    Relevance:  ETH.

 6. Problem:    CQ105995: grcDump during traffic harms the traffic.

    Change:     [FW]Introduce "cau_ext" memories (separated from "cau")
                including fsm table and agg unit descriptor memories. cau_ext
                memories can harm traffic during GRC dump, hence separated.
                1. With -crash parameter to grcDump command, cau_ext is dumped
                and parsed (containing the crash-specific memories).
                2. Without -crash parameter to grcDump command, cau_ext is Not
                dumped (thus not harming traffic).
                3. cau_ext can be included specifically regardless of -crash
                parameter.
                4. By default, so as to not harm traffic, cau_ext memories are
                not dumped.

    Introduced: Day 1.

    Relevance:  All (Debug Tools Only).

 7. Problem:    CQ106100, CQ106094: Multiple FW asserts and HW attentions during
                RDMA VF FLR.

    Change:     [FW]Fix FW internal resource handling and graceful termination
                following VF FLR.

    Introduced: Day 1.

    Relevance:  RoCE SRIOV.

Enhancements:
-------------
 1. Request:    Limit the debug features size to 4GB to prevent 32bit overflow.

Version 8.40.24.0 (May 03, 2019)
================================
Internal FW 8.40.30.0

Fixes:
------
 1. Problem:    Cont00105841 : WS2019: FW assertion while running iWARP
                traffic.

    Change:     Add appropriate locking and barriers around ep_list and
                listener_list.

    Introduced: Day 1.

    Relevance:  RDMA.

 2. Problem:    CQ105839 : Windows system crash in VF driver on BB.

    Change:     Corrected doorbell size initialization.

    Introduced: Day 1.

    Relevance:  SRIOV.

 3. Problem:    CQ106004, CQ105873, CQ105896, CQ105873, CQ105824 - crashes in
                VF unload flows.

    Change:     clear/release ILT for CDU and Timers blocks on VF unload/flr,
                disable timers scan for unloading VFs.

    Introduced: VF-RDMA Day 1.

    Relevance:  VF-Rdma vf unload/flr flows, with more than 320 connections.

 4. Problem:    "TLV of length 0 found" printouts.

    Change:     Add list termination tlv to CHANNEL_TLV_TERMINATE_LL2_CONN
                response.

    Introduced: VF-RDMA Day 1.

    Relevance:  VF-RDMA.

 5. Problem:    CQ105920 - Missing solicited and cleanup completions for
                iSCSI Target R2T task.

    Change:     [FW]Fix the iSCSI target write task cleanup flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

 6. Problem:    Query QP Ramrod returns PSN shifted by 8 bit to the left.

    Change:     [FW]Fix the returned PSN value.

    Introduced: Day 1.

    Relevance:  RoCE.

 7. Problem:    CQ104912 - System crash while running load-unload tests.

    Change:     [FW]Fix the closing QPs flow.

    Introduced: 8.40.24.0.

    Relevance:  iWARP.

 8. Problem:    CQ 105701: Seeing the Hardware error register dump capture by
                device in logs.

    Change:     Rephrase the HW error register dum captured to "mdump
                data available",to make it less alarming.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add channel_qp structure in order to pass the QP fields
                implicitly through the channel.

 2. Request:    Modify RDMA TLV structures in order to eliminate holes.

 3. Request:    Backport doorbell recovery changes from upstream.

Version 8.40.23.0 (Apr 12, 2019)
================================
Internal FW 8.40.28.0

Fixes:
------
 1. Problem:    CQ104196 - Incorrect ethtool "Supported ports" info
                detected for Quagmire2.

    Change:     Ethtool port type displayed as PORT_NONE for media type KR.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    RDMA stop returns with success even though iWARP/RoCE stop
                fails.

    Change:     Return the appropriate error code in case of a failure.

    Introduced: day 1.

    Relevance:  RDMA.

 3. Problem:    CQ105723 System crash during function close after connection
                moved to error state.

    Change:     [FW]Fix Flush SQ flow.

    Introduced: 8.40.26.0.

    Relevance:  RoCE.

 4. Problem:    CQ105732 - System crash during heavy load of OOO iWARP packets.

    Change:     [FW]Increase OOO & unaligned reservation thresholds to be
                aligned with core LL2 verifications.

    Introduced: 8.40.24.0.

    Relevance:  iWARP.

Enhancements:
-------------
 1. Request:    Add SELECT_PF support for nvm_get/set_cfg commands.

 2. Request:    Add qed tests for nvm_get_cfg_len.

 3. Request:    [FW]iSCSI and FCoE - set vf_id field in EQE to 0xFF.

 4. Request:    Add "qed_[set/restore]_trace_filter_test" to control MFW
                verbosity.

Version 8.40.22.0 (Apr 05, 2019)
================================
Internal FW 8.40.27.0

Fixes:
------
 1. Problem:    CQ105659 - VF RDMA - Issue #21 - Host crash while trying to
                start RDMA traffic after VM Reboot.

    Change:     Free RDMA's ILT when VF is FLRed.

    Introduced: VF-RDMA day 1.

    Relevance:  RoCE SRIOV.

 2. Problem:    CQ103151 - Driver provides incorrect FCoE capabilities to MFW.

    Change:     Disregard get_fcoe_caps request if it's recieved on non-fcoe pf.

    Introduced: day 1.

    Relevance:  FCoE.

 3. Problem:    CQ105742 - WS2012R2 FW Assert when creating Max QPs.

    Change:     PF RDMA tasks bitmap size should only take into account the PF
                task segments, not the VFs'.

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

 4. Problem:    CQ105566 - System crash when set Iwarp on PF and trying to boot
                VM with RDMA capable VFs.

    Change:     Enable VF timer scan when personality is RoCE instead of RDMA
                (for iWARP we should avoid it).

    Introduced: VF-RDMA day 1.

    Relevance:  VF-RDMA.

Enhancements:
-------------
 1. Request:    Forbid VF RDMA when personality is iWARP.

 2. Request:    Add num_vf_tasks field to pf_params in order to control the max
                number of MRs which can be allocated for a VF.

 3. Request:    Do not check RDMA bitmaps during FLR because we stop receiving
                events from the device.

 4. Request:    Reduce amount of bulletin posts by not posting identical boards.

 5. Request:    Forbid VF RDMA on NPAR environment.

 6. Request:    Add new module parameter "num_vf_rdma_tasks" in order to control
                the max number of MRs which can be allocated for a VF.

Version 8.40.21.0 (Mar 29, 2019)
================================
Internal FW 8.40.27.0

Fixes:
------
 1. Problem:    CQ105591 PB2 interrupt generatated when default VLAN is enabled
                for RoCE SRIOV.

    Change:     [FW] Fix PB2 command in Pstom to properly include the added tag
                vid and its length queue creation.

    Introduced: 8.40.26.0.

    Relevance:  RoCE SRIOV.

 2. Problem:    CQ105566 - System crash when set Iwarp on PF and trying to boot
                VM with RDMA capable VFs.
                CQ105644 - System crash while unloading VF driver with rdma
                traffic running.
                CQ105645 - System crash while doing PF load unload with VF RDMA
                traffic running.
                CQ105678 - Host crash while trying to create VF in NPAR mode.

    Change:     Make sure that REAL-CID bitmap is cleared before sending
                RDMA_CLOSE ramrod.
                Disable timer scan on VF unload.

    Introduced: 8.40.20.0.

    Relevance:  RoCE SRIOV.

Enhancements:
-------------
 1. Request:    [FW] Added 'enforce_security_flag' field to
                core_tx_start_ramrod_data. Used for LL2 VF TX queue to limit
                functionality. If set, disable_stag_insertion flag must be
                clear in TX BD. If set and anti-spoofing enable for associated
                VPORT, only packets with self destination MAC can be forced to
                LB.

 2. Request:    [FW] Added 'illegal_bd_flags' field to eth_tx_err_vals. Define
                VF TX queue error behavior when TX BD flags not valid. Used for
                LL2 TX queue when enforce_security_flag and
                disable_stag_insertion flag set. Used for LL2 TX queue when
                tx_dst in TX BD invalid.

 3. Request:    Fix compilation errors for ESX.

 4. Request:    Clear VF_DISABLED_ACCESS error after PCI passthrough.

 5. Request:    Add max_syn_rt to iSCSI pf params.

 6. Request:    Add num_vf_qps field to pf_params in order to control the number
                of VF connections.

 7. Request:    Padded the cxt size to the nearest power of 2 (from 1280 bytes
                to 2KB) in order to reduce the alignment factor of the number
                of VF connections.

 8. Request:    Add num_vf_qps field to pf_params in order to control the number
                of VF connections.

Version 8.40.20.0 (Mar 22, 2019)
================================
Internal FW 8.40.26.0

Fixes:
------
 1. Problem:    CQ105285 - NPAR-WS2016 - System Crash while running
                multiprotocol traffic.

    Change:     Reduce acquired ptt time while waiting for blocking ramrod
                completion.

    Introduced: 8.40.12.0.

    Relevance:  All.

 2. Problem:    VF driver attempted to write doorbells outside the mapped BAR.

    Change:     Correctly detect whether there is a dedicated doorbell bar or
                not (based on the doorbell bar size).

    Introduced: VF Doorbell Recovery (8.40.14.0).

    Relevance:  SRIOV on boards with no dedicated doorbell bar.

 3. Problem:    CQ104942 - rping fails on base interface in OV.

    Change:     Set dont_add_vlan0 field in all the applicable MF modes.

    Introduced: Day 1.

    Relevance:  UFP/OV.

 4. Problem:    Potential memory leak in qed_rdma_start().

    Change:     Free partially allocated rdma structs.

    Introduced: Day 1.

    Relevance:  RDMA.

 5. Problem:    FW may assert if using MAX aggregative DORQ command for setting
                L2/LL2 TX BD producer, after reusing an existing TX connection.

    Change:     [FW] Clear BD producer in XCM Aggregative context on L2/LL2 TX
                queue creation.

    Introduced: Day 1.

    Relevance:  All.

 6. Problem:    If GRC Dump is given a corrupt binary buffer, it can result in
                stack overflow (due to unlimited recursion).

    Change:     [FW] Add a limit to the recursion depth. If the limit is
                reached, the recusrion aborts and an error is logged.

    Introduced: Day 1.

    Relevance:  All (Debug Tools only).

 7. Problem:    LL2 RX queue fail when more than 256 CFC contexts used.

    Change:     [FW] Fix lcid field size.

    Introduced: 8.40.25.0.

    Relevance:  LL2.

 8. Problem:    VF LL2 RX ramrod stuck.

    Change:     [FW] Return EQ completion with error, when fail load VF data.

    Introduced: 8.40.25.0.

    Relevance:  LL2 SRIOV.

 9. Problem:    FW attentions due to some LL2 flows.

    Change:     Revert LL2 error flows fix.

    Introduced: 8.40.19.0.

    Relevance:  LL2.

Enhancements:
-------------

 1. Request:    Fix testing the doorbell address in doorbell recovery sanity.

 2. Request:    VF RDMA - Add basic RDMA support.

 3. Request:    VF-RDMA - Add VF PQs support.

 4. Request:    VF RDMA - Add RDMA CNQs support.

 5. Request:    VF RDMA - Add LL2 support.

 6. Request:    VF RDMA - Add EQ support.

 7. Request:    VF RDMA - Add statistics support.

 8. Request:    [FW] Support CDUC/CDUT ILT Dump. HSI changes:
                - Added the HSI functions dbg_ilt_get_dump_buf_size and
                dbg_ilt_dump.
                - Added the ilt_clients enum to HSI structs. The existing
                definition of this enum in qed should be removed.

 9. Request:    [FW] Added a new generated HSI Function file called
                qed_hsi_func_common.h. This file contains definitions that are
                common to all HSI Functions (currently the phys_mem_desc and
                virt_mem_desc structs), and is automatically included from all
                HSI Function header files.

10. Request:    [FW] Removed static debug arrays from HSI Functions, and assume
                they're defined in the HW function struct as follows:
                virt_mem_desc dbg_arrays[MAX_BIN_DBG_BUFFER_TYPE].

11. Request:    [FW] Moved dbg_tools_user_data struct definition from
                user_dbg_fw_funcs.c to user_dbg_fw_funcs.h.

12. Request:    [FW] Changed field 'active_phys_tcs' in structure
                'init_qm_port_params' (given to HSI function qm_common_rt_init)
                from u8 to u16.

13. Request:    [FW] Removed various defines with E4 suffix.

14. Request:    [FW ETH] Comments updates (clarification only):
                - "tunn_inner_ipv6" ("ETH_TX_DATA_2ND_BD_TUNN_INNER_IPV6" in
                "eth_tx_data_2nd_bd.bitfields1").
                - "tcp_hdr_len_dw" ("ETH_TX_DATA_3RD_BD_TCP_HDR_LEN_DW" in
                "eth_tx_data_3rd_bd.bitfields").
                - "ETH_L4_PSEUDO_CSUM_ZERO_LENGTH" value of
                "eth_l4_pseudo_checksum_mode" enum.

15. Request:    [FW RDMA] event_ring_entry - Renamed vfId to vf_id in order to
                comply with Linux conventions.

16. Request:    [FW RDMA] Added HSI changes for PVRDMA Suspend-Resume support.

17. Request:    [FW RDMA] Added vport_id to structs
                roce_create_qp_resp_ramrod_data/roce_create_qp_req_ramrod_data.

18. Request:    [FW RoCE] VF-RDMA - Add support for TX switching.

19. Request:    [FW RoCE] Add support for default Vlan.

20. Request:    [FW iSCSI] Added 'max_syn_rt' field (4 bits) to
                'iscsi_spe_func_init' - maximum syn packet retransmissions
                during Tcp connect. If this field isn't initialized the FW
                will set to default (5 retransmissions).

21. Request:    Add OSAL_NUM_FUNCS_IS_SET which indicates that the number of
                PFs is available for qed clients.

22. Request:    Add an qed API that returns the number of PFs.

Version 8.40.19.0 (Feb 22, 2019)
================================
Internal FW 8.40.25.0

Fixes:
------
 1. Problem:    CQ104972 - multiple nodes in cluster crash.

    Change:     Increase buffers on ll2 syn queue to be MTU.

    Introduced: 8.18.9.0.

    Relevance:  iWARP enabled.

 2. Problem:    CQ104579 - Rping fails in switched configuration after changing
                MTU.

    Change:     Validate the mac address on SYN packet.

    Introduced: Day 1.

    Relevance:  iWARP.

 3. Problem:    Fix ILT free for clients.

    Change:     Avoid endless loop in ILT free for clients which don’t use
                ILT.

    Introduced: Day 1.

    Relevance:  SRQ.

 4. Problem:    Fix error handling in LL2.

    Change:     Avoid double free and mark sent ramrods.

    Introduced: Day 1.

    Relevance:  LL2.

Enhancements:
-------------
 1. Request:    Add OSAL for non-atomic set bit - OSAL_NON_ATOMIC_SET_BIT.
                For Linux, make the current OSAL_SET_BIT atomic.

 2. Request:    During DORQ attention handling, reset doorbell overflow sticky
                indication to minimize doorbell drops, but do not run full
                doorbell recovery to minimize the chance of another overflow
                during the attention. Executing the recovery after a small delay
                is sufficient since doorbells are aggregative.
                Periodic doorbell recovery handler is scheduled on all PFs and
                on every attention, in case of an overflow during the attention
                handler of a spurious interrupt.

 3. Request:    Change periodic doorbell recovery count from 100 to 10.

Version 8.40.18.0 (Jan 30, 2019)
================================
Internal FW 8.40.25.0

Fixes:
------
 1. Problem:    CQ104666 - VF RX queue start ramrod stuck.

    Change:     [FW] Return EQ completion with error, when fail load VF data.

    Introduced: Day 1.

    Relevance:  SRIOV.

Enhancements:
-------------
 1. Request:    [FW] E45->E4 Solution rollback. Including:
                - HSI datatypes renaming - removed all e5 datatypes and renamed
                  all e4 datatypes to be prefixless/suffixless.
                - HSI funcs - removed iscsi/fcoe e4/e5 prefixes/suffixes.
                - Removed E5 RFs.

 2. Request:    [FW] Replace constant conditional expressions with pre-compiler
                conditional expressions in HSI functions.

 3. Request:    [FW Core] Added 'opaque_data' field to core_rx_gsi_offload_cqe
                (for PVRDMA).

 4. Request:    [FW Core]Changes:
                - Changed core_ll2_rx_prod struct – removed reserved field.
                  Now it 32 bit.
                - MAX_NUM_LL2_RX_QUEUES constant – reduced to 32 and renamed
                  to MAX_NUM_LL2_RX_RAM_QUEUES.
                - MAX_NUM_LL2_RX_CTX_QUEUES constant added – Now equal to 112,
                  will be increased in the future.
                - MAX_NUM_LL2_RX_QUEUES constant now define as
                  (MAX_NUM_LL2_RX_RAM_QUEUES + MAX_NUM_LL2_RX_CTX_QUEUES).
                - Added CORE_RAMROD_QUEUE_STATS_QUERY ramrod to collect context
                  statistics. Use core_queue_stats_query_ramrod_data struct for
                  ramrod data.
                - Added zero_prod_flg to core_rx_start_ramrod_data struct.

 5. Request:    [FW ETH] Added ETH_RX_QUEUE_FAIL_LOAD_VF_DATA to eth_error_code
                enum.

 6. Request:    [FW RDMA] Added HSI changes for Searcher Mode and PVRDMA
                Namespace support.

 7. Request:    [FW ROCE] Added HSI changes for Searcher Mode and PVRDMA
                Namespace support.

 8. Request:    [FW] Support RDMA Searcher Mode and PVRDMA Namespace.

 9. Request:    [FW]Support Ll2 SRIOV queues.

Version 8.40.17.0 (Jan 29, 2019)
================================
Internal FW 8.40.24.0

Fixes:
------
 1. Problem:    Fix stack out of bounds bug in ecore_init_qm_get_idx_from_flags.

    Change:     Fix type of argument "pq_flags" passed to it.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Added qed API for checking whether the device allows DSCP to
                TC mapping or not.

Version 8.40.16.0 (Jan 18, 2018)
================================
Internal FW 8.40.24.0

Fixes:
------
 1. Problem:    CQ104510 - HP12.40:AH & BB:Beta-25-02: Error recovery test
                failed.

    Change:     Increase variable size of the buffer length.

    Introduced: Day 1.

    Relevance:  DebugFS.

 2. Problem:    qed_db_rec_handler crashes on non-SRIOV setups.

    Change:     IS_PF_SRIOV sanity before accessing pf_iov_info.

    Introduced: 8.40.14.0.

    Relevance:  non SR-IOV.

Enhancements:
-------------
 1. Request:    Added qed test to configure min/max BW values.

 2. Request:    Added Ecore API ecore_mcp_set_bandwidth() for configuring
                min/max BW values.

Version 8.40.15.0 (Jan 11, 2018)
================================
Internal FW 8.40.24.0

Fixes:
------
 1. Problem:    CQ104642/104647 - Server crashed when running storage + L2 IO.

    Change:     Fix stale access to the SKB in LL2 transmit flow.

    Introduced: Day 1.

    Relevance:  LL2.

Enhancements:
-------------
 1. Request:    Add Doorbell Overflow Recovery support for VFs.

 2. Request:    Add a qed op for upper drivers to report the MFW (AHS) about
                fatal errors.

 3. Request:    Add support for read/write dcbx mbc (macsec bypass cap) value.

Version 8.40.14.0 (Dec 21, 2018)
================================
Internal FW 8.40.24.0

Fixes:
------
 1. Problem:    Possible race between zeroing the LL2 PI producer and reading
                the producer from the completion callback.

    Change:     Make sure that the cookie is set and that the PI producer is
                zeroed before setting the callback.

    Introduced: Day 1.

    Relevance:  LL2.

 2. Problem:    CQ103874 - when VF removed from running VM, fails to
                get probed on hypervisor.

    Change:     Add retry mechanism by VF if VF acquire might get time out
                due to VF is being disabled at the same time.

    Introduced: Day 1.

    Relevance:  SR-IOV.

 3. Problem:    CQ88460 - ECC error statistics is always 0 using the api
                "qed_mcp_mem_ecc_events".

    Change:     Fix the API to return the retrieved value from the MFW.

    Introduced: 8.33.2.0.

    Relevance:  ECC error statistics.

 4. Problem:    CQ104157 - ICPL error appears in dmesg when loading qede.

    Change:     Supress the log as it's not an harmful device state/scenario.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    Ringing a LL2 Rx doorbell might happen before its RX producer
                is updated.

    Change:     Add a missing write memory barrier before the doorbell.

    Introduced: Day 1.

    Relevance:  LL2.

 6. Problem:    FW Out-Of-Order resource handling caused FW assertion.

    Change:     [FW]Fixed Out-Of-Order resource handling checks.

    Introduced: Day 1.

    Relevance:  iSCSI.

 7. Problem:    CQ103473 - FW assertion may happen in case a connection
                is uploaded while there are pending operations.

    Change:     [FW]Fix the connection upload FW flow.

    Introduced: Day 1.

    Relevance:  FCoE.

 8. Problem:    CQ103476 - FW assertion may happen in case an exchange cleanup
                was performed after a middlepath exchange completed.

    Change:     [FW]Fix the middlepath FW flow.

    Introduced: Day 1.

    Relevance:  FCoE.

 9. Problem:    FW assertion may happen in rare case when slow-start retransmit
                phase is initiated and then canceled before single packet gets
                actually retransmitted.

    Change:     [FW]Fix retransmit FW flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

10. Problem:    CQ103621 & CQ103605 - Connection drop may happen in case of
                treating incoming OOO packed DDPs.

    Change:     [FW]Verify MPA CRC correctly in case of OOO packed DDPs.

    Introduced: Day 1.

    Relevance:  iWARP.

11. Problem:    CQ104123 - FW assert hit when DIF is enabled and using
                non-typical MTU values (Where typical MTU values are 1500 or
                9000).

    Change:     [FW]Fix Tx DIF Workaround calculations.

    Introduced: Day 1.

    Relevance:  iSCSI DIF.

12. Problem:    CQ103784 - System crash when run RDMA max QPs test on Austion.

    Change:     Call DORQ attnention handler on every attention.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Added qed API qed_mcp_send_raw_debug_data() to allow upper
                layer drivers to report to the MFW about critical errors.

 2. Request:    [E5 FW] Set PCIe RO flag in all L2 PBF read requests, to
                reduce the risk of doorbell overflow.

 3. Request:    [FW]Support USO for non-tunneled UDP packets.

Version 8.40.13.0 (Nov 26, 2018)
================================
Internal FW 8.40.23.0

Fixes:
------
 1. Problem:    CQ101673: LinuxVM-SRIOV- VF not getting enumerated after
                removing and assigning again, but gets enumerated
                after rebooting VM.

    Change:     Fix evaluation next active VF.

    Introduced: Day 1.

    Relevance:  SRIOV.

 2. Problem:    CQ104237 - Mailbox sleep implementation during SFP access.

    Change:     Add a short sleep between successive accesses to the SFP.

    Introduced: Day 1.

    Relevance:  SFP.

 3. Problem:    Computation of excess tasks to fit the ILT lines number doesn't
                take into account a larger value than max tasks number.

    Change:     Add a check for the correct range of values.

    Introduced: Day 1.

    Relevance:  RDMA.

Enhancements:
-------------
 1. Request:    Add a module parameter to always run periodic Doorbell Overflow
                Recovery: periodic_db_rec.

 2. Request:    Add support for 512 SBs in E5.

Version 8.40.12.0 (Nov 05, 2018)
================================
Internal FW 8.40.23.0

Fixes:
------
 1. Problem:    CQ103151 - FC/FCoE capabilities should come from host driver and
                not from firmware.

    Change:     Add interface for FCoE upper drivers for setting the FCoE
                capabilities.

    Introduced: Day 1.

    Relevance:  FCoE, NC-SI.

 2. Problem:    CQ103621 & CQ103605 - Connection drop may happen in case of
                treating incoming OOO packed DDPs.

    Change:     Set correct tc for MPA ll2 connections.

    Introduced: Day 1.

    Relevance:  iWARP.

 3. Problem:    Wrong calculation of CDUT ILT lines.

    Change:     Fix the calculation.

    Introduced: Day 1.

    Relevance:  RDMA, VF.

 4. Problem:    Try freeing unallocated DMA-able memory for FW overlay when
                ecore_resc_alloc() fails.

    Change:     Avoid freeing the DMA-able memory if was not allocated.

    Introduced: 8.40.3.0.

    Relevance:  All.

 5. Problem:    CQ104015 - Pause flood detected while bring up all the 16 ports.

    Change:     Fix RSS engine allocation of old MFW versions.

    Introduced: Day 1.

    Relevance:  ETH.

 6. Problem:    CQ103964 - Austin-C System boot on cable pull.

    Change:     Send SFP udev events via non-interrupt context.

    Introduced: 8.40.10.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Remove the "use_random_vf_mac" module parameter.
                Add a "vf_mac_origin" module parameter to control the origin of
                the initial VF MAC address.

 2. Request:    Add new "get_fcoe_capabilities" callback op.

 3. Request:    Add support for getting the permanent VF MAC addresses from the
                NVRAM.

 4. Request:    Add new OSAL - OSAL_GET_FCOE_CAPABILITIES().

 5. Request:    Send debug data to the MFW upon a detection of HW error.

Version 8.40.11.0 (Oct 12, 2018)
================================
Internal FW 8.40.23.0

Fixes:
------
 1. Problem:    MFW is considered by qed as running on an adapter with only
                ROM.

    Change:     Decide whether the MFW is running based on the value of
                MCP_REG_CACHE_PAGING_ENABLE.

    Introduced: Day 1.

    Relevance:  E5.

 2. Problem:    Dynamic release of ILT lines might free lines that are used by
                CIDs/TIDs which are not within the requested range.

    Change:     Avoid freeing lines which are only partially used by the
                requested range.

    Introduced: Day1.

    Relevance:  RDMA.

Enhancements:
-------------
 1. Request:    Add support for SRIOV on E5.

Version 8.40.10.0 (Oct 05, 2018)
================================
Internal FW 8.40.23.0

Fixes:
------
 1. Problem:    CQ102979 - getting qed_reg_read_test messages while Flashing
                firmware.

    Change:     Reduce the verbosity level of the relevant printouts.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ103334 - KD break when turning ON VMs with max VF
                configuration.

    Change:     When relocating SB from PF to VF, perform SB cleanup with PF`s
                Opaque before assigning it to VF.

    Introduced: 8.37.21.0.

    Relevance:  SRIOV.

 3. Problem:    CQ103283 - Connection drops observed in RoCE traffic when both
                rocev1 and rocev2 tlvs are not defined on Arista switch (7060x).

    Change:     Do not set offload_tc for non APP TLV protocols.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add qed test for testing the port LED mode.

 2. Request:    Add qed tests for nvm_get_cfg and nvm_set_cfg.

 3. Request:    Add udev events for transceiver events:
                SFP present / TX fault / RX loss.

 4. Request:    Add APIs for nvm config access. APIs added are
                ecore_mcp_nvm_get_cfg() and ecore_mcp_nvm_set_cfg().

 5. Request:    Add mcp Ecore APIs to control MFW attentions.

Version 8.40.9.0 (Sep 07, 2018)
===============================
Internal FW 8.40.23.0

Fixes:
------
 1. Problem:    CQ103179 - System crash upon driver disable/enable with
                verifier on.

    Change:     Set the number of ports before sending a GET_MFW_FEATURE_SUPPORT
                mailbox command.

    Introduced: 8.33.10.0.

    Relevance:  All.

 2. Problem:    CQ102977 - One time system crash seen while disable-enable
                NDIS devices.

    Change:     Set empty completion callback when unregister callback
                in order avoid race.

    Introduced: Day 1.

    Relevance:  L2.

 3. Problem:    Ramrods are not posted after a blocking ramrod was stuck.

    Change:     Save the posted entry and return it to the pool in error flow.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    SPQ entries leak in error flows.

    Change:     Return acquired SPQ entries to the pool in error flows.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    CQ103186 - HPE 12.35 Pause flood - grcdump from Linux server.

    Change:     Configure PRS_REG_TASK_ID_MAX_INITIATOR/TARGET_PF to max tid
                rather than tid count.

    Introduced: fcoe Day 1.

    Relevance:  fcoe.

 6. Problem:    The MFW might get stuck while debug data collection is done
                concurrently.

    Change:     Prevent a concurrent debug data collection.

    Introduced: Day 1.

    Relevance:  Debug data collection.

Enhancements:
-------------
 1. Request:    Add qed test: generate ramrod stuck.

 2. Request:    Add an option to ignore SPQ completion for testing purposes.

Version 8.40.8.0 (Aug 31, 2018)
===============================
Internal FW 8.40.23.0

Fixes:
------
 1. Problem:    CQ102927 - System crash while enabling "Virtual Switch RSS" on
                PFs after turning off VMs with max VFs enumerated on all
                functions.

    Change:     Cleanup SB after relocation of SB.

    Introduced: Day 1.

    Relevance:  ETH.

Enhancements:
-------------
 1. Request:    Added PRAM caching support.

 2. Request:    In case dscp_pfc mapping is set, override VLAN priority in RoCE
                according to DSCP value.
                RoCE qp's TC is determined in the following order:
                1. Global VLAN priority, 2. Derived from DSCP value,
                3. QP's VLAN priority, 4. Default 0.

 3. Request:    Remove "num_r2tq_pages_in_ring" from "qed_iscsi_pf_params".

 4. Request:    Add qed prefix to all defines/structures in qed_tcp_ip.h.

 5. Request:    Add CONFIG_ECORE_OOO compilation flag.


Version 8.40.7.0 (Aug 26, 2018)
===============================
Internal FW 8.40.23.0

Fixes:
------
 1. Problem:    Advertised wrong page size capability.

    Change:     Fix QED_RDMA_PAGE_SIZE_CAPS value.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    The PPFID to PFID mapping is not restored when LAG is destroyed.

    Change:     Restore the mapping to use the slave PFID.

    Introduced: RDMA Bonding Day 1.

    Relevance:  RDMA Bonding.

 3. Problem:    In case of high doorbell load in multiple QPs environment
                latency optimization for inline flow may cause
                incorrect transmission.

    Change:     [FW] Change latency optimization flow for inline WQEs.

    Introduced: Day 1.

    Relevance:  RDMA.

 4. Problem:    Assert appear when updating dcqcn params dynamically.

    Change:     [FW] Fix tstorm update dcqcn ramrod.

    Introduced: FW 8.40.21.0.

    Relevance:  ROCE Dcqcn.

 5. Problem:    NWS parity when grcDump is collected and MFW is not responding.

    Change:     [FW] Fix Parity masking.

    Introduced: Day 1.

    Relevance:  Debug Tools.

 6. Problem:    Might miss a timeout expiry when waiting the MFW to initialize
                the SHMEM.

    Change:     Fix the loop counter decrement to be pre instead of post.

    Introduced: 8.30.12.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Remove qed_dcbx_get_priority_tc() from qed APIs.

 2. Request:    [FW iSCSI] Support configuration of different page size for
                connection queues.

Version 8.40.6.0 (Aug 03, 2018)
===============================
Internal FW 8.40.22.0

Fixes:
------
 1. Problem:    NWS parity when grcDump is collected
                (when MFW is not responding).

    Change:     Fix Parity masking.

    Introduced: Day 1.

    Relevance:  AH.

Enhancements:
-------------
 1. Request:    Added API to check if the device is in fip special mode or not.

 2. Request:    Use new chain APIs qed_chain_alloc()/qed_chain_params_init().

 3. Request:    Fix getting bad values from DCBX APIs in emulation without MFW.

Version 8.40.5.0 (Jul 27, 2018)
===============================
Internal FW 8.40.22.0

Fixes:
------
 1. Problem:    CQ101753 - BB 100G fails with BRB hardware assertion.

    Change:     [FW] BRB init fix.

    Introduced: Day 1.

    Relevance:  BB 100G.

 2. Problem:    Memory leak after extracting MCP Trace (meta data is not
                released).

    Change:     [FW] Separated regular and continuous MCP Trace
                - Modified the regular MCP Trace to release its meta data.
                - Added the HSI Function print_mcp_trace_results_cont to
                initiate a continuous MCP Trace, and the HSI Function
                mcp_trace_free_meta_data to free its meta data when done.

    Introduced: FW 8.40.9.0.

    Relevance:  Debug Tools.

 3. Problem:    CQ101253 - parity issue due to update RSS indirection table
                via RBC interface.

    Change:     [FW] RSS indirection table update via RBC interface not
                supported under traffic. Removed update_eth_rss_ind_table_entry
                HSI function. Added FW interface for update RSS indirection
                table.

    Introduced: FW 8.40.10.0.

    Relevance:  ETH (RSS update).

 4. Problem:    CQ102505 - Cannot run GRE tunnel traffic when RDMA ennoblement
                is set to iWARP.

    Change:     [FW] Do not forward tunneled SYN packets to LL2.

    Introduced: Day 1.

    Relevance:  ETH.

 5. Problem:    If the MCP Trace meta data wasn't dumped together with the MCP
                trace data (e.g. due to NVRAM access issues), and the user
                provided a non-matching meta data on parsing, and the trace
                contains a message that uses a format index which is equal to
                the number of formats defined in the meta data (i.e. an invalid
                format), the MCP Trace code will access a non-allocated memory.

    Change:     [FW] Fixed MCP Trace parsing format index check.

    Introduced: Day 1.

    Relevance:  Debug Tools.

 6. Problem:    CQ102478 - perftest BW tests fails when using inline data.

    Change:     [FW] Fixed retransmit flow.

    Introduced: FW 8.40.17.0.

    Relevance:  RoCE.

 7. Problem:    If the dumped MCP Trace data contains invalid data in which
                the trace buffer size is 0 (e.g. due to corruption of the
                dumped data), the MCP Trace parsing performs modulo 0, causing
                an undefined behavior.

    Change:     [FW] Return a parsing error if the dumped MCP Trace trace buffer
                size is 0.

    Introduced: Day 1.

    Relevance:  Debug Tools.

 8. Problem:    CQ098166 - Interface Down/Up : Getting "Unable to read
                queue calescing" in logs.

    Change:     Updated verbosity log level of coalescing logs accordingly.

    Introduced: Day1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add support for the tenth 32 output bits of the AEU in E5.

 2. Request:    Add new OSAL - OSAL_DBG_ALLOC_USER_DATA().

 3. Request:    [FW SCSI] Support Xon/Xoff mechanism in E5.

 4. Request:    Add qed_update_eth_rss_ind_table_entry() api to update FW RSS
                indirection table entry according to new interface.

 5. Request:    Fix possible memory leak in qed_sp_init_request().

 6. Request:    E5 - Searcher/RGFS/TGFS T1 and T2 databases initialization.

 7. Request:    Added qed tests for dcbx get/set [pfc|ets|app] willing modes.

 8. Request:    Delete qed_mcp_nvm_resp().

 9. Request:    Added qed test: get physical port number, display the result
                for each pf in nics.sh.

Version 8.40.4.0 (Jul 13, 2018)
===============================
Internal FW 8.40.21.0

Fixes:
------
 1. Problem:    CQ101594 - System crash while disable-enable interfaces
                with L2 traffic in legacy interrupt mode.

    Change:     Add DPC sync after PF stop to allow clean up of async events.

    Introduced: Day1.

    Relevance:  All.

 2. Problem:    HW error (ramrod stuck) when unloading qedr with DCQCN enabled.

    Change:     Get a valid pq in ll2 when DCQCN enabled.

    Introduced: Day 1 Multi-TC RoCE.

    Relevance:  RDMA with DCQCN enabled.

 3. Problem:    CQ101466 - FCoE connection is not establish on vport 2 after
                previously having a mismatch fcoe vport with the same vlan.

    Change:     Clear stag config on PF when MFW invalidates the stag value.

    Introduced: Day one.

    Relevance:  FCoE/RoCE in UFP mode.

 4. Problem:    CQ101779 - System crash while creating max QPs 4096 for RDMA
                traffic.

    Change:     Doorbell recovery await usage depletion only when EDPM is
                enabled.

    Introduced: Day one Doorbell Recovery.

    Relevance:  Windows / EDPM disabled.

 5. Problem:    Reading wrong information from nvram.

    Change:     Update nvram info when reading after writes.

    Introduced: 8.33.11.0.

    Relevance:  Writes to nvram.

 6. Problem:    If GRC Dump is taken during Debug Bus recording, no space is
                reserved in the GRC Dump buffer for static debug data.

    Change:     [FW] Always reserve space in GRC Dump buffer for static debug
                data.

    Introduced: Day 1.

    Relevance:  Debug Tools.

 7. Problem:    CQ101251 - Xon/Xoff mechanism causes error for PFs on port > 0.

    Change:     [FW] Fix Xon/Xoff flow.

    Introduced: Day 1.

    Relevance:  iSCSI, FCoE.

 8. Problem:    QP with infinite local ack timeout that stops receiving acks
                might not complete previous acked SQ WQEs.

    Change:     [FW] Fix SQ completion flow when local ack timeout is infinite.

    Introduced: Day 1.

    Relevance:  RoCE.

 9. Problem:    CQ101512 - FW transmits packet larger than the MTU when
                Time-stamp option is enabled on both sides and either DIF or
                Data Digest are enabled.

    Change:     [FW] Fix Tx flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

10. Problem:    CQ101567: perftest BW tests hang when using inline data.

    Change:     [FW] Fix optimization flow made for inline.

    Introduced: Day 1.

    Relevance:  RoCE.

11. Problem:    CQ101533 - In case of AHS length connection error, the FW
                incorrectly incremented the CMDQe count value which is passed to
                the driver as part of the termination ramrod.

    Change:     [FW] Fix Rx flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

12. Problem:    Application cannot use page sizes above 2GB (while standard
                permits up to 8MB).

    Change:     [FW] Support page sizes up t 8GB.

    Introduced: Day 1.

    Relevance:  RDMA.

13. Problem:    CQ101567: perftest BW tests hang when using inline data.

    Change:     [FW] Fix optimization flow made for inline.

    Introduced: Day 1.

    Relevance:  RoCE.

14. Problem:    CQ95208 - Remote invalidate fails due to ongoing old
                retransmission.

    Change:     [FW] RDMA remote invalidate Re-design.

    Introduced: Day 1.

    Relevance:  iWARP, RoCE.

15. Problem:    CQ101766 - RoCE function close may fail with FW assert after
                running RoCE with mixed IO sizes.

    Change:     [FW] Fixed relevant RoCE flow.

    Introduced: Day 1.

    Relevance:  RoCE.

16. Problem:    If the crash mode parameter is set before any other debug-tools
                HSI function is called, the dump buffer size calculated for
                crash mode can be wrong.

    Change:     [FW] Take device info (e.g. emulation build type, number of
                ports per engine, etc.) from the driver instead of from the
                chip.

    Introduced: FW 8.40.7.0.

    Relevance:  Debug Tools.

17. Problem:    CQ101291 - Application that uses RDMA READ may stuck in a lossy
                environment.

    Change:     [FW] Arm a timer for every packet that is sent to the wire.

    Introduced: Day 1.

    Relevance:  RoCE.

18. Problem:    If enabling tx-switching during vport_update - FW assert
                occurred.

    Change:     [FW] Fix in FW regarding the problem.

    Introduced: FW 8.40.20.0.

    Relevance:  ETH.

19. Problem:    CQ102157: LACP TX pkts from VF bond are getting
                dropped with tx_error_drop.

    Change:     Trusted VFs should be allowed to send control LACP packets.

    Introduced: 8.14.0.0.

    Relevance:  SR-IOV.

20. Problem:    Wrong pointer is checked before calling a SIMD fastpath handler.

    Change:     Check the suitable pointer.

    Introduced: 8.33.0.0.

    Relevance:  INTa.

21. Problem:    PTT leak in qed_drain().

    Change:     Release PTT in error flow.

    Introduced: NIG drain day one.

    Relevance:  NIG drain.

22. Problem:    CQ101805 - Intermittent system crash while creating max QPs for
                RoCEv2 traffic
                CQ100928 - OpenMPI:IMB_MPI1-Alltoall benchmarks always hang
                while trying to run more than 32processes (Total CPUs:36).

    Change:     Add periodic Doorbell Recovery.

    Introduced: Doorbell Recovery day one.

    Relevance:  RDMA with many qps.

23. Problem:    CQ102477 – system crashed while unloading and loading FCoE
                driver in RH6.10 OS.
                Firmware buffer might be released by some PF while another PF
                uses the buffer.

    Change:     Use a per-PF buffer to hold the firmware data.

    Introduced: Day 1.

Enhancements:
-------------
 1. Request:    Added qed tests: get/set/unset offload TC, lag modify/destroy.

 2. Request:    Add support for MBI image upgrade.

 3. Request:    Added qed test 'dcbx_set_cfg_commit' which controls whether to
                send the dcbx config changes to MFW, or just cache it at driver.

 4. Request:    Added qed test for dcbx_app_tlv_del, the command in static
                dcbx mode which deletes all the configured app TLVs.

 5. Request:    Added Multi-TC RoCE support. Modified QM initialization, and
                added QM APIs for RoCE that return pqs with a requested TC.

 6. Request:    Add debug platform string support for debug dumps.

 7. Request:    [FW ETH] Support any VNI in RX classification.

 8. Request:    [FW] Support multiple debug bus per block.

 9. Request:    [FW ETH] VF Representor support.

10. Request:    [RoCE] Dcqcn interoperability with other vendor.

11. Request:    Add new OSAL - OSAL_SET_PLATFORM_STR().

12. Request:    Add new OSAL - OSAL_GET_EPOCH().

13. Request:    Add Ecore API that runs Doorbell Recovery and handles DORQ
                PF sticky overflows. Add OSAL_PERIODIC_DB_REC_START which
                triggers periodic Doorbell Recovery.

Version 8.40.3.0 (Jun 08, 2018)
===============================
Internal FW 8.40.18.0

Fixes:
------
 1. Problem:    XRC and SRQ can't run simultaneously.

    Change:     Fix xrc/srq id allocation to be unique.

    Introduced: Day one xrc.

    Relevance:  XRC and SRQ simultaneously.

Enhancements:
-------------
 1. Request:    Added Ecore API ecore_dcbx_get_priority_tc() to get the TC
                mapped to a given priority. Added ecore_dcbx_get_dscp_state()
                which checks if DSCP is enabled.

 2. Request:    Removed Configuration of NIG, duplicate to host and storm as
                Init tool is taking care of it.

Version 8.40.2.0 (May 30, 2018)
===============================
Internal FW 8.40.18.0

Fixes:
------
 1. Problem:    CQ94546 - list corruption can occur during qedr/qedi unload.

    Change:     Handle race in ll2 connection teardown.

    Introduced: Day one.

    Relevance:  Protocols using ll2 OOO (rdma,iscsi).

 2. Problem:    CQ101210 - TCP Traffic from VNIC to VNIC of
                different VF of same pf not working.

    Change:     Fix tx promiscous mode settting.

    Introduced: Day one.

    Relevance:  L2.

Enhancements:
-------------
 1. Request:    Add qed tests for dcbx app_tlv, pfc_enable and get_max_tc.

 2. Request:    Add new TLV to change MTU through vport update.

 3. Request:    Add retpoline spectre meltdown support.

Version 8.40.1.0 (May 07, 2018)
===============================
Internal FW 8.40.18.0

Fixes:
------
 1. Problem:    Incorrect port id is passed while requesting the sfp-data/stats.

    Change:     Use absolute port-id value when interacting with MFW.

    Introduced: Day 1.

    Relevance:  ethtool -m, sfp stats query.

 2. Problem:    Slave PF will get QM reconfigured unnecessarily (waste pqs).

    Change:     reconfigure QM only on Master PF.

    Introduced: Rdma Bonding day 1.

    Relevance:  RDMA bonding.

 3. Problem:    CQ101081: Loading/unload driver with RDMA-bonding leads to
                crash.

    Change:     Always allocate memory for rdma bond physical queues for roce
                personality.

    Introduced: 8.33.10.0.

    Relevance:  RDMA bonding.

 4. Problem:    The calculation of the number of ports per engine is wrong for
                BB with a single operational engine.

    Change:     Change the calculation to be based on MISC_REG_PORT_MODE.

    Introduced: 8.40.0.0.

    Relevance:  BB 1x40G.

 5. Problem:    DCQCN may slow down the wrong qp (when low latency queue is
                used or when qp index is above greatest power of two which is
                still lower than amount of available rate limiters.

    Change:     Get the LLT queue from PQ_FLAGS_GRP instead of PQ_FLAGS_RLS.
                Set number of RLs in DCQCN to be a power of 2.

    Introduced: 8.33.10.0.

    Relevance:  RDMA bonding + DCQCN.

 6. Problem:    DCQCN Reaction point does not respond to CNP packets.

    Change:     Set NIG's duplicate to host and storm to always duplicate.

    Introduced: 8.37.7.0.

    Relevance:  Roce DCQCN.

Enhancements:
-------------
 1. Request:    Add FEC support.

 2. Request:    Delete unused p_hwfn/p_ptt from ecore_mcp_nvm_resp().

 3. Request:    Enforce GET_FIELD/GET_MFW_FIELD macros.

 4. Request:    Warnings fixes for qmaal.

Version 8.40.0.0 (Apr 19, 2018)
===============================
Internal FW 8.40.18.0

Fixes:
------
 1. Problem:    CQ100049 - Support link modes shows differently when issuing
                the same command in OS.

    Change:     Handle error paths in the speed capabilities calculation.

    Introduced: 8.33.1.0.

    Relevance:  Link speed capabilities.

 2. Problem:    CQ99052: BZ125305 FCoE slow to link up on Jawa.

    Change:     Configure the header select of an LLH filter based on the usage
                of S-Tag.

    Introduced: 8.33.2.0.

    Relevance:  UFP.

 3. Problem:    The max number of PPFIDs on the first 2 ports on AH 4-ports is
                not limited to 4.

    Change:     Ensure that no more than 4 PPFIDs per port are used on AH
                4-ports.

    Introduced: 8.33.13.0.

    Relevance:  AH 4-ports.

 4. Problem:    Dcqcn doesn't work on port 1.

    Change:     Use new offset/count FW api to indicate which RLs should be
                used.

    Introduced: Dcqcn day 1.

    Relevance:  Roce Dcqcn.

 5. Problem:    CQ100917: Transceiver DMI data is incorrect using ethtool.

    Change:     Read optical transceiver data from memory region 0xA2.

    Introduced: Day 1.

    Relevance:  ethtool -m.

 6. Problem:    CQ100732: Loading driver with DCQCN + RDMA-bonding leads to
                crash.

    Change:     Avoid configuration of QM block according to DCQCN paradigm on
                slave PF of the bond.

    Introduced: 8.33.10.0.

    Relevance:  RDMA bonding + DCQCN.

 7. Problem:    ecore_chain_set_prod/cons() set the wrong page index in chains
                with non power of 2 page count.

    Change:     Calculate the right page index according to current indexes.

    Introduced: 8.30.12.0.

    Relevance:  L2, RDMA.

 8. Problem:    CQ100625 - Vlan priority configured on the switch is not used by
                CNA.

    Change:     Override OS priority with the UFP TC value when dcbx TLV is not
                available for the assoicated traffic.

    Introduced: Day 1.

    Relevance:  UFP.

 9. Problem:    Incorrect initialization of T10 PI(DIF) context.

    Change:     [FW] Fix initialization offsets.

    Introduced: Day 1.

    Relevance:  iSCSI (E5 only).

10. Problem:    HW attention.

    Change:     [FW] Support 56 ThreadIds.

    Introduced: Day 1.

    Relevance:  E5.

11. Problem:    Reduced performance due to under-utilization of PBF command
                queue.

    Change:     [FW] Fixed PBF command queue lines allocation to use 512b units.

    Introduced: Day 1.

    Relevance:  E5.

12. Problem:    TPA continue message arrive without TPA start.

    Change:     [FW] Fix lock order in TPA flow.

    Introduced: FW 8.40.0.0.

    Relevance:  E5 ETH.

13. Problem:    The wrong block name can be printed when parsing attention
                results in debug tools.

    Change:     [FW] Fixed conversion from block ID to block name.

    Introduced: FW 8.40.6.0.

    Relevance:  Debug Tools.

14. Problem:    Negative byte value could potentially be returned to QM when
                both (mutually exclusive) 'vlan_insertion' and 'default_vlan_en'
                are set and packet is dropped (VF).

    Change:     [FW] Fixed FW Flow.

    Introduced: Day 1.

    Relevance:  ETH.

15. Problem:    VF RX queue start ramrod stuck.

    Change:     [FW] Use VF FID in RX queue start ramrod.

    Introduced: FW 8.40.13.0.

    Relevance:  SRIOV.

16. Problem:    HW attention happens on responder when sending large RDMA Read
                IOs (64K and above).

    Change:     [FW] Fix RDAM Read firmware flow.

    Introduced: FW 8.40.14.0.

    Relevance:  RoCE.

17. Problem:    L2 Tx Timeouts.

    Change:     [FW] Fix L2 P-Storm Event-IDs numbering.

    Introduced: Day 1.

    Relevance:  E5 ETH.

18. Problem:    Due to a HW bug, data that remains in the SEMI sync FIFO after
                an RH recording is added to the next recording.

    Change:     [FW] Before ending an RH recording, wait until the SEMI sync
                FIFO gets empty (can fail in case of back-pressure from PCI/NW).

    Introduced: Day 1.

    Relevance:  E5 Debug Tools.

19. Problem:    CQ100625 - Vlan priority configured on the switch is not used by
                CNA.
                CQ101185 - Cannot have different priorities configured on
                multiple vports on the same port of a CNA.

    Change:     Revert the prior change of enabling the dcbx for eth protocol.
                Use ufp-tc value as stag priority, and enabling of stag priority
                change shouldn't be dependent on the dcbx state.

    Introduced: Day 1.

    Relevance:  UFP.

20. Problem:    PORT_PF split registers are not read correctly in GRC Dump.

    Change:     [FW] Fixed pretend/DMAE parameters when reading PORT_PF split
                registers.

    Introduced: Day 1.

    Relevance:  Debug Tools.

21. Problem:    CQ99953 – L2B RX ramrod fail, if sent under traffic. Issue
                happens if LLH classification fails for all traffic.

    Change:     [FW] Initialize TCM_REG_IA_ARB_SP_TIMEOUT to 0.

    Introduced: Day 1.

    Relevance:  All.

22. Problem:    BMB RAM is read as part of full GRC Dump in order to extract
                packets. The RAM is read indirectly, by repeatedly writing to
                an address register and reading from a data register.
                The address register is protected, so a GRC protection error
                occurs when GRC Dump writes to it.

    Change:     [FW] Excluded BMB RAM from GRC Dump.

    Introduced: Day 1.

    Relevance:  Debug Tools.

23. Problem:    CQ100285 - Tx FW flow may transmit extraneous data.

    Change:     [FW] Skip T10 DIF HW workaround logic in FW when no data should
                be transmitted due to TCP window closed.

    Introduced: Day 1.

    Relevance:  iSCSI.

24. Problem:    Traffic without inner IP does not match GFT filter when
                GFT_PROFILE_TYPE_TUNNEL_TYPE profile used.

    Change:     [FW] Allow GFT search for non IP traffic when
                GFT_PROFILE_TYPE_TUNNEL_TYPE profile is used.

    Introduced: FW 8.40.11.0.

    Relevance:  ETH.

25. Problem:    Due to a HW bug, when recording RH to PCI, and the PCI is
                blocked when the recording ends, the SEMI sync FIFO may fail
                to be emptied, and consequently the Storms will remain stalled,
                and the next RH recording will be corrupted.

    Change:     [FW] When failing to empty the SEMI sync FIFO into the PCI,
                empty it into the DBG block internal buffer instead.

    Introduced: Day 1.

    Relevance:  Debug Tools.

Enhancements:
-------------
 1. Request:    Use VF trust mode (ip tool option) to override forced MAC set
                by PF and allow VF to change it's MAC address.

 2. Request:    Add support for flash configuration.

 3. Request:    Allow a ratio of 2:1 between storage CQs/CmdQs and SBs in case
                a of target.

 4. Request:    Ecore API ecore_mcp_phy_read()'s len parameter was changed to
                u32* since it is an output parameter.

 5. Request:    Ensure that only PPFIDs of PFIDs on the same port are used on BB
                4-ports.

 6. Request:    Modify QM physcial queue getter functions to return a queue
                within legal range when request is out of range by wrapping the
                requested index according to Maximum. For DCQCN PQs this is
                expected behavior.

 7. Request:    Reduce the verbosity in ecore_pglueb_rbc_attn_handler() while
                logging error message during HW init.

 8. Request:    Add CHANNEL_TLV_BULLETIN_UPDATE_MAC to allow trusted VF to
                update MAC address in bulletin board.

 9. Request:    Make ecore_eth_tx_queue_maxrate() an ecore API.

10. Request:    Add initial support for E5.

11. Request:    [FW] Add IOR/PBUF dump, and extend number of LTIDS to 384.

12. Request:    [FW iWARP] Add iWARP EDPM support for E5.

13. Request:    [FW RoCE] Improve ACK latency.

14. Request:    Initial GFS/GFT configuration support for E5.

15. Request:    Lock entire QM configuration flow.

Version 8.33.13.0 (Mar 13, 2018)
================================
Internal FW 8.33.13.0

Fixes:
------
 1. Problem:    The max number of PPFIDs on the first 2 ports on AH 4-ports is
                limited to 4.

    Change:     Ensure that no more than 4 PPFIDs are used on only ports 2 and
                3.

    Introduced: 8.33.12.0.

    Relevance:  AH 4-ports.

 2. Problem:    CQ99043: performace is degraded when delayed ACK is enabled.

    Change:     [FW]Fixed FW flow.

    Introduced: Day 1.

    Relevance:  iWARP.

 3. Problem:    FW hit HQ Scan assertion while running iSCSI with ROCE.

    Change:     [FW]Aligned iSCSI HQ write and read flows to use the same VQ.

    Introduced: Day 1.

    Relevance:  iSCSI.

 4. Problem:    CQ99802: Consume 1 CMDQ element when CMDQ is full.

    Change:     [FW]Fix CMDQ flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

 5. Problem:    DMAE command fails when reading PF/port split registers in GRC
                Dump.

    Change:     [FW]Modified GRC Dump to read PF/port split registers using DMAE
                without pretend.

    Introduced: FW 8.40.14.0.

    Relevance:  All (Debug Tools only).

 6. Problem:    DCQCN doesn't work properly on function other than 0.

    Change:     [FW]Fix DCQCN firmware flow.

    Introduced: Day 1.

    Relevance:  RoCE DCQCN.

 7. Problem:    CQ100088: Three CQEs were written for a certain task after
                cleanup while only two were expected due to a FW race between
                Fast-Path and Cleanup flows.

    Change:     [FW]Fix Fast Path flow for writing CQE.

    Introduced: Day 1.

    Relevance:  iSCSI.

 8. Problem:    CQ100034: Cleanup timeout was hit and no CQE was written due to
                a FW race between Cleanup and Clear-SQ flows.

    Change:     [FW]Fix Cleanup flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 9. Problem:    SFP routines for getting Rx_LOS, Tx_Disable, Tx_Fault
                and for setting Tx_Disable not working properly.

    Change:     Fix the logic for accessing these control/status bits.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Limit the number of FCoE queues to 64 due to a FW HSI
                limitation.

 2. Request:    [FW E5] Remove CQ98558 workaround.
                SEM_REG_INT_STS_2.dra_int_grc_no_alloc_thrd_error_a and
                SEM_REG_INT_STS_2.dra_int_grc_no_alloc_thrd_error_b interrupts
                should be unmasked.

 3. Request:    [FW iWARP] Support for Memory Windows.

 4. Request:    [FW ETH] Support no-inner-L2 VXLAN UDP port configuration.

 5. Request:    [FW RoCE] Support T10DIF on MW.

Version 8.33.12.0 (Mar 05, 2018)
================================
Internal FW 8.33.12.0

Fixes:
------
 1. Problem:    CQ99309: Reboot stress panic after several hours on Quack
                Sylvite config.

    Change:     Add sanity check for callback ops.

    Introduced: Day 1.

    Relevance:  Management TLVs.

 2. Problem:    CQ97859: Interop with Chelsio lead to kernel panic.

    Change:     Handle mpa header split over two fpdus correctly.

    Introduced: 8.18.9.0.

    Relevance:  iWARP.

 3. Problem:    CQ97859: Interop with Chelsio lead to kernel panic.

    Change:     Fixed chain element left calculation in NEXT_PTR mode.

    Introduced: 8.30.6.0.

    Relevance:  ALL.

 4. Problem:    CQ99153: Modified BW does not reflect in OS speed displayed.

    Change:     Made changes to communicate update bandwidth event to clients.

    Introduced: Day 1.

    Relevance:  ALL.

 5. Problem:    CQE with error will appear when using large memory windows.

    Change:     [FW] Fix memory window firmware flow.

    Introduced: 8.33.4.0.

    Relevance:  RoCE (Memory Windows).

 6. Problem:    CQ99802: Consume 1 CMDQ element when CMDQ is full.

    Change:     [FW] Fix CMDQ flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

 7. Problem:    DCQCN doesn't work properly on function other than 0.

    Change:     [FW] Fix DCQCN firmware flow.

    Introduced: Day 1.

    Relevance:  RoCE DCQCN.

 8. Problem:    CQ100067: iSCSI BFS fails to boot into OS after driver update.
                Reading nvm image shadow before it was populated.

    Change:     Move nvm image shadow population function to hw_prepare.

    Introduced: 8.33.11.0.

    Relevance:  iSCSI BFS.

 9. Problem:    CQ100072: System crash while installing driver with old MFW.
                Mailbox DRV_MSG_CODE_BIST_TEST is not supported.

    Change:     Do not fail the population function when mailbox is not
                supported.

    Introduced: 8.33.11.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Fix sparse warnings about making symbols static.

 2. Request:    Add 4 nvram image types to GrcDump:
                NVM_CFG1, DEFAULT_CFG, NVM_META, MDUMP.

 3. Request:    Ensure that no more than 4 PPFIDs per port are used on AH
                4-ports.

 4. Request:    [FW RoCE] Support T10DIF on MW.

 5. Request:    [FW iWARP] Support for Memory Windows.

 6. Request:    Limit the number of iSCSI queues to 64 due to a FW HSI
                limitation.

Version 8.33.11.0 (Feb 14, 2018)
================================
Internal FW 8.33.11.0

Fixes:
------
 1. Problem:    CQ99107: ib_write performance for single QP is degraded.

    Change:     [FW] Optimized the FW flow.

    Introduced: 8.33.5.0.

    Relevance:  RoCE.

 2. Problem:    Firmware may assert when hosts posts malformed RQ WQE.

    Change:     [FW] Added error handling to RQ validation.

    Introduced: Day 1.

    Relevance:  iWarp.

 3. Problem:    CQ99043: performace is degraded when delayed ACK is enabled.

    Change:     [FW] Fixed FW flow.

    Introduced: Day 1.

    Relevance:  iWARP.

 4. Problem:    FW hit HQ Scan assertion while running iSCSI with ROCE.

    Change:     [FW] Aligned  iSCSI HQ write and read flows to use the same VQ.

    Introduced: Day 1.

    Relevance:  iSCSI.

Enhancements:
-------------
 1. Request:    Fix sparse warnings about making symbols static.
                Declared debugfs functions in .h and included it in qed_main.c.
                Made symbols static.

 2. Request:    Add a module parameter to load a list of device functions:
                load_function_map.

 3. Request:    Monitored hardware address by qed_rd()/qed_wr().

 4. Request:    Deleted redundant ETH_ALEN defines, and fixed compilation
                issues for diag.

 5. Request:    Added reg_offset and db_offset to qed_hwfn for non-linux.

 6. Request:    Enforce GET_FIELD/GET_MFW_FIELD macros.

 7. Request:    Create a nvm image info shadow, to save mcp commands.

 8. Request:    Add a parameter in hw_init_params to set SPQ block timeout.

 9. Request:    Update the NIG_REG_ACPI_PAT registers of only the default PPFID.

Version 8.33.10.0 (Jan 29, 2018)
================================
Internal FW 8.33.10.0

Fixes:
------
 1. Problem:    Allocation/setup operations are done according to the affinity
                configuration, before it is actually received from the MFW.

    Change:     Always perform the operations on both engines.

    Introduced: 8.33.8.0.

    Relevance:  Storage in 100G.

 2. Problem:    NULL pointer dereference in case qed_spq_add_entry() frees a
                pointer to a SPQ entry.

    Change:     Access the pointer only on the flow in which the SPQ entries are
                not freed.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ98861: FW assert may happen during load-unload scenario.

    Change:     Fix race in MODIFY-QP handling.

    Introduced: Day 1.

    Relevance:  iWARP.

 4. Problem:    [HW bug] The NIG accesses the DSCP_TO_TC_MAP_ENABLE PORT_PF
                registers with the PFID instead of with the PPFID.

    Change:     Disable the DCSP to TC mapping when the problem cannot be
                bypassed. Add a workaround for other configurations.

    Introduced: Day 1.

    Relevance:  AH, DSCP.

 5. Problem:    fw assertion may happen in rare cases when destroying a QP.

    Change:     [FW]Fix DESTROY-QP handling.

    Introduced: Day 1.

    Relevance:  iWARP.

 6. Problem:    remote invalidate on Memory Window always completes with error
                indication.

    Change:     [FW]Fix remote-invalidate handling for Memory Windows.

    Introduced: Day 1.

    Relevance:  RDMA.

 7. Problem:    HW attention occur when FW mis-handle iSCSI command containning
                immediate data when immediate data cannot be placed into host
                memory and the data start on the TCP packet following the
                packet of the header.

    Change:     [FW]Fix handle iSCSI command arrival with AHS and with immediate
                data FW flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

 8. Problem:    Cont00098565: FW assertion - sched problem due to a wrong opt
                of branch following a 'fins' wakeup.

    Change:     [FW]Fix branch after wakeup opt in BinaryBuilder.

    Introduced: 29/05/2014.

    Relevance:  iSCSI.

 9. Problem:    Traffic class is always set to 0 in IPv6 header.

    Change:     [FW]Use traffic class given for the connection.

    Introduced: Day 1.

    Relevance:  TCP over IPv6.

10. Problem:    When ECN is enabled the ECN bits are or'ed with low 2b of given
                traffic class.

    Change:     [FW]Override ECN bits completely when ECN is enabled.

    Introduced: FW version 8.30.1.0.

    Relevance:  TCP over IPv4 with ECN enabled.

11. Problem:    CQ98557: Link getting down after setting autoneg off/on
                with current/supported speed.

    Change:     Added speed bits to set the link mode.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add support for DCQCN and Low Latency Queues in Rdma Bonding
                environment.

 2. Request:    [FW ETH] Support VLAN remove action in steering flow.

 3. Request:    Fix warnings found by sparse tool.

 4. Request:    Add support to start vf with preassigned MAC address,
                with module param "randam_vf_mac" enabled.

Version 8.33.9.0 (Jan 15, 2018)
===============================
Internal FW 8.33.8.0

Version 8.33.8.0 (Jan 11, 2018)
===============================
Internal FW 8.33.8.0

Fixes:
------
 1. Problem:    ESWITCH mode is set as VEB by default.

    Change:     Set VEB eswitch mode only when sriov is enabled.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    OOO allocation fails in case the number of connections on the
                non-affinitized hwfn is zero.

    Change:     Avoid calling the alloc/setup/free functions of on the
                non-affinitized hwfn.

    Introduced: 8.33.2.0.

    Relevance:  Storage in 100G.

 3. Problem:    Completer abort seen on PCIe bus on Power8 system due to
                wrong physical address in ILT entry.

    Change:     Fix the mask which is used to fill ILT entry to handle
                64 bit physical address.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    AH - Packet pacing doesn't work for port 1.

    Change:     Fix qed_get_qm_vport_idx_rl() to normalize pqs and
                make use of relative queue id in relevant APIs.

    Introduced: 8.33.7.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add support to configure tunnel type GFT profile.

 2. Request:    Add support to configure src ip type GFT profile.

 3. Request:    Add support for iWARP SRQ.

 4. Request:    Add support for RDMA SRQ async events.

Version 8.33.7.0 (Jan 04, 2018)
===============================
Internal FW 8.33.8.0

Fixes:
------
 1. Problem:    HW attention may happen when running application that uses SRQ
                for a long time.

    Change:     Fix SRQ FW flow.

    Introduced: Day 1.

    Relevance:  iWARP, RoCE.

 2. Problem:    CQ98510: RX path may be stuck during error handling.

    Change:     Fix error handling firmware flow.

    Introduced: 8.33.4.0.

    Relevance:  iWARP.

 3. Problem:    CQ98641: uefi fcoe bfs windows install - LUN not detected
                after providing drivers.

    Change:     Set mf_mode field with MF_OVLAN in BD multi-function mode.

    Introduced: Day 1.

    Relevance:  FCoE (Windows only).

 4. Problem:    Running XRC causes a p_glueb error in the XRC TGT QP side. The
                error appears in the dmesg.

    Change:     Fix XRC TGT QP ramrod configuration.

    Introduced: 8.33.4.

    Relevance:  RDMA XRC.

 5. Problem:    When enabling XRC the number of EQEs is larger than expected.

    Change:     Fix number of EQE calculation.

    Introduced: 8.33.4.

    Relevance:  RDMA XRC.

 6. Problem:    Wrong CID was passed to XRC SRQ creation ramrod.

    Change:     Configure CID correctly.

    Introduced: 8.33.4.

    Relevance:  RDMA XRC.

 7. Problem:    CQ96940: Add "unsecure mode" for SR-IOV VF so VF is allowed to
                change MAC address regardless of what PF did.

    Change:     Add module aparam "allow_vf_mac_change".

    Introduced: Day 1.

    Relevance:  SRIOV.

Enhancements:
-------------
 1. Request:    Add tunnel LRO configuration from VFs.

 2. Request:    Add packet pacing support via module param "qed_pkt_pacing".

 3. Request:    RDMA: remove redundant dev_caps from the RDMA API.

 4. Request:    [LL2] Support port redirection (for RDMA bonding).

 5. Request:    [iSCSI] Performance improvement for iSCSI Rx flows.

 6. Request:    [RoCE] Support port redirection (for RDMA bonding).

 7. Request:    Add RDMA Lag support.

 8. Request:    Add GFT drop filter configuration support.

Version 8.33.6.0 (Dec 22, 2017)
===============================
Internal FW 8.33.7.0

Fixes:
------
 1. Problem:    CQ98559 - system crash while load-unload of VBD driver with
                RoCE traffic.

    Change:     Configure query requester ramrod properly.

    Introduced: 8.33.3.0.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Remove obsolete DRV_MSG_CODE_SET_SECURE_MODE command.

 2. Request:    Add support for non l2 vxlan configuration from VF.

Version 8.33.5.0 (Dec 14, 2017)
===============================
Internal FW 8.33.7.0

Fixes:
------
 1. Problem:    Kernel panic during the qedf probe.

    Change:     Invoke hw_attr_update() callback with the cookie value expected
                by the client.

    Introduced: 8.30.6.0.

    Relevance:  qedf.

 2. Problem:    CQ97129 - ib_read_bw test stalls with mtu size of 256B and
                message sizes larger than 4k.

    Change:     Set dont_add_vlan0 field when port is in UFP mode and dcb is
                enabled.

    Introduced: Day 1.

    Relevance:  UFP.

 3. Problem:    False RQ full error can occur.

    Change:     [FW] Fix BDQ availability checking flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 4. Problem:    256th SGE not properly handled in iSCSI retransmit / FCoE
                sequence cleanup flows.

    Change:     [FW] Fix flow to properly support 256th SGE.

    Introduced: Day 1.

    Relevance:  iSCSI, FCoE (Tape devices).

 5. Problem:    EDPM packet was transmitted with inner vlan when
                dcb_dont_add_vlan0 configuration was set.

    Change:     [FW] Fix initialization of QP according to dcb_dont_add_vlan0
                configuration.

    Introduced: 8.33.5.0.

    Relevance:  RoCE with UFP.

 6. Problem:    Inner IPv4 options not supported for no inner L2 VXLAN tunnel.

    Change:     [FW] Support up to 24 bytes of inner IPv4 options for no
                inner L2 VXLAN tunnel.

    Introduced: 8.33.6.0.

    Relevance:  ETH no inner L2 VXLAN.

 7. Problem:    In 100G mode, RDMA traffic on engine 1 may fail.

    Change:     Fix the DB physical address which is published to a RDMA user.

    Introduced: 8.33.4.0.

    Relevance:  RDMA in 100G.

 8. Problem:    CQ98454 - System crash when running iWARP traffic with VLAN.

    Change:     Don't insert vlan on loopback connections.

    Introduced: 8.33.4.0.

    Relevance:  iWARP with vlan.

Enhancements:
-------------
 1. Request:    Update default value for RDMA QP size to 16K.

 2. Request:    Add module parameter to configure to ILT page size.

 3. Request:    Allow other client to set the ILT page size (default remains
                unchanged).

 4. Request:    Allow load to succeed even if EQ is not large enough to
                accommodate all elements (use max available in that case).

 5. Request:    [FW ETH] Allow GRE version 1 offloads in RX flow.

 6. Request:    [FW ETH] Allow VXLAN steering.

 7. Request:    Add support to default RSS queue update.

Version 8.33.4.0 (Dec 07, 2017)
===============================
Internal FW 8.33.6.0

Fixes:
------
 1. Problem:    In 100G mode, the QM rate limiters of the 2nd engine might be
                configured before the QM is being initialized.

    Change:     Make sure the QM configuration happens after both engines are
                initialized.

    Introduced: 8.30.13.0.

    Relevance:  All.

 2. Problem:    CQ97721 - Interop issues sending SEND RTR during MPA handshake.

    Change:     Prefer to send WRITE RTR before SEND RTR during MPA handshake.

    Introduced: Day 1.

    Relevance:  iWARP.

 3. Problem:    QP error may be received when using MW on the responder.

    Change:     Fix a wrong verification.

    Introduced: FW 8.33.4.0.

    Relevance:  RDMA.

 4. Problem:    IPGRE and IPGENEVE performance degradation for mixed inner IPv4
                and IPv6 traffic.

    Change:     Remove IP type from RX classification cache entry.

    Introduced: Day 1.

    Relevance:  ETH.

 5. Problem:    When default VLAN is configured, and DCB is enabled, if VF will
                send a packet with inband VLAN tag, the inband VLAN will be
                transmitted, instead of default VLAN.

    Change:     [FW] Fixed the FW flow.

    Introduced: Day 1.

    Relevance:  SR-IOV.

 6. Problem:    HW attention may happen in case MPA reject is sent.

    Change:     [FW] Fixed the FW flow.

    Introduced: FW 8.33.5.0.

    Relevance:  iWARP.

Enhancements:
-------------
 1. Request:    spinlock/mutex_alloc OSAL has been changed (to return a value).

 2. Request:    [FW LL2] Add support for dcb_dont_add_vlan0 (for UFP).

 3. Request:    [FW iWARP] Support SRQ.

 4. Request:    [FW iWARP] Add iWARP legacy DPM support.

 5. Request:    [FW iWARP] Add "HW QoS_Offload" support.

 6. Request:    Update all allocated PPFIDs when accessing registers which are
                split per PORT_PF.

 7. Request:    [FW L2] Add support for dcb_dont_add_vlan0 (for UFP).

 8. Request:    [FW RoCE] Add support for XRC (not support along with SRIOV).

 9. Request:    [FW ETH] Support no inner L2 VXLAN frame format.

10. Request:    [RDMA] Add SRQ counters.

11. Request:    [RDMA] Add XRC SRQ support.

12. Request:    Add support for 20G link speed.

Version 8.33.3.0 (Nov 23, 2017)
===============================
Internal FW 8.33.4.0

Fixes:
------
 1. Problem:    CQ97813 - kdump failed with QLogic FastLinQ.

    Change:     Limit the max number of MSI-X vectors to 2 per engine in case of
                a kdump kernel.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    [Coverity] Using possible uninitialized variable when calling
                DP_VERBOSE() as part of adding/removing an LLH filter.

    Change:     Make sure the variable is initialized.

    Introduced: 8.33.2.0.

    Relevance:  All.

 3. Problem:    Eq full fw assert seen when client bombarding
                with thousands of ramrods.

    Change:     Perform pending posts at the end of qed_eq_completion()
                instead in qed_spq_completion().

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    The number of EQ elements didn't reflect the number of RoCE
                SRQs.

    Change:     Increase the number of EQEs by the number of RoCE SRQs.

    Introduced: Day 1.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    HW/MCP indirection table lock is added.

Version 8.33.2.0 (Nov 16, 2017)
===============================
Internal FW 8.33.4.0

Fixes:
------
 1. Problem:    System crash when the creation of the debugfs root dir fails.

    Change:     Always perform initialization of the preconfig list, and fix the
                error flow of the debugfs nodes creation.

    Introduced: Day 1.

    Relevance:  debugfs.

 2. Problem:    On some systems few MSI-X vectors are allocated, which might
                lead to disabling of RDMA and to interference for other PFs.

    Change:     Add "limit_msix_vectors" and "limit_l2_queues" module parameters
                to handle such cases.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    Doorbell overflow spurious interrupt.

    Change:     Add almost full indication case to spurious interrupt handling.

    Introduced: 8.30.1.0 (Doorbell overflow recovery Day 1).

    Relevance:  Doorbell overflow.

 4. Problem:    CQ97267 - SUT crashes while changing RDMA mode while
                running RDMA traffic.

    Change:     Link change and update bandwidth code paths are synchronized
                now to avoid configuring zero min bandwidth scenario.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    High probability of Doorbell Queue overflow.

    Change:     [FW] Initialized CDU_REG_CCFC_PXP ccfc_ro_ld bit to 1
                and DORQ_REG_DQ_FULL_CYCLES to 0x1000.

    Introduced: Day 1.

    Relevance:  Protocols that use a large number of CIDs
                (mainly ROCE and IWARP).

 6. Problem:    Chip may be stuck when multiple remote invalidations occur
                during retransmission.

    Change:     [FW] Fix of remote invalidate firmware flow.

    Introduced: 8.33.2.0.

    Relevance:  iWARP.

 7. Problem:    CQ95474 - iWARP: Bugcheck when running AzureStack w/ iWARP.

    Change:     Exposed new API to qed client - pause listener - that will
                no longer forward MPA requests to upper layer driver, and
                will drop all "in flight" connections.

    Introduced: Day 1.

    Relevance:  IWARP.

Enhancements:
-------------
 1. Request:    Add API get_sfp_stats() for retrieving the sfp module stats.

 2. Request:    [FW IWARP] support for TCP Abort during connection setup.

 3. Request:    Add engine affinity for RoCE/FCoE/iSCSI PFs in CMT mode.

 4. Request:    Add support for multiple PPFIDs.

 5. Request:    Allow to initialize iscsi connection directly.

 6. Request:    [FW iWARP] Sending TERMINATE on errors.

 7. Request:    [FW RoCE] Support for Memory Windows.

 8. Request:    [FW ETH] Support default RSS queue update.

Version 8.33.1.0 (Oct 25, 2017)
===============================
Internal FW 8.33.2.0

Fixes:
------
 1. Problem:    System crash when an unsolicited interrupt is destined for a
                storage function in INTa mode.

    Change:     Avoid calling a SIMD fastpath handler if it is NULL.

    Introduced: Day 1.

    Relevance:  INTa.

 2. Problem:    DCQCN ECN and CNP packet count statistics will be wrong in case
                using PF that is not 0.

    Change:     [FW] Fix DCQCN flows.

    Introduced: FW 8.30.2.0.

    Relevance:  RoCE.

 3. Problem:    SRQ WQE might not get flushed after and error.

    Change:     [FW] Fix SRQ flow.

    Introduced: Day 1.

    Relevance:  RoCE.

 4. Problem:    Responder 'Local Access Error' might return when SRQ PD ID is
                different from the PD ID of the QP attached to the SRQ.

    Change:     [FW] Fix SRQ flow.

    Introduced: Day 1.

    Relevance:  RoCE.

 5. Problem:    Responder 'Local Access Error' completion might return with type
                of RQ instead of SRQ.

    Change:     [FW] Fix SRQ flow.

    Introduced: Day 1.

    Relevance:  RoCE.

 6. Problem:    CQ95208 - Remote invalidate fails due to ongoing old
                retransmission.

    Change:     [FW] RDMA remote invalidate Re-design.

    Introduced: Day 1.

    Relevance:  RDMA.

Enhancements:
-------------
 1. Request:    Add qed tests for dcbx app table configuration.

 2. Request:    [FW iWARP] Add packed DDPs support.

 3. Request:    iWARP: change rcv window size defaults for AH and BB.

Version 8.33.0.0 (Oct 06, 2017)
===============================
Internal FW 8.33.1.0

Fixes:
------
 1. Problem:    CQ95723 - One time Crash seen while disable/enable vbd with
                IPv6 RoCE + l2 traffic running.

    Change:     Prevent submission buffers for not fully initialized LL2 chain.

    Introduced: Day 1.

    Relevance:  iSCSI.

 2. Problem:    CQ96185 - Unexpected L2 traffic might arrived to driver in case
                RoCE V2 traffic is received on non RoCE function.

    Change:     [FW]Fix reception flow.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    Some BB PCIE IP registers are dumped as per-engine instead
                of split per-PF.

    Change:     [FW]Fixed split attribute of some BB PCIE IP registers.

    Introduced: Day 1.

    Relevance:  BB, Debug Tools only.

 4. Problem:    Malicious RoCE applications may be able to attack other
                application via doorbell messages.

    Change:     [FW]Fix transmission flows.

    Introduced: 8.30.12.0.

    Relevance:  RoCE.

 5. Problem:    The Storm Load/store addrress and DRA R/W recording tools
                are not working.

    Change:     [FW]Fixed Storm tools to correctly enable/disable messages.

    Introduced: FW 8.7.3.0.

    Relevance:  Debug Tools only.

 6. Problem:    In connection establishment and teardown states the maximum
                retransmission time used in the maximum between configured value
                and the current RTT.

    Change:     [FW]Use configured maximum retransmission time as lower bound in
                all states.

    Introduced: Day 1.

    Relevance:  TCP option 2.

 7. Problem:    EQ full FW assertion on PF 0.
                The conditions for the bug to happen are:
                iSCSI is running (Doesn’t matter on which PF).
                PF 0 is loaded on the same HW engine. Doesn’t matter what
                the Personality of that PF is (L2, L2+RDMA, iSCSI or FCoE).

    Change:     [FW]Allocate a RAM line (per storm) for the CM message counter.

    Introduced: Day 1.

    Relevance:  iSCSI.

Enhancements:
-------------
 1. Request:    Add API for reading sfp eeprom data.

 2. Request:    Add qed_lldp_get_stats() API to get the LLDP statistics.

 3. Request:    Reduce the timeout for ramrods to 1 sec.

 4. Request:    Avoid blocking of mailbox commands in case {,UN}LOAD_REQ fails.

 5. Request:    [FW ETH] Support drop action in steering flow.

 6. Request:    [FW iSCSI] Add new connection counters - Tx Rt, Rx dup ack
                and Rx checksum error.

Version 8.30.13.0 (Sep 25, 2017)
================================
Internal FW 8.30.16.0

Fixes:
------
 1. Problem:    An integer overflow may happen when more than 255 IRQs are
                allocated for fastpath.

    Change:     Change the type of the relevant variables in the interface to
                avoid the wrap-around.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ96424 - RoCE latency issues for byte sizes 128 and below in
                UFP mode.

    Change:     Configure the DORQ to use vlan-id/priority for roce EDPM.
                Request MFW for STAG value negotiated prior to the driver load.

    Introduced: Day 1.

    Relevance:  RoCE in UFP mode.

 3. Problem:    Wrong page index might be set when updating a chain's producer.

    Change:     Fix the page index calculation.

    Introduced: 8.30.12.0.

    Relevance:  All.

 4. Problem:    Flurry of prints in verbose mode.

    Change:     Enable doorbell recovery prints only in case of real recovery.

    Introduced: 8.30.6.0.

    Relevance:  All.

 5. Problem:    CQ96185 - Driver enters an infinite ll2 rx/tx loop.

    Change:     iWARP rx packet parsing should validate that packets arriving
                on the ll2 connection are TCP packets.

    Introduced: 8.14.1.0.

    Relevance:  iWARP enabled.

Enhancements:
-------------
 1. Request:    Update qed tests to use qed APIs for dscp-map query/config.

 2. Request:    Add APIs for dscp priority map configuration. APIs added are
                qed_dcbx_get_dscp_priority(), qed_dcbx_set_dscp_priority().

 3. Request:    Add support for the ENCRYPT_PASSWORD mailbox command.

 4. Request:    Add APIs for global configuration of dscp, ecn and vlan
                priority.

Version 8.30.12.0 (Sep 12, 2017)
================================
Internal FW 8.30.16.0

Fixes:
------
 1. Problem:    An integer overflow occurs when more than 255 IRQs are
                allocated.

    Change:     Change the type of the relevant variables to avoid the
                wrap-around.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    The driver might read the SHMEM after detecting that an MCP
                reset has occurred, before the MFW has completed the SHMEM
                re-initialization.

    Change:     Temporary use the "sup_msgs" field as an indication that the
                SHMEM data is ready.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    VDMs may cause the was_error indication to be set after the
                driver clears it.

    Change:     Clear the indication after the internal FID_enable for the PF is
                set.

    Introduced: 8.30.6.0.

    Relevance:  All.

 4. Problem:    Updating a chain's producer didn't update its page index.

    Change:     Update the chain index.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    Outputs of destroy QP requested may be checked even if the
                function failed.

    Change:     Check outputs of the function only if function succeeded.

    Introduced: Day 1.

    Relevance:  RDMA.

 6. Problem:    CQ95819 - Error appear when trying to login to Target.

    Change:     [FW]Avoid verifying the RSP payload length in order to honor
                target's behavior.

    Introduced: Day 1.

    Relevance:  FCoE.

 7. Problem:    In case of many consecutive EDPMs FW might get out
                of synchronization.

    Change:     [FW]Fix transmission flow.

    Introduced: Day 1.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Add 'link_change_count' to the port statistics.

 2. Request:    Add a function to set a chain's consumer index.

 3. Request:    [FW iSCSI] Rx Total PDU function counter will include
                unsolicited PDUs.

Version 8.30.11.0 (Aug 31, 2017)
================================
Internal FW 8.30.15.0

Fixes:
------
 1. Problem:    CQ95717 - Unable to connect to FCF in UFP mode.
                CQ95854 - Windows FCoE is not logging into fabric in UFP mode.

    Change:     Set “remove stag” on all outgoing FCoE packets in UFP mode.
                Set protocol filter 0x8914 for FCoE connection in UFP mode.

    Introduced: Day 1.

    Relevance:  FCoE traffic in UFP mode.

 2. Problem:    CQ95854, CQ95717 - Offloaded packets are dropped by HW
                in UFP mode.

    Change:     [FW]Don't use the vlan when offloading/uploading the FCoE
                connections in UFP mode.

    Introduced: 8.30.5.0.

    Relevance:  FCoE (UFP only).

 3. Problem:    vlan indication didn’t arrive to the driver in UFP mode.

    Change:     [FW]set vlan indication in UFP mode.

    Introduced: 8.30.5.0.

    Relevance:  FCoE (Windows only).

Enhancements:
-------------
 1. Request:    Add DMAE sanity check within the engine phase of the init tool
                and before the PF phase.

 2. Request:    [FW][Debug Tools] add CM xx_cbyp_tbl memories to GRC Dump.

Version 8.30.10.0 (Aug 24, 2017)
================================
Internal FW 8.30.14.0

Fixes:
------
 1. Problem:    CQ95609 - Lost Port after changing combined value to 90.

    Change:     Need to consider TCs while deriving the max num_queues for PF.

    Introduced: 8.30.5.0.

    Relevance:  ethtool -L.

 2. Problem:    CQ95773 -  Server hangs during the FCoE driver load.

    Change:     Fix probable memory leak in error paths of Rx handling.

    Introduced: Day 1.

    Relevance:  FCoE.

 3. Problem:    CQ95491 - Peer crashes when RDMA traffic is run after changing
                "RDMA Max QPs Number" parameter with unload/load.

    Change:     [FW]When a PF is loaded, clear the pointer table entries of the
                QM queues that are associated with the PF.

    Introduced: Day 1.

    Relevance:  PF reload with fewer connection (any protocol).

 4. Problem:    CQ95960 - Assert on running higher Block IO with Data
                Digest enabled.

    Change:     [FW]Fix retranstmit with data digest flow.

    Introduced: label 8.30.10.0.

    Relevance:  iSCSI.

 5. Problem:    CMDQ full error received with CMDQ PBL size of 512.

    Change:     [FW]Fix command receiving flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    CQ 96074 - Firmware assert may happen when there are many
                connections or in a stressed system.

    Change:     [FW]Fix TCP connection cleanup.

    Introduced: Day 1.

    Relevance:  TCP.

Enhancements:
-------------
 1. Request:    [FW RoCE] Performance improvment for RDMA write with single QP.

Version 8.30.9.0 (Aug 18, 2017)
===============================
Internal FW 8.30.13.0

Fixes:
------
 1. Problem:    CQ95637 - FW update stability issues seen with Snap2 E4 FW.

    Change:     Add a sanity check for the management API callback.

    Introduced: Day 1.

    Relevance:  Management TLVs request.

 2. Problem:    System crash when loading a driver on RHEL6.2.

    Change:     Always include the iov_ops as part of qed_eth_ops, to avoid
                mismatches in CONFIG_QED_SRIOV definition between qed and qede.

    Introduced: 8.14.2.0.

    Relevance:  RHEL6.2.

 3. Problem:    The engine phase of the init tool is run with ANY_PHASE_ID and
                may lead to incorrect matches in the init values.

    Change:     Use the path ID as the phase ID.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    CQ95240 - Firmware may give tcp completion event twice in
                stressed systems.

    Change:     [FW]Fix cleanup flow.

    Introduced: Day 1.

    Relevance:  iWARP.

 5. Problem:    RQ producer corruption.

    Change:     [FW]Fix the CMDQ RAM mapping.

    Introduced: 8.30.10.0.

    Relevance:  iSCSI Target.

Enhancements:
-------------
 1. Request:    Enable performing DMAE transactions from interrupt context.

 2. Request:    [FW ETH] Support direct update of RSS indirection table entry.

 3. Request:    [FW iSCSI] Support 8KB Page Size for CQ PBL.

Version 8.30.8.0 (Aug 10, 2017)
===============================
Internal FW 8.30.12.0

Fixes:
------
 1. Problem:    CQ95403 - Failed to Negotiate DCBX status using qede on E4
                Arrowhead using RHEL 7.3 perftest.

    Change:     Do not advertise DCBX_LLD_MANAGED capability i.e., do not allow
                external agent to manage the dcbx/lldp negotiation.

    Introduced: Day 1.

    Relevance:  Dcbx negotiation.

 2. Problem:    CQ95553 - RDMA Nic doesn't list under perfmon when NIC adv param
                "iWARP Recv Window Size" is changed to 1048576(max) And systemi
                crash when the value is changed to 1024 (Default).

    Change:     Fix default init value of OOO rx buffers.

    Introduced: 8.22.1.0.

    Relevance:  iWARP.

 3. Problem:    CQ95227 - There's a race where link-state is up && speed == 0.

    Change:     (speed == 0) -> (link-state is down).

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    CQ95484 - System asserts for qevbd during rebooter.

    Change:     Increase the retry interval when trying to acquire the resource
                lock.

    Introduced: 8.18.7.0.

    Relevance:  NPAR.

 5. Problem:    CQ94920 - Link-flap due to mismatching EEE capabilities.

    Change:     If EEE isn't to be enabled, don't ask MFW for any EEE config.

    Introduced: 8.30.2.0.

    Relevance:  Non BaseT adapters.

 6. Problem:    CQ95717 - UFP: Unable to connect to FCF in UFP mode.

    Change:     Enable remove_tag flag for FCoE traffic with vlan tag.

    Introduced: Day 1.

    Relevance:  UFP.

 7. Problem:    The dynamically allocated mcp_info->mfw_mb_cur is not verified.

    Change:     Add a verification of the allocated memory.

    Introduced: 8.3.4.0.

    Relevance:  All.

 8. Problem:    Malicious RoCE applications may be able to attack other
                application via doorbell messages.

    Change:     [FW]Fix transmission and receive flows.

    Introduced: Day 1.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Enable the dump of debug data via the udev events mechanism for
                all qed* drivers.

 2. Request:    Remove 64 QP limitation from DCQCN scenarios.

 3. Request:    [FW ETH] Support steering by IP destination port.

 4. Request:    [FW iSCSI] Added new TCP function counters.

Version 8.30.7.0 (Jul 28, 2017)
===============================
Internal FW 8.30.11.0

Fixes:
------
 1. Problem:    The buffer size of the unit tests result is smaller than needed.

    Change:     Fix the buffer size.

    Introduced: 8.2.0.0.

    Relevance:  debugfs.

 2. Problem:    CQ94578 - Client crashed while running 1000 sessions using
                perftest.

    Change:     Limit number of CQs to number of actual connections.

    Introduced: iWARP Day 1.

    Relevance:  iWARP.

 3. Problem:    CQ95208 - iWARP iser FW assert.

    Change:     Increase EQ size for iWARP/RoCE to accommodate for all
                possible async events.

    Introduced: Day 1.

    Relevance:  RDMA.

 4. Problem:    CQ95187 - L2 traffic is not getting tagged in UFP mode.

    Change:     Populate ethertype value in the required registers.

    Introduced: Day 1.

    Relevance:  UFP.

 5. Problem:    Doorbell recovery counter incremented needlessly.

    Change:     Do not increment the counter for periodic 'once' executions.

    Introduced: Day 1.

    Relevance:  All.

 6. Problem:    qed_mcp_get_lldp_mac() returns incorrect lldp mac.

    Change:     Perform endian-ness conversion while reading/updating lldp mac.

    Introduced: Day 1.

    Relevance:  lldp mac read/update.

 7. Problem:    DCQCN: Incorrect NIG configuration for notification/reaction
                points.

    Change:     Correction in NIG configuration for duplicating packet with
                ECN or CNP packet for notification/reaction points.

    Introduced: Day 1.

    Relevance:  RoCEv2 DCQCN.

 8. Problem:    CQ94817 - Iwarp connections may get stuck in a stressed
                system.

    Change:     [FW]Defer reporting of TCP async completion till firmware TCP
                handshake is completed.

    Introduced: Day 1.

    Relevance:  Iwarp.

 9. Problem:    CQ94847 - Throughtput of RDMA Read is 25% worse than
                RDMA Write.

    Change:     [FW]Fix the logic that decides where we should transmit
                from (Sq/Irq).

    Introduced: Day 1.

    Relevance:  Iwarp.

10. Problem:    CQ94881 - Performance degradation on some block sizes.

    Change:     [FW]Fine tune the receive TCP window according to buffer size.

    Introduced: Day 1.

    Relevance:  Iwarp.

11. Problem:    Using relaxed ordering with Atomic operation might cause
                data corruption.

    Change:     [FW]Disable relaxed ordering with Atomic operation.

    Introduced: 8.30.10.0.

    Relevance:  RoCE.

12. Problem:    Read requests with zero ORD cause firmware assert.

    Change:     [FW]Gracefully handle as error case.

    Introduced: Day 1.

    Relevance:  iWARP.

13. Problem:    CQ95209 - Retransmission flow in rare cases might cause SQ
                completions not to be written.

    Change:     [FW]Fix retransmission flow.

    Introduced: Day 1.

    Relevance:  RoCE.

14. Problem:    NOP-IN pdu header retransmitted with wrong field initialization.

    Change:     Fix retransmission flow.

    Introduced: Day 1.

    Relevance:  iSCSI (Target only).

Enhancements:
-------------
 1. Request:    Add an option to save auto-collected debug data to file.

 2. Request:    Add a dump of auto-collected debug data via the udev events
                mechanism.

 3. Request:    Avoid using a load timeout value which is not default or none in
                case the MFW doesn't support it.

 4. Request:    Add API to enable or disable access to the device.

 5. Request:    Add new management TLVs to support Storage devices.

 6. Request:    Correct Multicast API to reflect existance of 256 approximate
                buckets.

 7. Request:    [FW Core] Add Source QP field for GSI offload.

 8. Request:    [FW iWARP] Add support for relaxed ordering PCI writes.

 9. Request:    iWARP: change rcv window size defaults.

Version 8.30.6.0 (Jul 07, 2017)
===============================
Internal FW 8.30.10.0

Fixes:
------
 1. Problem:    iSCSI Rx traffic throughput drop.

    Change:     Fixed the TCP window update during OOO.

    Introduced: Day 1.

    Relevance:  iSCSI.

 2. Problem:    Same GFT filter used for steering by UDP destination port
                over IPv4 and IPv6.

    Change:     [FW]Add IP type to GFT filter profile.

    Introduced: 8.30.7.0.

    Relevance:  ETH.

 3. Problem:    Function Close ramrod may fail if a connection was modified to
                error state while there were pending RQ WQEs and destroyed
                before the WQEs were completed.

    Change:     [FW]Fix activity counter code race condition.

    Introduced: Day 1.

    Relevance:  RoCE.

 4. Problem:    Receiving ISCSI_EVENT_TYPE_ASYN_MAX_KA_PROBES_CNT event after
                establishing an iSCSI connection.

    Change:     Add missing assignments to some 'tcp_offload_params_opt2'
                fields.

    Introduced: 8.30.4.0.

    Relevance:  iSCSI.

Enhancements:
-------------
 1. Request:    Notify the qed clients of stag update event from MFW.

 2. Request:    [SCSI] Change the SCSI num queues to 128.

    Change:     [FW]Use a dynamic and not constant offset between the SCSI
                CQ and CMDQ.

 3. Request:    [RoCE] Add support for relaxed ordering PCI writes.

    Change:     [FW]As requested.

 4. Request:    [ETH] Enable PCI Relaxed Ordering for L2 RX data placement.

    Change:     [FW]As requested.

Version 8.30.5.0 (June 22, 2017)
================================
Internal FW 8.30.8.0

Fixes:
------
 1. Problem:    CQ94417 - ext phy fw upgrade fails over driver.
                CQ94497 - failed to upgrade mbi using powerkit.

    Change:     Treat FW_MSG_CODE_OK as expected response to the
                EXT_PHY_FW_UPGRADE mailbox command.

    Introduced: 8.30.2.0.

    Relevance:  EXT_PHY_FW_UPGRADE.

 2. Problem:    PRS parity is sometimes observed when using GFT logic.

    Change:     Enable GFT in parser only after configuring mask.

    Introduced: Day 1.

    Relevance:  aRFS.

 3. Problem:    Firmware assertion may occur when trying to retransmit MPA
                packet.

    Change:     [FW] Fix MPA re-transmission flow.

    Introduced: Day 1.

    Relevance:  iWARP.

 4. Problem:    DIF error bits were not written in Cleanup CQE.

    Change:     [FW] Fix cleanup flow.

    Introduced: Day 1.

    Relevance:  iSCSI DIF.

 5. Problem:    Reconnect may end up in FW assertion.

    Change:     [FW] Fix slow path flow.

    Introduced: Day 1.

    Relevance:  iSCSI Option 2.

 6. Problem:    FW assert or T10 PI(DIF) error during fast-retransmit.

    Change:     [FW] Fix fast-retransmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 7. Problem:    Update Tx Queue Ramrod resulted in wrong outer-tag information
                for PF values larger than 0.

    Change:     [FW] Fixed Tx Queue Ramrod flow.

    Introduced: FW 8.30.6.0.

    Relevance:  L2/LL2.

 8. Problem:    FIN flag on Syn and Syn-Ack packets is ignored.

    Change:     [FW] In case FIN flag is set during TCP handshake return error
                on this connection.

    Introduced: Day 1.

    Relevance:  TCP option 2.

 9. Problem:    RST packet sent in SYN-SENT state has ACK flag set.

    Change:     [FW] Fix RESET packet flow in SYN-SENT state.

    Introduced: Day 1.

    Relevance:  TCP option 2.

10. Problem:    Recovery flow will cause FW assertion.

    Change:     [FW] Fix recovery (clear SQ) flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

11. Problem:    Function Close ramrod may fail if connections previously
                experienced errors.

    Change:     [FW] Fix activity counter code in firmware error handling code.

    Introduced: Day 1.

    Relevance:  RoCE.

12. Problem:    Cont00093097 - [ESX-AH-A2-RoCE]::Get FW assertion while running
                RoCE traffic through RoCE-IOVP tests.

    Change:     Wait for CIDs to be freed before moving QP to RTR.

    Introduced: 8.14.0.0.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Add qed tests for dcbx configuration.

Version 8.30.4.0 (June 08, 2017)
================================
Internal FW 8.30.7.0

Fixes:
------
 1. Problem:    Fix possible issues in LL2 RX flow.

    Change:     Allocate enough SKB and map them properly.

    Introduced: Day 1.

    Relevance:  LL2-RX.

 2. Problem:    aRFS doesn't work in NPAR mode as expected due to lack of
                LLH mac configuration.

    Change:     Disable aRFS for NPAR mode.

    Introduced: Day 1.

    Relevance:  L2.

 3. Problem:    CQ93835 - System crash while booting into WS2012 OS
                in NPAR mode.

    Change:     Fails to acquire the resc lock. Increased the retry
                count now to suit NPAR scenario.

    Introduced: Day 1.

    Relevance:  NPAR.

 4. Problem:    Under high rate of RoCEv2 CNP packets, there could be Tsem
                attention of FIC error.

    Change:     [FW] Added SW workaround - initialized NIG_REG_STORM_CREDIT to
                0xb in AH.

    Introduced: Day 1.

    Relevance:  RoCEv2 DCQCN.

 5. Problem:    CQ93832 - Chip may be stuck in case Firmware decides to drop a
                packet during MPA negotiation.

    Change:     [FW] Fix the firmware flow that dropping a packet.

    Introduced: Day 1.

    Relevance:  iWARP.

 6. Problem:    CQ93668 - Disabling or enabling DCBX during traffic may result
                in HW attention.

    Change:     [FW] Fix a corner case in DCB update flow.

    Introduced: Day 1.

    Relevance:  TCP, RoCE.

 7. Problem:    CQ93929, CQ94152 - Firmware assertion may occur when getting RST
                during MPA negotiation.

    Change:     [FW] Fix a corner case in MPA negotiation flow when getting a
                RST.

    Introduced: Day 1.

    Relevance:  iWARP.

 8. Problem:    Using DCQCN with more than 64 QPs will results with incorrect
                CNPS produced.

    Change:     [FW] Fix DCQCN NP flow.

    Introduced: FW 8.30.3.0.

    Relevance:  RoCE.

 9. Problem:    PF0/1 fails to initialize with old MFW on IOV-capable device.

    Change:     Don't let the VFs consume all the L2 queues.

    Introduced: 8.18.9.0.

    Relevance:  MFW older than 8.15.

10. Problem:    CQ94175 - DSCP DCB is not working correctly
                for DSCP values > 31.

    Change:     [FW] Fixed DCB DSCP FW flow (support 6-bit DSCP).

    Introduced: Day 1.

    Relevance:  All.

11. Problem:    CQ94123 - HW attention may occur if RST arrives during
                TCP negotiation.

    Change:     [FW] Fix the flow that handled incoming RST during
                TCP negotiation.

    Introduced: Day 1.

    Relevance:  iWARP.

12. Problem:    CQ94236,CQ94221,CQ94228 - HW attention may occur on a
                stressed system.

    Change:     [FW] Fix HW initialization.

    Introduced: FW 8.30.5.0.

    Relevance:  iWARP, iSCSI, RoCE.

Enhancements:
-------------
 1. Request:    [FW ETH/Core] Add "HW QoS_Offload" support.

 2. Request:    [FW iSCSI Target] DIF on immediate - control if initial_ref_tag
                will be taken from configuration or from the LBA.

 3. Request:    [FW TCP] Add UFP support.

 4. Request:    [FW RoCE] Add UFP support.

 5. Request:    Qed API change qed_mcp_get_media_type().

 6. Request:    Support rx data placement configuration for VFs.

 7. Request:    Add new API - qed_recovery_prolog() - which should be called
                as the first step of a recovery handler.

 8. Request:    [ETH] Support steering by UDP destination port.

Version 8.30.3.0 (May 24, 2017)
===============================
Internal FW 8.30.5.0

Fixes:
------
 1. Problem:    A parity error that is not associated with a HW block is not
                masked when it is asserted.

    Change:     Mask the parity error in this case.

    Introduced: 8.30.0.0.

    Relevance:  All.

 2. Problem:    DCBX setapp implementation configures invalid app entries.

    Change:     Configure only the requested number of dcbx app entries.

    Introduced: Day 1.

    Relevance:  DCBX app configuration.

 3. Problem:    CQ93666 - TM attentions when loading eth driver over rdma
                capable PF.

    Change:     Enable hw timers only if rdma is activated.

    Introduced: 8.30.1.0.

    Relevance:  All.

 4. Problem:    CQ93827 - Firmware assertion while running RoCE V2 traffic
                in NPAR mode.

    Change:     Treat "no action required" in doorbell attention as valid.

    Introduced: 8.30.1.0.

    Relevance:  Npar.

 5. Problem:    qed_spq_block() returns success if a ramrod is not completed.

    Change:     Return failure in this case.

    Introduced: 8.30.0.0.

    Relevance:  All.

 6. Problem:    The init tool operation doesn't fail in case a
                'INIT_SRC_RUNTIME' write command fails.

    Change:     Return failure in this case.

    Introduced: Day 1.

    Relevance:  All.

 7. Problem:    qed_db_recovery_teardown() can be called from the error flow
                of qed_resc_alloc(), while the db_recovery list is not
                initialized.

    Change:     Move qed_db_recovery_setup()to the beginning of
                qed_resc_alloc() of ensure the list is initialized.

    Introduced: 8.30.2.0.

    Relevance:  All.

 8. Problem:    The default GRC Dump in AH doesn't dump PHY data and static
                debug data due to a bug in PHY dump (static debug data can still
                be dumped using the option "-exclude phy").

    Change:     [FW] Fixed PHY dump in GRC Dump.

    Introduced: FW 8.18.8.0.

    Relevance:  All (debug tools only).

 9. Problem:    Receive segmented AHS may cause connection error.

    Change:     [FW] Fix RX flow.

    Introduced: Day 1.

    Relevance:  iSCSI (Target only).

10. Problem:    PCIe read response with an error in the CFC is expected during
                an unprepared PF FLR. Currently the CFC is configured to be
                disabled in such a case, which is fatal error.

    Change:     [FW] Masked T/CCFC PCIe read response with error (error_mask bit
                5).

    Introduced: Day 1.

    Relevance:  All.

11. Problem:    in 100g, clearing the DNTFWD_PORT indication during port-phase
                of first engine's initialization may lead to a parity if
                physical link is up.

    Change:     [FW] Changed NIG_REG_BRB_GATE_DNTFWD_PORT to driver runtime. The
                driver should set the runtime value on port init phase.

    Introduced: Day 1.

    Relevance:  All (100G only).

12. Problem:    SEMI debug bus filters are not working.

    Change:     [FW] Fixed SEMI debug bus filters configuration.

    Introduced: FW 8.18.8.0.

    Relevance:  All (debug tools only).

13. Problem:    CQ93730 - Firmware doesn't complete MPA negotiation in case
                of Reject if RST had arrived after the MPA request.

    Change:     [FW] Fix Reject flow in case RST was detected.

    Introduced: Day 1.

    Relevance:  iWARP.

14. Problem:    The QM global rate limiters upper bound is not set properly. As
                a result there is a long delay time from rate configuration
                change to affective rate change.

    Change:     [FW] Set QM global rate limiters upper bound according to link
                speed. link_speed parameter was added to the HSI functions
                qm_pf_rt_init and init_vport_rl.

    Introduced: Day 1.

    Relevance:  RoCEv2 DCQCN.

15. Problem:    GRC Dump of BRB/BTB/BMB RAM with blocks of size 256 bytes
                doesn't work.

    Change:     [FW] Fixed GRC Dump of BRB/BTB/BMB RAM with blocks of size 256
                bytes.

    Introduced: Day 1.

    Relevance:  All (debug tools only).

16. Problem:    CQ93743 - Firmware assertion may happen when getting a RST
                during MPA negotiation.

    Change:     [FW] Fix a corner case in MPA negotiation flow when getting a
                RST.

    Introduced: Day 1.

    Relevance:  iWARP.

17. Problem:    CQ44122 - Ramrod Stuck during RXQ START.

    Change:     [FW] Masked PSWHST hst_incorrect_access interrupt.

    Introduced: Day 1.

    Relevance:  L2.

18. Problem:    DCBX state is set to disabled when configuring multiple
                parameters.

    Change:     Retain the user configurations till the config is applied to
                the hardware.

    Introduced: Day 1.

    Relevance:  DCBX configuration.

Enhancements:
-------------
 1. Request:    dev_info now contains 'smart_an' reflecting smartAN support.

 2. Request:    Add module params for control dcqcn cnp dscp and vlan priority.

 3. Request:    VFs to try and map doorbell bar for increased CIDs.

 4. Request:    Indicate XDP capabilities for VFs to qede based on acquisition.

 5. Request:    Added test for DSCP configuration read/update.

 6. Request:    Enhance ll2 start_xmit() to request additional info from client.

 7. Request:    Add qed support for UFP.

 8. Request:    Add support for driver attributes repository in the MFW.

 9. Request:    [FW TCP] Moving to work with high precision timer in timestamps.

10. Request:    [FW FCoE] Add UFP support.

11. Request:    [FW] Implement Init Tool portion of 100G system architecture
                spec.

12. Request:    Link indication now reflects virtual link instead of physical
                [with sufficiently new MFW].

13. Request:    Rename _test_enable_dcqcn mod param to dcqcn_enable.

Version 8.30.2.0 (May 04, 2017)
===============================
Internal FW 8.30.4.0

Fixes:
------
 1. Problem:    CQ92934 - 'ethtool --show-eee' displays EEE status as not
                supported after setting EEE off.

    Change:     Use eee supported capabilities value read from shared memory.

    Introduced: Day 1.

    Relevance:  EEE.

 2. Problem:    CQ93271 - System crash while running disable enable
                interface in legacy interrupt mode.

    Change:     LL2 flow is fixed.

    Introduced: Day 1.

    Relevance:  LL2.

 3. Problem:    In case of CMT, the DCBX configuration for the 2nd engine is
                read from a wrong section in the shmem.

    Change:     Always read the configuration from the section of port #0.

    Introduced: Day 1.

    Relevance:  DCBX in CMT.

 4. Problem:    MPA Reject lead to leak of free eps.

    Change:     Return ep object to free list in reject flow.

    Introduced: 8.18.17.0.

    Relevance:  iWARP.

 5. Problem:    The macro that sets a field of the MFW HSI data can lead to
                overriding of other fields.

    Change:     Fix the macro.

    Introduced: 8.18.6.0.

    Relevance:  All.

 6. Problem:    RDMA application hangs when using EDPM.

    Change:     Round up the number of CPUs to the nearest power of 2 so
                the size of the DPI configured in the hardware will be stored
                properly and not truncated.

    Introduced: 8.30.0.0.

    Relevance:  RDMA.

 7. Problem:    CQ92765 - Fragment Offset field in IPv4 Packets may be incorrect
                in reused CIDs.

    Change:     [FW] Fix Fragment Offset initialization.

    Introduced: FW 8.18.10.0.

    Relevance:  TCP.

 8. Problem:    CQ92827 - HW attention or data digest error in case data digest
                is enabled.

    Change:     [FW] Fix retransmit flow.

    Introduced: Day 1 (data digest error), 8.30.0.0 (HW attention).

    Relevance:  iSCSI with data digest.

 9. Problem:    CQ92953 - Corrupted retransmit or FW assertion.

    Change:     [FW] Fix unsolicited data flow.

    Introduced: Day 1.

    Relevance:  iSCSI (Target only).

10. Problem:    CQ92301, CQ92431, CQ92465 - Firmware assertion may happen when
                opening or closing many connections.

    Change:     [FW] Fix a race condition in Firmware flow.

    Introduced: Day 1.

    Relevance:  iWARP, iSCSI, FCoE.

11. Problem:    Getting TERMINATE during MPA negotiation when working against
                other adapters.

    Change:     [FW] Fix message offset field on Read request packet.

    Introduced: FW 8.30.1.0.

    Relevance:  iWARP.

12. Problem:    CQ92424 - When peer is unreachable, connection tear-down may
                take ~45 seconds.

    Change:     [FW] Decrease threshold for maximum count of retransmissions
                before reporting an error.

    Introduced: Day 1.

    Relevance:  iWARP.

13. Problem:    CQ92673 - Driver may get stuck when trying to close a connection
                during MPA negotiation.

    Change:     [FW] Support modifying the QP to error during MPA negotiation.

    Introduced: Day 1.

    Relevance:  iWARP.

14. Problem:    Firmware may stop transmitting after some time in a race
                condition that may happen when getting MPA Reject.

    Change:     [FW] Fix MPA transmission Firmware flow.

    Introduced: Day 1.

    Relevance:  iWARP.

15. Problem:    Seeing errors while running OpenMPI against other adapters.

    Change:     [FW] Allow interleaving of different types of DDPs.

    Introduced: Day 1.

    Relevance:  iWARP (interop only).

16. Problem:    Debug bus recording of PCIE block in AH may not work correctly.

    Change:     [FW] Fixed AH PCIE block to use the correct debug bus CSV.

    Introduced: FW 8.18.4.0.

    Relevance:  Debug tools.

17. Problem:    If GRC Dump buffer size is calculated while a debug bus
                recording is in progress, the calculated size doesn't include
                the static debug section. If the dump itself is taken after the
                recording has ended, the static debug section is dumped although
                a buffer wasn't allocated for it.

    Change:     [FW] When calculating the required GRC Dump buffer size, add the
                static debug section size even if a debug bus recording
                is in progress.

    Introduced: Day 1.

    Relevance:  Debug tools.

18. Problem:    Passive side - stuck in connect mode.

    Change:     [FW] Fix connect flow.

    Introduced: Day 1.

    Relevance:  iSCSI (Target only).

19. Problem:    GRC Timeout can occur when reading MCP_REG_FRM_BMB_FIFO_COMMAND
                during traffic.

    Change:     [FW] Excluded MCP_REG_FRM_BMB_FIFO_COMMAND from GRC Dump.

    Introduced: Day 1.

    Relevance:  Debug tools.

20. Problem:    EQ was not allocated to be deep enough to handle iWARP worst
                case of async events.

    Change:     Allocate twice as much elements for iWARP related events.

    Introduced: Day 1.

    Relevance:  iWARP.

21. Problem:    CQ93175 - DIF tags validation error.

    Change:     [FW] Fix retransmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

22. Problem:    The process of nvm read/write proceeds even if some operation of
                read/write fails.

    Change:     Fail the process in such a case.

    Introduced: 8.7.1.0.

    Relevance:  All.

23. Problem:    DCQCN CNPs packets are not transmitted.

    Change:     [FW] Fix DCQCN NP flow.

    Introduced: FW 8.30.2.0.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Expose the dcqcn modules parameters with read permissions under
                /sys/module/qed/parameters/.

 2. Request:    Support iscsi 'change_mac' operation.

 3. Request:    Apply integration testing feedback to DCQCN.

 4. Request:    [FW] Allow Doorbell on empty SPQ (for doorbell recovery).

 5. Request:    [FW] Allow Doorbell on empty LL2 TX queue (for doorbell
                recovery).

 6. Request:    [FW] iSCSI option 2 - enable max_rt_time option - 20 sec.

 7. Request:    Register the SPQ doorbell with the doorbell recovery mechanism.

 8. Request:    Force user roce_edpm user configuration to 0 if an invalid
                value was configured by the driver.

 9. Request:    Allow PF to control whether to use SW/HW channel for VF
                communication of a per-VF basis.

10. Request:    [FW L2] Add support for outer IPv4 TX CSO with unknown tunnel
                type (in addition to inner header CSO).

11. Request:    [FW L2] Support flow ID in aRFS flow.

12. Request:    [FW L2] Add UFP support.

13. Request:    [FW RoCE] DCQCN support for unlimited number of QPs (instead of
                just 64).

14. Request:    RoCE: add DCQCN statistics support.

Version 8.30.1.0 (Apr 06, 2017)
===============================
Internal FW 8.30.1.0

Fixes:
------
 1. Problem:    Supported link auto-negotiation value gets updated when user
                tries to change the advertised-autoneg value.

    Change:     Driver should always return the supported-autoneg value
                configured in the nvram.

    Introduced: Day 1.

    Relevance:  ethtool -s.

 2. Problem:    The SP DPC tasklet might work even after the ISR handler is
                being synchronized, leading to an optional race during driver
                removal.

    Change:     Add a flush-like operation in qed_slowpath_irq_sync().

    Introduced: 8.18.8.0.

    Relevance:  All.

 3. Problem:    CQ92838 - "No such file or directory" error during the install.

    Change:     Fix copying incorrect file in Makefile.

    Introduced: 8.30.0.0.

    Relevance:  All.

 4. Problem:    The MFW might be still running for a short while after
                responding to a halt mailbox command.

    Change:     Verify that the MCP is in a soft halt state, after sending the
                command and before proceeding.

    Introduced: 8.5.3.0.

    Relevance:  GRC dump / MCP trace.

 5. Problem:    CQ92434 - system crash after loading qedr with MTU=128.

    Change:     Fix calculation of number of ooo rx buffers and limit to 16K.

    Introduced: Day 1.

    Relevance:  iWARP.

 6. Problem:    CQ92630 - NULL pointer dereference in query stats flow
                during load/unload.

    Change:     Introduce locking scheme to avoid race.

    Introduced: Day 1.

    Relevance:  RoCE / iWARP.

 7. Problem:    CQ91521 - System hits assertion while trying to modify Jumbo
                MTU settings on PF with VFs enumerated.

    Change:     OSAL_IOV_VF_VPORT_STOP is introduced to allow upper-client to
                execute required operations before closing vport.

    Introduced: Day 1.

    Relevance:  SRIOV.

 8. Problem:    CQ92837 - list del corruption.

    Change:     Increase timeout when waiting for connection complete.
                was not enough for tcp timeout.

    Introduced: Day 1.

    Relevance:  iWARP.

 9. Problem:    CQ92444 - ALB bonding on VFs fails due to MAC removal failure.

    Change:     PF to imitate storm firmware behavior and return success when
                VF requests an improper unicast filter configuration.

    Introduced: Day 1.

    Relevance:  SRIOV.

10. Problem:    CQ92889 - iWARP: EDPM disable is not reflecting for iWARP.

    Change:     EPDM should always be disabled for iWARP. Calculations for
                dpi under iWARP should assume no edpm.

    Introduced: Day 1.

    Relevance:  iWARP.

11. Problem:    Not failing a flow that tries to send a mailbox command to the
                MFW when the allocation of a list element fails.

    Change:     Return a failure code in this case.

    Introduced: 8.30.0.0.

    Relevance:  All.

12. Problem:    FW assert may happen if the IO size is a multiple of maximum
                iWARP PDU length.

    Change:     [FW] Fix calculation of the length that is going to be
                transmitted.

    Introduced: Day 1.

    Relevance:  iWARP.

13. Problem:    CQ91898, CQ91843 - FW assert may happen if there are
                retransmissions after an error was detected.

    Change:     [FW] Fix RX flow on the case an error was detected.

    Introduced: FW 8.18.8.0.

    Relevance:  iWARP.

14. Problem:    CQ92058 - HW attention may occur when opening many connections.

    Change:     [FW] Fix connection establishment flow.

    Introduced: FW 8.14.7.0.

    Relevance:  iWARP.

15. Problem:    SRQ WQE with 4 SGEs and Remote Invalidate that also reaches SRQ
                Limit causes FW-Assert.

    Change:     [FW] Fix activity counter management.

    Introduced: FW 8.4.0.0.

    Relevance:  RoCE.

16. Problem:    FW assertion may happen during closing a connection after an
                error detected.

    Change:     [FW] Fix error handling flow.

    Introduced: FW 8.18.14.0.

    Relevance:  iWARP.

17. Problem:    Wrong T10 PI (DIF) guard is written to host memory.

    Change:     [FW] Fix Dif FW flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

18. Problem:    CQ92152 - FW assert - BDQ fetch time exceeded maximum.

    Change:     [FW] Fix BDQ fetch flow.

    Introduced: FW 8.14.6.0.

    Relevance:  SCSI.

19. Problem:    Application may get stuck if the driver was unloaded on the
                passive side.

    Change:     [FW] Support timeouts during MPA negotiation.

    Introduced: Day 1.

    Relevance:  iWARP.

20. Problem:    CQ91978 - FW assert may happen during closing a connection.

    Change:     [FW] Handle a race condition that may happen during closing a
                connection.

    Introduced: FW 8.18.5.0.

    Relevance:  iWARP.

21. Problem:    CQ91909 - FW may avoid giving flushes on a QP if an error was
                detected.

    Change:     [FW] Fix error handling flow.

    Introduced: FW 8.18.5.0.

    Relevance:  iWARP.

22. Problem:    Kernel space application that uses RDMA READ may not work well
                on new kernels.

    Change:     [FW] Fix flow of "read with invalidate".

    Introduced: FW 8.18.5.0.

    Relevance:  iWARP Linux only (Kernel 4.7 and above).

23. Problem:    MPA timer is expired on positive tests.(on Windows when KD is
                enabled).

    Change:     [FW] Increase MPA timeout to 5 seconds.

    Introduced: FW 8.18.16.0.

    Relevance:  iWARP.

24. Problem:    FW assert may happen if there are unaligned PDUs on a connection
                that was re-established.

    Change:     [FW] Give indication to the driver that connection was closed so
                all connections' resources will be deleted.

    Introduced: FW 8.14.6.0.

    Relevance:  iWARP.

25. Problem:    CQ91595 - Firmware stop sending packets for some time after
                getting consecutive PFC packets.

    Change:     [FW] Increase the threshold for PAUSE_TOO_LONG interrupt.

    Introduced: Day 1.

    Relevance:  FCoE, RoCE.

26. Problem:    In case of an encapsulated packet with zero UDP checksum in the
                tunnel header, device will indicate that checksum wasn't
                calculated but there is checksum error.
                This doesn’t look consistent.

    Change:     [FW] Initialize NIG_REG_[VXLAN|NGE]_ZERO_UDP_IGNORE to 1.

    Introduced: Day 1.

    Relevance:  L2 with tunnel support.

27. Problem:    CQ92054 - FW assertion may happen on a race condition where RST
                arrives after MPA request.

    Change:     [FW] Defer RST reporting until offloading MPA connection.

    Introduced: FW 8.18.16.0.

    Relevance:  iWARP.

28. Problem:    The metal revision is not part of the chip step checking macros.

    Change:     Fix the macros.

    Introduced: 8.5.4.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Support Doorbell overflow recovery.

 2. Request:    Expose modules parameters with read permissions under
                /sys/module/qed/parameters/.

 3. Request:    iWARP - Handle flush completion on unaligned ll2 connection.

 4. Request:    Configure cachelines in PSWRQ2 to match architecture.
                Should benefit performance where cacheline is 128B [ThunderX].

 5. Request:    Fix compilation warnings of a "unused-parameter" type.

 6. Request:    Add new OSAL - OSAL_TRANSCEIVER_UPDATE().

 7. Request:    [FW] iSCSI - Add support for Tmwo option (Phase II).

 8. Request:    [FW] TCP - Add support for ECN.

Version 8.30.0.0 (Mar 09, 2017)
===============================
Internal FW 8.30.0.0

Fixes:
------
 1. Problem:    CQ90809/CQ90793 - qed/qede driver fails to load after reboot in
                SLES11sp4 OS and SLES12sp1 OS.

    Change:     Added support to update initrd while installing qed/qede/qedr
                modules.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    32-bit compilation gives warning '"__divdi3" undefined!'.

    Change:     Use OS function for division of 64-bit variables.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    Rate limiting for 100g VFs isn't affecting all queues.

    Change:     Have engine1 use engine0 link-view for configuring rate.

    Introduced: Day 1.

    Relevance:  100g VFs.

 4. Problem:    CQ89449 - Soft lockup is experienced after long run.

    Change:     Unmap LL2 packets when before passing them to prevent leak.

    Introduced: Day 1.

    Relevance:  iSCSi/FCoE with IOMMU enabled.

 5. Problem:    CQ91831 - "Possible missing firmware .." during 'make install'.

    Change:     Install binary firmware before regenerating early-fs.

    Introduced: Day 1.

    Relevance:  All.

 6. Problem:    PTP filters are being configured incorrectly for some ptp modes.

    Change:     Provide interface for new PTP API for configuring rx/tx filters.

    Introduced: Day 1.

    Relevance:  PTP.

 7. Problem:    CQ90788, CQ90801 - FW assert may happen when a connection is
                re-established after RST had arrived.

    Change:     [FW] Fix error handling flow.

    Introduced: FW 8.18.5.0.

    Relevance:  iWARP.

 8. Problem:    Can't open connection with same 4-tuple after previous failed.

    Change:     Fix error handling flow in driver.

    Introduced: FW 8.18.9.0.

    Relevance:  iWARP.

 9. Problem:    Use of non-initialized spinlock.

    Change:     Move initialization earlier.

    Introduced: Day 1 of iWARP.

    Relevance:  iWARP.

10. Problem:    CQ91001 - AH: PTP Sync not working.

    Change:     Add workaround for latching the 2-step ptp packets.

    Introduced: Day 1.

    Relevance:  PTP.

11. Problem:    The LL2 RX completion spin lock may be unlocked with a set of
                flags that is different from the ones it was locked with.

    Change:     Unlock the spin lock with the same set of flags it was locked
                with.

    Introduced: Day 1.

    Relevance:  LL2.

12. Problem:    Unsafe use of main ptt in qed.

    Change:     Refine usage of main ptt in qed and changes in several APIs
                to receive ptt parameter are:- qed_hw_stop_fastpath(),
                qed_hw_start_fastpath(), qed_get_wake_info(),
                qed_wol_buffer_clear() and qed_sp_pf_update_tunn_cfg().

    Introduced: Day 1.

    Relevance:  All.

13. Problem:    CQ91465 - driver disable hits assert.

    Change:     Correctly release tcp cids.

    Introduced: Day 1.

    Relevance:  iWARP.

14. Problem:    CQ91499 - driver crash while unloading RDMA driver.

    Change:     iWARP related bitmaps should only be freed if iWARP is enabled.

    Introduced: 8.18.8.0.

    Relevance:  iWARP.

15. Problem:    CQ91210 - driver assert while unloading during traffic.

    Change:     wait for all cids to be released.

    Introduced: Day 1.

    Relevance:  iWARP.

16. Problem:    Possibly race might lead to VF mistaken as malicious.

    Change:     PF should clear VF->PF channel FW status before reply to VF.

    Introduced: Day 1.

    Relevance:  SRIOV.

17. Problem:    Possible race leading to VF timeout in multiple VF scenarios.

    Change:     Change logic for setting/clear pending events of VFs.

    Introduced: Day 1.

    Relevance:  SRIOV.

18. Problem:    RDMA application hangs.

    Change:     Output the number of WIDs an application can use so the
                application can verify that it is giving a doorbell in the valid
                range.

    Introduced: 8.18.9.0.

    Relevance:  RDMA.

19. Problem:    Running a user space RDMA application fails with the message
                "Doorbell mapping failed". This happens when the kernel has a
                page size of 64kB.

    Change:     Align the normal region size to PAGE_SIZE.

    Introduced: Day 1.

    Relevance:  RDMA.

20. Problem:    SYN Packets received with errors aren't handled properly.

    Change:     Check error flags and drop SYN packet if it is received with
                error.

    Introduced: Day 1.

    Relevance:  iWARP.

21. Problem:    Memory leak when SYN packet processing fails.

    Change:     If SYN packet processing failed for any reason, return RX
                buffer to pool.

    Introduced: Day 1.

    Relevance:  iWARP.

22. Problem:    CQ91708 - FW assert when running load/unload during traffic.

    Change:     Wait for connections to close entirely before closing ll2
                connections.

    Introduced: Day 1.

    Relevance:  iWARP.

23. Problem:    Malicious VF can cause assert by using vport-stop.

    Change:     Don't send vport-stop to firmware from malicious VFs.

    Introduced: Day 1.

    Relevance:  SRIOV.

24. Problem:    CQ91871 - "ethtool -T" fails for two out of four Quest ports.

    Change:     Port_id is internal to the engine and qed shouldn't use it as
                port_num. Qed need to derive it from the absolute pf-id.

    Introduced: 8.18.11.0.

    Relevance:  PTP.

25. Problem:    Initial WWPN/WWNN values are incorrect.

    Change:     Flip bit-order of lower/upper 32-bit of said fields when read.

    Introduced: Day 1.

    Relevance:  FCoE.

26. Problem:    Possible division by 0 when the number of active ports is 0.

    Change:     Have a default value of 1.

    Introduced: Day 1.

    Relevance:  AH.

27. Problem:    Storage interface init might fail due to lack of ILT lines.

    Change:     Default ILT page size of 64Kb regardless of CONFIG_QED_ROCE.

    Introduced: Day 1.

    Relevance:  Storage compiling without CONFIG_QED_ROCE.

28. Problem:    AH VFs always have MSI-x table of 17 entries.

    Change:     Make sure all child VFs of the same PF have same MSI-x number.

    Introduced: Day 1.

    Relevance:  AH SRIOV.

29. Problem:    Receive window used for verification when receiving packets is
                wrongfully reduced by scaling it down and up.

    Change:     [FW] Fix receive window calculation.

    Introduced: Day 1.

    Relevance:  TCP.

30. Problem:    Rejecting a connection after MPA reply arrived is not working
                properly.

    Change:     [FW] Fix the flow that aborts the TCP connection without
                changing the QP state.

    Introduced: FW 8.18.11.0.

    Relevance:  iWARP.

31. Problem:    CQ91075 - FW assert may happen during retransmissions.

    Change:     [FW] Fix missing initialization of TCP receive window.

    Introduced: FW 8.18.10.0.

    Relevance:  iWARP.

32. Problem:    Post send before connection is established doesn't work.

    Change:     [FW] Initialize Send-Queue parameters during create QP rather
                than when moving to full mode (after connection is established).

    Introduced: Day 1.

    Relevance:  iWARP.

33. Problem:    CQ90930 - FW assert in case of tcp window edge going backward
                during fast-rxmit.

    Change:     [FW] Fix fast-rxmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

34. Problem:    PF ID not configured correctly in aRFS profile.

    Change:     [FW] Fix set_rfs_mode_enable HSI function.

    Introduced: Day 1.

    Relevance:  L2.

35. Problem:    CQ91241 - Receiving Syn or Syn-Ack packet with MSS option
                smaller than 536 will not be accepted.

    Change:     [FW] Change MSS minimum to 64 in validation.

    Introduced: FW 8.18.5.0.

    Relevance:  TCP.

36. Problem:    RTR may accidentally sent after RST had arrived.

    Change:     [FW] Don't send RTR if we already got RST.

    Introduced: FW 8.18.11.0.

    Relevance:  iWARP.

37. Problem:    Wrong CQE opcode was written during underRun flow with sense
                data.

    Change:     [FW] Change under run flow.

    Introduced: FW 8.10.4.0.

    Relevance:  iSCSI Initiator.

38. Problem:    Firmware may send incorrect sequence number on packets after
                detecting an error.

    Change:     [FW] Sync Tx-path with correct TCP sequence number once error is
                detected.

    Introduced: FW 8.18.5.0.

    Relevance:  iWARP.

39. Problem:    StatSN FW validation error in case of non-first login response
                with Status-Class = 0.

    Change:     [FW] Fix the StatSN validation.

    Introduced: Day 1.

    Relevance:  iSCSI.

40. Problem:    When moving from slow start to congestion avoidance stage the
                cwnd is wrongfully calculated (as if we are still in slow
                start stage).

    Change:     [FW] Fix calculation of cwnd.

    Introduced: Day 1.

    Relevance:  TCP.

41. Problem:    Wrong initial slow start threshold was used after connection
                establishment.

    Change:     [FW] Initialize slow start threshold to 64K.

    Introduced: FW 8.10.4.0.

    Relevance:  iSCSI, iWARP.

42. Problem:    Performing multiple destroy QP ramrods under stress, may cause
                transmission queues getting stuck.

    Change:     [FW] Fixed transmission queues credit calculation.

    Introduced: Day 1.

    Relevance:  RoCE.

43. Problem:    Block name in attentions parsing can be wrong.

    Change:     [FW] Fixed block names.

    Introduced: FW 8.18.10.0.

    Relevance:  Debug tools.

44. Problem:    Conn/Task AC management problems in Rx path.

    Change:     [FW] Fixed AC management, and other RQ WQE problems in Rx error
                paths.

    Introduced: Day 1.

    Relevance:  iWARP.

45. Problem:    CQ91528, CQ91526 - FW assertion or data corruption may occur
                during retransmissions of RDMA READ_RSP.

    Change:     [FW] Fixed retransmission TX path.

    Introduced: Day 1.

    Relevance:  iWARP.

46. Problem:    CQ915210 - FW assertion may occur on a race condition where we
                are getting RST and sending RST at the same time.

    Change:     [FW] Don't handle incoming RST in case we have already sent a
                RST.

    Introduced: FW 8.18.5.0.

    Relevance:  iWARP.

47. Problem:    If the number of unacked PSNs exceeds 2147483647 inline WQEs
                will be dropped.

    Change:     [FW] Fix transmission flow.

    Introduced: FW 8.18.2.0.

    Relevance:  RoCE.

48. Problem:    CQ91393 - Chip may be stuck if Firmware detected an error on TX
                path.

    Change:     [FW] Fix error handling flow in TX path.

    Introduced: FW 8.18.10.0.

    Relevance:  iWARP.

49. Problem:    Chip may be stuck if Firmware detected an error on RX path.

    Change:     [FW] Fix error handling flow in RX path.

    Introduced: FW 8.18.10.0.

    Relevance:  iWARP.

50. Problem:    Benign attention doorbell almost full triggers attention
                handling in driver needlessly.

    Change:     [FW] Mask almost full attention.

    Introduced: Day 1.

    Relevance:  All.

51. Problem:    CQ91527, CQ91654 - Retransmission flow in rare cases might cause
                HW attention.

    Change:     [FW] Fix retransmission flow.

    Introduced: Day 1.

    Relevance:  RoCE.

52. Problem:    Theoretical bug can occur when an unaligned FPDU is split over
                more than 2 tcp segments and a buffer is posted back to rx
                chain before FW completed processing other packets placed on
                the same tcp segment.

    Change:     Change buffer repost flow to go via tx chain to ensure all
                previous data has completed transmission.

    Introduced: 8.18.12.0.

    Relevance:  iWARP unaligned MPA flows.

53. Problem:    CQ92275 - Driver crash when attempting to open more than
                supported number of QPs.

    Change:     Don't assert.

    Introduced: Day 1.

    Relevance:  iWARP.

54. Problem:    CQ92056 - FW assert when performing load/unload during traffic.

    Change:     Handle case where reset arrives for a connection that was not
                yet accepted.

    Introduced: FW 8.18.15.0.

    Relevance:  iWARP.

55. Problem:    CQ91975 - memory leak.

    Change:     Fix memory leaks in destroy qp and driver unload
                flow.

    Introduced: Day 1.

    Relevance:  iWARP.

56. Problem:    CQ92275 - Can't create number of qps requested.

    Change:     When allocating resources take into account additional
                preallocated cids and make sure requested number of qps
                is available.

    Introduced: Day 1.

    Relevance:  iWARP.

Enhancements:
-------------
 1. Request:    Add support for Energy efficient ethernet (EEE) feature.

 2. Request:    Add module parameter for determining the rdma protocol of
                each bdf.

 3. Request:    Modify num_roce_qp and num_roce_dpis module parameter name to
                be num_rdma_qp and num_rdma_dpis as they can be used for iWARP
                as well.

 4. Request:    Add compilation flag OVERRIDE_CRC8 to optionally allow removal
                of dependency in the crc8 module.

 5. Request:    Add module parameter wc_disabled to allow disabling write-
                combine.

 6. Request:    Added wwpn and wwnn to the FCoE dev-info.

 7. Request:    [FW] Add support for iWARP (phase 2).

 8. Request:    Add Support for WoL writes via MFW mailbox for AH.

 9. Request:    Implement PTP MFW resource locking mechanism. Only PF which
                holds this lock is allowed to use ptp clock on the port.

10. Request:    Add an option to override the default force load behavior.

11. Request:    Added new API qed_iwarp_tcp_abort().

12. Request:    Add support for the mdump GET/CLR_RETAIN sub commands.

13. Request:    RoCE/iWARP: On MR de-registration failure, try again after a
                1msec delay, instead of immediately draining the NIG.

14. Request:    Add a warning printout in case of a DID mismatch between
                nvm-cfg/efuse.

15. Request:    PF QED allows to UL to prevent HW overriding VF MSI-X
                table size.

16. Request:    Mask parity errors once they are asserted.

17. Request:    Add support for unaligned MPA packets received over
                more than two tcp segments.

18. Request:    Add unaligned rx packets received statistic for iWARP.

19. Request:    If iWARP receive window size configured is less than the
                minimum 64K, 64K will be set instead of 1M. Remove support for
                configuring a default value in case a value is not provided.

20. Request:    Revise the locking scheme for the access to the MFW mailbox.

21. Request:    Add initial support for E5 DIDs.

22. Request:    Block sending of mailbox commands to the MFW if it is not
                responsive.

23. Request:    Initialize FW parameter for max fin retransmit before
                sending reset.

24. Request:    Restricting iWARP max MSS value for sake of performance.

25. Request:    qed_ll2_acquire_data is refactored; New sub-struct named
                qed_lla_acquire_data_inputs added.

26. Request:    Fix compilation warnings of the following types -
                unused-but-set-variable, unused-variable and unused-function.

27. Request:    [FW] Have deregister MR completing successfully without
                requiring NIG drain for misbehaving applications which
                deregister MR which is under usage.

28. Request:    [FW] Add support for 'drop' destination for LL2 TX packets.

29. Request:    [FW] RoCE - Improving latency for IOs upto 8192 bytes for
                operations read, write, send and atomic.

30. Request:    [FW] Support Resize CQ Ring.

31. Request:    [FW] Add support for DIF on immediate data (Phase I).

32. Request:    Allow configuring RoCEv2 UDP source port by the driver.

Version 8.18.9.0 (Jan 18, 2017)
===============================
Internal FW 8.18.10.0

Fixes:
------
 1. Problem:    CQ90415 - Continue load/unload of qedr driver with MTU changes
                leads to system crash.

    Change:     Acquire PTT through proper API rather than use main_ptt
                explicitly.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ90157 - PTP sync fails after restarting ptp4l application.

    Change:     PTP packets will be forwarded to the host by default, driver
                doesn't need to request for the same.

    Introduced: Day 1.

    Relevance:  PTP.

 3. Problem:    The allocated number of DPIs may be too high.

    Change:     Use num_present_cpus() rather than num_active_cpus().

    Introduced: 8.7.8.0.

    Relevance:  RoCE/iWARP.

 4. Problem:    Not zeroing the whole union data of the MFW mailbox, and thus
                disabling future extension of existing union members.

    Change:     Zero the whole union data before copying the actual union
                member.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    Outbound limit of the initiator isn't reduced in case inbound
                limit of the peer is lower.

    Change:     Reducing the limit accordingly.

    Introduced: Day 1.

    Relevance:  iWARP.

 6. Problem:    CQ90915: Cannot start all VFs due to lack of queues.

    Change:     Assign VF-queues and only later the PF-queues.

    Introduced: Day 1.

    Relevance:  L2.

 7. Problem:    Can't set interrupt coalescing of 128+ usecs.

    Change:     Pass igu index instead of protocol index in coalesce flow.

    Introduced: 8.18.7.0.

    Relevance:  All.

 8. Problem:    IPv4 Packets were transmitted with the flag 'dont fragment'
                cleared.

    Change:     [FW] Set the 'dont fragment' flag.

    Introduced: Day 1.

    Relevance:  TCP.

 9. Problem:    SYN-ACK packets with TS option were sent with wrong ts_echo
                value.

    Change:     [FW] Fix extraction of ts_val from SYN packet.

    Introduced: FW 8.10.3.0.

    Relevance:  TCP option 2 with timestamp enabled.

10. Problem:    In rare cases when running with more than 2 QPs and sending
                read/atomic request, completion error may be generated.

    Change:     [FW] Fix transmission flow.

    Introduced: Day 1.

    Relevance:  RoCE, iWARP.

11. Problem:    Reading DBU_REG_CMD in AH as part of GRC Dump can cause an
                address error.

    Change:     [FW] Excluded DBU_REG_CMD from GRC Dump in AH.

    Introduced: Day 1.

    Relevance:  Debug tools.

12. Problem:    Application may hang when re-establishing a connection after it
                was rejected.

    Change:     [FW] Fix MPA reject flow.

    Introduced: FW 8.18.9.0.

    Relevance:  iWARP.

13. Problem:    Always trying to release the resource lock when the resource
                allocation fails, even when it is not needed.

    Change:     Try to release only when it is required.

    Introduced: 8.18.7.0.

    Relevance:  All.

14. Problem:    CQ91075 - iWARP assert during boot with latest components.

    Change:     Fix driver initialization of default number of ooo buffers.

    Introduced: 8.18.9.0.

    Relevance:  All.

15. Problem:    CQ90379: Driver provides MFW with bad primary MAC when changed.

    Change:     Prepare MAC in native endian order for MFW to read.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Added new API qed_iov_pf_configure_vf_queue_coalesce(),
                PF configures the Rx/Tx coalesce values of its child-VFs
                on per Rx/Tx queue basis.

 2. Request:    Infrastructure changes toward supporting Multiple Txq on same
                queue zone for VF.

 3. Request:    Added ll2 option to limit the number of maximum bds per
                packet. This is to reduce descriptor size when maximum bds per
                packet is low and enable allocating a larger number of tx
                descriptors if needed.

 4. Request:    iWARP Support for packed and unaligned fdpus.

 5. Request:    Read the BB/AH MAC counters from the suitable statistics bins.

 6. Request:    [FW] iWARP performance optimization of WRITE & SEND flows.

 7. Request:    [FW] RoCE support of Unreliable Datagram QP for GSI offload.

 8. Request:    Add a restriction on the pad to cache line size register.

 9. Request:    RoCE support of Unreliable Datagram QP for GSI offload.

Version 8.18.8.0 (Jan 11, 2017)
===============================
Internal FW 8.18.9.0

Fixes:
------
 1. Problem:    CQ90907 - Continuous SGMII 10M/100M interrupts in AN mode.

    Change:     Removed all NWM and NWS initializations from the Init Tool.

    Introduced: Day 1.

    Relevance:  All.

Version 8.18.7.0 (Dec 29, 2016)
===============================
Internal FW 8.18.9.0

Fixes:
------
 1. Problem:    System crash while handling the tests debugfs node.

    Change:     Use the kernel APIs for manipulating user memory.

    Introduced: Day 1.

    Relevance:  debugfs.

 2. Problem:    CQ90214 - Speed of the VF is not same as that of the PF.

    Change:     Updated bulletin board with link state during VF initialization.

    Introduced: Day 1.

    Relevance:  VF Link.

 3. Problem:    Responder doesn't set peer2peer correctly in MPA rev2 in some
                cases.

    Change:     Fix driver to always respond with peer2peer in MPA rev2 if
                requester requested peer2peer mode.

    Introduced: 8.18.4.0.

    Relevance:  iWARP MPA enhanced mode.

 4. Problem:    CQ90010 - FW may accidentally drop packets when Tx Switching
                Same-as-Last feature is enabled.

    Change:     [FW] Fix Tx Switching Same-as-Last classification logic.

    Introduced: Day 1.

    Relevance:  SRIOV.

 5. Problem:    CQ90198 - Firmware may not give flush on incomplete SQ wqes
                after the QP was moved to error state.

    Change:     [FW] Fix the error handling flow that give flushes to SQ.

    Introduced: FW 8.18.5.0.

    Relevance:  iWARP.

 6. Problem:    Placement to an address out of the MR scope may pass firmware
                verifications.

    Change:     [FW] Fix the calculation of the last byte address of the MR.

    Introduced: Day 1.

    Relevance:  iWARP, RoCE.

 7. Problem:    Destination GID was missing from LL2 RX GSI API.

    Change:     Add it.

    Introduced: Day 1.

    Relevance:  iWARP, RoCE.

 8. Problem:    Assert in qed_sp_vf_start() while installing drivers for VF.

    Change:     Added missing initialization in case of personality is iWARP.

    Introduced: iWARP Day 1.

    Relevance:  iWARP and SRIOV coexistence.

 9. Problem:    GRC Dump corrupts a debug bus recording that was taken on
                another PF on the same engine.

    Change:     [FW] Skip static debug dump if the DBG block is enabled
                (indicates that a debug bus recording is in progress).

    Introduced: Day 1.

    Relevance:  Debug Tools.

10. Problem:    GRC Dump writes to protected registers, causing error entries
                in REG FIFO.

    Change:     [FW] Modified GRC Dump to avoid taking LED and AVS_WRAP blocks
                out of reset.

    Introduced: FW 8.10.5.0.

    Relevance:  Debug Tools.

11. Problem:    A DPM doorbell can cause a false parity attention.

    Change:     [FW] Initialized the entire DORQ WQE buffer with zeros.

    Introduced: Day 1.

    Relevance:  RoCE.

12. Problem:    CQ90473 – DCQCN packets may not be received in BB B0 in 100G,
                2x50G and 4x25G mode.

    Change:     [FW] HW bug workaround - initialize the register to the correct
                value.

    Introduced: Day 1.

    Relevance:  RoCE DCQCN.

13. Problem:    DMAE failure when stopping RDMA during the unload phase of the
                recovery process.

    Change:     Avoid DMAE transactions while a recovery is in progress.

    Introduced: Day 1.

    Relevance:  Error recovery.

Enhancements:
-------------
 1. Request:    If RDMA is supported, Allow L2 to open a max of 64 queues.

 2. Request:    VF tunneling support.

 3. Request:    VF ethtool coalescing support.

 4. Request:    Enable mutually exclusive rdma flavor.
                Added API via qed_rdma_pf_params to configure RDMA flavor.

 5. Request:    iWARP support for MPA reject flow.

 6. Request:    iWARP support for RTR Read (Revision 2).

 7. Request:    Resource allocation interface v2.0 (setting values of soft
                resources).

 8. Request:    Client to provide vport & RSS engine IDs when initializing VFs.

 9. Request:    Add udp ports in bulletin to notify VFs for port change.

Version 8.18.6.0 (Dec 15, 2016)
===============================
Internal FW 8.18.7.0

Fixes:
------
 1. Problem:    Default number of iWARP OOO RX Buffers is 512 instead of 8K.

    Change:     Fix default value initialization.

    Introduced: Day 1.

    Relevance:  iWARP.

 2. Problem:    CQ90310,CQ90311, CQ90219 - Incorrect input buffer thresholds of
                Pause and PFC.

    Change:     [FW] Fixed incorrect input buffer thresholds for better support
                of Pause and PFC.

    Introduced: Day 1.

    Relevance:  iSCSI, iWARP (AH only).

 3. Problem:    CQ89928 - Asynchronous message of "QP catastrophic error" return
                during retransmit sequence.

    Change:     [FW] Fix retransmit flow.

    Introduced: Day 1.

    Relevance:  RoCE.

 4. Problem:    CQ90121 - FW assertion after unloading qedr will occur if
                register/deregister MR operation failed.

    Change:     [FW] Fix MR register and deregister flows.

    Introduced: Day 1.

    Relevance:  RoCE.

 5. Problem:    CQ90357 - iWARP wrong ird/ord values published.

    Change:     Set correct maximum ord/ird values for iWARP.

    Introduced: Day 1.

    Relevance:  iWARP.

Enhancements:
-------------
 1. Request:    Add interfaces for the following functionalities.
                get_fc_npiv - Read NPIV table from MFW.
                update_fcoe_cvid - Send FCoE vlan to the MFW.
                update_fcoe_fabric_name - Send Fabric name to the MFW.

 2. Request:    Revise tunnel struct/APIs.

 3. Request:    Add support for usage of the MFW generic resource lock.

 4. Request:    RSS configuration via vport-update is done using queue-handles.

 5. Request:    vmalloc is obsolete and is replaced by vzalloc which should also
                zero the memory.

 6. Request:    Add support for the new load request flow for handling a
                previous driver unload.

 7. Request:    VF ethtool coaescing support.

Version 8.18.5.0 (Dec 05, 2016)
===============================
Internal FW 8.18.6.0

Fixes:
------
 1. Problem:    CQ90249 - Initrd process is not implemented in Fastlinq Tar
                package, failed to load OOB driver after reboot.

    Change:     Add support for initrd update as required by some distros.

    Introduced: Day 1.

    Relevance:  Ubuntu.

 2. Problem:    CQ90347 - AH 10GBaseT: [One time crash] System hit a bugcheck on
                disabling both ports from switch. System halts if CID resource
                is not available for allocation.

    Change:     Don't cause system halt, just return error code.

    Introduced: Day 1.

    Relevance:  RoCE.

 3. Problem:    CQ90311 - Disable Nop-Out and login to target, seeing
                "iscsi_error - rq ring full".

    Change:     BDQ resource management is fixed.

    Introduced: 8.18.4.0.

    Relevance:  Storage.

 4. Problem:    CQ90198: freeing contiguous memory from dpc context.

    Change:     Fix qed to free memory from passive context.

    Introduced: 8.18.4.0.

    Relevance:  iWARP.

 5. Problem:    CQ90033 - fw assert due to improper out-of-order handling.

    Change:     [FW] fix out-of-order trimming flow.

    Introduced: Day 1.

    Relevance:  iSCSI, iWARP.

 6. Problem:    CQ90098 - FW may not give completions after the connection was
                re-offloaded.

    Change:     [FW] Init all parameters when the connection is offloaded.

    Introduced: Day 1.

    Relevance:  iWARP.

 7. Problem:    CQ90334 - FW "flr_cleanup_func_invalid_state" Fatal Assert upon
                scenario of consecutive FLR Initial cleanups to function.

    Change:     [FW] Severity of "flr_cleanup_func_invalid_state" reduced to
                Warning (scenario may occur).

    Introduced: Day 1.

    Relevance:  All.

 8. Problem:    Firmware may be stuck if it gets a SYN packet with 40B of
                options.

    Change:     [FW] Support such scenario in Firmware.

    Introduced: Day 1.

    Relevance:  iSCSI Target, iWARP.

 9. Problem:    VF isolation problem - VF can cause parity errors by reading
                from X or Y Storm VF Zone.

    Change:     [FW] Fix Zone B configuration in init tool.

    Introduced: FW 8.18.2.0.

    Relevance:  SR-IOV.

10. Problem:    Device transmitter pipe stuck.

    Change:     Use correct TC for loopback in 4 port environment.

    Introduced: Day 1.

    Relevance:  iWarp/iSCSI Arrowhead 4 port.

Enhancements:
-------------
 1. Request:    Collect management TLV data via protocol-driver supplied
                callbacks `get_{generic,protocol}_tlv_data'.

 2. Request:    PFs populate the dev_info with absolute device id number.

 3. Request:    Change database of connections in OOO from linked list to array
                to improve search time.

Version 8.18.4.0 (Nov 28, 2016)
===============================
Internal FW 8.18.5.0

Fixes:
------
 1. Problem:    CQ86906 - E4 2x25G: call trace observed on ptp4l slave.

    Change:     Use the pre-acquired ptt for accessing the registers. And move
                the ptp code from eth_if.c to qed_ptp.c.

    Introduced: Day 1.

    Relevance:  PTP.

 2. Problem:    Initialization fails due to supposed lack of VFs SBs.

    Change:     Correct calculation of first_vf_in_pf for servers with no ARI.

    Introduced: Day 1.

    Relevance:  AH, no ARI.

 3. Problem:    Firmware doesn't set the invalidate flag in RQ CQE when there
                is send w/ invalidate.

    Change:     [FW] Set the invalidate flag and invalidated S-TAG on the RQ CQE
                (when Send W/ Invalidate arrives).

    Introduced: Day 1.

    Relevance:  iWARP.

 4. Problem:    CQ89925, CQ90099, CQ90065, CQ90068, CQ90247 - Firmware may avoid
                sending SYN-ACK to the peer and stall the TX path.

    Change:     [FW] Fix the firmware flow on passive side.

    Introduced: Day 1.

    Relevance:  iWARP.

 5. Problem:    CQ90262 - Parsing SYN options field may cause Tcp offload ramrod
                to stuck.

    Change:     [FW] Fix Tcp options field parsing.

    Introduced: FW 8.10.3.0.

    Relevance:  iSCSI (Target), iWARP.

 6. Problem:    CQ90311 - Disable Nop-Out and login to target, seeing
                "iscsi_error - rq ring full".

    Change:     BDQ resource management is fixed.

    Introduced: 8.18.3.0.

    Relevance:  Storage.

Enhancements:
-------------
 1. Request:    Add qed infrastructure for handling TLV request from MFW.

 2. Request:    L2 queue APIs changed - require less parameters to open
                queues and move into a handler-based implementation.

 3. Request:    Improve cache-alignment of qed_chain - place all fields
                required for produce/consume in a single cacheline [64 bytes].

 4. Request:    iWARP support for Read With Invalidate.

 5. Request:    iWARP - Add support for MPA revision 2 (enhanced).

 6. Request:    iWARP - Add support for SYN retransmit timeout indication.

Version 8.18.3.0 (Nov 21, 2016)
===============================
Internal FW 8.18.4.0

Fixes:
------
 1. Problem:    CQ90020 - Storage fails due to lack of fastpath interrupts.

    Change:     Don't reserve RDMA MSI-x for non-RDMA personalities.

    Introduced: Day 1.

    Relevance:  iSCSI, FCoE.

 2. Problem:    Sending a LOAD_REQ with a non-initialized `drv_type'.

    Change:     Move the assignment of this field to be prior to calling
                hw_init().

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    Driver does not get completions when entering retransmit flow
                for high functions of an engine.

    Change:     Driver did not initialize a resource correctly.

    Introduced: 8.18.0.0.

    Relevance:  iWARP NPAR and 4-port mode.

 4. Problem:    CQ89024 - while running qperf a tid deregistration fails.
                Cause: after FW requested a NIG drain then the retransmitted
                ramrod is sent without properly configuring the itid.

    Change:     Properly configure the itid in the retransmitted ramrod.

    Introduced: Day 1.

    Relevance:  RoCE/iWARP.

 5. Problem:    CQ90143 - iSCSI discovery fails if done while FCoE driver is
                loaded.

    Change:     Fail storage driver load if queue/cq request is beyond CQ
                resource allocation.

    Introduced: Day 1.

    Relevance:  iSCSI/FCoE.

 6. Problem:    HW attentions cause idle check failures even when they are
                masked.

    Change:     (FW) Updated idle check to consider attentions masking.

    Introduced: Day 1.

    Relevance:  Debug Tools.

 7. Problem:    Possible garbage in PCIE Trace due to HW reset value bug.

    Change:     (FW) HW bug workaround - initialize the register to the correct
                value.

    Introduced: Day 1.

    Relevance:  Debug Tools.

 8. Problem:    CQ89179 - HW attention may occur due to a HW bug that may
                exposed when there is a traffic with DIF.

    Change:     (FW FCoE) Work-around in FCoE RX path.

    Introduced: Day 1.

    Relevance:  FCoE, DIF.

 9. Problem:    Heavy iWARP traffic that includes retransmissions may cause to
                unexpected behavior.

    Change:     (FW iWARP) Verify there is a place in OOO queue before placing
                there packets.

    Introduced: Day 1.

    Relevance:  iWARP.

10. Problem:    Parity attention may occur when dumping a debug bus recording
                from the DBG block internal buffer, due to a HW bug.

    Change:     (FW) Masked the parity attention.

    Introduced: Day 1.

    Relevance:  Debug Tools.

11. Problem:    iWARP Rxmit statistics don't appear properly on high functions.

    Change:     Wrong id passed to FW macro.

    Introduced: 8.18.2.0.

    Relevance:  iWARP rxmit statistics.

12. Problem:    CQ89459 - System hits a bugcheck on setting ND Max QP to 16.

    Change:     Nullify hwfn structures' pointers after being freed.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Rename the set_id() API to set_name().

 2. Request:    Expose max availables CQs to storage drivers.

 3. Request:    Support RoCE event statistics.

 4. Request:    (FW) Debug Bus tool updates:
                - Modified recording format to allow data synchronization in
                  case of: multiple groups per debug line, debug line split in
                  wrap-around mode, and data drops due to low bandwidth.
                - Improved readability of parsed HW blocks recordings.
                - Automatic detection of 256-bit debug lines.
                - Support specifying debug lines by name.

 5. Request:    (FW iSCSI) iSCSI support for test unit ready (R=0, W=0).

 6. Request:    (FW iWARP) Add support to MPA version2 (enhanced) in iWARP.

 7. Request:    Use the MFW mailbox for getting BDQ resource allocation
                information.

Version 8.18.2.0 (Nov 13, 2016)
===============================
Internal FW 8.18.3.0

Fixes:
------
 1. Problem:    CQ89640 - Tx-switching VF traffic doesn't work.

    Change:     Correct number of VF mac filters, so it wouldn't be promisc.

    Introduced: 8.14.4.0.

    Relevance:  SRIOV.

 2. Problem:    CQ89640 - In promisc mode, multicast tx-switching doesn't work.

    Change:     Allow all multicast packets to pass in tx-switching when
                {multi, }-promisc mode is configured.

    Introduced: Day 1.

    Relevance:  SRIOV.

 3. Problem:    The MAC stats which are gathered as part of debug data
                collection are only for port 0.

    Change:     Fix the way the MAC stats size is calculated.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    CNIG attentions appear when hitting NWM/NWS attentions.

    Change:     Correct AH aeu bit mapping to HW blocks.

    Introduced: Day 1.

    Relevance:  AH.

 5. Problem:    Modifying QP to IDLE before destroying the QP will cause
                the next connection attempt done with an identical 4-tuple to
                fail.

    Change:     Fix flow.

    Introduced: Day 1.

    Relevance:  iWARP.

 6. Problem:    FW assert may happen during connection establishment when there
                are retransmits.

    Change:     (FW iWARP) Fix ingress processing during connection
                establishment.

    Introduced: Day 1.

    Relevance:  iWARP.

 7. Problem:    Traffic continues after disable VPORT.

    Change:     (FW L2) Fix VPORT disable FW flow.

    Introduced: Day 1.

    Relevance:  L2.

 8. Problem:    VF isolation problem - VF can access parts of internal RAM of
                Storms in which VF Zone is unused.

    Change:     (FW) Disable VF access to Zone B of unused Storms.

    Introduced: Day 1.

    Relevance:  SRIOV.

 9. Problem:    Malicious VF Flood - Malicious VF driver can cause EQEs flood
                to parent PF by constantly writing to Ustorm VF zone.

    Change:     (FW) Block malicious VF.

    Introduced: Day 1.

    Relevance:  SRIOV.

10. Problem:    Dropped RDMA read response may cause the RDMA read request to
                be sent multiple times.

    Change:     (FW RoCE) Fix implied NAK implementation to only retransmit
                once.

    Introduced: Day 1.

    Relevance:  RoCE.

11. Problem:    Modifying QP to error state, while there is still traffic
                running, might results with error return on completion queue.

    Change:     (FW RoCE) Fix Requester flow.

    Introduced: FW 8.3.0.0.

    Relevance:  RoCE.

12. Problem:    Multiple MTU RDMA Writes with T10 DIF sent without ACK request
                resulting in low performance.

    Change:     (FW RoCE) Fix ACK request flag setting.

    Introduced: FW 8.18.0.0.

    Relevance:  RoCE.

13. Problem:    Parity attention on SEMI interrupt table.

    Change:     (FW) Initialize the entire interrupt table with default event.

    Introduced: Day 1.

    Relevance:  All.

14. Problem:    CQ89456 - HW attention on BRB RC0_EOP_OUT_SYNC_FIFO_PUSH_ERROR.

    Change:     (FW) Mask BRB RC0_EOP_OUT_SYNC_FIFO_PUSH_ERROR.

    Introduced: Day 1.

    Relevance:  All.

15. Problem:    CQ89756 - full out-of-order queue results in deadlock and
                connection errors.

    Change:     (FW iSCSI) Add almost-full limit to the queue filling logic.

    Introduced: Day 1.

    Relevance:  iSCSI.

16. Problem:    Out-of-bound memory access on MFW interaction for resource
                allocation.

    Change:     Fix the access to use the suitable driver mailbox union.

    Introduced: 8.10.5.0.

    Relevance:  All.

17. Problem:    Malicious VF Flood - Malicious VF driver can cause EQEs flood to
                parent PF by constantly writing 0 to vf_pf_msg_valid in Ustorm
                VF zone.

    Change:     (FW) Block malicious VF.

    Introduced: Day 1.

    Relevance:  SRIOV.

18. Problem:    CQ89695 - Ramrod stuck while rebooting VF. False detection of
                PCI read error.

    Change:     (FW) Fix PCI error check for VF slow path.

    Introduced: Day 1.

    Relevance:  SRIOV.

19. Problem:    CQ89793 - ASSERT might occur during driver load.

    Change:     (FW) Remove the initialization of NWM_REG_PRTY_MASK_H_1 from the
                Init Tool.

    Introduced: Day 1.

    Relevance:  FC-FEC, AH only.

20. Problem:    CQ86787 - HW attention may occur during TCP establishment or
                tear-down.

    Change:     (FW iSCSI) Fix pure-ack flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

21. Problem:    FW assertion may occur during TCP tear-down.

    Change:     (FW iSCSI) Fix Clear SQ flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

22. Problem:    CQ89179 - HW attention during iSCSI non-DIF Rx traffic.

    Change:     (FW iSCSI) Fix iSCSI non-DIF Rx flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

23. Problem:    Wrong HW attentions debug print when attentions appear in more
                than one register per block.

    Change:     (FW) Fix HW attentions debug print.

    Introduced: Day 1.

    Relevance:  Debug Tools.

24. Problem:    In CFC Delete Flow - When driver unloads, if there is active L2
                traffic, a Fatal "common_poll_reg_timeout_assert" FW assert is
                invoked.

    Change:     (FW RoCE) "common_poll_reg_timeout_assert" reduced to warning.

    Introduced: FW 8.10.8.0.

    Relevance:  RoCE.

25. Problem:    In retransmit flow, FW ran out of buffers.

    Change:     Driver flow didn't initialize param correctly.

    Introduced: Day 1.

    Relevance:  iWARP.

26. Problem:    FW assert if VF vport closed while queues are activei.

    Change:     Make sure VF queue are closed before stopping vport.

    Introduced: Day 1.

    Relevance:  SRIOV.

Enhancements:
-------------
 1. Request:    Allow only trusted VFs to configure {multi, }-promisc mode.

 2. Request:    Case 00041880 - NIG_REG_{RX_BRB, STORM}_OUT_EN shouldn't
                change; MFW will close the BRB-NIG interface properly.

 3. Request:    Decrease memory consumption used for SYN packet handling in
                iWARP.

 4. Request:    Restructure QM initialization code. QM info is no longer
                reallocated at DCBx renegotiation. Vports and PQs are no
                longer allocated at max values but allocated exactly.

 5. Request:    (FW) Add CRC to all debug binary dumps.

 6. Request:    Protect releasing LL2/iSCSI/OOO resources flow by NULL checking.

 7. Request:    iWARP: Add retransmit statistics to qed_rdma_stats.

 8. Request:    (FW RoCE) Add RoCE statistics for internal CRC, retransmit
                tries, RNR nak and silent drops.

 9. Request:    (FW) Add support for context validation.

10. Request:    Allocate an additional QM physical queue for roce PFs for low
                latency during traffic.

Version 8.18.1.0 (Oct 30, 2016)
===============================
Internal FW 8.18.1.0

Fixes:
------
 1. Problem:    Observed calltraces in dcbnl-query() under stress conditions.

    Change:     Dcbnl-query() API uses kmalloc in may-sleep mode. The API gets
                invoked in interrupt context by qed_dcbnl_getdcbx callback. Need
                to use kmalloc in atomic mode.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    When querying a RoCE port the max_msg_sz field is set to zero.

    Change:     Configure the max_msg_sz field.

    Introduced: Day 1.

    Relevance:  RoCE/iWARP.

 3. Problem:    CNIG attentions appear on port #4 regardless of actual port.

    Change:     Correct logic finding first CNIG attention to be asserted.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    Register MR might fail if we did before Deregister MR while the
                port was paused.

    Change:     (FW RoCE) Fix deregister MR flow.

    Introduced: FW 8.14.2.0.

    Relevance:  RoCE.

 5. Problem:    Encapsulated broadcast packet may be dropped, if VNI used for
                tunnel classification and more than 160 filters configured.

    Change:     (FW L2) Fix FW flow.

    Introduced: FW 8.10.4.0.

    Relevance:  L2.

 6. Problem:    After QP is destroyed during traffic, reusing the connection
                resource may lead to firmware assert.

    Change:     (FW RoCE) Fix internal firmware queue state tracking code.

    Introduced: FW 8.3.0.0.

    Relevance:  RoCE.

 7. Problem:    Same aRFS filter used for TCP and UDP traffic.

    Change:     (FW L2) Add L4 protocol type to aRFS filter profile.

    Introduced: Day 1.

    Relevance:  L2.

 8. Problem:    TCP window probe will not be retransmitted (if it wasn't ACKed).

    Change:     (FW iSCSI/iWARP) Retransmit the window probe if it wasn't ACKed
                for RTO time.

    Introduced: Day 1.

    Relevance:  iSCSI, iWARP.

 9. Problem:    FW assertion may happen when doing modify QP to error.

    Change:     (FW iWARP) Check that SQ is empty instead of verifying we gave
                completions for all wqes (might be non-signalled wqes).

    Introduced: Day 1.

    Relevance:  iWARP.

10. Problem:    AH Bug in High Malicious VF limitation and VFP (VF PF Channel).
                When High (191 for instance) VFs are used (on VMs for instance)
                and a malicious VF is detected.
                In addition FLR Cleanup was not completed properly..

    Change:     (FW SRIOV) Allow up to 192 Malicious VFs (range 0..191) support.
                Wrong limitation to VF vector caused it. Also - VPC's ready-bit
                must be set as VF is returned to its original ("virgin") state,
                in which the VPC must be ready regardless of whether the driver
                acked (set the ready bit) the last request or not.

    Introduced: Day 1.

    Relevance:  SRIOV.

11. Problem:    Data integrity when re-transmitting large (>255 DIF intervals)
                IO with Dif.

    Change:     (FW iSCSI) Fix FW flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

12. Problem:    User application hang due to RT failure.

    Change:     (FW iWARP) Fix the RT flow.

    Introduced: Day 1.

    Relevance:  iWARP.

Enhancements:
-------------
 1. Request:    Add aRFS support for Ipv6 and UDP.

 2. Request:    New common API function get_sb_info() for debugging interrupts.

Version 8.18.0.0 (Oct 19, 2016)
===============================
Internal FW 8.18.0.0

Fixes:
------
 1. Problem:    CQ88823 - Value of number of queue is showing 2 with default
                resource allocation value i.e. 0.

    Change:     Change qid/qzone_id value from 8 bit field to 16 bit.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    System crash due to handling user space memory using
                inappropriate kernel APIs.

    Change:     Replace with the kernel APIs for manipulating user memory.

    Introduced: Day 1.

    Relevance:  debugfs.

 3. Problem:    Memory overrun when filling qedf tasks.

    Change:     Increase task array in interface from 32 blocks to 512.

    Introduced: Day 1.

    Relevance:  FCoE.

 4. Problem:    ILT page >32 isn't updated in qedi tasks.

    Change:     Correct copying of task-array from bytes to structs.

    Introduced: Day 1.

    Relevance:  iSCSI.

 5. Problem:    CQ89309 - VFs creation fail in Default mode with storage.

    Change:     Don't try configuring VF queues [or starting VFs] if lacking
                the queue resources to match.

    Introduced: Day 1.

    Relevance:  IOV on BB 4-port / AH 2-port+ with storage enabled.

 6. Problem:    Ieee_setpfc() implementation doesn't update traffic class count.

    Change:     Update the max_tc field with user provided value.

    Introduced: Day 1.

    Relevance:  Dcbx ieee set_pfc functionality.

 7. Problem:    CQ89032 - iWARP - system crash during initialization with SRIOV
                enabled.

    Change:     Fix TM block ILT initialization.

    Introduced: 8.14.3.0 TM attention fix.

    Relevance:  iWARP and SRIOV coexistence.

 8. Problem:    FW return code is checked even if TID register ramrod posting
                failed.

    Change:     Check FW return code only if ramrod was posted successfully.

    Introduced: Day 1.

    Relevance:  RoCE.

 9. Problem:    CQ88918 - iWARP - Assert during connection close, freeing
                dma-able memory from dpc by qed.

    Change:     Move memory free to later phase which is called in passive.

    Introduced: iWARP Day 1.

    Relevance:  iWARP.

10. Problem:    iWARP - Application hangs during destroy.

    Change:     CLOSE callback not called properly in all cases.

    Introduced: 8.14.4.0.

    Relevance:  iWARP.

11. Problem:    If creating a CQ failed then the CQ bitmap was cleared without
                lock.

    Change:     Clear the relevant bit from the bitmap under lock.

    Introduced: Day 1.

    Relevance:  RoCE.

12. Problem:    False idle check failure on NIG DBGMUX_SYNCFIFO_ERROR_WR
                interrupt.

    Change:     (FW) Fix idle check rule that checks NIG_REG_INT_STS.

    Introduced: Day 1.

    Relevance:  Debug Tools.

13. Problem:    HW attention while running Rx traffic with DIF.

    Change:     (FW iSCSI) Fix the iSCSI Rx DIF flow.

    Introduced: FW 8.14.0.0.

    Relevance:  iSCSI DIF.

14. Problem:    CQ89197 - logs show AH0 for an arrowhead A1 adapter.

    Change:     Consider both REV and METAL, and change print into AH A{0,1}.

    Introduced: Day 1.

    Relevance:  All.

15. Problem:    After FLR, previously malicious VF fails to init sometimes.

    Change:     Make VF-PF channel operational while handling VF FLR.

    Introduced: Day 1.

    Relevance:  SRIOV.

16. Problem:    The nvram test fails after MFW crash dump is collected and its
                image's CRC stops being valid.

    Change:     Exclude the image of the MFW crash dump from the nvram test.

    Introduced: Day 1.

    Relevance:  Selftests.

17. Problem:    CQ89354 - Allocation of RoCE resource managed via a bitmap can
                cause an assert if bitmap is full.

    Change:     Don't assert in such a scenario.

    Introduced: Day 1.

    Relevance:  RoCE.

18. Problem:    QP resource leak.

    Change:     Free resource even if QP responder/requester was never
                offloaded.

    Introduced: 8.14.0.0.

    Relevance:  RoCE.

19. Problem:    iWARP MSS wasn't configured properly on passive side.

    Change:     Calculate header size correctly in passive side.

    Introduced: Day 1.

    Relevance:  iWARP.

20. Problem:    The PQs allocation doesn't enforce a granularity of 8.

    Change:     Make sure the number of PQs per-PF and their start value are
                divisible by 8.

    Introduced: 8.10.5.0.

    Relevance:  All.

21. Problem:    cq89243 AH A1: RoCE: Attention when rebooting host after RoCE
                I/O.

    Change:     Make sure that the ILT resources are released after the FW has
                completed its asynchronous operations.

    Introduced: 8.14.0.0.

    Relevance:  RoCE/iWARP.

22. Problem:    cq89522 iWARP: traffic failed over VLAN interfaces.

    Change:     Vlan comparison wasn't done correctly for cases where listen
                was done on ANY_IPADDR.

    Introduced: Day 1 of iWARP.

    Relevance:  iWARP.

23. Problem:    cq89307 iWARP: statistics not updated correctly for all ports.

    Change:     Same statistic counter was used for different ports.

    Introduced: Day 1 of iWARP.

    Relevance:  iWARP.

Enhancements:
-------------
 1. Request:    Populate value for default mtu field which is to be used by the
                protocol drivers.

 2. Request:    Add APIs for protocol drivers to inform the change in MAC, MTU.
                Also renamed the API send_drv_state() to update_drv_state().

 3. Request:    Remove the "debug" debugfs node.

 4. Request:    Add a debugfs node for handling the MFW crash dump.

 5. Request:    Read default mtu value from the shared-memory during the device
                initialization.

 6. Request:    Add support for the following APIs.
                qed_mcp_ov_update_mtu - Send MTU value to the MFW.
                qed_mcp_ov_update_mac - Send MAC address to the MFW.
                qed_mcp_ov_update_wol - Send WoL mode to the MFW.

 7. Request:    Send eswitch_mode to MFW after the firmware load.

 8. Request:    Configure NIG EDPM per TC enablement control bits for RoCE,
                RoCE_V2 traffic types.

 9. Request:    Expose crc_needed and rcv_wnd_size to upper layer driver.

10. Request:    Update mfw when qed assigns a default mtu value.

11. Request:    Add support for accessing an external phy.

12. Request:    (FW iWARP) Add support for iWARP phase-1.5 (Retransmissions and
                DCBX).

13. Request:    Utilize DRV_MSG_CODE_GET_PF_RDMA_PROTOCOL for learning RDMA
                capabilities of interface.

14. Request:    iWARP OOO support.

15. Request:    Prevent replication error bit from mismatch between the local
                and remote sending local admin MIB.

16. Request:    Add WoL magic packet support.

Version 8.14.4.0 (Sep 18, 2016)
===============================
Internal FW 8.14.7.0

Fixes:
------
 1. Problem:    BB indirect CNIG registers cannot be accessed by GRC Dump and
                MFW simultaneously.

    Change:     (FW) Excluded CNIG_REG_PMFC_IF_* and CNIG_REG_PMEG_IF_* from GRC
                Dump in BB.

    Introduced: Day 1.

    Relevance:  Debug Tools.

 2. Problem:    When final-cleanup sent on inactive function FW may send delete
                on wrong function.

    Change:     (FW) Verify activity of function before sending delete flow.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    Firmware assertion may happen during iWARP traffic that involves
                RDMA_READ/SENDs.

    Change:     (FW iWARP) Fix RQ handling flow.

    Introduced: Day 1.

    Relevance:  iWARP.

 4. Problem:    Closing RDMA function and opening it again without unloading the
                PF might cause memory access violation when accessing MRs.

    Change:     (FW RDMA) Fix MR registration flow.

    Introduced: Day 1.

    Relevance:  RDMA.

 5. Problem:    CQ88872 - FW assertion while running Tx traffic.

    Change:     (FW iSCSI) Fix the iSCSI RT flow.

    Introduced: FW 8.14.0.0.

    Relevance:  iSCSI.

 6. Problem:    Can’t open more than one QP simultaneously, and can’t post
                buffers prior to rdma_connect.

    Change:     (FW iWARP) Implement a new scheme of separating between tcp
                connection establishment cid and Iwarp QP cid. A.k.a. cid
                migration.

    Introduced: Day 1.

    Relevance:  iWARP.

 7. Problem:    Dcbx update flag is being sent incorrectly to the FW.

    Change:     The flag is incorrectly converted to boolean before assigning
                it to ramrod data, fix this typecasting.

    Introduced: Day 1.

    Relevance:  dscp.

Enhancements:
-------------
 1. Request:    CQ86754 - Add support for VF mac hints from PF.

 2. Request:    Add API send_drv_state() to send driver enabled state to MFW.

 3. Request:    Pass maximal number of MAC filters to qede.

 4. Request:    Update qed_hw_init() to send storm firmware version to MFW.

 5. Request:    Send driver state as DISABLED to MFW as part of qed_hw_init(),
                and, as UNLOADED as part of qed_hw_remove(). Now it's the
                qed client's responsibility to set the driver state as ACTIVE/
                DISABLED depending on whether the driver is operational or not.

 6. Request:    qed_mcp_ov_update_current_config() was sending incorrect value
                for MFW parameter field.

 7. Request:    Remove attribute field from update_current_config() API, MFW
                need to know only the last entity who configured the device.

Version 8.14.3.0 (Sep 07, 2016)
===============================
Internal FW 8.14.6.0

Fixes:
------
 1. Problem:    CQ88392 E4 4x25G: System hits an assert on running RoCE traffic.

    Change:     Read the error flag before releasing the memory.

    Introduced: 8.14.0.0.

    Relevance:  RoCE.

 2. Problem:    expStatSN validation error after receiving Reject PDU.

    Change:     (FW iSCSI) Advance expStatSN for incoming REJECT PDU.

    Introduced: Day 1.

    Relevance:  iSCSI Initiator.

 3. Problem:    Setting final bit for TEXT Request PDU even if continue bit is
                set.

    Change:     (FW iSCSI) Fix TEXT Request transmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI Initiator.

 4. Problem:    Not advancing statSN after sending REJECT, ASYNC and TMF
                Response PDUs.

    Change:     (FW iSCSI) Fix the Tx flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

 5. Problem:    Setting final bit for TEXT Response PDU even if continue bit is
                set.

    Change:     (FW iSCSI) Fix TEXT Response transmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

 6. Problem:    Overwriting statSN field while retransmitting SCSI Response,
                TEXT Response, LOGIN Response, LOGOUT Response, TMF Response,
                ASYNC and REJECT PDUs.

    Change:     (FW iSCSI) Fix TX retransmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI Target.

 7. Problem:    "Got a non-regular LB LL2 completion" might appear
                [and possibly assert] in iscsi scenarios.

    Change:     Correct logic handling an Rx queue flush for OOO.

    Introduced: 8.14.0.0.

    Relevance:  iSCSI OOO.

 8. Problem:    TM block attention when configuring iWARP with a large number
                of supported ethernet connections.

    Change:     TM ILT memory was not computed properly.

    Introduced: day 1.

    Relevance:  iWARP.

 9. Problem:    Receiving a SYN packet on an already open connection was not
                detected properly.

    Change:     Fixed compare code.

    Introduced: day 1.

    Relevance:  iWARP.

Enhancements:
-------------
 1. Request:    Improve Tx-switched performance by utilizing the FW provided
                feature of same_as_last_id.

Version 8.14.2.0 (Aug 25, 2016)
===============================
Internal FW 8.14.4.0

Fixes:
------
 1. Problem:    CQ88564 - duplicate iSCSI app TLV when setting iSCSI
                QoS Policy in DCBX IEEE mode.

    Change:     CEE selection field must be set regardless CEE/IEEE mode.

    Introduced: 8.10.6.0.

    Relevance:  DCBX.

 2. Problem:    Malicious VF can cause crash due to out-of-bound access in HV
                by using a too-high index when starting an Rx queue.

    Change:     Validate queue index before accessing queue array.

    Introduced: Day 1.

    Relevance:  SRIOV.

 3. Problem:    Segmentation fault on RDMA stop if SRQ is not initialized.

    Change:     Free the SRQ bitmap only if it was allocated.

    Introduced: 8.14.1.0.

    Relevance:  RoCE.

 4. Problem:    VF acquisition fails over a legacy PF.

    Change:     Correct logic handling rejections by legacy PF.

    Introduced: 8.14.0.0.

    Relevance:  SRIOV.

 5. Problem:    Malicious VF removal will cause a FW assertion.

    Change:     PF to start rejecting malicious VF requests.

    Introduced: Day 1.

    Relevance:  SRIOV.

 6. Problem:    If a regular ramrod received while processing a consolidated
                ramrod, the regular ramrod might not be processed.
                Multiple outstanding consolidated ramrods might not be
                processed.

    Change:     (FW) Fix common ramrod flow.

    Introduced: Day 1.

    Relevance:  iSCSI, FCoE, iWARP.

 7. Problem:    When tx offload requests are passed on BD,'no snooping' mode
                might be set which may result in connections failing to
                establish.

    Change:     (FW) Fix load Tx bd flow.

    Introduced: FW 8.14.0.0.

    Relevance:  RoCE, iWARP, iSCSI, FCoE.

 8. Problem:    CQ87192 - AH NWM parity attention.

    Change:     (FW) Masked parities 0,1,6,7 in NWM_REG_PRTY_MASK_H_2 as a
                temporary workaround.

    Introduced: Day 1.

    Relevance:  All.

 9. Problem:    AH PCIE debug bus sampling rate is two clock cycles instead of
                one cycle.

    Change:     (FW) Configured PCIE_REG_DBG_SAMPLING_INTERVAL to 0 instead of
                1.

    Introduced: Day 1.

    Relevance:  Debug Tools.

10. Problem:    DBU_REG_RXDATA contains invalid values in AH GRC Dump (due to
                a HW bug).

    Change:     (FW) Excluded DBU_REG_RXDATA from GRC Dump in AH.

    Introduced: Day 1.

    Relevance:  Debug Tools.

11. Problem:    In multiple retransmissions scenario with RDMA reads an RDMA
                read request might be retransmitted from more than max ORD
                backwards (a request that was already responded).

    Change:     (FW RoCE) Fix retransmission flow.

    Introduced: Day 1.

    Relevance:  RoCE.

12. Problem:    T10 DIF RDMA Write errors reported in all IOs of the TID after
                detection.

    Change:     (FW RoCE) Clear detected errors at end of Invalidate flow.

    Introduced: Day 1.

    Relevance:  RoCE.

13. Problem:    Outbound T10 DIF without runt, following inbound T10 DIF with
                runt causes false runt error report.

    Change:     (FW RoCE) Properly clear runt valid flags between operations.

    Introduced: Day 1.

    Relevance:  RoCE.

14. Problem:    FW Did not report malicious_vf_error_id for anti-spoofing checks
                failures.

    Change:     (FW) FW Reports malicious_vf_error_id: ETH_ANTI_SPOOFING_ERR
                upon anti-spoofing failure.

    Introduced: Day 1.

    Relevance:  ETH.

15. Problem:    CQ88677 - Rhel6.8 VM OS is not coming up after installing
                drivers.

    Change:     DCBX config is not supported on VFs, fail the DCBX query for
                VF interfaces.

    Introduced: 8.10.0.0.

    Relevance:  DCBX.

Enhancements:
-------------
 1. Request:    Add qed_iov_is_vf_started() api.

 2. Request:    qed_sp_vport_start_params have several new b_err_* values
                that when set cause FW to be harsher toward egress errors -
                default is to silently drop, if set would turn VF into
                malicious state, or for a PF cause an assertion.

 3. Request:    (FW) Add T/RDIF_REG_DEBUG_ERROR_INFO memories to GRC Dump.

 4. Request:    Add aRFS support (IPv4/TCP).

 5. Request:    Change default rx-coalesce to 12 micro seconds.

Version 8.14.1.0 (Aug 14, 2016)
===============================
Internal FW 8.14.3.0

Fixes:
------
 1. Problem:    Dcbx config bit-fields are not cleared before updating with the
                user provided value.

    Change:     Clear the bit-field before updating it with new value.

    Introduced: Day 1.

    Relevance:  RoCE.

 2. Problem:    CQ86528 - Incorrect parsing of packet with unsupported
                GRE/GENEVE version.

    Change:     (FW L2) Apply FW workaround in Rx flow.

    Introduced: Day 1.

    Relevance:  GRE, GENEVE.

 3. Problem:    Initiator mode write exchange with T10 DIF may produce corrupt
                payload.

    Change:     (FW iSCSI) Propagate T10 DIF attributes to Tx flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 4. Problem:    CQ88494 - RoCE throughput inconsistent when traffic is run on F0
                and F2 (functions sharing same HW engine).

    Change:     Fix Queue Zone allocation.

    Introduced: 8.10.2.0.

    Relevance:  RoCE w/ more than one function per engine.

Enhancements:
-------------
 1. Request:    Separate index to keep cid and Qzone id to support multi COS.

 2. Request:    Remove unused parameter of loopback indication from RoCE API.

 3. Request:    Add two APIs to configure A-RFS mode and A-RFS ntuple filter.

 4. Request:    Add qed API for getting the MFW crash dump info.

 5. Request:    Check that qed RoCE bitmaps are clear before freeing them.

 6. Request:    (FW iSCSI) Improve iSCSI IOPS performance with DIF enabled.

 7. Request:    (FW) Support AH ASIC.

 8. Request:    Add support for iWARP (phase-1).

 9. Request:    Add support for external PHY BCM8485x.

Version 8.14.0.0 (Jul 31, 2016)
===============================
Internal FW 8.14.1.0

Fixes:
------
 1. Problem:    CQ78224/CQ82403 - ethtool display doesn't capture higher speeds
                such as 25G/50G/100G.

    Change:     Define/use qed specific link capabilities.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    Compilation warn: ‘qed_ll2_alloc_if’ defined but not used".

    Change:     Add inline to empty implementation.

    Introduced: Day 1.

    Relevance:  L2-only flavor.

 3. Problem:    RDMA interrupt not being received from FW. This happened because
                the interrupt arming doorbell was ignored by the HW.

    Change:     Allocate a number of CIDs that is aligned to 16 (while not
                dropping the alignment to ILT page), which is the HW Doorbell
                Queue units when specifying the maximum Doorbell Queue number.

    Introduced: Day 1.

    Relevance:  RoCE.

 4. Problem:    CQ86624 - RoCE and ping traffic stops while running stress+
                longrun testing and seeing pglue errors is still seen despite
                fix from 8.10.6.0.

    Change:     (Init Tool) Fix ordering bug in init tool.

    Introduced: Day 1.

    Relevance:  Roce.

 5. Problem:    CQ87398 - VF VLAN creation throws error in linux rhel6.8.

    Change:     Allow VLAN stripping request from VF for linux as well.

    Introduced: Day 1.

    Relevance:  SRIOV under rhel6.x.

 6. Problem:    iWARP pure Syn LB packets not identified.

    Change:     (FW iWARP) Correct value is checked for tcp syn packets.

    Introduced: FW 8.10.7.0.

    Relevance:  iWARP.

 7. Problem:    CQ87377 - Malicious VFs can send pause frames.

    Change:     Configure FW to drop VF flow control packets according to MAC.

    Introduced: Day 1.

    Relevance:  SRIOV.

 8. Problem:    Memory leaks in a few qed RoCE error flows.

    Change:     Release the allocated memory even before exiting the functions.

    Introduced: Day 1.

    Relevance:  RoCE.

 9. Problem:    Ethtype value is being read incorrectly in ieee-dcbx mode.

    Change:     Use the ieee specific mask value for reading the ethtype value
                in ieee-dcbx mode.

    Introduced: Day 1.

    Relevance:  Dcbx.

10. Problem:    Endian-ness conversion is being applied incorrectly for dcbx
                pri_to_tc field while reading/writing.

    Change:     Do not apply the conversion for pri_to_tc value.

    Introduced: Day 1.

    Relevance:  Dcbx.

11. Problem:    Transmission stop in case of large IOs with DIF.

    Change:     (FW iSCSI) Fix the FW DIF flow.

    Introduced: FW 8.10.8.0.

    Relevance:  iSCSI.

12. Problem:    HW attention during retransmit.

    Change:     (FW Storage) Change the FW init.

    Introduced: FW 8.10.8.0.

    Relevance:  iSCSI, FCoE.

13. Problem:    Pure TCP Syn packets not received correctly when function
                personality is Eth or iWARP.

    Change:     (FW iWARP) Fix the Eth FW.

    Introduced: FW 8.10.7.0.

    Relevance:  iWARP.

14. Problem:    Login-request PDU is always transmitted with T(Transit) bit set.

    Change:     (FW iSCSI) Set 'T' bit according to initialized value.

    Introduced: Day 1.

    Relevance:  iSCSI.

15. Problem:    CQ87318 - FW assertion during re-transmit.

    Change:     (FW iSCSI) Fix the iSCSI RT flow.

    Introduced: FW 8.10.7.50.

    Relevance:  iSCSI.

16. Problem:    WQE with Fence indicator might result with "Local QP Operation"
                error completion.

    Change:     (FW RoCE) Fix the RoCE Requester flow.

    Introduced: Day 1.

    Relevance:  RoCE.

17. Problem:    PF asserts on second [incorrect] ACQUIRE request from VF.

    Change:     Deny ACQUIRE requests from already acquired VFs.

    Introduced: 8.10.4.0.

    Relevance:  SRIOV.

Enhancements:
-------------
 1. Request:    Initiate PF FLR as part of driver load.

 2. Request:    Avoid forcing the driver's default resource allocation in case
                of a diff with the MFW's allocation values.

 3. Request:    Remove PF MR configuration but allocate as many RoCE MRs as
                possible.

 4. Request:    Allow backward compatibility with PF/VF from 8.7 and 8.8
                releases. New VF over old PF might require datapath changes.

 5. Request:    (FW RoCE) Improving RoCE 'Destroy QP' verb duration.

 6. Request:    Add two APIs to configure A-RFS mode and A-RFS ntuple filter.

Version 8.10.7.0 (Jul 10, 2016)
===============================
Internal FW 8.10.8.0

Fixes:
------
 1. Problem:    DCB App count doesn't get updated when adding new APP entry.

    Change:     Update the count while adding the new App entry.

    Introduced: Day 1.

    Relevance:  Dcbx.

 2. Problem:    Dcbx ieee selector-field value is not populated in the case of
                qed interacting with old MFW.

    Change:     Populate the value.

    Introduced: Day 1.

    Relevance:  Dcbx.

 3. Problem:    MTU Violation (compared with Transmitted Packet Size) was not
                checked for LSO packets.

    Change:     (FW L2) MTU Violation (compared with Transmitted Packet Size) is
                now checked for LSO packets as well.

    Introduced: Day 1.

    Relevance:  L2.

 4. Problem:    T10 DIF RDMA Write retransmission reports AppTag failures when
                retransmitting from middle of IO.

    Change:     (FW RoCE) Correct AppTag calculation in retransmission flow.

    Introduced: FW 8.10.5.0.

    Relevance:  RoCE.

 5. Problem:    T10 DIF RDMA Write retransmission reports RefTag failures when
                retransmitting from start of IO.

    Change:     (FW RoCE) Correct RefTag offset calculation in retransmission
                flow.

    Introduced: FW 8.10.7.0.

    Relevance:  RoCE.

 6. Problem:    FW Fatal assert might occur when doing destroy QP after modify
                QP.

    Change:     (FW RoCE) Remove code responsible for this FW fatal assert.

    Introduced: Day 1.

    Relevance:  RoCE.

 7. Problem:    Doing RoCE start driver during L2 traffic is getting stuck due
                to ramrod failure.

    Change:     (FW RoCE) Fix FW flow.

    Introduced: FW 8.10.0.0.

    Relevance:  RoCE.

 8. Problem:    CQE with RDMA_CQE_RESP_STS_LOCAL_ACCESS_ERR is received when
                using RQ sge with 'reserved key'.

    Change:     (FW RoCE) Fix FW flow.

    Introduced: FW 8.10.4.0.

    Relevance:  RoCE.

 9. Problem:    Termination ramrod of multiple CIDs stuck.

    Change:     (FW Storage) Fix the iSCSI/FCoE consolidation queue flow.

    Introduced: Day 1.

    Relevance:  Storage.

10. Problem:    Wrong iSCSI statistics ram pointer.

    Change:     (FW iSCSI) Fix the ram pointer value.

    Introduced: Day 1.

    Relevance:  iSCSI.

11. Problem:    CQ87065/CQ86013/CQ86522 - HW bug causing HW attention.

    Change:     (FW iSCSI) Apply FW workaround to Rx placement flow (MU ldr
                command per SGE).

    Introduced: Day 1.

    Relevance:  iSCSI.

12. Problem:    CQ87014 - FW may report incorrect RSP flags to the driver as
                part of CQE.

    Change:     (FW FCoE) Fix the RSP handling flow.

    Introduced: FW 8.10.7.0.

    Relevance:  FCoE.

13. Problem:    CQ87399 E4-RoCE: RoCE traffic failed over PFC configuration.

    Change:     Configure the correct TC to the PF.

    Introduced: 8.10.6.0.

    Relevance:  Dcbx.

Enhancements:
-------------
 1. Request:    Add dcbnl app support for IEEE selector Field.

 2. Request:    Add the NIG registers configuration for PTP in AH.

 3. Request:    Fix the calculation of the MFW port number in AH.

 4. Request:    Populate the dscp related info in the dcbx ramrod data.

 5. Request:    Add new OSAL - OSAL_WARN().

 6. Request:    Moved the roce_flavor parameter from
                qed_ll2_acquire_connection() to qed_ll2_prepare_tx_packet().

 7. Request:    Add support for a destination MAC address update ramrod for
                an iSCSI offloaded connection.

Version 8.10.6.0 (Jun 27, 2016)
===============================
Internal FW 8.10.7.0

Fixes:
------
 1. Problem:    CQ85839 - iSCSI installation fails due to missing firmware.

    Change:     Try loading binary FW from /lib/firmware as well.

    Introduced: Day 1.

    Relevance:  SAN installation.

 2. Problem:    Qed sets NIG_REG_DSCP_TO_TC_MAP_ENABLE register even when the
                dscp mapping is not written to the shared memory.

    Change:     Set the register only when user configures the dscp mapping.

    Introduced: Day 1.

    Relevance:  Dcbx.

 3. Problem:    CQ87007 - E4 RoCE: latest component broken PFC with RoCEv2.

    Change:     Use the new config path/fields defined by the FW for RoCEv2
                protocol data.

    Introduced: Day 1.

    Relevance:  RoCE.

 4. Problem:    CQ86902 - SW workaround for CFC VF weak & strong enable.
                CQ86624 - RoCE and ping traffic stops while running stress+
                          longrun testing and seeing pglue errors.

    Change:     Initialize weak enable to 0 on top of existing configuration
                of strong enable to 1. The fix for these issues is composed
                of this initialization together with an init tool change to
                zero ILT on engine phase.

    Introduced: Day 1.

    Relevance:  Roce.

 5. Problem:    The MR (TID) registration function returned to the user before
                the registration was complete in the FW (the ramrod was sent
                in a non-blocking manner so the verb consumer was informed of
                success before a completion was received from the FW).

    Change:     Removed the possibility for non-blocking a.k.a. concurrent
                registration of TID registration. The latency issue that started
                this effort to begin with was mitigated by lowering the ramrod
                completion wait time in qed SPQ.

    Introduced: 8.7.0.0.

    Relevance:  Verbs consumers that register MRs.

 6. Problem:    Qed nvram test implementation has memory leak in error flow.

    Change:     Fix the memory leak.

    Introduced: Day 1.

    Relevance:  Selftests.

 7. Problem:    SFP read and write can't exceed 16 bytes.

    Change:     Zero the size and offset parameters before setting them.

    Introduced: Day 1.

    Relevance:  all.

Enhancements:
-------------
 1. Request:    Added the roce_mode parameter to qed LL2 to configure if LL2
                RoCE mode to RoCE v1/v2 IPv4/6.

 2. Request:    Add support for multiple classes of service.

 3. Request:    Enable tunnel HW GRO TPA aggregation.

 4. Request:    Semantic changes in several qed Rx and Tx APIs.

 5. Request:    Clear appropriate indirect registers for arrowhead.

 6. Request:    Add dcbx app support for IEEE Selection Field.

Version 8.10.5.0 (Jun 09, 2016)
===============================
Internal FW 8.10.7.0

Fixes:
------
 1. Problem:    CQ86777 - latest driver broken VF stop functionality.

    Change:     Fixed flow in case VF is released without being acquired and
                FLR before release.

    Introduced: 8.10.4.0.

    Relevance:  SRIOV.

 2. Problem:    CQ86809 - incorrect handling of VF mail box mutex.

    Change:     Moved VF mail box mutex release to after handling the reply
                message instead of after sending the message to the PF.

    Introduced: 8.10.4.0.

    Relevance:  SRIOV.

 3. Problem:    CQ86842 - FW assertion is hit when VFs are malfunctioning.

    Change:     Prevent vport-update on PF if the VF's vport wasn't started.

    Introduced: Day 1.

    Relevance:  SRIOV.

 4. Problem:    CQ86922 - FW assertion is hit after re-load of driver in VM.

    Change:     Close VF in firmware when the VF is being released.

    Introduced: 8.10.4.0.

    Relevance:  SRIOV.

 5. Problem:    CQ86541 - A HW bug that sometimes causes CFC-delete to succeed
                before write-backs are complete, which can result in memory
                corruption on host.

    Change:     (FW) Apply FW workaround.

    Introduced: Day 1.

    Relevance:  All.

 6. Problem:    Tx-Switched packet may be sent to a wrong destination after FLR,
                filter update or Vport up/down.

    Change:     (FW L2) Fixed Tx-Switching cache clean FW flow.

    Introduced: Day 1.

    Relevance:  Tx Switching.

 7. Problem:    DCQCN RP timeout not update.

    Change:     (FW RoCE) Fix firmware configuration flow.

    Introduced: FW 8.10.0.0.

    Relevance:  DCQCN.

 8. Problem:    T10 DIF RDMA Write calculates wrong expected CRC value in DIF
                Tag.

    Change:     (FW RoCE) Correct CRC machine initialization code.

    Introduced: FW 8.10.5.0.

    Relevance:  T10 DIF RDMA.

 9. Problem:    T10 DIF RDMA Write expected Runt value not verified against
                calculated value.

    Change:     (FW RoCE) Correct firmware flow to verify Runt result and report
                errors.

    Introduced: FW 8.10.5.0.

    Relevance:  T10 DIF RDMA.

10. Problem:    T10 DIF RDMA Read flow asserts.

    Change:     (FW RoCE) Correct CRC machine initialization code.

    Introduced: FW 8.10.5.0.

    Relevance:  T10 DIF RDMA.

11. Problem:    T10 DIF RDMA Write error result reported only on first IO.

    Change:     (FW RoCE) Clear queued indication after first error result
                handler.

    Introduced: FW 8.10.5.0.

    Relevance:  T10 DIF RDMA.

12. Problem:    T10 DIF RDMA Write expected runt CRC checked in reverse
                endianity.

    Change:     (FW RoCE) Reverse endianity when verifying expected runt result
                in firmware.

    Introduced: FW 8.10.5.0.

    Relevance:  T10 DIF RDMA.

13. Problem:    T10 DIF RDMA Read Runt CRC value written to host in reverse
                endianity.

    Change:     (FW RoCE) Swap bytes in firmware before writing to host.

    Introduced: FW 8.10.5.0.

    Relevance:  T10 DIF RDMA.

Enhancements:
-------------
 1. Request:    Add support for the MFW crash dump.

 2. Request:    Use the MFW mailbox for getting resource allocation information.

 3. Request:    Improve the way a blocked context waits for a ramrod to be
                completed.

 4. Request:    (FW RoCE) Change RoCE retransmission flow to start from middle
                of retransmitted WQE (to help in interoperability).

 5. Request:    (FW RoCE) Add IP DSCP field setting from DCB per-port database.

 6. Request:    (FW RoCE) Add VLAN priority setting from DCB per-port database
                for RROCE.

Version 8.10.4.0 (May 26, 2016)
===============================
Internal FW 8.10.5.0

Fixes:
------
 1. Problem:    "Cannot find power management capability" appear in logs.

    Change:     Allow VF to gracefully manage without PM in pci config space.

    Introduced: Day 1.

    Relevance:  SRIOV.

 2. Problem:    The FCoE discovery process fails.

    Change:     Add a DUALMODE configuration in the LLH.

    Introduced: 8.10.3.0.

    Relevance:  FCoE.

 3. Problem:    Memory corruption when allocating dynamic ilt task.

    Change:     Fixed the task initialization.

    Introduced: 8.10.3.0.

    Relevance:  RoCE.

 4. Problem:    PF allows VF to probe even when requiring too many resources.

    Change:     Correct resource-agreement flow in VF acquisition message.

    Introduced: Day 1.

    Relevance:  SRIOV.

 5. Problem:    VF can exhaust all unicast MAC filters in HW, preventing PF
                traffic.

    Change:     PF enforces MAC limitation on VFs.

    Introduced: Day 1.

    Relevance:  SRIOV.

 6. Problem:    VF requesting to initialize unallocated queues can hang device.

    Change:     PF to validate queue indices passed by VF before usage.

    Introduced: Day 1.

    Relevance:  SRIOV.

Enhancements:
-------------
 1. Request:    Add support for AH nvm cfg.

 2. Request:    Add support for dcbx static mode.

 3. Request:    Allow 'tx_switching' module parameter to affect VFs as well.

 4. Request:    Add nvm_get_image() API for reading iscsi/fcoe nvram cfgs.

 5. Request:    Remove qed LL2 API to update MAC address.

 6. Request:    Add new image type for MFW AH bundle: NVM_TYPE_ETH_PHY_FW1
                and NVM_TYPE_ETH_PHY_FW2.

 7. Request:    Add support for reading AH statistics.

 8. Request:    Add new OSAL - OSAL_SNPRINTF.

 9. Request:    Extend compatibility between PF/VF drivers - no longer do they
                need a matching storm FW version, but rather a matching
                fastpath Major number [which should rarely change].

10. Request:    Added 'qed_mcp_get_nvm_image()' API for reading an nvram img.

11. Request:    Add support for dscp-map query/config.

12. Request:    Differ BDQ resource ID for FCOe and iSCSI [BB only].

13. Request:    Enable the dscp-to-tc map bit when operational mib is received.

Version 8.10.3.0 (May 09, 2016)
===============================
Internal FW 8.10.5.0

Fixes:
------
 1. Problem:    CQ86411 - E4:100G:getting Ramrod stuck while loading qede
                driver in MSI mode.

    Change:     Fail the driver load for 100G adapters if MSI mode is requested.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    SRIOV is not functional - ping on VF fails.

    Change:     Correct the offset for producer update in RX queue start
                response to the VF.

    Introduced: 8.10.2.0.

    Relevance:  SRIOV.

 3. Problem:    Register/clock selftests are failing for 100G adapters.

    Change:     Use the correct ptt for a given hwfn.

    Introduced: Day 1.

    Relevance:  selftests.

 4. Problem:    When resizing a CQ the CQ bitmap is changed without lock.

    Change:     Add lock.

    Introduced: 8.10.2.0.

    Relevance:  RoCE.

 5. Problem:    Some hardware don't support atomic bit operations.

    Change:     change name of OSAL_ATOMIC_TEST_AND_FLIP to OSAL_TEST_AND_FLIP.
                note that it is harmless for the implementation to remain
                atomic.

    Introduced: 8.10.2.0.

    Relevance:  RoCE.

 6. Problem:    CQ86300- Retaining the old mac after removal and creation of VF.

    Change:     Clear the forced MAC while disabling VF.

    Introduced: Day 1.

    Relevance:  SRIOV.

 7. Problem:    CQ86133 - Upgrading FW hogs CPU for long period of time.

    Change:     Add short sleeps while reading-from/writing-to the nvram.

    Introduced: Day 1.

    Relevance:  Voluntary-preemption schemes.

 8. Problem:    RoCE app PFC config gets overridden with the default app config.

    Change:     If RoCE-V2 TLV is not detected, use RoCE app data for RoCE-v2.

    Introduced: 8.10.2.0.

    Relevance:  RoCE.

 9. Problem:    CQ86213 - FW assertion while re-connecting.

    Change:     (FW iSCSI) Fix the TCP params initialization.

    Introduced: Day 1.

    Relevance:  iSCSI.

10. Problem:    CQ85263 - FW assertion while doing host reset with iscsi + L2.

    Change:     (FW iSCSI) Fix a thread-id bug.

    Introduced: Day 1.

    Relevance:  iSCSI.

11. Problem:    CQ86155 - Incorret data digest may be transmitted for PDUs with
                size > 12KB.

    Change:     (FW iSCSI) Fix retransmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

Enhancements:
-------------
 1. Request:    Add suppport for dcbnl getapp/setapp features.

 2. Request:    Add chain print support to debugfs.

 3. Request:    Allowing link changes for MF.

 4. Request:    RoCE shared receive queue support.

 5. Request:    Fix minor issues in dcbx set-app implementation.

 6. Request:    Added handlers for "Dual Stage Classification".

 7. Request:    Added chain print API.

 8. Request:    DIF support.

 9. Request:    Support Binary debug tools.

Version 8.10.2.0 (Apr 19, 2016)
===============================
Internal FW 8.10.4.0

Fixes:
------
 1. Problem:    Driver limits the max coalescing value to be 255.

    Change:     The fix is that we’ve used to configure half the requested
                coalescing value.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ86198 - "ethtool -d" crashes the server.

    Change:     Fix the error flow of the debug data collection.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ85618 - NPAR Max/Min Bandwidth settings are not honoured.

    Change:     Workaround - saving qm rate limiter values before reinitialize
                it due to dcbx update.

    Introduced: Day 1.

    Relevance:  NPAR, DCBX.

 4. Problem:    CQ83753 - TX switch treats LSO traffic with outband VLAN wrong.

    Change:     (FW L2) Update tag before TX switch on all LSO flows.

    Introduced: FW 8.1.2.0.

    Relevance:  SRIOV.

 5. Problem:    CQ85054, CQ85371, CQ85298 – Chip might hang when receiving a
                RoCE packet with invalid destination QP (can be caused by mac
                CRC errors).

    Change:     (FW RoCE) Disregard the packet with invalid destination QP.

    Introduced: Day 1.

    Relevance:  RoCE.

 6. Problem:    CQ85528 - HW attention when ABTS request arrives to Initiator.

    Change:     (FW FCoE) Fix the unsolicited FW flow (ABTS request from Target
                should be handled by Initiator as unsolicited packet).

    Introduced: FW 8.10.0.0.

    Relevance:  FCoE.

 7. Problem:    CQ85384 - SRIOV over NPAR - ramrod stuck when linux VM
                with pvid set is powered off/on.

    Change:     In case of when PVID is configured, if we do VM power off and
                power on, qed sends ETH_RAMROD_RX_QUEUE_UPDATE ramrod without
                ETH_RAMROD_RX_QUEUE_START because ‘rxq_active’ flag is not
                cleared during FLR and qed checks for the same. Clear this
                flag as part of FLR cleanup.

    Introduced: Day 1.

    Relevance:  SRIOV along with PVID.

 8. Problem:    CQ85553 - the QM lock is not initialized for the non-first
                loaded monolithic driver.

    Change:     Move the QM lock initialization to a common location.

    Introduced: 8.10.0.0.

    Relevance:  All.

 9. Problem:    Ringing a LL2 Tx doorbell might happen before its BDs data is
                updated.

    Change:     Add a missing write barrier before the doorbell.

    Introduced: Day 1.

    Relevance:  LL2.

10. Problem:    CQ85899 - Wrong calculation of the resources start indices when
                hiding the non-last functions on the engine.

    Change:     Use the PF index within the enabled functions.

    Introduced: 8.7.6.0.

    Relevance:  All.

11. Problem:    Number of EQ elements is smaller than it should be for RoCE
                personality.

    Change:     Fix the calculation of number of EQ elements.

    Introduced: 8.10.0.0.

    Relevance:  RoCE.

12. Problem:    Anti spoofing does not work for tunneled packets.

    Change:     (FW L2) Added tunneling logic to anti-spoofing feature.

    Introduced: FW 8.2.1.0.

    Relevance:  SRIOV.

13. Problem:    Unmatched unicast traffic may be classified to a wrong PF when
                the same MACs are used for both ports.

    Change:     (FW L2) Fix HW init values.

    Introduced: Day 1.

    Relevance:  NPAR 4 port mode.

14. Problem:    TX TCP window doesn't advance.

    Change:     (FW iSCSI) Initialize the snd_wl1 parameter.

    Introduced: FW 8.10.3.0.

    Relevance:  iSCSI.

15. Problem:    Chip may stall when retransmitting large (>64K) SlowIOs.

    Change:     (FW iSCSI) Fix SlowIO scan flow.

    Introduced: FW 8.5.1.0.

    Relevance:  iSCSI.

16. Problem:    Connection might (in low probability) stop giving SQ completions
                in a scenario with packet loss.

    Change:     (FW RoCE) Fix firmware retransmission flow..

    Introduced: Day 1.

    Relevance:  RoCE.

17. Problem:    Page fault occured during hw initialization phase.

    Change:     Fixed initialization of internal driver structures under iSCSI
                personality.

    Introduced: 8.10.1.0.

    Relevance:  iSCSI personality.

18. Problem:    The EQ size is too small in case of iSCSI personality.

    Change:     Fix the EQ size calculation.

    Introduced: Day 1.

    Relevance:  iSCSI.

19. Problem:    QP counters were showing double the number of QP.

    Change:     Fixed calculation of QP Counters.

    Introduced: Day 1.

    Relevance:  RoCE.

20. Problem:    Tx-switched traffic rate is limited by physical line speed.

    Change:     If no rate-limiters are needed, use maximum possible speed.

    Introduced: Day 1.

    Relevance:  Tx-switching.

21. Problem:    Printing results of a clean idle check mistakenly fails.

    Change:     (FW) Fix the parsing flow.

    Introduced: Day 1.

    Relevance:  Idle check.

Enhancements:
-------------
 1. Request:    Add suppport for dcbnl setter APIs.

 2. Request:    Add support to gather GPIO information.

 3. Request:    Add support dcbnl callbacks such as ieee, dcbx mode, app etc.

 4. Request:    Fix dcbnl related build issues on UBUNTU 11.4.

 5. Request:    Add dcqcn module parameters to control dcqcn related values.

 6. Request:    (FW L2) Add tunnel statistics per PF statistics.

 7. Request:    Add support for iSCSI/TCP connection offload for type 2.

 8. Request:    Remove support for the obsolete iSCSI/FCoE RQ mechanism.

 9. Request:    Add qed API/support for dcbx configuration.

10. Request:    Add support to gather ECC statistics.

11. Request:    Add common API for LLH protocol filtering.

12. Request:    Modify LL2 API to allow flexibility in OOO RX buffer allocation.

13. Request:    (FW iWARP) Initial support for iWARP.

14. Request:    Printouts reflecting OOO RX events are added.

15. Request:    Printouts reflecting iSCSI offload/terminate events are added.

16. Request:    Refactored implementation of RoCE bitmaps with new bitmap APIs.

17. Request:    Add support for 100g VFs.

18. Request:    Add support for handling RoCE version-2 type TLVs.

Version 8.10.1.0 (Mar 15, 2016)
===============================
Internal FW 8.10.2.0

Fixes:
------
 1. Problem:    Dynamic ILT allocation is not protected when being run from
                different contexts, and it updates a wide-bus register with
                separate 32-bit accesses.

    Change:     Lock the allocation flow and change the wide-bus access into
                a DMAE transaction.

    Introduced: Day 1.

    Relevance:  RoCE.

 2. Problem:    Read/Write to grc may fail after resuming from low power state.

    Change:     Invalidating the grc ptts when entering low power state.

    Introduced: Day 1.

    Relevance:  ALL.

 3. Problem:    Phy mac_stat doesn't show the correct port statistics.

    Change:     Fixed function to use the port input correctly.

    Introduced: 8.7.1.0.

    Relevance:  ALL.

 4. Problem:    CQ85037 – FW assert during the transmit of ASYNC and REJECT
                PDUs.

    Change:     (FW iSCSI) Add support for ASYNC and REJECT PDUs.

    Introduced: Day 1.

    Relevance:  iSCSI.

 5. Problem:    CQ85012 - Cleanup for task timed out after clearSQ in middle of
                R2TE processing.

    Change:     (FW iSCSI) Continue processing the R2TE.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    CQ85012 - Login exchange cleanup & clear SQ fix.

    Change:     (FW iSCSI) Fix the login exchange cleanup & clear SQ.

    Introduced: Day 1.

    Relevance:  iSCSI.

 7. Problem:    CQ85072 - E4:RoCE:while running multiple sessions(200/500/1000)
                system crashes or getting assertions/ramrod stuck.

    Change:     Avoid weak ordering writes when the doorbells BAR is mapped as
                write combining with the proper write barriers.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add BDQ_RQ information in dev_info for storage protocols.

 2. Request:    Add suppport for dcbnl getter APIs.

 3. Request:    Add a printout of textual debug features while being obtained.

 4. Request:    Save a debug data in an internal buffer in case of a HW error.

 5. Request:    Remove the cee-dcbnl support for pre-3.0, pre-rhel6.2 kernels.

 6. Request:    Moved RoCE related module parameters from qede to qed:
                num_roce_qps, min_roce_dpis, roce_edpm.

 7. Request:    Added qed RoCE API that returns the number and maximum number
                of: PDs, CQs, QPs, TIDs and DPIs.

 8. Request:    Populate the priority/bandwidth tables (to be used by clients).

 9. Request:    (FW L2) Added TX switch statistics per PF - counts mcast, bcast
                and ucast bytes and packets both on TX and RX path.

10. Request:    Remove ftrace support from driver.

11. Request:    Add support for enabling dcqcn in RoCE.

12. Request:    Add support for RDMA Queue Statistics.

Version 8.10.0.0 (Feb 23, 2016)
===============================
Internal FW 8.10.1.0

Fixes:
------
 1. Problem:    CQ77033 - E4: Diagnostic tests not support with linux qede
                driver from ethtool interface.

    Change:     Add qed support to configure link loopback mode.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    Driver fails to load from initramfs due to lack of FW file.

    Change:     Mark driver as using FW so it would be included in initramfs.

    Introduced: 8.3.2.0.

    Relevance:  All.

 3. Problem:    Max amount of cqs is not initialized.

    Change:     Return intialization of max number of completion queues which
                was dropped by mistake.

    Introduced: 8.7.8.0.

    Relevance:  RoCE.

 4. Problem:    CQ84044 - E4:NPAR: Seeing qed call traces after reboot,
                "BUG: scheduling while atomic: swapper/10/0/0x10000100".

    Change:     Modify the locking scheme when sending a MB to the MFW, from a
                mutex to a spinlock.

    Introduced: 8.5.8.0.

    Relevance:  All.

 5. Problem:    Connection recovery failure - un-completed task cleanup.

    Change:     (FW iSCSI) Fix the clear SQ in middle of R2TQE flow.

    Introduced: FW 8.7.4.0.

    Relevance:  iSCSI.

 6. Problem:    Data integrity issue for SlowIO write exchanges.

    Change:     (FW iSCSI) Fix SlowIO flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 7. Problem:    CQ84287 - system asserted when switch port shut/no-shut
                multiple times with RDMA traffic running.

    Change:     Fixed cookie pointer when pending spq entry is moved to the
                pending sending list.

    Introduced: Day 1.

    Relevance:  ALL.

 8. Problem:    Wrong calculation of the enabled functions on the 2nd engine in
                case of 100G.

    Change:     Fix the calculation.

    Introduced: 8.7.6.0.

    Relevance:  100G.

 9. Problem:    CQ84343 - Getting Aborts while doing iSCSI Discovery Login.

    Change:     Fixed the chain pointer passed to zero the chain memory.

    Introduced: 8.7.8.0.

    Relevance:  iSCSI.

10. Problem:    EDPM wasn't turned off, even if required to so by user
                configuration / doorbell BAR size configuration.

    Change:     Disable DPM via register if required to do so via user
                configuration.

    Introduced: 8.7.8.0.

    Relevance:  RoCE.

11. Problem:    CQ84363 - Traffic sometimes doesn't work in NPAR.

    Change:     Protect against race when configuring DCBx results in QM.

    Introduced: 8.2.3.0.

    Relevance:  Multi-function, DCBx.

12. Problem:    CQ84636 - MB param is misconfigured.

    Change:     Fixed MB param creation.

    Introduced: 8.7.5.0.

    Relevance:  All.

13. Problem:    CQ84582 - VF traffic doesn't work.

    Change:     Correct VF doorbell address calculation.

    Introduced: 8.7.7.0.

    Relevance:  SRIOV.

14. Problem:    Hypervisor might crash when VF ACQUIRE message is blocked.

    Change:     Initialize length used for preparing the VF response.

    Introduced: Day 1.

    Relevance:  SRIOV.

15. Problem:    CQ84512, CQ84077 - Hw interrupt while running L2 traffic.

    Change:     (FW L2) Fix line credit handling in L2 TX fastpath.

    Introduced: FW 8.7.6.0.

    Relevance:  L2.

16. Problem:    CQ84546 - Running interoperability scenarios with switch may
                cause hardware attention.

    Change:     (FW) Fix error handling flow when receiving packets with wrong
                destination qp.

    Introduced: Day 1.

    Relevance:  All.

17. Problem:    CQ84496 - System hit a bugcheck on starting RoCE traffic.

    Change:     Fixed handling of unlimited pending slowpath ramrods with
                blocking completion mode.

    Introduced: Day 1.

    Relevance:  L2.

18. Problem:    Memory leak when failng to allocate a chain PBL table.

    Change:     Fix the flow so the virtual PBL table will be freed in such a
                case.

    Introduced: 8.7.7.0.

    Relevance:  All.

19. Problem:    Multicast and broadcast packets not forwarded to LL2, when
                default PF is used.

    Change:     (FW) Allow multicast and broadcast packets forwarding, when
                default PF is used.

    Introduced: FW 8.2.3.0.

    Relevance:  NPAR, QPAR.

20. Problem:    CQ84177 - 16 CQs causing System crash in iSCSI (relevant also
                for FCoE).

    Change:     (FW Storage) Fix the initialization of CQs during Function Init.

    Introduced: Day 1.

    Relevance:  Storage.

21. Problem:    Statistics for requester received packets are not counted.

    Change:     (FW RoCE) Fix RX statistics collection flow.

    Introduced: FW 8.7.6.0.

    Relevance:  RoCE.

22. Problem:    CQ84638 - Connect after termination on the same CID failure.

    Change:     (FW iSCSI) Fix the close flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

Enhancements:
-------------
 1. Request:    Add API for clients to read storage & LL2 statistics.

 2. Request:    Use the updated selftest APIs.

 3. Request:    Add support for MFW statistics for storage protocols.

 4. Request:    Add new API functions dbg_all_data(), dbg_all_data_size().

 5. Request:    Add initial support for dcbnl, adding minimal functionality
                to query the dcbnl state.

 6. Request:    Add new API functions dbg_fw_asserts(), dbg_fw_asserts_size().

 7. Request:    Use a seperate Ystorm queue zone ID for each Tx queue ID.

 8. Request:    Add qed support for configuring Tx coalesce value.

 9. Request:    (FW L2) TX performance improvements.

10. Request:    Add clock, register and nvram tests to selftest.

11. Request:    Add support for new device mode 4x25G, mainly for MNM.

12. Request:    Add qed API for setting whether the general behavior should
                be preventing attention from being reasserted.

13. Request:    Added "default_speed_autoneg" and "default_speed" params to
                qed_mcp_link_capabilities and initializing them according to
                the nvm settings.

14. Request:    Add a CRC check to the nvram selftest.

15. Request:    Add an API to get the temperature sensors info from the MFW.

16. Request:    Add qed RoCE API to use num_qps and num_mrs instead of num_cons
                and num_tasks. Move out all non-input fields from
                qed_roce_pf_params.

17. Request:    Move dcbx_pfc specific elements to new sub-structure and also,
                populate the pfc-bitmap in qed.

18. Request:    Add an API to get MBA versions from the MFW.

19. Request:    Change return values of sfp get functions.

20. Request:    (FW L2) Add support to control frames detection on TX path -
                SRIOV security feature, configured per vport, and detection by
                ether-type or by MAC address.

21. Request:    (FW RoCE) Adding DCQCN support.

22. Request:    Add FCoE support for BDQ and the corresponding API.

Version 8.7.8.0 (Jan 12, 2016)
==============================
Internal FW 8.7.5.0

Fixes:
------
 1. Problem:    CQ84227 -E4:25G:"qed_dmae_host2grc: Wait Failed" ,probe
                failed and not able to load qede driver on specific Gen9 system
                CQ84206 - E4 2015U2: 100G interface fails to show with
                driver 8.7.7.0.
                Failure to probe device (init hw) was followed by an invalid BUS
                read that prevented re-loading the driver, possibly crashing the
                machine on re-load.

    Change:     Stop the timers (TM) as part of the failure code.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ82195 - Add Fan Failure support.

    Change:     Notify the upper driver about a fan failure event, and fail the
                PCI initialization when detecting an error revision ID.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    Memory corruption in qed_iscsi_setup_connection().

    Change:     Zero pbl chain memory page by page.

    Introduced: 8.7.7.0.

    Relevance:  iSCSI.

 4. Problem:    Due to a workaround to a HW bug the number of TIDs was limited
                to 128K-1.

    Change:     Use newly introduced FW defines.

    Introduced: Day 1.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Add qed support for sending empty ramrod.

 2. Request:    Add an interface for the upper driver to start a recovery
                process.

 3. Request:    Add a user configuration roce_edpm that allows enabling,
                disabling or forcing EDPM.

 4. Request:    Add a CNQ size limit.

 5. Request:    Add notifications of HW errors to upper driver.

Version 8.7.7.0 (Jan 07, 2016)
==============================
Internal FW 8.7.5.0

Fixes:
------
 1. Problem:    CQ84092 - E4 : qed/qede Driver compilation error in RHEL6.7 32
                bit system.

    Change:     Fix the compilation error.

    Introduced: 8.7.3.0.

    Relevance:  All.

 2. Problem:    CQ76191 - E4 : No changes in ethtool "duplex & port"
                parameters when SFP/Cable connected or not.

    Change:     Use the new media-type enum value defined by mfw, for deriving
                the port-type value.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    MFW commands might timeout when enabling iov.

    Change:     Take MCP lock when communicate MSI-x requirements for VF.

    Introduced: 8.4.0.0.

    Relevance:  SRIOV.

 4. Problem:    Disabling the PCIe relaxed ordering attribute through a PGLCS
                register won't be applied if secure mode is enabled.

    Change:     Replace the register write with a PCI config space access.

    Introduced: 8.2.4.0.

    Relevance:  All.

 5. Problem:    When getting a process kill indication in CMT mode, attentions
                are disabled in the IGU block for only a single HW function.

    Change:     Disable attentions for all HW functions, while carrying out the
                other operations by only HW function 0.

    Introduced: 8.5.6.0.

    Relevance:  Error recovery.

 6. Problem:    CQ84053 - E4 2x25G 2015U2: ib_read_bw exits with
                "Segmentation fault (core dumped)" when "--run_infinitely"
                option is used.

    Change:     Updated the maximum CQE.

    Introduced: 8.7.4.0.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Pass compilation with Power LE.

 2. Request:    Add new API functions dbg_phy(), dbg_phy_size().

 3. Request:    Add qed support for RHEL 6.2.

 4. Request:    Add support for sfp get and set.

 5. Request:    Add support for gpio read and write.

 6. Request:    Pass build and modprobe in RHEL 6.2 (only RoCE/ENET supported).

 7. Request:    VF0 works on AH FPGA.

 8. Request:    Modify the ILT allocation to be divided between the actual
                enabled PFs.

 9. Request:    Modify the qed chain allocation to be page by page.

10. Request:    Increase maximum RoCE QPs to 8192. Added the ability to
                configure the number of RoCE DPIs and QPs via qede. Added
                support for configurable normal region (change "DEMS size").

Version 8.7.6.0 (Dec 28, 2015)
==============================
Internal FW 8.7.5.0

Fixes:
------
 1. Problem:    Failing to transmit packets with LLC/SNAP header.

    Change:     (FW L2) Add LLC/SNAP FW support.

    Introduced: FW 8.6.0.0.

    Relevance:  L2.

 2. Problem:    In case out of order packet is a new Isle which can't be
                allocated (either because connection reached maximal isles
                configuration, or no more global isles resources left), TCP
                drops the packet, but would send a pure ACK.

    Change:     (FW iSCSI) Send pure ack only if a new isle can be allocated for
                the connection.

    Introduced: Day 1.

    Relevance:  iSCSI.

 3. Problem:    Login Response with header or digest enable failure.

    Change:     (FW iSCSI) Fix the Login Response RT flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 4. Problem:    Rx connection error.

    Change:     (FW iSCSI) Disable the Mstorm valid bit in case of local
                completion.

    Introduced: Day 1.

    Relevance:  iSCSI.

 5. Problem:    IO timeouts during OOO scenarios.

    Change:     (FW iSCSI) Re-open TCP window once last Out-Of-Order packet is
                received from Out-Of-Order queue.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    Ack processing.

    Change:     (FW iSCSI) Do ack processing on packets that are supposed to be
                truncated.

    Introduced: Day 1.

    Relevance:  iSCSI.

 7. Problem:    Connection activity counters may be improperly released in error
                condition if SQ WQE contains multiple SGEs, eventually leading
                to stuck firmware.

    Change:     (FW RoCE) Fix connection activity counter release firmware.

    Introduced: FW 8.7.4.0.

    Relevance:  RoCE.

 8. Problem:    Race condition between data placement and error CQE when an
                error occurs in requester RX path.

    Change:     (FW RoCE) Guarantee placement complete before posting error CQE.

    Introduced: FW 8.7.3.0.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Add mcp_mask_parities and mcp_unmask_parities to tests.

 2. Request:    Properly learn number of ports in AH.

 3. Request:    Add verification for mcp_resume.

 4. Request:    Add zero_placement_offset param to qed_sp_vport_start_params.

 5. Request:    Optimize the resource allocation scheme by considering the
                actual number of enabled PFs.

 6. Request:    Add max_mr_size to QED ROCE.

Version 8.7.5.0 (Dec 17, 2015)
==============================
Internal FW 8.7.4.0

Fixes:
------
 1. Problem:    PCI read/write access by the device when Bus Master Enable was
                was down. Seen in CQ83517 and CQ82629 although this is not the
                root cause of these issues.

    Change:     When PF stop ramrod fails, don't abort unload flow. Instead,
                continue to the HW disable flow disabling HW from accessing
                the host.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    After L2 interfaces is disabled (linux ifdown) roce ramrods
                can't pass. Example scenario: rping, ifdown, kill application.

    Change:     When calling stop_fastpath, don;t diable timers, since slowpath
                should still be active, and roce slowpath requires timers to be
                active.

    Introduced: Day 1.

    Relevance:  Roce.

 3. Problem:    Clear SQ failure (2nd force load command).

    Change:     (FW iSCSI) Fix the WQE offset as part of the clear SQ ramrod.

    Introduced: Day 1.

    Relevance:  iSCSI.

 4. Problem:    IO timeout due to TCP close window or
                ISCSI_EVENT_TYPE_ASYN_MAX_KA_PROBES_CNT connection error.

    Change:     (FW iSCSI) Fix the in-order TCP window update.

    Introduced: FW 8.4.2.0.

    Relevance:  iSCSI.

 5. Problem:    Missing TCP ACK.

    Change:     (FW iSCSI) Fix the TCP ACK processing flow in case of segmented
                PDUs.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    FW assert after iscsi connection error (relevant for recovery
                flows).

    Change:     (FW iSCSI) Fix the cid error MCM FOC flow.

    Introduced: FW 8.7.0.0.

    Relevance:  All.

 7. Problem:    Stop sending packets while in Fast RT.

    Change:     (FW iSCSI) Enable more to send rule in Fast RT if needed.

    Introduced: Day 1.

    Relevance:  iSCSI.

 8. Problem:    CQ83520, 82997, 83118 - System break or ping stop during RoCE
                traffic.

    Change:     (FW RoCE) New hardware initializations as workaround for HW
                issue found.

    Introduced: Day 1.

    Relevance:  RoCE.

 9. Problem:    Firmware stuck in error handling race flow.

    Change:     (FW RoCE) Fix error handling flow in Requester.

    Introduced: FW 8.7.3.0.

    Relevance:  RoCE.

10. Problem:    Memory region activity counters may not be released in error
                condition if SQ WQE contains multiple SGEs, eventually leading
                to stuck firmware.

    Change:     (FW RoCE) Release all relevant activity counters.

    Introduced: FW 8.4.1.0.

    Relevance:  RoCE.

11. Problem:    In case packet is received with both RST and URG flags set, TCP
                would return TCP_SEG_PROC_URG result to upper layer and ignore
                the RST.

    Change:     (FW) Completely ignore URG flag by the TCP stack.

    Introduced: Day 1.

    Relevance:  iSCSI.

Enhancements:
-------------
 1. Request:    Add qed support for get/set indirection table, hash key
                and rss capabilities.

 2. Request:    Add support for SFP/QSFP read, write and decode commands.

 3. Request:    Add new API functions dbg_igu_fifo(), dbg_igu_fifo_size().

 4. Request:    Support 'iguFifo' command in diag running over linux driver.

 5. Request:    Update the variable names for MAC Rx stats to the more
                meaningful ones similar to the MAC Tx stats.

 6. Request:    (FW Storage) Adding support for dropless queues (for CmdQ and
                BdQ).

Version 8.7.4.0 (Dec 03, 2015)
==============================
Internal FW 8.7.3.0

Fixes:
------
 1. Problem:    MFW statistics for RoCE caused a NULL pointer dereference.

    Change:     Statistics are now derived from HW function.

    Introduced: 8.7.1.0.

    Relevance:  RoCE.

 2. Problem:    The RoCE device capability of CQ elements reported was smaller
                than possible by one CQE.

    Change:     Report the maximum capability of allowed CQ elements.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    The handling of the SPQ out-of-order completions has a wrong
                bitmap calculation.

    Change:     Fix the calculation.

    Introduced: 8.7.2.0.

    Relevance:  All.

 4. Problem:    CQ83395 - Firmware assert exposes when performing exchange
                cleanup on a middle-path task.

    Change:     (FW FCoE) Allow handling exchange cleanup on a middle-path task.

    Introduced: Day 1.

    Relevance:  FCoE.

 5. Problem:    CQ82443 - Storm gets to 100% utilization and blocks the FCoE
                performance to 2.2 MIOPS.

    Change:     (FW FCoE) Remove assert logs from the fast-path flows.

    Introduced: Day 1.

    Relevance:  FCoE.

 6. Problem:    CQ83451 - Connection Error in case of Login Response StatSN
                value > 0.

    Change:     (FW iSCSI) Fix the Login Response flow.

    Introduced: FW 8.7.2.0.

    Relevance:  iSCSI.

 7. Problem:    Uncompleted task cleanup.

    Change:     (FW iSCSI) Fix the cleanup flow (UnValid task after cleanup HQ
                scan).

    Introduced: Day 1.

    Relevance:  iSCSI.

 8. Problem:    CQ83452 - CQE with flush not posted for SQ after Responder error
                detected.

    Change:     (FW RoCE) Resolve race in error handling CQE generation.

    Introduced: FW 8.3.0.0.

    Relevance:  RoCE.

 9. Problem:    CCFC execution error when getting packets with CRC errors.

    Change:     Workaround - set the "strong_enable" bit in the CCFC for all VFs
                to enable the FW error handler to invoke in this case.

    Introduced: Day 1.

    Relevance:  All.

Version 8.7.3.0 (Nov 22, 2015)
==============================
Internal FW 8.7.2.0

Fixes:
------
 1. Problem:    Coexistence ROCE/iSCSI and FCoE problem.

    Change:     qed does not care about LLH classification type but MFW
                initializes involved registers.
                Fix is effective with MFW 8.7.1.0 and later.

    Introduced: Day 1.

    Relevance:  ROCE, iSCSI, FCoE.

 2. Problem:    CQ80844 - Ping stops once adding vlan ID.

    Change:     (FW L2) Fix add VLAN filter flow.

    Introduced: FW 8.2.1.0.

    Relevance:  L2.

 3. Problem:    Rx traffic stops after remove all VLAN filters.

    Change:     (FW L2) Fix remove all filters flow.

    Introduced: FW 8.7.1.0.

    Relevance:  L2.

 4. Problem:    Tx stop in middle of traffic.

    Change:     (FW iSCSI) Fix the Tx.

    Introduced: Day 1.

    Relevance:  iSCSI.

 5. Problem:    OOO event causing Rx connection error.

    Change:     (FW iSCSI) Fix the OOO right edge trimming.

    Introduced: FW 8.4.0.0.

    Relevance:  iSCSI.

 6. Problem:    exp_stat_sn validation error.

    Change:     (FW iSCSI) Fix the Rx validations.

    Introduced: FW 8.7.1.0.

    Relevance:  iSCSI.

Enhancements:
-------------
 1. Request:    Added API that allows using PHY.

 2. Request:    Configure vports to work in untagged-only mode as the default
                behavior.

 3. Request:    Major refactoring of LL2 code.

 4. Request:    Add support for 16 PF AH emulation.

 5. Request:    Add support for 32-bit chains.

Version 8.7.2.0 (Nov 16, 2015)
==============================
Internal FW 8.7.1.0

Fixes:
------
 1. Problem:    Concurrent non-blocking slowpath ramrods can cause an overflow
                in the SPQ.

    Change:     Handle out-of-order completions, and fix the way a pending SPQ
                entry is moved to the pending sending list.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    The elements left calculation for "next pointer" chains may miss
                an unusable entry.

    Change:     Fix the calculation.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    GRC access error on writing to MCP shmem during Function init
                and FLR initial cleanup.

    Change:     (FW) Fix FW FLR flow.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    CQ82539 - Final FLR ack is not always written to the correct
                location.

    Change:     (FW) Fix FW FLR flow.

    Introduced: 8.7.0.0.

    Relevance:  All.

 5. Problem:    CQ82059 - unexpected RSC exceptions seen when traffic is run.

    Change:     (FW L2) Do not increment tpa_aborts_num when aggregation closed
                due to timeout.

    Introduced: Day 1.

    Relevance:  GRO.

 6. Problem:    'force_vlan_mode' flag in first TX BD overrides default VLAN
                setting.

    Change:     (FW L2) Fix Tx flow. Now, 'force_vlan_mode' flag will only
                override DCB PCP.

    Introduced: Day 1.

    Relevance:  L2.

 7. Problem:    CQ83089 - Modifying a QP to error state while retransmitting
                from the SQ might cause some SQ WQEs not to be completed.

    Change:     (FW RoCE) Fix Modifying to error state flow.

    Introduced: Day 1.

    Relevance:  RoCE.

 8. Problem:    CQ82386 - Error during transmitting RDMA read responses might
                cause the chip to get stuck.

    Change:     (FW RoCE) Fix flow of handling transmission from IRQ after error
                was detected.

    Introduced: Day 1.

    Relevance:  RoCE.

 9. Problem:    CQ83210 - Firmware assert may be exposed while performing
                exchange cleanup.

    Change:     (FW FCoE) Fix firmware exchange cleanup flow.

    Introduced: 8.7.0.0.

    Relevance:  FCoE.

10. Problem:    FW assert during connection recovery.

    Change:     (FW iSCSI) Fix the clear SQ flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

11. Problem:    FW OOO slow recovery.

    Change:     (FW iSCSI) Fix OOO flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

12. Problem:    Data-In with statusBit=1 Re-transmit failure.

    Change:     (FW iSCSI) Fix the Data-In Re-transmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

13. Problem:    StatSN value skip.

    Change:     (FW iSCSI) Fix the StatSN transmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

Version 8.7.1.0 (Nov 09, 2015)
==============================
Internal FW 8.7.0.0

Fixes:
------
 1. Problem:    Can't initialize AH higher PFs when IOV capability exists.

    Change:     Calculate first VF index without reading PCI core registers.

    Introduced: Day 1.

    Relevance:  IOV, AH.

 2. Problem:    Driver Probe fails.

    Change:     Temporarily not require FW to ack final cleanup indication as
                it is broken in FW 8.7.0.0.

    Introduced: FW 8.7.0.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Added API that allows updating LL2 MAC address.

 2. Request:    Added RoCE support to MFW statistics.

 3. Request:    Added qed_phy_api.h for phy commands used by debugfs.

Version 8.7.0.0 (Nov 05, 2015)
==============================
Internal FW 8.7.0.0

Fixes:
------
 1. Problem:    CQ83022 - E4 Driver compilation error in Sles12-xen.

    Change:     Comment out the unwanted qed code on sles12-xen platform.

    Introduced: 8.6.1.0.

    Relevance:  SLES12-xen.

 2. Problem:    Double doorbel of LL2 TX packet.

    Change:     Flow of TX packet submission is fixed.

    Introduced: Day 1.

    Relevance:  LL2.

 3. Problem:    CQ80267 - Rx gets stuck because of miss-ordered rx update.

    Change:     (FW iSCSI) Fix in retransmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 4. Problem:    Rx ACK processing during/after retransmit caused assertion.

    Change:     (FW iSCSI) Fix Rx ACK processing after re-transmit [Q0 flow].

    Introduced: Day 1.

    Relevance:  iSCSI.

 5. Problem:    CQ82892 - HW attention observed when working on TAPE mode.

    Change:     Fixed CONF/XFER placement firmware flow.

    Introduced: Day 1.

    Relevance:  FCoE Tape.

 6. Problem:    NIG tag-mac classification always done according to outer MAC.

    Change:     Fixed the check of whether chip is switch-independt MF.

    Introduced: 8.2.1.0.

    Relevance:  Switch Dependent MF.

 7. Problem:    Compilation failure issue on Power PC.

    Change:     Compare 64 bit variables instead of 32 bit.

    Introduced: Day 1.

    Relevance:  All.

 8. Problem:    Capability of max_cqe was too high in 32 bit systems.

    Change:     Configure max_cqe to an appropriate value in 32 bit systems.

    Introduced: 8.6.1.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Increase size of Rx LL2 buffers to 4096 [was 256].

 2. Request:    Configure ramrods with incremental 'echo'.

 3. Request:    Reintroduce enhancement for CQ81796 - speed up NFS over
                RoCE mount time. Change: when registering an qed roce tid the
                caller can choose if the registration will be blocking or
                non-blocking i.e. concurrent.

Version 8.6.1.0 (Oct 29, 2015)
==============================
Internal FW 8.6.1.0

Fixes:
------
 1. Problem:    CQ82484 - When using 16 VFs, load of last 2 VFs fail.

    Change:     Leave the RSS configuration NULL when not required.

    Introduced: 8.2.1.0.

    Relevance:  SRIOV.

 2. Problem:    CQ82856: E4 drivers are not getting installed through
                source tarball installtion when there are other instance of
                driver present on RHEL distro.

    Change:     On RHEL distro check for "extra" instead of extra/qlgc-fastlinq
                before placing module in appropriate location.

    Introduced: 8.5.3.0.

    Relevance:  RHEL.

 3. Problem:    CQ81448 - E4 RDMA - Traffic moving to L2 path after link
                down/up from switch.

    Change:     Added new qp state QED_ROCE_QP_STATE_SQ_ERR.

    Introduced: Day 1.

    Relevance:  RoCe.

 4. Problem:    Assertions seen while running lots of storage connections.

    Change:     Next entries in the searcher T2 table are initialized as BE.
                This introduces OSAL_CPU_TO_BE64.

    Introduced: Day 1.

    Relevance:  Storage.

 5. Problem:    CQ81507 - Event Queue / Common Queue completion might be placed
                at the wrong place in the ring.

    Change:     (FW) Fixed Common Queues PBL pre-fetch FW flow.

    Introduced: Day 1.

    Relevance:  All.

 6. Problem:    tag insertion on EDPM packets with tunneling didn't work as
                expected.

    Change:     (FW) Update relevant EDPM flow.

    Introduced: Day 1.

    Relevance:  L2.

 7. Problem:    CQ82798 - Firmware caused an qed assert during device unload.

    Change:     (L2) Fixed Firmware device unload flow.

    Introduced: Day 1.

    Relevance:  All.

 8. Problem:    CQ82638 - System crash while running L2 traffic and changing
                MTU after enabling WOL in lediag.

    Change:     Update the link-status only when the driver requests for the
                link.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add support for SRIOV vf min rate configuration.

 2. Request:    Add qed RoCE API for CQ ring mode.

Version 8.6.0.0 (Oct 14, 2015)
==============================
Internal FW 8.6.0.0

Fixes:
------
 1. Problem:    CQ80777 - RH6.6 System crashed while loading qede driver with
                INT#x (Legacy) interrupt.

    Change:     Complete the IGU configuration before requesting for the
                interrupts.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ82537 - Unable to create gvlan on the VF after PVID toggle.

    Change:     Clear vlan shadow config in VF FLR flow.

    Introduced: Day 1.

    Relevance:  SRIOV.

 3. Problem:    L5 with inner VLAN causing connection error.

    Change:     (FW iSCSI) Fixed the vlan parsing configuration.

    Introduced: Day 1.

    Relevance:  iSCSI.

 4. Problem:    CQ81502 - ISCSI errors are observed during Initiator READ I/Os.

    Change:     (FW iSCSI) Fixed the Rx delineation flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 5. Problem:    CQ81084, CQ81864 - iSCSI with inner vlan --> connection errors.

    Change:     (FW iSCSI) Fixed the vlan parsing configuration.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    CQ82107 - HW attention after re-login to tape device.

    Change:     (FW FcoE) Fix flow that sends CONF packets.

    Introduced: Day 1.

    Relevance:  FCoE - Tape devices.

 7. Problem:    CQ82055 - Assertion during VM power while runninng L2 traffic.

    Change:     (FW) Fix VF start flow.

    Introduced: Day 1.

    Relevance:  SRIOV.

 8. Problem:    Rx flow gets stuck because of missing update from Tx-side.

    Change:     (FW iSCSI) Fix Tx no-payload flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 9. Problem:    Performance degredation in signle connection fow.

    Change:     (FW L2) Fix Tx double buffer logic.

    Introduced: 8.2.1.0.

    Relevance:  L2.

Enhancements:
-------------
 1. Request:    CQ81796 - speed up NFS over RoCE mount time.

 2. Request:    Add support for RoCE on AH emulation.

 3. Request:    HSI files changes - added RDMA hsi files to be used by RoCE.
                A significant amount of renames from RoCE to RDMA in hsi.

 4. Request:    Prevent malicious VF from causing attentions by doorebell.

Version 8.5.9.0 (Oct 08, 2015)
==============================
Internal FW 8.5.6.0

Fixes:
------
 1. Problem:    default_cq was passed during update_conn() while
                it was already needed during offload_conn().

    Change:     Move parameter to correct API's paramaters struct.

    Introduced: Day 1.

    Relevance:  iSCSI.

 2. Problem:    CQ81866 - VF mac addresses are not getting cleared
                after resetting the nos of vf on pf.

    Change:     Clear VF's stored mac address on VF cleanup.

    Introduced: Day 1.

    Relevance:  SRIOV.

 3. Problem:    CQ82290 - Scheduling while atomic might occur if GFP_KERNEL is
                supported.

    Change:     Fix DCBx flow to allocate using GFP_ATOMIC from sleepless ctx.

    Introduced: 8.5.8.0.

    Relevance:  All.

 4. Problem:    OOO packets corrupts memory in linux.

    Change:     Don't assume iterator at end of list is OSAL_NULL.

    Introduced: 8.3.5.0.

    Relevance:  iSCSI OOO.

 5. Problem:    CQ80462 - driver load failure on 100G Board.

    Change:     Do not obtain BAR size from OS callback, as in some environments
                too large values are returend, causing device access intended
                for engine 1 to arrive on engine 0. Instead, obtain BAR size
                from device register.

    Introduced: Day 1.

    Relevance:  100G.

 6. Problem:    OOO TC isn't properly configured in HW.

    Change:     Workaround - enable 5 TCs per port instead of 4.

    Introduced: 8.5.8.0.

    Relevance:  iSCSI OOO.

Enhancements:
-------------
 1. Request:    Add fix for a bug in output file of reg fifo
                and protection override in qlediag.

 2. Request:    Add APIs for iSCSI/FCoE for getting their RQ producer/consumer
                addresses per-queue, intead of getting RQ<0> on start().

 3. Request:    Add APIs for vport level min rate configuration.

 4. Request:    Add APIs to configure PF min and max bandwidth dynamically.

 5. Request:    Add qed support for handling the dynamic bandwidth change
                notifications from the mfw.

 6. Request:    Make __qed_get_vport_stats() public API to allow reading
                statistics from a given engine on a 100g device.

 7. Request:    Remove slowdown logic as its not working in secure mode.

Version 8.5.8.0 (Sep 21, 2015)
==============================
Internal FW 8.5.6.0

Fixes:
------
 1. Problem:    CQ80168 - While system is low in memory,
                taking GrcDump crash the system.

    Change:     Add check after memory allocation.

    Introduced: 8.5.7.0.

    Relevance:  All.

 2. Problem:    CQ77036 - Port identification does not work in linux driver.

    Change:     Add qed support for port identification.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ81994 - Qede driver statistics resets during MTU change.

    Change:     Do not reset the statistics in the client driver reload path.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    In MF mode, the debugfs folders for the upper 8 PFs are not in
                the format of their BDFs.

    Change:     Use the PF function address when creating the debugfs folder,
                instead of the PF's absolute ID.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    OOO packets corrupts memory in linux.

    Change:     Check for empty lists before iterating over them.

    Introduced: 8.3.5.0.

    Relevance:  iSCSI OOO.

 6. Problem:    Connection error during out of order processing.

    Change:     (FW iSCSI) Fixed the out-of-order flow.

    Introduced: Day 1.

    Relevance:  iSCSI OOO.

 7. Problem:    CFC execution error might occur.

    Change:     (FW L2) Changes the L2 TX AC policy.

    Introduced: 8.5.6.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add geneve tunnel offload support.

 2. Request:    LL2 ingress flow update SKB metadata with vlan-id of packet.
                Notice that for older distros API for rx_cb() is changed.

 3. Request:    Add support for LL2 Out-of-order queue.

 4. Request:    FCoE start function receives an additional ppointer 'rq_prod',
                which will be filled by qed with the global rq producer.

 5. Request:    Add new API functions dbg_reg_fifo(), dbg_reg_fifo_size(),
                dbg_protection_override() and dbg_protection_override_size().

 6. Request:    Support 'regFifo' and 'protectionOverride' commands
                in diag running over linux driver.

 7. Request:    Change driver sting into 'FastLinQ 4xxxx'.

 8. Request:    Add qed support for MFW statistics.

 9. Request:    Remove 'tpa_buf_size' from qed_sp_vport_start() [deprecated].

10. Request:    Support proper TC for iSCSO OOO TX chain.

11. Request:    Change slowpath allocation from GFP_ATOMIC into GFP_KERNEL.

Version 8.5.7.0 (Sep 02, 2015)
==============================
Internal FW 8.5.5.0

Fixes:
------
 1. Problem:    RoCE isn't working.

    Change:     Translate qed MF modes into FW MF modes when initializing.

    Introduced: 8.5.6.0.

    Relevance:  All.

 2. Problem:    CQ81178 - accept-any-vlan is being reset when no VLAN filters.

    Change:     (FW L2) Fixed any-vlan update flow.

    Introduced: 8.2.2.0.

    Relevance:  L2.

 3. Problem:    CQ81412 - Timestamp value in TCP handshake is inconsistent
                with value in packets sent after it.

    Change:     (FW iSCSI) Fix timestamp option on handshake packets.

    Introduced: Day 1.

    Relevance:  TCP option 2 with timestamp enabled.

 4. Problem:    Completion for inline EDPM was given on WQE regardless of
                signaled attributes.

    Change:     (FW RoCE) Fix processing of EDPM WQEs flow.

    Introduced: Day 1.

    Relevance:  Inline WQEs with EDPM enabled.

 5. Problem:    Connection failure after task cleanup.

    Change:     (FW iSCSI) Fixed the exp_stat_sn validation after task cleanup.

    Introduced: Day 1.

    Relevance:  iSCSI initiator.

 6. Problem:    FW might still assert when transmitting [length > MTU].

    Change:     (FW L2) Fixed MTU violation flag initialization.

    Introduced: 8.5.6.0.

    Relevance:  L2.

Enhancements:
-------------
 1. Request:    Removed qed_pcics_reg_driver.h header.

 2. Request:    Major changes in L2 Rx HSI - support TPA over BDs, remove
                SGE rings.

 3. Request:    Add support for PF to suggest VF its mac via new api
                qed_iov_bulletin_set_mac().

 4. Request:    Update qed_sp_vport_start function prototype to have an
                argument structure inplace of large number of arguments.

Version 8.5.6.0 (Aug 26, 2015)
==============================
Internal FW 8.5.4.0

Fixes:
------
 1. Problem:    CQ81378 - E4 drivers are placed in wrong location,
                loading from broadcom folder instead of qlogic folder.

    Change:     Place the driver module under qlogic folder.

    Introduced: 8.4.0.0.

    Relevance:  Module installation.

 2. Problem:    When vport is configured to accept only untagged packets as
                default behavior, stopping HW might cause FW assertion.

    Change:     (FW L2) Fixed relevant flow.

    Introduced: 8.3.3.0.

    Relevance:  L2.

 3. Problem:    CQ80743, CQ81295 - FW assertion appear during vport stop.

    Change:     (FW L2) Fixed contextless slow-path firmware flow.

    Introduced: Day 1.

    Relevance:  L2.

 4. Problem:    Posting 'send' or 'rdma write' WQE with multiple SGEs where
                at least one of the SGEs has length <= 64K might stuck chip.

    Change:     (FW RoCE) Fixed relevant flow.

    Introduced: Day 1.

    Relevance:  RoCE.

 5. Problem:    Target write failure in case of R2T PDU packet delayed ack.

    Change:     (FW iSCSI) Fix the R2T PDU packet delayed ack.

    Introduced: 8.4.1.0.

    Relevance:  RoCE.

 6. Problem:    FW assert during the re-transmit of logic PDU.

    Change:     (FW iSCSI) Fix the logic PDU re-transmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 7. Problem:    Initiator mode is not updating the driver about sense data.

    Change:     (FW iSCSI) Fix the updating of the sense data.

    Introduced: Day 1.

    Relevance:  iSCSI.

 8. Problem:    GRC dump can't be parsed when taken with 'crash' preset.

    Change:     (FW tools) Fix the grcDump.

    Introduced: 8.5.4.0.

    Relevance:  All.

 9. Problem:    CQ80746 - FW asserts When transmitting [length > MTU].

    Change:     (FW L2) Silently drop such packets instead of asserting.

    Introduced: Day 1.

    Relevance:  L2.

10. Problem:    CQ80796 - Assertions seen while running non-common block error
                recovery with ping traffic.

    Change:     Disable attentions in the IGU block when getting a process kill
                notification.

    Introduced: Day 1.

    Relevance:  Error recovery.

Enhancements:
-------------
 1. Request:    Seperate L2 from IOV; Add qed_iov_if.

 2. Request:    Make DCBx structs available in qed_if.h.

 3. Request:    Remove SF mode support from qed driver and, add the support for
                Default-MF mode.

 4. Request:    FW is requested to calculate IP checksum for LL2 packets.

 5. Request:    VF can request default behavior regarding vlan-tagged ingress
                when starting its vport.

 6. Request:    Add qed APIs for updating the configuration attributes to MFW.

 7. Request:    Add qed_iov_get_vf_stats() through which a PF can read the
                statistics of any of its child VFs.

 8. Request:    (FW) MCP trace is taken while MCP is halted.

 9. Request:    Avoid waiting till timers linear scan is done during driver
                unload while recovery is in progress.

10. Request:    Avoid checking for incorrect states in the QM/xCFC blocks during
                driver unload while recovery is in progress.

11. Request:    Added the following iov related api:
                qed_iov_get_vf_num_rxqs(), qed_iov_get_vf_num_active_rxqs(),
                qed_iov_get_vf_ctx(), qed_iov_get_vf_num_sbs(),
                qed_iov_is_vf_wait_for_acquire(),
                qed_iov_is_vf_acquired_not_initialized(),
                qed_iov_is_vf_initialized().

12. Request:    Added qed_sb_cnt_info struct which can be filled by
                qed_int_get_num_sbs().

13. Request:    Workaround for a FW issue - disable QM opportunistic flow in the
                tx_queue_start ramrod.

Version 8.5.5.0 (Aug 13, 2015)
==============================
Internal FW 8.5.3.0

Fixes:
------
 1. Problem:    Mcp Trace comes up empty.

    Change:     Improve "Corrupted Data" condition in Mcp Trace code
                (Prod has wrapped around but cons has not yet).

    Introduced: FW 8.5.3.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add number of dumped bytes to qed_dbg features OPs.

 2. Request:    Enable LRO for tunneled packets in vport update.

Version 8.5.4.0 (Aug 10, 2015)
==============================
Internal FW 8.5.3.0

Fixes:
------
 1. Problem:    If error occurs during driver load, debugfs nodes may not be
                created, and debug info is not obtainable.

    Change:     Create debugfs nodes earlier in the flow.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    Mcp trace from diag over operational driver comes out empty
                the first time.

    Change:     Use 'exec' semantics for both dump and cat operations. Mixing
                bash and tcl file operations caused misordering.

    Introduced: 8.4.0.0.

    Relevance:  Diag over linux driver.

 3. Problem:    CQ80841 - Abnormal consumption of one (per switch) physical
                processor of the host when traffic is run on multiple VFs of
                same switch.

    Change:     Removed setting of tx accept all ucast.

    Introduced: Day 1.

    Relevance:  L2 Tx Switching.

 4. Problem:    CQ81093: When VFs are enabled PF0 logs obscure error message
                "Consecutive igu vectors for HWFN 0 vfs is broken".

    Change:     Prevent said print due to uninitialized CAM entries.

    Introduced: Day 1.

    Relevance:  SRIOV.

 5. Problem:    Packets will be transmitted without timestamp even if such
                was negotiated in option 2 active connect.

    Change:     (FW iSCSI) Fix reading of TCP options from SYN-ACK packet.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    CQ78673 - System crashes when disabling function while traffic
                is running.

    Change:     (FW RoCE) Fix QP destruction flow.

    Introduced: Day 1.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Add limited support for AH emulation [single PF, 4-port].

 2. Request:    Have the ability to pull debug bus recording after driver was
                removed, or after probe flow failed.

 3. Request:    Add support for reg_fifo debug feature in debugfs.

 4. Request:    Add support for AH fpga.

 5. Request:    Storage qed API operates by relative Q ID.
                No more first_global_q.

 6. Request:    Added extra arguments to qed_filter_accept_cmd() to pass
                accept any vlan behavior.

 7. Request:    Add support for RoCE v2 (API structures were slightly changed).

 8. Request:    Add support for protection override feature in debugfs.

Version 8.5.3.0 (Jul 26, 2015)
==============================
Internal FW 8.5.2.0

Enhancements:
-------------
 1. Request:    For non SLES distros install the module in the same location as
                rpm would do to set the correct hierarchy of installed modules
                i.e. under extra/qlgc-fastlinq.

Fixes:
------
 1. Problem:    CQ80844 - No traffic on base interface when a VLAN interface is
                configured.

    Change:     Workaround for a FW issue - change the vport default behaviour
                to any-vlan.

    Introduced: 8.5.2.0.

    Relevance:  L2.

 2. Problem:    CQ80996 - qed failed to get installed on SLES11SP4.

    Change:     Add Module.supported file in driver sources.

    Introduced: Day 1.

    Relevance:  SLES11SP4.

 3. Problem:    CQ79480 – Firmware assertion after link up event.

    Change:     Add support to distinguish normal vs abortive connection
                termination.

    Introduced: Day 1.

    Relevance:  iSCSI.

 4. Problem:    LLH filters might get exhausted and traffic fail after reloads.

    Change:     Prevent same LLH entry cleaning twice.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    CQ80867 - E4:RoCE:qedr driver is not detecting RoCE functions
                using MFW:8.5.0.0.

    Change:     Enabling RoCE if personality is ETH and device capability in
                the nvm supports RoCE capability.

    Introduced: MFW 8.5.0.0.

    Relevance:  RoCE.

 6. Problem:    CQ80514 - system crash when running port0 Medusa stress and
                port1 load/unload (verifier enabled).

    Change:     Always return error status when qed_resc_alloc() fail.

    Introduced: Day 1.

    Relevance:  All.

 7. Problem:    Parity error may occur while running non-L2 traffic.

    Change:     (FW) Temporary mask the parity.

    Introduced: 8.5.2.0.

    Relevance:  BB B0, non-L2.

 8. Problem:    CQ80705 - attention when running traffic containing 'send with
                invalidate' packets.

    Change:     (FW RoCE) workaround for HW issue.

    Introduced: 8.5.2.0.

    Relevance:  BB B0, RoCE.

 9. Problem:    Recovery failure after local completion timeout.

    Change:     (FW iSCSI) Fix the local compilation recovery flow.

    Introduced: 8.4.1.0.

    Relevance:  iSCSI.

10. Problem:    Slow IO recovery failure.

    Change:     (FW iSCSI) Fix the recovery flow.

    Introduced: 8.5.2.0.

    Relevance:  iSCSI.

11. Problem:    DataOut may be sent with wrong [advanced] sequence ID in the
                middle of a sequence [i.e., sequence count != 0].

    Change:     (FW FCoE) Correct sequence ID handling according to the count.

    Introduced: Day 1.

    Relevance:  Target or Tape device.

Enhancements:
-------------
 1. Request:    qed_mcp_get_mfw_ver() now can also return the bundle-id.

 2. Request:    Added qed_iov_bulletin_set_forced_untagged_default() to allow
                Hypervisor to determine VFs default behavior when no vlan
                filter is configured.

 3. Request:    Remove the cleanup of general attention 35 since is done by the
                MFW (starting at version 8.5.0.0).

 4. Request:    Add qed APIs for MCP halt/resume functionalities.

Version 8.5.2.0 (Jul 14, 2015)
==============================
Internal FW 8.5.1.0

Fixes:
------
 1. Problem:    CQ80661 - Driver doesn't log the type of interrupt used.

    Change:     Log interrupt type [MSI-X/MSI/INTa] under INFO log-level.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ80390 - Unloading and loading driver do not reset the
                ethtool Statistics counters.

    Change:     Stat-query returns incorrect values if invoked before qede_load
                called. Create the base-line for stats in the device_probe path.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    IPv6 address is not copied properly during offload_conn.

    Change:     Use sizeof instead of constant value 4(IPv4 specific) to
                copy IP address during iSCSI offload_conn.

    Introduced: day 1.

    Relevance:  iSCSI.

 4. Problem:    CQ80492 - E4: Ethtool "autoneg" option can not be turned off
                once "autoneg" turned.

    Change:     Add the changes for 25G speed support.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    TCP URG flag caused connection error.

    Change:     (FW TCP) Ignore the TCP URG flag.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    Data digest retransmit failure.

    Change:     (FW iSCSI) Fix the data digest retransmit flow.

    Introduced: 8.4.1.0.

    Relevance:  iSCSI.

 7. Problem:    CQ80221 - FW assertion when using different ib applications -
                ib_send_bw on server adn ib_read_bw on client.

    Change:     (FW RoCE) Enable graceful error handling of illegal remote
                access using Reserved LKEY.

    Introduced: Day 1.

    Relevance:  RoCE.

 8. Problem:    CQ80349 - E4: Changing the port vlan id to different value do
                not stop the pvid traffic from vf to external.

    Change:     Fix forced feature handling logic in qed to allow consecutive
                configurations of PVID by qed.

    Introduced: Day 1.

    Relevance:  SRIOV - PVID.

 9. Problem:    CQ80498 - link down after load/unload.
                CQ80453 - BSOD while enable disable SRIOV.

    Change:     Fix igu int attention enable init.

    Introduced: Day 1.

    Relevance:  All.

10. Problem:    hw_mdoe isn`t initialized with 40/100_MODE.

    Change:     Added 40/100_MODE init to hw_mode calculation.

    Introduced: Day 1.

    Relevance:  All.

11. Problem:    Re-transmit data corruption.

    Change:     (FW iSCSI) Fix the iscsi history queue.

    Introduced: Day 1.

    Relevance:  iSCSI.

12. Problem:    CQ80465 - E4: Assertions seen in the Hypervisor when VF
                attached VM is powered on.

    Change:     Configure VFs status blocks in CAU after setting them in
                in IGU.

    Introduced: 8.4.1.0.

    Relevance:  SRIOV.

13. Problem:    If NVM is reset, load fail causes NULL pointer dereference.

    Change:     Set pointer to OSAL_NULL after freeing it.

    Introduced: Day 1.

    Relevance:  All.

14. Problem:    preconfig debugbus configuration always applies to engine 0 in
                CMT mode.

    Change:     Add preconfig_engine debugfs node for controling the enigne in
                CMT mode.

    Relevance:  CMT.

    Introduced: Day 1.

Enhancements:
-------------
 1. Request:    Added test for generating phony DCBx indication.

 2. Request:    Implement DCBx-DPM state machine. DPM is enabled by default
                for all PFs. DPM will be disabled for PFs with ROCE
                personality  when DCBx change occurs while there are allocated
                cids. DPM can subsequently be enabled if another DCBx change
                occirs with no cids allocated.

 3. Request:    Added dp_ctx to struct qed_dev and qed_hwfn. This param is
                passed to PRINT() and PRINT_ERR().

 4. Request:    Added extra argument to qed_sp_vport_start() to pass
                default untagged vlan filter behavior.

 5. Request:    Support a number of isles as sum of one isle per connection
                and shared pool.

 6. Request:    Asynchronous event iSCSI OOO isle delete support.

 7. Request:    (FW) Added BRB configurations to BB B0.

 8. Request:    (FW iSCSI) Implement re-transmit of slowIO.

Version 8.5.1.0 (Jul 05, 2015)
==============================
Internal FW 8.4.2.0

Fixes:
------
 1. Problem:    CQ80509: driver module on SLES 11 SP4 does not load
                automatically after a reboot.

    Change:     lsinitrd related help message pop-up on SLES ditros when
                performing make install with FastLinQ Linux drivers package.
                So first check if initramfs file itself exists before checking
                for the kernel module in initrd image.

    Introduced: 8.4.0.0.

    Relevance:  SLES.

 2. Problem:    Transitioning device into 'down' state [ifdown] might lead to
                stuck ramrods.

    Change:     Move all CAU widebus initializations into using dmae.

    Introduced: Day 1.

    Relevance:  NPAR.

 3. Problem:    CQ80167 - Add 10G/25G to qede driver description in log.

    Change:     Update the module description, log message for qed driver.

    Introduced: Day 1.

 4. Problem:    Closing devices sporadically causes ramrod failures.

    Change:     Move all CAU widebus initializations into using dmae.

    Introduced: Day 1.

    Relevance:  NPAR.

 5. Problem:    B0 isn't being properly initialized.

    Change:     Determine A0/B0 based MISCS_REG_CHIP_REV.

    Introduced: Day 1.

    Relevance:  B0.

Enhancements:
-------------
 1. Request:    Remove need to define preprocessor symbol __PREVENT_QED_HSI__
                before including qed_if.h.

 2. Request:    Add support for module installation on Ubuntu.

 3. Request:    Modify the VID/DID read to be from the config space instead of
                from the nvram copy in the shmem.

Version 8.5.0.0 (Jun 25, 2015)
==============================
Internal FW 8.4.2.0

Version 8.4.1.0 (Jun 25, 2015)
==============================
Internal FW 8.4.2.0

Fixes:
------
 1. Problem:    CQ80335 - Not able to pass traffic over tunnel interfaces.

    Change:     We enable tunneling in HW only when QED_ENC_SUPPORTED
                is defined. Check if offloads are supported in OS and
                define it.

    Introduced: 8.4.0.0.

 2. Problem:    CQ78105 - loading drivers gives continuous qed_int_deassertion
                messages in logs.

    Change:     Configure SBs in CAU from IGU mapping.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ80034 - Seeing FW assertions / ramrod stuck using large QP
                [size 512]; HW reports ILT error.

    Change:     (FW RoCE) RoCE connection and task contexts are not deleted
                during FUNC_CLOSE instead of PF_STOP.

    Introduced: Day 1.

    Relevance:  RoCE.

 4. Problem:    Running a benchmark more than once without removing the driver
                will cause the QP post completions with 'FLUSH' on each RQ WQE
                posted.

    Change:     (FW RoCE) Fix QP cleanup code on destruction.

    Introduced: 8.4.0.0.

    Relevance:  RoCE.

 5. Problem:    CQ79651 - Payload with data corruption when retransmitting near
                TCP sequence wrap-around.

    Change:     (FW iSCSI) Use cyclic instead of linear arithmetic in
                retransmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    Out-of-order iSCSI was disabled during traffic.

    Change:     (FW iSCSI) Fix Out-of-order mode.

    Introduced: 8.4.0.0.

    Relevance:  iSCSI.

Enhancements:
-------------
 1. Request:    Workaround for B0 to allow PHY access command from qlediag.

 2. Request:    Add qed support for configuring the driver version.

 3. Request:    Add qed support for set/get coalesce values.

 4. Request:    Add support for error recovery from process kill events.

 5. Request:    TPA for encapsulated packets is disabled by default.

Version 8.4.0.0 (Jun 19, 2015)
==============================
Internal FW 8.4.1.0

Fixes:
------
 1. Problem:    mcp trace from debugfs crashed the server.

    Change:     Check for "too many messages will cause buffer to be out of
                sync" error and abort mcp trace in such a case.

    Introduced: 8.3.5.0.

    Relevance:  All.

 2. Problem:    CQ79824 - Secure NVRAM - Able to nvm prg img in linux qediag drv
                dbg mode (driver loaded).

    Change:     Besides the return status, check the mcp_response of NVM API to
                conclude whether the call is successful or not.

    Introduced: 8.3.5.0.

    Relevance:  All.

 3. Problem:    CQ79650 - E4-RHEL66/SLES11.3-No log message printed for link
                up/down event.

    Change:     Notify the link-change event only on the first hwfn.

    Introduced: 8.3.5.0.

    Relevance:  All.

 4. Problem:    Inconsistency between advertised number of QPs supported to the
                number of QPs that can be opened.

    Change:     Fix flow to allocate enough resources for capability
                adverstised.

    Introduced: Day 1.

    Relevance:  RoCE.

 5. Problem:    CQ79933 - E4 DCBX: assigning strict priority to FCOE result
                in system assert.

    Change:     Sanitize values provided by MFW.

    Introduced: Day 1.

    Relevance:  DCBx.

 6. Problem:    QEDR interrupts in mF are received only on qedr0/1.

    Change:     Fixed configuration CNQ ID.

    Introduced: Day 1.

    Relevance:  RoCE w/ mF.

 7. Problem:    CQ79564 - FCoE: NPIV ports doesn't logs in to Target after
                creating around 70 NPIV ports.
                CQ79301 - [RHEL66-E4]fcoe plogi issue in NPAR(1.0)mode.

    Change:     LLH ethertype classification is involved.

    Introduced: Day 1.

    Relevance:  FCOE under NPAR.

 8. Problem:    CQ79801 - iSCSI: Assertion while disable enable iscsi port
                from device manager.
                CQ78952 - iSCSI: Function failed to obtain IP address after
                driver disable/enable.
                CQ79264 - FCOE: port doesn't Login after load/unload
                for long time.

    Change:     Initialization FW variables on LL2 chains creation.

    Introduced: Day 1.

    Relevance:  LL2/Storage.

 9. Problem:    cq79688: VF traffic is failing for VFs with 'high' parent PF.

    Change:     Fix setting of IGU value [set parent PF instead of SISR].

    Introduced: Day 1.

    Relevance:  SRIOV, VF-RSS.

10. Problem:    VFs aren't operational in secure-mode.

    Change:     Move VF configuration from shmem-based approach into using
                drv_data on MFW commands.

    Introduced: Day 1.

    Relevance:  SRIOV, secure-mode.

11. Problem:    "VF[<..>] did not fill the address of SB <..>" appear in logs.

    Change:     Reduce verbosity of error print.

    Introduced: 8.2.0.0.

    Relevance:  SRIOV, VF-RSS.

12. Problem:    VF`s personality is different from its PF.

    Change:     Fixed VF`s personality initialization in vf start ramrod.

    Introduced: Day 1.

    Relevance:  SRIOV.

13. Problem:    Fail to add same MAC filter to different vports.

    Change:     (FW L2) Fix HW definitions.

    Introduced: Day 1.

    Relevance:  L2.

14. Problem:    CQ79620 - System crash while disabling RSC under traffic.

    Change:     (FW L2) Fix TPA disable flow.

    Introduced: Day 1.

    Relevance:  L2 with TPA.

15. Problem:    CQ79868 - Summarized RSC aggregation size greater than defined.

    Change:     (FW L2) Fix TPA decision rule.

    Introduced: Day 1.

    Relevance:  L2 with TPA.

16. Problem:    Responder retransmit flow after only 1 or 2 RDMA read
                operations since QP creation will cause fw assertion.

    Change:     (FW RoCE) Fix scanback code for near-empty responder ops queue.

    Introduced: Day 1.

    Relevance:  RoCE.

17. Problem:    First retransmit request may be silently discarded depending on
                initial PSN used.

    Change:     (FW RoCE) Correct out-of-order PSN comparison flow.

    Introduced: Day 1.

    Relevance:  RoCE.

18. Problem:    Repetitive RNR-NAKs will cause a transport retry error when
                infinite retry is configured.

    Change:     (FW RoCE) Fix RNR NAK counter modification.

    Introduced: Day 1.

    Relevance:  RoCE.

19. Problem:    FW assert during connection recovery after link-down.

    Change:     (FW iSCSI) Fix the connection connect flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

20. Problem:    CQ79825 - Connecting to several targets results in assertion.

    Change:     (FW iSCS) Fix the connect flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

21. Problem:    FW assert may (rarely) occur during heavy storage/RoCE traffic.

    Change:     (FW) Fix common firmware flow.

    Introduced: Day 1.

    Relevance:  All.

22. Problem:    Requester FW may get stuck in retransmit and flush SQ flows.

    Change:     (FW RoCE) Fix internal SQ scan-back firmware code.

    Introduced: Day 1.

    Relevance:  RoCE.

23. Problem:    HW attention in responder retransmission.

    Change:     (FW RoCE) Fix responder retransmission.

    Introduced: Day 1.

    Relevance:  RoCE.

24. Problem:    Responder may generate multiple duplicate ACKs when RDMA write
                and send operations are retransmitted by requester.

    Change:     (FW RoCE) Block such responses when a retransmit flow is
                already in progress.

    Introduced: Day 1.

    Relevance:  RoCE.

25. Problem:    FW assert during unload if more than 160 filters are used on a
                single engine for classification.

    Change:     (FW L2) Fix filter removal flow.

    Introduced: Day 1.

    Relevance:  L2.

26. Problem:    CQ80060 - Incorrect data digest produced in fast-retransmit.

    Change:     (FW iSCSI) Fix dummy read flow.

    Introduced: 8.3.4.0.

    Relevance:  iSCSI.

Enhancements:
-------------
 1. Request:    Add driver support for 32 bit linux platform.

 2. Request:    Add new API functions dbg_mcp_trace() and dbg_mcp_trace_size()
                for getting MCP trace.

 3. Request:    Support 'mcpTrace' and  'mcp trace' commands in diag running
                over linux driver.

 4. Request:    Add support to initialize a Status Block with type.

 5. Request:    Module installation enhancements - Install under "updates" in
                case of SuSE and "extra" in case of rest of the distros. Use
                qed.conf file to override previous driver loads (inbox or thru
                source code). Update the initramfs if driver is already a part
                of it before installation.

 6. Request:    Initial implementation of error recovery.

 7. Request:    Add new pmm stats.

 8. Request:    Support LLH (NPAR) classification by ethertype.

 9. Request:    'Sealed' HW-channel for forward/backward support purposes.

10. Request:    Modified the HSI functions get_*_results_buf_size and
                print_*_results to return a status code.

11. Request:    Added ISCSI_EVENT_TYPE_ASYNC_DELETE_OOO_ISLES as a possible
                async event.

12. Request:    HSI file structure changes - separate targets were removed.
                All clients should now use same set of HSI files.

13. Request:    Add offload support for VXLAN and GRE tunnels.

Version 8.3.5.0 (May 20, 2015)
==============================
Internal FW 8.3.8.0

Fixes:
------
 1. Problem:    CQ78596 - Functions from same physical port attached
                to different VMs fail to ping each other.

    Change:     Enable npar tx switching by default.

    Introduced: Day 1.

    Relevance:  NPAR.

 2. Problem:    CQ78993 - qed/qede drivers do not print out version numbers in
                the logs.

    Change:     Display qed version while loading the driver.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ75062 - E4:System crashed while loading qede driver with
                different int_modes.

    Change:     Call free_irq() during driver unload in INTx mode. And pass the
                unique name for request_irq() call in INTx mode.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    CQ78592 - call traces seeing while running rdma traffic.

    Change:     spin_lock_bh was taken under a flow that took spin_lock_irqsave.
                Fixed qed to take correct lock.

    Introduced: Day 1.

    Relevance:  RoCE CM.

 5. Problem:    Compilation failure when using QED_CONFIG_DIRECT_HWFN.

    Change:     Correct type of 'p_hwfn' into qed_hwfn*.

    Introduced: Day 1.

    Relevance:  QED_CONFIG_DIRECT_HWFN.

 6. Problem:    CQ79448 - When MCP is reset, need to re-read MFW
                mailbox offsets correctly.

    Change:     Use MCP history register to check if MCP reset occurred between
                init time and now, while accessing MCP mailboxes.

    Introduced: 8.3.0.0.

    Relevance:  MCP access.

 7. Problem:    Interrupts for RoCE CNQ not received when working with RoCE
                over 100g.

    Change:     Set personality to be the same between hwfns.

    Introduced: 8.3.4.0.

    Relevance:  RoCE over 100g.

 8. Problem:    Connection recovery bug in case the data was already acked.

    Change:     (FW iSCSI) Fix the connection recovery flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 9. Problem:    Data corruption possible when transmitting IO contained in
                single buffer descriptor.

    Change:     (FW iSCSI) Fix cached BD transmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

10. Problem:    CQ79391 - FCoE: Npar: HW assertion on stop FCoE function.

    Change:     Timers scans on FCoE tasks are disabled before FCoE function
                stop/destroy.

    Introduced: Day 1.

    Relevance:  FCoE.

Enhancements:
-------------
 1. Request:    iSCSI OOO support.

 2. Request:    Add module parameters support for tx switching options.

 3. Request:    Enable end-to-end flow control in responder by default.

 4. Request:    Masked NIG "pause too long" attentions [sometimes appeared
                when dcbx was active].

Version 8.3.4.0 (May 07, 2015)
==============================
Internal FW 8.3.7.0

Fixes:
------
 1. Problem:    CQ79497 - FW asserts on MTU 4000.

    Change:     Set maximum aggregation size to be maximum supported by FW.

    Introduced: Day 1.

    Relevance:  GRO.

 2. Problem:    cq79476 - VF Traffic is not working.

    Change:     Fix return status in VFs ucast configuration by PF.

    Introduced: 8.3.3.0.

    Relevance:  SRIOV.

 3. Problem:    CQ79434 - Failed to read nvm directory after MFW upgrade.

    Change:     Re-read MFW mailbox and mcp trace meta file after mcp reset.

    Introduced: Day 1.

    Relevance:  MFW upgrade.

 4. Problem:    iSCSi target connect - negative scenario failure.

    Change:     (FW iSCSI) Fix the option 2 connect negative scenario flow.

    Introduced: 8.2.1.0.

    Relevance:  iSCSI.

 5. Problem:    Retransmission of iSCSI traffic with data digest enabled may
                cause HW attention.

    Change:     (FW iSCSI) Fix dummy-read flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    iSCSI multi-function connect failure.

    Change:     (FW iSCSI) Fix the multi-function init flow.

    Introduced: 8.3.2.0.

    Relevance:  iSCSI.

 7. Problem:    iSCSI unsolicited packed PDUs failure.

    Change:     (FW iSCSI) Fix the unsolicited packed PDUs flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 8. Problem:    No traffic when maximum bandwidth configured for Pf is 1Mb/s.

    Change:     (FW) Make sure Rate-limiter is always configured to non-zero.

    Introduced: Day 1.

    Relevance:  L2, NPAR.

 9. Problem:    NIG attention appears during bi-directional 100g traffic.

    Change:     (FW) Mask attentions in A0.

    Introduced: Day 1.

    Relevance:  100g.

Enhancements:
-------------
 1. Request:    Add VFs rate (max rate) limiting support.

 2. Request:    Add qed support for PHY read/write commands.

 3. Request:    Add support for viewing keys of debug node.

 4. Request:    Enable RoCE to work on 100G device.

 5. Request:    Add 25G to modinfo description.

Version 8.3.3.0 (Apr 29, 2015)
==============================
Internal FW 8.3.6.0

Fixes:
------
 1. Problem:    CQ79117 - stack trace appears in system log during removal.

    Change:     Slowpath_stop callback shouldn't call the remove callback;
                The remove callback should be called explicitly by client.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    Memory overrun during roce stop.

    Change:     ILT range for RoCE tasks was calculated based on hard coded
                values instead of configurable ones.

    Introduced: Day 1.

    Relevance:  RoCE.

 3. Problem:    Drivers fail to load on emulation.

    Change:     Prevent final cleanup and shmem-based logic from running on
                FPGA and emulations.

    Introduced: 8.2.4.0.

    Relevance:  FPGA, Emulation.

 4. Problem:    FW assertion due to sync. loss on Tx buffer sequence.

    Change:     (FW L2) Fix the Tx descriptors fetch flow.

    Introduced: 8.2.1.0.

    Relevance:  L2.

 5. Problem:    Data corruption if TCP send window closes during transmission
                of slowIO type iSCSI exchange.

    Change:     (FW iSCSI) Fix SlowIO transmit firmware flow.

    Introduced: 8.3.1.0.

    Relevance:  iSCSI.

 6. Problem:    Separate response without Sense Data failure.

    Change:     (FW iSCSI) Fix the completion flow of separate response.

    Introduced: Day 1.

    Relevance:  iSCSI.

 7. Problem:    Option 2 active connect failure.

    Change:     (FW iSCSI) Fix the connect flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 8. Problem:    Option 2 FIN re-transmit failure.

    Change:     (FW iSCSI) Fix the termination flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 9. Problem:    CQ78980 E4:NPAR_RoCE: flooding messages "Silently dropping
                invalid QP1 packet" once interfaces are up /while running
                traffic.

    Change:     Disable broadcast/multicast packet duplication to LL2.

    Introduced: Day 1.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Add qed support for nvram access.

 2. Request:    Add support for forcing a pvid on a VF.

 3. Request:    Added new API function qed_mcp_get_personality_cnt().

 4. Request:    FCoE: PRS_REG_TASK_ID_MAX_TARGET_PF is set in target mode.

 5. Request:    qed_mcp_function_info 'protocol' now holds QED_PCI_ values
                instead of QED_MCP_PROTOCOL_ values which were removed.

 6. Request:    qed_int_sb_setup can be called externally to re-set the sb.

Version 8.3.2.0 (Apr 21, 2015)
==============================
Internal FW 8.3.5.0

Fixes:
------
 1. Problem:    New API's for ISCSI and FCOE client drivers,
                client drivers exposed few bugs in the
                so far untested storage code paths.

    Change:     Implement new API's. Bug fixes.
                Starting with this release unmodified QED module can be used by
                storage drivers.

    Introduced: Day 1.

    Relevance:  ISCSI, FCOE.

 2. Problem:    NPAR w/ LL2 scenario failed TX/RX.

    Change:     Updated LLH with MAC addresses on qed_ll2_start().
                It is now mandatory to configure a MAC address in the function's
                params.

 3. Problem:    Error when printing debugfs engine in 100G.

    Change:     Increased print buffer size and updated debug engine type.

    Introduced: Day 1.

    Relevance:  LL2 clients.

 4. Problem:    Possible context corruption.

    Change:     (INIT) Employ CCFC/TCFC HW bug workaround.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    QM attentions may appear when running in NPAR.

    Change:     (INIT) Use regular (external) vport ids as global rate-limiter
                id instead of the internal QM vport id.

    Introduced: Day 1.

    Relevance:  All.

 6. Problem:    iSCSI out-of-order silently drops all packets.

    Change:     (FW) Revise flow that checks whether a packet is to be dropped.

    Introduced: Day 1.

    Relevance:  All.

 7. Problem:    Application freezes when testing writes on RoCE flow.

    Change:     (FW) On start of Rx/Tx, clear old data written to driver by
                previous connections.

    Introduced: Day 1.

    Relevance:  All.

 8. Problem:    SYN, SYN+ACK re-transmit failures.

    Change:     (FW iSCSI) Fix re-transmission flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 9. Problem:    Receive RESET during connect failure.

    Change:     (FW iSCSI) Fix re-transmission flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

10. Problem:    Possible re-transmit corruption.

    Change:     (FW iSCSI) Transmit history queue fix.

    Introduced: Day 1.

    Relevance:  iSCSI.

11. Problem:    CQ78086 - Rx path may be stalled after FW reports an error.

    Change:     (FW FCoE) Fix error reporting flow.

    Introduced: Day 1.

    Relevance:  FCoE.

12. Problem:    BD ring might get out of sync.

    Change:     (FW L2) Fix BD ring synchronization problem.

    Introduced: 8.2.1.0.

    Relevance:  L2.

13. Problem:    BMC packets are mistakenly dropped.

    Change:     (FW L2) Remove anti-spoofing check for BMC packets.

    Introduced: 8.2.1.0.

    Relevance:  Management traffic.

14. Problem:    PCI performance degradation on Grantly platform.

    Change:     (FW L2) Set RO=0 for all PCI transactions.

    Introduced: Day 1.

    Relevance:  L2.

15. Problem:    During FLR, non-FLRed functions may freeze.

    Change:     (FW L2) FLRed function FW verifies it cleaned stale data for
                non-FLRed functions.

    Introduced: Day 1.

    Relevance:  All.

16. Problem:    CQ79115 - 25G: System hitting exception while loading driver.

    Change:     Added handling in 25G port mode.

    Introduced: Day 1.

    Relevance:  All.

17. Problem:    PF start ramrod fails to pass on some environments.

    Change:     Don't assume OSAL_DMA_ALLOC_COHERENT zeroes context memory.

    Introduced: Day 1.

    Relevance:  ESX Beta build.

Enhancements:
-------------
 1. Request:    Remove workaround for iSCSI asynchronous event.

 2. Request:    Support FCoE target configuration.

 3. Request:    Add support to utilize binary firmware files.

 4. Request:    qed_eth_cqe_completion() receive hw-function instead of queue
                index, allowing client to employ any logic when mapping queues
                to engines in 100g device.

Version 8.3.1.0 (Apr 08, 2015)
==============================
Internal FW 8.3.4.0

Fixes:
------
 1. Problem:    CQ78740 - E4 : Crash occurred with Mtu change of VF on
                hypervisor.

    Change:     Prevent VF from issuing mcp_drain, which results in NULL
                pointer dereference while acquiring ptt.

    Introduced: Day 1.

    Relevance:  SRIOV.

 2. Problem:    Potential access to an un-allocated memory may occur during
                function unload.

    Change:     (FW) Fix common function unload FW flow.

    Introduced: Day 1.

    Relevance:  MF.

 3. Problem:    CQ78857 - PFC packet received will only stop traffic on
                requested TC for maximum of ~200usec and not as requested on
                packet.

    Change:     (FW) Fix timeout value after stopping TC due to received PFC
                packet.

    Introduced: 8.2.3.0.

    Relevance:  Port 1 in 2x40Gb configuration.

 4. Problem:    Error of VF FLR flow.

    Change:     (FW) Fix flow on VF load.

    Introduced: 8.3.0.0.

    Relevance:  SRIOV.

 5. Problem:    L2 losses connectivity after running RoCE traffic.

    Change:     (FW) Fix internal cache management flow.

    Introduced: Day 1.

    Relevance:  L2, RoCE.

 6. Problem:    Driver unload during RDMA Read operation may cause wrong CQE
                generation.

    Change:     (FW) Fix calculation of packets per operation code.

    Introduced: Day 1.

    Relevance:  RoCE.

 7. Problem:    Driver unload or error condition in responder while RDMA read
                or atomic responses are pending transmission may cause
                firmware assert.

    Change:     (FW) Correct activity counter calculation in error state.

    Introduced: 8.3.0.0.

    Relevance:  RoCE.

 8. Problem:    When during retransmission (slow start) the transmission is
                stopped due to window, one packet will be sent every RTO timer
                until retransmission will end.

    Change:     (FW) Fix retransmission flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 9. Problem:    iSCSI traffic on function other than pfid 0 causes HW attention
                from PCFC.

    Change:     (FW) Fix connection-establishment flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

10. Problem:    Connection recovery failure.

    Change:     (FW) Fix offload ramrod fix.

    Introduced: Day 1.

    Relevance:  iSCSI.

11. Problem:    iSCSI response PDU with "BUSY" status is treated as connection
                error and leads to termination of the connection.

    Change:     (FW) Fix response PDU validations code to accept "BUSY" status.

    Introduced: Day 1.

    Relevance:  iSCSI.

12. Problem:    R2T stat sn validation error (misbehave target).

    Change:     (FW) Disable R2T stat sn validation.

    Introduced: Day 1.

    Relevance:  iSCSI.

13. Problem:    iSCSI target - response packet with wrong statSN value.

    Change:     Fix target Tx flow.

    Introduced: 8.2.1.0.

    Relevance:  iSCSI.

14. Problem:    A re-established TX LL2 connection failed to transmit.

    Change:     Reset driver internal variable (consumer of queue)upon
                connection  establishment.

    Introduced: Day 1.

    Relevance:  LL2.

Enhancements:
-------------
 1. Request:    Utilize qed_init_values_zipped.h firmware file.

 2. Request:    Add dcbx key to debug print feature using debugfs,
                and dcbx information function for support.

 3. Request:    Restructure DCBx implementation so that there is DCBx API file
                to facilitate QED access into DCBx data structures.

 4. Request:    Allocated or reused iSCSI connection memory must be zeroed.

 5. Request:    (FW) Support creation of QP without End-to-End flow control.

 6. Request:    (FW) Support switch-dependent multi-function.

 7. Request:    (FW) Support Target mode.

Version 8.3.0.0 (Mar 24, 2015)
==============================
Internal FW 8.3.3.0

Fixes:
------
 1. Problem:    CQ78163, CQ78298 - Forced MAC address configuration issue.

    Change:     Fixed a unicast filter configuration issue while configuring
                forced MAC from PF to VF. Values of filter type and opcode
                were interchanged.

    Introduced: 8.2.2.0.

    Relevance:  SRIOV.

 2. Problem:    CQ78302 - RoCE: System crashed while unloading qedr driver when
                personality is in ethernet Mode.

    Change:     Fail qedr load when personality is not RoCE.

    Introduced: Day one.

    Relevance:  RoCE.

 3. Problem:    RoCE User Context allocation failed.

    Change:     Calculation of number of available dpi windows is based on the
                the number of cpus. On machines with a large number of cpus
                (more than 48) we are left without enough dpi windows. Fix is
                to take the minimum between 48 and #active cpus.

    Introduced: Day one.

    Relevance:  Linux RoCE.

 4. Problem:    In 100G mode, ethtool -l displays a max value of channels which
                cannot actually be configured.

    Change:     Make sure the number of L2 queues is not higher than the number
                of the MSI-X vectors.

    Introduced: Day 1.

    Relevance:  100G.

 5. Problem:    Memory corruption happens on VF bulletin board when
                PF is posting to it.

    Change:     Fixed dame write command size to dwords value instead of bytes.

    Introduced: Day 1.

    Relevance:  SRIOV.

 6. Problem:    DMAE timeout sometimes randomly appear.

    Change:     DMAE completion is made into 32-bit variable.

    Introduced: Day 1.

    Relevance:  All.

 7. Problem:    Loss of L2 connectivity after running RoCE apps with rdma cm.

    Change:     Change hw configuration to use separate internal cache indices
                for l2 packets going to RoCE CM and l2 regular packets.

    Introduced: Day 1.

    Relevance:  RoCE-CM / L2.

 8. Problem:    CQ78455 - E4 : Crash found when configuring  SRIOV 240
                vfs in NPAR.

    Change:     Added error handling for DMA memory allocation failure.

    Introduced: Day 1.

    Relevance:  SRIOV.

 9. Problem:    CQ78435 - Nictest test D1 "Internal loopback test" fails
                after programing NVM with manufacture kit 8562_40Gv11,
                with Roce personality (nvm cfg option 92).

    Change:     Fixed qed_cxt_set_pf_params() not to fail in case
                of roce personality without setting roce parameters.
                Show information warning in this case.

    Introduced: 8.2.6.0.

    Relevance:  Roce.

10. Problem:    Ethernet traffic carries a zeroed vlan tag when DCBx was
                negotiated. This has a detrimental effect on some OSs (e.g.
                RH6.5) and only negligible effect on others (in RH7.0 it only
                clutters up a network trace). An additional effect is that
                the vlan priority will be overwritten with 0 even if user
                configured it (the tag value will remain unaffected).

    Change:     Do not enable DCBx for ethernet even if DCBx was negotiated.
                The OS should be the one to supply the vlan tag if required.

    Introduced: 8.2.2.0.

    Relevance:  L2 when DCBx is negotiated.

11. Problem:    CQ78700 - E4:RoCE:RDMA applications are not working on
                servers with 72 cpus.

    Change:     Doorbells weren't accepted due to miscalculations performed
                based on number of CPUs. There is no need for basing these
                calculations on #cpus at this stage.

    Introduced: Day 1.

    Relevance:  RoCE.

12. Problem:    Firmware does not pass the RSP_INFO to the driver (only pass
                the SENSE_DATA).

    Change:     (FW FCoE) Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  FCoE.

13. Problem:    CQ78240 - Assertion when driver unload or reboot is performed
                after RDMA traffic.

    Change:     (FW RoCE) Fix RQ Flushing firmware flow.

    Introduced: 8.2.7.0.

    Relevance:  RoCE.

14. Problem:    CQ78105 - IGU attention igu_cmd_fid_not_match while loading PF0.

    Change:     (FW) Fix FLR Final Cleanup firmware flow.

    Introduced: Day 1.

    Relevance:  All.

15. Problem:    CQ78281 - Assertion while running RDMA traffic with PFC enabled
                with 8 queue pairs.

    Change:     (FW) Fix BD ring synchronization problem in relevant firmware
                flow.

    Introduced: 8.2.1.0.

    Relevance:  RoCE.

16. Problem:    Untagged as default behavior might cause an assertion.

    Change:     (FW) Fix Eth filter initialization logic.

    Introduced: 8.2.1.0.

    Relevance:  L2.

17. Problem:    In Case of FLR mode with Light L2 connection HW may get stuck.

    Change:     (FW) Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  All.

18. Problem:    In Case of Reloading PF without unloading and reloading driver
                SB is written with old consumer.

    Change:     (FW) Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  All.

19. Problem:    Firmware handles PBL wrong in Case of 2 or 1 Pbl Pages.

    Change:     (FW) Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  All.

20. Problem:    Terminate connection ramrod may be stuck while terminating many
                connections.

    Change:     (FW FCoE) Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  FCoE.

21. Problem:    HW attention in retransmit scenario.

    Change:     (FW iSCSI) Fix activity counter logic in retransmit flow.

    Introduced: 8.0.0.6.

    Relevance:  iSCSI.

22. Problem:    CQ78314 - transmission may stop after TCP send window is closed.

    Change:     (FW iSCSI) Fix SQ/R2TQ fetch logic in transmit flow.

    Introduced: 0.9.5.0.

    Relevance:  iSCSI.

23. Problem:    Driver unload during RDMA Read operation may cause wrong CQE
                generation.

    Change:     (FW RoCE) Fix calculation of packets per operation code.

    Introduced: Day 1.

    Relevance:  RoCE.

Enhancements:
-------------
 1. Request:    Add VFs anti-spoofing support.

 2. Request:    Qed self test initial support.

 3. Request:    Change the doorbells mapping to be write combining by default.

 4. Request:    Remove 20G speed support from qed.

 5. Request:    Add qed support for link pause configuration.

 6. Request:    Major restructuring of qed sources; added `sources' subdir
                for most of the non-generated qed sources.

 7. Request:    qed_mcp_drain() now returns only after drain period is over.

 8. Request:    VF RXQ update support.

 9. Request:    VF Vport Update SGE/TPA support.

10. Request:    Add infrastructure to support Secure Nvram.

11. Request:    VFs are using their own PQs [required for VF rate-shaping].

12. Request:    (FW RoCE) Add support for "DMA MR". Sges with key of such memory
                will hold physical address.

Version 8.2.4.0 (Feb 26, 2015)
==============================
Internal FW 8.2.7.0

Fixes:
------
 1. Problem:    tpa_max_size is calculated in a way that only 16 segments are
                being aggregated.

    Change:     Change the tpa_max_size calculation so max_sges_num will be the
                upper limiter for tpa aggregations.

    Introduced: Day 1.

    Relevance:  L2.

 2. Problem:    Incorrect shadow mb register after comming back from D3.

    Change:     When comming back from hiberbate state, read the mb shadow
                after we call qed_mcp_load_req request.

    Introduced: Day 1.

    Relevance:  L2.

 3. Problem:    Wrong device capabilities reported for maximum number of
                outstanding work requests send or Receive queue.

    Change:     Correct calculation of maximum number.

    Introduced: Day 1.

    Relevance:  RoCE.

 4. Problem:    Dynamic ILT memory allocated by RoCE device was not freed on
                RoCE driver unload.

    Change:     Free RoCE ILT memory on RoCE driver unload.

    Introduced: Day 1.

    Relevance:  RoCE.

 5. Problem:    Memory leakage when reconfiguring qm info upon DCBx update.

    Change:     Free qm info memory before re-initialize it.

    Introduced: 8.2.2.0.

    Relevance:  DCBx.

 6. Problem:    CQ77989 - Chip may hang during stress test with L2 and
                non L2 traffic.

    Change:     Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  All.

 7. Problem:    Anti spoofing did not work with default Vlan.

    Change:     Fix relevant firmware flow.

    Introduced: 8.2.1.0.

    Relevance:  SRIOV.

 8. Problem:    Pause PFC not working properly on engine 1 in 2x50 mode.
                Also, PAUSE and PFC handling may be less than optimal in 4x10
                Eagle mode (Firmware wokaround was operational though HW
                handling is okay in these modes).

    Change:     Activate Firmware workaround in 2x50, do not activate it in
                4x10 Eagle.

    Introduced: 8.2.0.0.

    Relevance:  Scenarios involving Pause / PFC and 4x10 Eagle or 2x50.

Enhancements:
-------------
 1. Request:    Debug feature using debugfs, printing current information of
                driver status according to the key that was inserted.

 2. Request:    Option for choosing from which hwfn debug data will be printed.

 3. Request:    Add support for guest VLAN filtering on VFs.

 4. Request:    Add support for accept any VLAN mode on PFs and VFs.

 5. Request:    Disable relaxed ordering in the PCI config space till the root
                cause for the performance drop is found.

 6. Request:    Initial firmware error handling for abortive peer disconnect
                scenario during traffic.

 7. Request:    Initialize personality according to shmem value.

Version 8.2.3.0 (Feb 12, 2015)
==============================
Internal FW 8.2.4.0

Fixes:
------
 1. Problem:    BRB discard and truncate statistics are incorrect.

    Change:     Fix logic in qed_get_vport_stats().

    Introduced: 8.2.2.0.

    Relevance:  All.

 2. Problem:    DCBx set as enabled to zeroed priorities and zeroed TCs when
                DCBx negotiation failed, instead of being set to disabled.

    Change:     Use new indication for MFW on whether negotiation succeeded
                and communicate the same to storm FW.

    Introduced: 8.2.2.0.

    Relevance:  DCBx.

 3. Problem:    ll2 connections use the wrong protocol in DCBx flows in FW.

    Change:     Utilize api for supplying ll2 connections with their protocol.

    Introduced: 8.2.2.0.

    Relevance:  DCBx.

Enhancements:
-------------
 1. Request:    Support PFC on engine 1 by implementing FW workaround for
                Eagle A0 PFC HW bug.

Version 8.2.2.0 (Feb 11, 2015)
==============================
Internal FW 8.2.4.0

Fixes:
------
 1. Problem:    Unloading a 100g interface fails.

    Change:     Clear the enable_fid only after all hw-functions are unloaded.

    Introduced: 8.0.0.3.

    Relevance:  100g.

 2. Problem:    Statistics are counted only for first hw-function.

    Change:     Correct loops on hw-function when gathering statistics.

    Introduced: Day 1.

    Relevance:  100g.

 3. Problem:    Vlan interface creation attempts a NULL pointer dereference.

    Change:     Correct check of RSS struct in vport update.

    Introduced: Day 1.

    Relevance:  100g on RH6.x.

 4. Problem:    CQ77101- machine crashes due to list corruption.

    Change:     Fix the error flows of the SPQ.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    `ip link show' crashes on an interface with IOV capability.

    Change:     Access the PF's view of the bulletin boards instead of vf's.

    Introduced: 8.2.1.0.

    Relevance:  SRIOV.

 6. Problem:    Sending COMMON_RAMROD_PF_STOP ramrod unfer traffic may stall
                ramrod processing.

    Change:     (FW) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

 7. Problem:    Under heavy traffic, low proabability that local operation
                with fence might cause the QP not to post a CQE.

    Change:     (FW RoCE) Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  RoCE.

 8. Problem:    PFC packets are not honored on port 1.

    Change:     (FW) Implement workaround that will receive PFC packets in FW
                and configure the hardware accordingly.

    Introduced: Day 1.

    Relevance:  2x40Gb A0.

 9. Problem:    Tx start after Tx stop on same CID causes firmware assert.

    Change:     (FW LL2) Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  LL2.

10. Problem:    Packets vlan-tagged with id 0 will be discarded if no vlan
                tag was defined for the QP/connection.

    Change:     (FW RoCE, ISCSI) Fix relevnat firmware flow.

    Introduced: Day 1.

    Relevance:  RoCE, ISCSI.

11. Problem:    Potential overlap in resource allocated for RoCE CNQs and
                ISCSI/FCoE CMDQS/CQS in npar/multi function, when each function
                is configured with a different personality.

    Change:     RoCE CNQs and ISCSI/FCoE CMDQS/CQS share the same resource.
                Fixed code to take this into account.

    Introduced: Day 1.

    Relevance:  Multi-Function ISCSI/FCoE/RoCE.

Enhancements:
-------------
 1. Request:    Implement static bandwidth configuration for NPAR1.0.

 2. Request:    In 2x40g Single-Function mode, add support for 120 vfs-per-pf.

 3. Request:    Change attention behaviour - print attentions by default, and
                don't clear interrupts so they'll appear in idle checks later.

 4. Request:    Initial DCBx support. qed detects DCBx negotiation results
                and reconfigures QM and updates storm FW according to results.

Version 8.2.1.0 (Feb 04, 2015)
==============================
Internal FW 8.2.2.0

 1. Problem:    CQ76894, CQ76942 - very basic failures [e.g., probe fails,
                no traffic] when clock-slowdown is enabled.

    Change:     Remove automatic enablement and integrate into driver flows
                that access interrupt table in pci.

    Introduced: Day 1.

    Relevance:  Clock-slowdown.

 2. Problem:    cq77669 - ethtool failed to revert back speed settings from 10G
                to 40G.

    Change:     Added code to populate the supported-speed bitmask from the
                nvram data.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ77564 - Fix link speed for VFs on link state configuration.

    Change:     Set speed according to maximum supported by HW.

    Introduced: Day 1.

    Relevance:  SRIOV.

 4. Problem:    Starting only partial number of vfs may lead to panic.

    Change:     Enforce limit on number of queues utilized by VFs.

    Introduced: 8.2.0.0.

    Relevance:  VF rss [SRIOV].

 5. Problem:    Traffic passes only if first PF on engine is running.

    Change:     (FW ETH) Fix registers init values.

    Introduced: Day 1.

    Relevance:  NPAR1.0.

 6. Problem:    TPH control for Rx packet placement is not functional
                for Rx connections without SGL rings.

    Change:     (FW ETH) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

 7. Problem:    Wrong Rx producer received after Rx queue restart.

    Change:     (FW ETH) Add CAU flush to slowpath flow.

    Introduced: Day 1.

    Relevance:  All.

 8. Problem:    Posting WQE that will require 256+ packets will cause the
                QP traffic to halt.

    Change:     (FW RoCE) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

 9. Problem:    TCP Option 2 timestamp error.

    Change:     (FW) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

10. Problem:    FW error in case of FIN tcp segment.

    Change:     (FW ISCSI) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

11. Problem:    HW attention in case of repeated transmit.

    Change:     (FW ISCSI) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

12. Problem:    SCSI timeout expiration.

    Change:     (FW ISCSI) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

13. Problem:    RSP with payload of less than 24B causes error.

    Change:     (FW FCoE) Handle such packets.

    Introduced: Day 1.

    Relevance:  All.

14. Problem:    FCoE with MAC error may cause HW to stuck.

    Change:     (FW FCoE) Fix Rx MAC error flow.

    Introduced: Day 1.

    Relevance:  All.

15. Problem:    Write tasks with SGEs that are not aligned to page size
                may cause FW to stuck.

    Change:     (FW FCoE) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

16. Problem:    CQ76456 - FW asserts a short time after sending a 4K read.

    Change:     (FW FCoE) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

17. Problem:    RSP with resid_underflow = 0 arriving before FCP_DATA causes
                FW to report an error.

    Change:     (FW FCoE) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  All.

18. Problem:    CQ77279 - Rx queue arriving after queue stop cause FW to assert.

    Change:     (FW LL2) Fix Rx MAC Error flow.

    Introduced: Day 1.

    Relevance:  All.

19. Problem:    Ethernet FCS error on port0 increment statistics of port1.

    Change:     (FW) Fix relevant FW flows.

    Introduced: Day 1.

    Relevance:  Multi Function devices.

20. Problem:    HW attention is observed during initialization.

    Change:     (FW Storage) Fix CMDQ initialization.

    Introduced: 8.0.0.1.

    Relevance:  FCoE/ISCSI Initiator.

21. Problem:    CQ77508 - valid packets are dropped after false expiration.

    Change:     (FW FCoE) Fix relevant flows.

    Introduced: Day 1.

    Relevance:  All.

22. Problem:    De-registering a memory region which is used for incoming read
                requests on a QP and was moved to error state may lead to HW
                attetnion.

    Change:     (FW RoCE) Fix relevant flows.

    Introduced: Day 1.

    Relevance:  All.

23. Problem:    CQ77696 - fatal assert while running fcoe traffic.

    Change:     Initializes QM correctly with the number of tasks supported.

    Introduced: Day 1.

    Relevance:  Fcoe.

24. Problem:    CQ77765: Hardware attention when a packet with destination qp0
                arrives before any QP was offloaded.

    Change:     Initialize HW not to try offloading RoCE packets according to
                destination qp before first RoCE QP is offloaded.

    Introduced: Day 1.

    Relevance:  RoCE Personality.

Enhancements:
-------------
 1. Request:    Implement VF multicast filtering and RX/TX accept flags.

 2. Request:    Implement NIG drain.

 3. Request:    Use qed_vf_api.h and qed_iov_api.h for upper-layer api of
                IOV functionality.

 4. Request:    Mask AVS stop attention during interrupt init.

 5. Request:    (FW) Filter replacement only remove matching filters
                [e.g., replacing vlan would remove only existing vlans].

 6. Request:    CQ76942, CQ76894 - added function for [de]activating
                clock-slowdown.

 7. Request:    Implement VF update rss as part of VPORT update.

 8. Request:    Pass speed capabilities via bulletin board to VFs.

 9. Request:    Remove the driver configuration of PSWRQ2 R/W MBS since is done
                by MFW (starting at MFW 8.2.2.0).

10. Request:    Implemented new interrupt mode for polling.

11. Request:    int_mode propagates via qed_hw_init(); No need for upper
                layer driver to set it explicitly.

12. Request:    Fail resource acquisition if requesting too many PQs.

13. Request:    Added default vlan configuration to Vport Update.

14. Request:    Re-factored IOV code and added division between inner and
                outer qed users.

15. Request:    Print all possible bits in case of parity of BMB/OPTE/MCP.

Version 8.2.0.0 (Jan 11, 2015)
==============================
Internal FW 8.2.0.0

Fixes:
------
 1. Problem:    When enabling sriov, PF fails to clean errors for high VFs.

    Change:     Fix register offset calculate for pglue_b clear errors.

    Introduced: Day 1.

    Relevance:  SRIOV.

 2. Problem:    When enabling many VFs, traffic stops on all interfaces.

    Change:     Correct calculation of Rx queues indices for VFs.

    Introduced: Day 1.

    Relevance:  SRIOV.

 3. Problem:    Disabling sriov on higher PFs can lead to chip getting stuck.

    Change:     Pass the VF's opaque vfid during VF initialization.

    Introduced: Day 1.

    Relevance:  SRIOV.

 4. Problem:    Disabling sriov while chip is busy can stuck chip.

    Change:     Prevent race between final cleanup and sriov disable flow.

    Introduced: Day 1.

    Relevance:  SRIOV.

 5. Problem:    Disabling sriov while num_vfs < total vfs can lead to stop
                ramrods being sent for disabled VFs.

    Change:     Correct setting of vf state even if final cleanup isn't sent.

    Introduced: Day 1.

    Relevance:  SRIOV.

 6. Problem:    pglue_b attentions appear in system logs after FLR.

    Change:     Cleanup the PF information for a vf after it is FLR-ed.

    Introduced: Day 1.

    Relevance:  SRIOV.

 7. Problem:    Vlan-tagged traffic from VFs fail to reach destination.

    Change:     Pass VF request for vlan stripping on hw channel.

    Introduced: Day 1.

    Relevance:  SRIOV.

 8. Problem:    Do not process any pending message after VF FLR and
                continue handling events after FLR handling in IOV task.

    Change:     Clear pending event bit for the VF which has been FLRed
                and do not return after handling FLR in IOV task.

    Introduced: Day 1.

    Relevance:  SRIOV.

 9. Problem:    Sequence of several SRIOV disable procedures get stuck.

    Change:     (FW) Fix relevant FW flow.

    Introduced: Day 1.

    Relevance:  SRIOV

10. Problem:    Wrong value returned to MCP at the end of SRIOV disable flow.

    Change:     (FW) Fix relevant FW flow.

    Introduced: Day 1.

    Relevance:  SRIOV.

11. Problem:    RSS parities appear when using high vports IDs.

    Change:     (FW ETH) Fix RSS resource allocation flow.

    Introduced: Day 1.

    Relevance:  ETH.

12. Problem:    CQ77135 - VF driver will work only if BAR2 is configured.

    Change:     Do not use BAR 2 for VFs.

    Introduced: Day 1.

    Relevance:  SRIOV.

13. Problem:    VF interface doesn’t see hypervisor forced MAC.

    Change:     Schedule IOV task after registering ETH ops.

    Introduced: Day 1.

    Relevance:  SRIOV.

14. Problem:    cq75387 - statistics aren't cleared after interface down/up.

    Change:     Compensate for non-resetting port statistics using baseline.

    Introduced: Day 1.

    Relevance:  All.

15. Problem:    VFs are marked as STOPPED after FLR, even if they're restarted.

    Change:     Don't force STOPPED state unless previously at RESET state.

    Introduced: Day 1.

    Relevance:  SRIOV.

16. Problem:    Posting atomic operation WQE will cause hardware attention.

    Change:     (FW RoCE) Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  RoCE.

17. Problem:    FW error in case of TCP segment that includes only iSCSI
                padding or digest (without iSCSI data).

    Change:     (FW iSCSI) Fix relevant firmware flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

18. Problem:    VF RX producers in FW has old value after sending RXQ START.

    Change:     Initializing rx producers in VF before sending RXQ START
                request.

    Introduced: Day 1.

    Relevance:  SRIOV.

Enhancements:
-------------
 1. Request:    Implement polling on HW resources prior to FLR final cleanup.

 2. Request:    Prevent initialization of early PCI error [i.e., when reads
                return all Fs].

 3. Request:    Avoid out-of-bound access to indices of the firmware resources
                allocated for each function.

 4. Request:    Add inter-PF Tx switching in NPAR mode.

 5. Request:    Add a variable (is_mf) in qed_dev_info structure to indicate
                device is in MF mode.

 6. Request:    Add support for VF rss.

 7. Request:    Pass FW & MFW versions to VF on acquire response TLV, and to
                qede via the get_dev_info() API.

 8. Request:    Add initial support for Physical Device Assignment [of PFs].

 9. Request:    Add infrastructure for adding unit tests for qed/qede drivers.
                Add qm_reconfiguration and ets tests.

10. Request:    Read function information from shmem during function init.

11. Request:    ROCE: adding support of cq interrupt moderation feature.

12. Request:    Add qed_mcp_api.h for upper-layer api of mcp functionality.

13. Request:    Support processing asynchronous iSCSI events.

14. Request:    ROCE: Add vlan support.

15. Request:    Add support to use VPORT update TLV as list of extended tlvs.

16. Request:    Add support to allow the activation of non-continuous VFs.

Version 8.1.3.0 (Nov 24, 2014)
==============================
Internal FW 8.1.4.0

Fixes:
------
 1. Problem:    Sriov enable/disable loop eventually fails.

    Change:     Prevent SBs leak during vf release.

    Introduced: Day 1.

    Relevance:  SRIOV.

 2. Problem:    Nonsynchronized flows of VF-PF channel cause FW assertion.

    Change:     Serialize VF to PF channel using mutex lock.

    Introduced: Day 1.

    Relevance:  SRIOV.

 3. Problem:    When using Many VFs per-PF, device might cease to work.

    Change:     Prevent more than 16 VFs in MF mode, 64 in 4-port SF mode
                (per-PF).

    Introduced: Day 1.

    Relevance:  SRIOV.

 4. Problem:    Enabling SRIOV on a running PF could lead to FW assert.

    Change:     Ignore old distro initial setting of VF number in PCI
                configuration space.

    Introduced: 8.1.2.0.

    Relevance:  SRIOV on RH6.5.

Enhancements:
-------------
 1. Request:    Enable the protocol drivers to set link speed value to
                10G/20G/40G.

Version 8.1.2.0 (Nov 18, 2014)
==============================
Internal FW 8.1.4.0

Fixes:
------
 1. Problem:    VF's FLR sequence is failing at the 9th FLR request.

    Change:     (FW) Fix relevant flow.

    Introduced: Day 1.

    Relevance:  SRIOV.

 2. Problem:    VFs originating from PFs other than PF0/1 fail to probe.

    Change:     Fix several miscalculated indices used for initialization
                on PF side.

    Introduced: Day 1.

    Relevance:  SRIOV.

Enhancements:
-------------
 1. Request:    Added initializations for slowdown mode.
                NOTICE - BREAKS BACKWARD COMPATABILITY WITH MFW OLDER THAN
                8.1.1.0.

 2. Request:    Added callback registration for iscsi/fcoe protocols.

 3. Request:    Fastpath interrupt configuration is moved to communal function
                [was eth-only].

 4. Request:    Initial implementation of most basic offload API for storage.

 5. Request:    Initial support in NPAR1.0.

 6. Request:    Added support for sriov disable.

 7. Request:    Enable Tx-Switching between PFs and their child VFs.

Version 8.1.1.0 (Oct 30, 2014)
==============================
Internal FW 8.1.2.0

Fixes:
------
 1. Problem:    VF function-level reset cause MFW message flood.

    Change:     (FW) fix MCP shmem address calculation.

    Introduced: Day 1.

    Relevance:  SRIOV.

 2. Problem:    CQ75600 - Offloaded packets with MAC Error cause Rx path
                to stall.

    Change:     (FW) fix relevant flow.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ75314 - Changing and the returning to default MAC generates
                a fatal FW assertion.

    Change:     (ETH) Make classification configuration more forgiving; Don't
                assert when re-configuring an already configured unicast MAC.

    Introduced: Day 1.

    Relevance:  L2.

 4. Problem:    MAC broadcast when 20 VFs are enabled generates a fatal
                BRB attention.

    Change:     (ETH) Allow duplication by FW of a packet up to the maximum
                number of vports.

    Introduced: Day 1.

    Releavance: SRIOV.

Enhancements:
-------------
 1. Request:    Enable Tx-Switching between VFs originating from same PF
                by default.

Version 8.1.0.0 (Oct 07, 2014)
==============================
Internal FW 8.0.3.0

Fixes:
------
 1. Problem:    grcDump via debugfs causes a lot of attentions and parities.

    Change:     Changes in method of parity register setting during flow.

    Introduced: 8.0.1.0.

    Relevance:  All.

 2. Problem:    VF open flow causes a scheduling while atomic bug.

    Change:     Changed flag from GFP_KERNEL to GFP_ATOMIC while allocating
                memory for filter.

    Introduced: day 1.

    Relevance:  All.

 3. Problem:    The update of the RSS values in case of CMT causes to spreading
                of the Rx data on only 2 queues.

    Change:     Changed the way the values are updated so all queues are
                divided between the 2 hwfns.

    Introduced: day 1.

    Relevance:  All.

 4. Problem:    FW assertion generate an attention flood.

    Change:     Mask FW assertion once it's hit.

    Introduced: Day 1.

    Relevance:  All.

 5. Problem:    The link is set twice in case of CMT (per hwfn).

    Change:     Limit the link setting to only the first hwfn.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Added common ops for obtaining idle_chk and grcDump for protocol
                drivers.

Version 8.0.2.0 (Sep 28, 2014)
==============================
Internal FW 8.0.3.0

Fixes:
------
 1. Problem:    CQ57909 soft lockup on interface load/unload cycle.

    Change:     Release ptt on stats reset flow.

    Introduced: QED 8.0.0.6.

    Relevance:  All QED.

Version 8.0.1.0 (Sep 24, 2014)
==============================
Internal FW 8.0.2.1

Enhancements:
-------------
 1. Request:    CQ75808 Rebrand QED to QLogic.

Version 8.0.0.8 (Sep 15, 2014)
==============================
Internal FW 8.0.0.7

Enhancements:
-------------
 1. Request:    Support driver load and traffic on B0 emulation.

Version 8.0.0.7 (Sep 11, 2014)
==============================

Fixes:
------
 1. Problem:    ethtool -i on VF interface leads to driver crash.

    Change:     The implementaion (get_version) tries to access the MFW, which
                is not avaialble for VF. The fix is to fail the mfw access
                for VF interfaces.

    Introduced: day 1.

    Relevance:  All.

 2. Problem:    Kernel crash during ethtool -S for VF.

    Change:     Do not read portstats if device does not support it.

    Introduced: 8.0.0.3.

    Relevance:  Devices w/o port statistics.

Version 8.0.0.6 (Sep 04, 2014)
===============================
Internal FW 8.0.0.7 (9/3/14 - with GRO fix ontop of 8.0.0.7)

Fixes:
------
 1. Problem:    Under traffic ramrod may get stuck.

    Change:     Fix the relevant firmware flow.

    Introduced: day 1.

    Relevance:  All.

 2. Problem:    In TPA GRO mode, aggregations do not reach maximum aggregation
                size, when number of streams are open.

    Change:     Restriction for continuously of identification field in ipV4
                header removed.

    Introduced: day 1.

    Relevance:  All.

 3. Problem:    Function related statistics maybe non zero upon device bringup.

    Change:     Reset stats on vport setup.

    Introduced: 8.0.0.3.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Added qed_get_mfw_ver() API for getting the management
                firmware version value.

Version 8.0.0.5 (Aug 07, 2014)
==============================
Internal FW 8.0.0.5

Enhancements:
-------------
 1. Request:    Use FW 8.0.0.5 to allow TPA/GRO support.

Version 8.0.0.4 (Jul 29, 2014)
==============================
Internal FW 8.0.0.3

Fixes:
------

 1. Problem:    PSWHST attentions flood occurs, when driver reads STORM stats.

    Change:     Perform d-words reads instead of using memcpy.

    Introduced: 8.0.0.3.

 2. Problem:    In 4-port mode, some PFs read incorrect default link
                configuration from shmem.

    Change:     Use MFW's port-macros instead of relative port in engine.

    Introduced: Day 1.

Enhancements:
-------------
 1. Request:    expose grcDump capability to external modules

Version 8.0.0.3 (July 22, 2014)
===============================
Internal FW 8.0.0.3

Enhancements:
-------------
 1. Request:    Added get_vf_config() l2 operation.

 2. Request:    Added set_vf_link_state() l2 operation.

Version 8.0.0.2 (10 July, 2014)
===============================
Internal FW 8.0.0.3

Fixes:
------

 1. Problem:    In certain cases parity error was caused due to unnecessary
                access to the TPH array.

    Change:     (ETH) SGE flags were zeroed on the TX path - and now the TPH access
                is disabled.

    Introduced: day 1.

 2. Problem:    Responder handling of Send with Invalidate creates a HW attention.

    Change:     (ROCE) Fix the relevant firmware flow.

    Introduced: day 1.

 3. Problem:    RNR-NAK send flow in Responder creates HW attention.

    Change:     (ROCE) Correct RNR-NAK creation flow.

    Introduced: day 1.

 4. Problem:    SQ/R2TQ WQEs are not fetched following uint16 wrap-arround.

    Change:     (iSCSI) Correct the WQE fetch flow.

    Introduced: day 1.

Enhancements:
-------------
 1. Request:    Added can_link_change() common operation.
