============================ R E L E A S E N O T E S ============================ QED 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 ecore_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 ecore 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.