Lenovo YUM Repository
Release and Change History
Bundle Release Information: |
Targeted Server Family (Machine Type): System x3650 M5 (8871) |
Targeted Operating System: RHEL7.4 |
YUM Repository Build Date: 2019_04_23 |
Device: |
Broadcom NetXtreme II ML2 Dual Port 10GbE SFP+ for IBM System x | Part Number: 00D2028 Feature Code: A40S |
||||
---|---|---|---|---|---|
PCIe Sub Vendor ID: 0x1014 PCIe Sub Device ID: 0x04A0 |
Release History: |
Continued Support in 19A - Latest Release | Change History Documents |
Firmware | Firmware Name | Version | |
---|---|---|---|
Online Qlogic NetXtreme II Firmware Utility | nx2-7.15.23.03 | ||
Drivers | Driver Name | Discreate Package Download | Version |
netxtreme2 kernel driver |
kmod-netxtreme2-7.14.48- 1.rhel7u4.x86_64.rpm | 7.14.48 |
Firmware | Firmware Name | Version | |
---|---|---|---|
Online Qlogic NetXtreme II Firmware Utility | nx2-7.14.46.10 | ||
Drivers | Driver Name | Discreate Package Download | Version |
netxtreme2 kernel driver |
kmod-netxtreme2-7.14.44- 1.rhel7u4.x86_64.rpm | 7.14.44 |
Firmware | Firmware Name | Version | |
---|---|---|---|
Online Qlogic NetXtreme II Firmware Utility | 20.17b.08.22b | ||
Drivers | Driver Name | Discreate Package Download | Version |
InBox Driver provided by Linux Distro install supported |
Release 18D Change History Documents |
QLogic (R) Corporation Firmware Update Utility for Lenovo servers. See readme for a list of changes
Lenovo Data Center Group Linux OS Support Home Page |
linux.lenovo.com |
© 2018-2019 Lenovo. All rights reserved |
============================ R E L E A S E N O T E S ============================ QLogic Linux bnx2 and 10GigE Virtual Bus Drivers(VBD) Version 2.2.5t 03/5/2018 Copyright (c) 2018 Lenovo Corporation All rights reserved NOTE: These driver release information is the original from the vendor. They include multiple driver change histories for multiple Linux Operating Systems. Some drivers may or may not pertain to all Linux Operating Systems but are part of this file for references. ==================================================================================================== ********************************************************************************************** ********************************************************************************************** Original file from Vendor... BNX2 ********************************************************************************************** ********************************************************************************************** ============================ R E L E A S E N O T E S ============================ QLogic BCM57710/BCM57711/BCM57711E/BCM57712 10 GigE bnx2x driver For Linux QLogic BCM57800/BCM57810/BCM57811/BCM57840 10/20 GigE bnx2x driver For Linux Copyright (c) 2007-2014 QLogic Corporation Copyright (c) 2014-2015 QLogic Corporation All rights reserved. Version 1.714.17 (Mar 30, 2018) =============================== Internal FW 7.13.11 Enhancements: ------------- 1. Request: Add module parameter to enable the interrupt mitigation functionality. Version 1.714.15 (Feb 14, 2018) =============================== Internal FW 7.13.10 Fixes: ------ 1. Problem: CQ99493 - Assert if vlan filter mode is set on both the ports. Change: Fix issue in the designated VLAN id calculation. Introduced: Day 1. Relevance: Vlan mode. 2. Problem: CQ99447 - Not able to create vlan interface in QinQ vlan mode. Change: Advertise vlan offload support only in the normal vlan mode. Introduced: 1.714.14. Relevance: RHEL7.4. 3. Problem: CQ99504 - PVID priority is not getting set in vlan mode. Change: Pass pvid pcp value to the firmware in the vlan mode. Introduced: Day 1. Relevance: Vlan mode. 4. Problem: CQ99516 - QinQ: Ping is successful but iperf/sock traffic fails. Change: Configure pbf to allow parsing of the double tagged packets. Introduced: Day 1. Relevance: Vlan mode. Enhancements: ------------- 1. Request: Add allow_vf_mac_change_mode module parameter to allow VF to change it's MAC address despite PF has set a force MAC. Version 1.714.14 (Jan 30, 2018) =============================== Internal FW 7.13.10 Enhancements: ------------- 1. Request: Disable hardware error attentions when panic dump is invoked. 2. Request: Add support to dynamically change spoof check for VF. 3. Request: Add VLAN mode support - QinQ & VLAN filter modes. Version 1.714.13 (Jan 12, 2018) =============================== Internal FW 7.13.9 Fixes: ------ 1. Problem: CQ98197 - In the VM of Linux with SRIOV, the Linux VF VLAN setting was affected by the previous VF, expected to have independent setting. Change: Initialize elements of ifla_vf_info with Zero in driver to prevent stale data. Introduced: Day 1. Relevance: SRIOV. Enhancements: ------------- 1. Request: RHEL7.5 support. Version 1.714.12 (Nov 23, 2017) =============================== Internal FW 7.13.9 Fixes: ------ 1. Problem: CQ97495 - bnx2x Latency of up to 180ms on transmit on Flex/VC. CQ78001 - BL460c Gen9 LDAP performance issue 630FLB. Change: Add module parameter to configure the fairness threshold values. Introduced: Day 1. Relevance: All. Version 1.714.11 (Nov 14, 2017) =============================== Internal FW 7.13.8 Fixes: ------ 1. Problem: Build fails with SLE15 beta1 kernel. Change: Backport missing code from upstream. Introduced: Day 1. Relevance: Newer kernels. 2. Problem: CQ97847 - No link on 10GBaseT card. Change: Fix timing issue in PHY command handler for SET_PAIR_SWAP command. Introduced: CQ91457. Relevance: External PHY. Enhancements: ------------- 1. Request: Add storm FW version to ethtool driver query output. Version 1.714.10 (Nov 07, 2017) =============================== Internal FW 7.13.8 Fixes: ------ 1. Problem: CQ96463 - Issue getting traffic from a SR-IOV VM to a Virt-IO VM through the same physical function (PF). Change: Add module param(full_promiscous) support to accept all unmatched ucast packets for promiscous mode. Introduced: Day 1. Relevance: All. 2. Problem: Not able to set PVID for VFs in rhel7.4 using ip tool. Change: Add support to set PVID for VFs through PF using ip tool. Introduced: Day 1. Relevance: RHEL7.4. Enhancements: ------------- 1. Request: Add support for retrieving link error stats and the speed_mask. Version 1.714.9 (Sep 26, 2017) ============================== Internal FW 7.13.8 Fixes: ------ 1. Problem: CQ94192 – OEM link failure when switch reboots. Change: If MAC faults are detected, driver should update link status to MFW after resolution. Introduced: Day 1. Relevance: OEM specific. Version 1.714.8 (Sep 13, 2017) ============================== Internal FW 7.13.8 Fixes: ------ 1. Problem: Recovery from tx timeout causing server crash. Change: Indicate link-down to the OS when Tx-timeout is detected. Introduced: Day 1. Relevance: Debian Linux. 2. Problem: Some older Linux kernels do not handle aggregations well for inband vlan traffic which leads to poor performance. Change: Disable FW aggregation for inband vlan traffic. Introduced: Day 1. Relevance: All. Version 1.714.7 (Aug 04, 2017) ============================== Internal FW 7.13.8 Enhancements: ------------- 1. Request: Add to ethtool-i support for MBI version. Version 1.714.6 (Jul 13, 2017) ============================== Internal FW 7.13.7 Fixes: ------ 1. Problem: "Failed to clear multicast configuration 1" gets logged. Change: Don't log non-failures when cleaning multicasts. Introduced: 1.713.35. Relevance: 578xx. 2. Problem: cq94666 - 'Init 0' fails in presence of VFs. Change: Prevent VFs from communicating with PF after their release. Introduced: Day 1. Relevance: SRIOV. 3. Problem: QL-632 - There's a constellation where SW FCoE is enabled. Change: Zero bad mac fip address if no FCoE connections are supported. Introduced: Day 1. Relevance: 57711. 4. Problem: CQ95011 - Inner-reload while vlan is configured causes asasert. Change: Remove all configured vlans as part of unload sequence. Introduced: 1.714.2. Relevance: All. Version 1.714.5 (Jun 16, 2017) ============================== Internal FW 7.13.7 Fixes: ------ 1. Problem: Multi-CoS isn't working. All traffic is transmitted via TC0. Change: Modulo queue in ndo_select_queue by tss * cos number. Introduced: 1.78.21. Relevance: Mutli CoS. 2. Problem: CQ94454 - Not allowed to change mtu to >1500. Change: Backport missing code from upstream. Introduced: Day 1. Relevance: Newer kernels. 3. Problem: Disabling txlvan from VF leads it to become malicious. Change: Consider inband vlan when filling egress bds. Introduced: Day 1. Relevance: SRIOV. 4. Problem: IOMMU periodically logs blocked writes when VF is malicious. Change: Prevent from asking firmware to collect statistics for VF. Introduced: Day 1. Relevance: SRIOV. Enhancements: ------------- 1. Request: When facing a DMAE timeut, periodically sleep to allow heart beat and prevent systems from crashing. Version 1.714.4 (Jun 01, 2017) ============================== Internal FW 7.13.7 Fixes: ------ 1. Problem: Server crashes when clock related functionality/APIs are invoked on the interface in down state. Change: Fail the ptp timer read/set request when the interface is down. Introduced: Day 1. Relevance: PTP when the interface is disabled. Enhancements: ------------- 1. Request: Add support in CNIC collection of SFP diagnostics. 2. Request: Support compilation on RHEL7.4. Version 1.714.3 (Mar 30, 2017) ============================== Internal FW 7.13.6 Fixes: ------ 1. Problem: Vxlan/Geneve offload doesn't work on newest kernels. Change: Support new udp-tunnel NDOs for configuring ports. Introduced: Day 1. Relevance: ETH, 4.8+ kernels. 2. Problem: FW assertion when UDP tunnel is configured. Change: Prevent UDP tunnel configurations for 577xx devices. Introduced: 1.712.30. Relevance: 577xx adapters. 3. Problem: After setting system-time to PHC clock, the PHC clock value is reduced by 100 times. Change: Driver timespec64_to_ns() implementation need to use multiplier 'NSEC_PER_SEC' for converting value in seconds to nano seconds. Introduced: Day 1. Relevance: PTP on RHEL7.0/7.1 where timespec64_to_ns() is not defined. 4. Problem: CQ90354 - When Rx ring is depleted and aggregation is in the middle, firmware may start corrupting host memory. Change: (FW) Fix SGE fetch when no BDs. Introduced: Day 1. Relevance: GRO/LRO. Enhancements: ------------- 1. Request: Add compilation option for driver to load in loopback mode. 2. Request: Spill dump [and collect internal grcdump] during Tx timeout. 3. Request: CQ90821 - Add module parameter "use_random_vf_mac" - when set, VFs will be created with a random forced local MAC address. Version 1.714.2 (Nov 11, 2016) ============================== Internal FW 7.13.4 Fixes: ------ 1. Problem: CQ87202 - FW doesn't disacrd FIP frames unintended to PF. Change: (FW FCoE) Disacrd All-ENode-MAC fip-packets, or if their MAC is different that the device's MAC. Introduced: Day 1. Relevance: FCoE. 2. Problem: Packets with vlan tag 0 might be processed incorrectly. Change: (FW ETH) Correct address calculations for higher Rx clients. Introduced: 1.712.25. Relevance: ETH. Version 1.714.1 (Oct 20, 2016) ============================== Internal FW 7.13.3 Fixes: ------ 1. Problem: System might crash if experiencing a PCI permanent failure. Change: Check for PCI channel state before resetting HW. Introduced: Day 1. Relevance: All. 2. Problem: CQ87673 - Driver initialization might fail after preboot. Change: (FW) Remove initialization of PXP2_REG_PGL_INT_TSDM_*. Introduced: Day 1. Relevance: Preboot drivers. 3. Problem: CQ88979 - RX CRC errors for 1Gb jumbo frames. Change: Add 54618 PHY settings for 1000BASE-T jumbo. Introduced: Day 1. Relevance: 54618 PHY. Enhancements: ------------- 1. Request: Add support in NETIF_F_GSO_PARTIAL, allowing Tx segmentation offload for tunnels with outer csum. Version 1.714.0 (Aug 26, 2016) ============================== Internal FW 7.13.2 Fixes: ------ 1. Problem: Wrong len_on_bd reported for pure ACK packets, when TPA and vlan stripping enabled. Change: (FW) Fix packet padding flow. Introduced: 1.70.06. Relevance: LRO/GRO. 2. Problem: CQ84538 - SFP+ 2 wire management interface tBUF timing violation. Change: Fix the timing by adding software delay. Introduced: Day 1. Relevance: SFP. 3. Problem: CQ80835 - Link status incorrect for specific AOC cable. Change: Identify specific AOC cable correctly. Introduced: Day 1. Relevance: SFP. 4. Problem: CQ84541 - Switch side Link is up when the optical cable of the card receiver side is broken at power on. Change: Enable MAC if module is attached. Introduced: Day 1. Relevance: SFP. Enhancements: ------------- 1. Request: Allow vlan device creation while base interface is DOWN. Version 1.713.36 (Jun 16, 2016) =============================== Internal FW 7.13.1 Fixes: ------ 1. Problem: VF failure to acquire leaks memory. Change: Add missing memory releases in error flows. Introduced: Day 1. Relevance: All. 2. Problem: Configuring VLAN interface in ppc64 machine crashes driver. Change: Correct CID calculation on ramrod completion for BE. Introduced: Day 1. Relevance: BE. 3. Problem: VFs aren't working on ppc64. Change: Correct endianity of VF->PF communication. Introduced: Day 1. Relevance: SRIOV, BE. 4. Problem: Compilation is not working for XS7.0/Ubuntu 14.04.3 on ppc64le. Change: Fix bnx2x build errors for XS7.0/Ubuntu 14.04.3 on ppc64le. Introduced: Day 1. Relevance: All. Version 1.713.35 (May 30, 2016) =============================== Internal FW 7.13.1 Fixes: ------ 1. Problem: Tx timeouts are observed. Change: Change logic for identifying sent packets as GSO. Introduced: Day 1. Relevance: Kernel 4.0.0+. 2. Problem: BZ1300681 [RH], CQ84351 - Parity recovery under traffic is very long. Change: Don't wait for Tx completions on recovery. Introduced: Day 1. Relevance: All. 3. Problem: CQ84147 - 100Mbp/s link is not functioning. Change: Use SGMII force speed for 100/1000Mbp/s. Introduced: Day 1. Relevance: 84858 Phy. 4. Problem: CQ85343 - packet loss in presence of lots of multicast. Change: Revise config of multicast to avoid drops during reconfig. Introduced: Day 1. Relevance: 578xx. 5. Problem: Driver provides the incorrect cycle counter shift value to the kernel. This results in incorrect PHC clock readings. Change: Set the 'cycle counter shift' value to 0. Introduced: Day 1. Relevance: PTP. Enhancements: ------------- 1. Request: Add support for inner-RSS of geneve traffic. 2. Request: Remove false "FC-NPIV table with bad length" print to logs. 3. Request: Add support for RH6.8 beta2. 4. Request: Add support for SLES12 SP2. Version 1.713.05 (Feb 09, 2016) =============================== Internal FW 7.13.1 Fixes: ------ 1. Problem: System logs show "DMA-API: device driver frees DMA memory with different size". Change: Map SGEs at 4kb chunks instead of maping entire PAGE once. Introduced: 1.712.34. Relevance: PPC64. 2. Problem: Under heavy Tx load, soft lockup bugs can occur. Change: NAPI should yield after a single Tx completion round. Introduced: Day 1. Relevance: All. 3. Problem: Inner RSS for vxlan packet isn't working. Change: Correct endianess of configured UDP port. Introduced: Day 1. Relevance: BE. Enhancements: ------------- 1. Request: Remove proprietary busy-poll [CONFIG_NET_RX_BUSY_POLL] support. 2. Request: Limit waiting period for kdump kernel at 5 seconds in new kernels [in older distros, might be 5sec-per-interface]. Version 1.713.04 (Jan 25, 2016) =============================== Internal FW 7.13.1 Fixes: ------ 1. Problem: cq79285 - DCBx might be considered ON on wrong ports. Change: Looks at the per-port shmem field dcbx_en. Introduced: Day 1 [exposed by MFW fix for 4-port]. Relevance: 4-port devices, DCBx. Enhancements: ------------- 1. Request: When taking register dump, print to log that it might generate harmeless GRC timeouts. 2. Request: Add support for IEEE DCBx. Version 1.713.03 (Jan 11, 2016) =============================== Internal FW 7.13.1 Fixes: ------ 1. Problem: After enabling vxlan for both ipv4 and ipv6, disabling one would disable the offloading. Change: Add a reference counter for requests for vxlan port additions. Introduced: 1.712.30. Relevance: vxlan. 2. Problem: UDP ports for encapsualtion protocols don't work for BE. Change: Convert port from native endianess to LE when configuring. Introduced: 1.712.25. Relevance: vxlan, BE. 3. Problem: Theoretical bug when transmitting packets tagged with 2 vlans. Change: Align SKB features according to vlan capabilities. Introduced: Day 1. Relevance: Linux kernel 4.0 onward. 4. Problem: When running Vxlan traffic FW might assert. Change: Reduce the TSO MSS enforcement window for Vxlan TSO. Introduced: Day 1. Relevance: Vxlan TSO. 5. Problem: CQ81757 - RX CRC errors for 1Gb jumbo frames. Change: Add 84833 PHY settings for 1000BASE-T jumbo. Introduced: Day 1. Relevance: 84833 PHY. Enhancements: ------------- 1. Request: Add support for UEKR4. Version 1.713.02 (Nov 03, 2015) =============================== Internal FW 7.13.1 Fixes: ------ 1. Problem: CQ81900 - First 2 interfaces fail to work after boot from SAN. Change: Workaround kernel bug and don't try using probe deferral. Introduced: 1.710.02. Relevance: BFS, RH6.x. 2. Problem: Configuring UDP-tuple-based RSS causes FW assertion. Change: Prevent UDP-tuple-based RSS on older boards. Introduced: Day 1. Relevance: 57710, 57711. 3. Problem: Cont00082612 - [RHEL7.2]-Netxtreme2 driver is not installed through source tarball installation. Change: On RHEL distro check for "extra" instead of "extra/netxtreme2" before placing module in appropriate location. Introduced: 1.713.01. Relevance: Driver source installtion. Enhancements: ------------- 1. Request: BZ1271916 [RH] - Show port stats for multi-function devices. Version 1.713.01 (Sep 07, 2015) =============================== Internal FW 7.13.1 Fixes: ------ 1. Problem: CQ74074: bnx2x installed from kmod rpm does not load, if bnx2x has prior instances installed thru source code. Change: Install the module in the same location as rpm would do to set the correct hierarchy of installed modules i.e. under extra/netxtream2. Introduced: Day 1. Relevance: RHEL Linux module installtion. 2. Problem: If PVID is configured on a vf in 'down' state which was not previously set with a hypervisor-MAC, the pvid would be lost. Change: Correct condition of testing if pvid needs configuration. Introduced: 1.712.26. Relevance: SRIOV. Enhancements: ------------- 1. Request: Add support for changing outer vlan id during traffic. 2. Request: CQ81835: Add Rhel7.2 distro support. 3. Request: CQ81837: Add Sles12sp1 distro support. 4. Request: CQ80317 - add 'tx_exhaustion_events' statistics to show number of times Tx queue is closed due to its ring exhaustion. 5. Request: VF is considered malicious if sending a MAC control frame. Version 1.713.00 (Jul 28, 2015) =============================== Internal FW 7.12.30 Enhancements: ------------- 1. Request: Add support for new PCI device IDs - 1077:16a1, 1077:16ad and 1077:16a4. Version 1.712.37 (Jul 13, 2015) =============================== Internal FW 7.12.30 Fixes: ------ 1. Problem: CQ80239 - NIC link shows 10G instead of 20G. Change: Correct BW configuration and displayed link for some MF modes. Introduced: Day 1. Relevance: BD, UFP with 20g link. Enhancements: ------------- 1. Request: Add support for installing module on Ubuntu under updates. Version 1.712.36 (Jun 28, 2015) =============================== Internal FW 7.12.30 Fixes: ------ 1. Problem: CQ80071: In RHEL7.0 and 7.1, bnx2x will be rolled back to inbox after system reboot. Change: Use bnx2x.conf file to override previous driver loads (inbox or thru source code). Update the initramfs if bnx2x is already a part of it before installtion. Introduced: Day 1. Relevance: Linux module installtion. 2. Problem: CQ80309: SRIOV : MAC address change inside VM is not allowed unless interface is down. Change: Fixed a driver behaviour where driver used to always set the filter, even though the invoker has asked for the removal of the filter. Introduced: Day 1. Relevance: SRIOV. 3. Problem: CQ79980 - Managemnt traffic stops while updating nvram image. Change: Driver should release nvram lock after each page to allow MFW the chance to claim it so it could load SWIM images. Introduced: Day 1. Relevance: All. Enhancements: ------------- 1. Request: CQ78311: makefile changes for applicable drivers (bnx2x) to place driver.ko in the appropriate location. Install under "updates" in case of SuSE and "extra" in case of rest of the distros. Version 1.712.35 (Jun 16, 2015) =============================== Internal FW 7.12.30 Fixes: ------ 1. Problem: "execution of pending commands failed with rc" may appear in system logs. Change: Don't print errors in case mac/vlan configuration can't be done due to an already pending request awaiting completion. Introduced: 1.78.08. Relevance: All. Enhancements: ------------- 1. Request: Implement CNIC callback to allow storage access to FC-NPIV. Version 1.712.34 (Jun 07, 2015) =============================== Internal FW 7.12.30 Fixes: ------ 1. Problem: CQ71384 - Parity errors in dmesg after register dump test. Change: Fix the print for scratch pad parity errors. Introduced: Day one. Relevance: All. 2. Problem: WARN appears in system logs about illegal lock in interrupt. Change: Switch from mutex-based into semaphore-based lock scheme for statistics state machine. Introduced: 1.712.27. Relevance: Kernels compiled with CONFIG_DEBUG_MUTEXES. 3. Problem: 'Can't alloc sge' error logs appear when system is stressed. Change: Allocate 4Kb per SGE instead of a whole page in memory. Introduced: Day 1. Relevance: PPC64. Version 1.712.33 (May 21, 2015) =============================== Internal FW 7.12.30 Fixes: ------ 1. Problem: CQ79269 - Tunneling offload is not enabled. Change: Fix compatibility for RHEL. Introduced: Day one. Relevance: Tunneling offload on RHEL7. 2. Problem: CQ79735 - Packets without S-TAG are not dropped by FW. Change: (FW) Change configuration so such packets will be dropped. Introduced: Day 1. Relevance: BD. 3. Problem: CQ77671 - FCoE traffic may not recover after a failue while there's traffic to another function. Change: (FW FCoE) Fix flow that handles non-offloaded packets. Introduced: Day 1. Relevance: MF, 4-port. 4. Problem: CQ79736 - FCoE packets are sent with 0x8100 ethertype instead of configured S-tag. Change: (FW FCoE) Correct ethertype of said packets. Introduced: Day 1. Relevance: BD. 5. Problem: FW assertions might occur during TSO of encapsulated traffic. Change: Consider inner headers when deciding whether to linearize. Introduced: Day 1. Relevance: Fragmented TSO encapsulated traffic. 6. Problem: CQ79295 - self test fails on 20G adapter. Change: Change forced link speed for 20G adapters when configuring loopback traffic. Introduced: Day 1. Relevance: 20g. Version 1.712.32 (May 17, 2015) =============================== Internal FW 7.12.29 Fixes: ------ 1. Request: CQ79146 - NMI during rmmod. Change: Don't access shmem after setting PCI power to D3. Introduced: 1.712.27. Relevance: BD. Enhancements: ------------- 1. Request: Refactor TPA code. 2. Request: CQ73154 - updated documentation with fact SRIOV enablement also enables tx-switching. 3. Request: Added driver side support for On-chip MFW dump. Version 1.712.31 (May 01, 2015) =============================== Internal FW 7.12.29 Fixes: ------ 1. Problem: CQ79365 - VF interface vlan-filtering stopped working. Change: Prevent same vlan-id from being re-configured. Introduced: Day 1. Relevance: RH6.x. 2. Problem: bnx2x RPM failed to install on SLES11SP4 Change: Add Module.supported file in driver sources. Introduced: Day 1. Relevance: SLES11SP4 3. Problem: CQ77841 - Fail to force link speed other then 20G in KR2. Change: Avoid applying KR2 workaround in this case. Introduced: Day 1. Relevance: KR2. Enhancements: ------------- 1. Request: Add support for BCM84858 10G-baseT PHY, as well as for its auto-detection when external PHY configured is BCM84833. Version 1.712.30 (Apr 29, 2015) =============================== Internal FW 7.12.29 Fixes: ------ 1. Problem: Netconsole stucks cpu if CONFIG_NET_RX_BUSY_POLL is set. Change: Revise locking scheme between napi and busy-poll. Introduced: 1.710.50. Relevance: Netpoll. 2. Problem: ethtool shows KR/KR2 supported/advertised speed as baseT rather than KR-base. Change: Change supported/advertised speed of KR devices from 10000baseT/Full to 10000baseKR/Full, and from 1000baseT/Full to 1000baseKX/Full. Introduced: Day 1. Relevance: KR/KR2 devices. 3. Problem: CQ75504 - Incorrect asymmetric flow-control behavior. 1. When user requests to disable TX, the local-device needs to advertise both PAUSE and ASM_DIR, but to avoid transmitting pause frames. In the 578xx, it would ignore the TX disable. 2. When user advertises RX-only, ASM_DIR was advertised instead of PAUSE/ASM_DIR. 3. When changing mode, the advertised PAUSE/ASM_DIR was not cleared before setting new one, so disabling RX or TX had no impact on the 'advertised' as appeared in the 'ethtool -a' output. Change: Fix all problems. Introduced: Day 1. Relevance: Asymmetric Autoneg Flow-Control. 4. Problem: CQ78531 - connect to iSCSI target fails when VLAN is configured. Change: (FW iSCSI) Fix address register collision. Introduced: 1.712.25. Relevance: iSCSI. Enhancements: ------------- 1. Request: Add support for kernel API's for configuring vxlan destination port. Remove module parameter for programming vxlan destination port for Linux. 2. Request: Read FC-NPIV table from nvram if available. Version 1.712.29 (Mar 23, 2015) =============================== Internal FW 7.12.27 Fixes: ------ 1. Problem: CQ77302 - device asserts in kdump kernel using 1G port traffic. Change: Previous driver unload flow closes BRB traffic for both ports. Introduced: 1.72.13. Relevance: Kdump kernel. 2. Problem: CQ77302 - DMAE timeouts appear in system logs in kdump kernel using 1G port traffic when iommu=on. Change: Fix PGLUE_B error clear for PFs other than first. Introduced: Day 1. Relevance: kdump, IOMMU-vtd. 3. Problem: CQ77379 - statistics stop running after ethtool -s call. This is because the driver flow stop the statistics state machine before changing link params since the link change can involve resetting the MAC which the statistics flow interacts with. The statistics state machine is restarted when link attention arrives. However, if link flap avoidance happened, there is no attention and the statistics state machine remains disabled. Change: Force link reset during ethtool calls (preventing link flap avoidance). Introduced: T7.4 (LFA). Relevance: All. 4. Problem: CQ78590 - Dynamic VF enumeration fails for e3 adapter in SLES11 SP4 Change: Fix pre-processor condition to register .sriov_configure callback for SLES11SP4 so that VFs can be enumerated using standard sysfs hook. Introduced: Day 1. Relevance: SRIOV, SLES11SP4. 5. Problem: TPA statistics increment when 'disable_tpa=1'. Change: Prevent GRO setting in FW when disable_tpa=1. Introduced: 1.710.52. Relevance: disable_tpa. Version 1.712.28 (Mar 11, 2015) =============================== Internal FW 7.12.27 Fixes: ------ 1. Problem: PCIe EEH recovery might result in unrecoverable EEH error. Change: Mark device as requiring fundamental reset. Introduced: Day 1. Relevance: PCIe EEH error recovery. 2. Problem: System logs show "Unknown cnic driver state" prints. Change: Prevent incompatible old cnic version from working with bnx2x. Introduced: 1.712.27. Relevance: CNIC. Version 1.712.27 (Mar 08, 2015) =============================== Internal FW 7.12.27 Fixes: ------ 1. Problem: When disabling VFs with no physical link "BUG" appears in logs. Change: Revise statistics locking mechanisms. Introduced: 1.78.50. Relevance: All. 2. Problem: Inner-to-outer vlan priority mapping doesn't work. Change: (FW) Consider mapping also in OVERRIDE_COS mode. Introduced: Day 1. Relevance: RH6.x [pre 2.6.38 kernels]. 3. Problem: cq78038 - MTU configuration in shared memory doesn't work. Change: Correct condition verifying value is correct. Introduced: 1.712.26. Relevance: BD. Enhancements: ------------- 1. Request: Driver sets driver state in shmem for management FW usage. Version 1.712.26 (Feb 17, 2015) =============================== Internal FW 7.12.26 Enhancements: ------------- 1. Request: Add vlan filtering offload support. 2. Request: Add support for Debian GNU/Linux 7 (wheezy). 3. Request: Revise BD support - correct mtu size read, allow probe of devices with no outer-vlan configured and initial support for inner-to-outer vlan priority mapping. Version 1.712.25 (Feb 04, 2014) =============================== Internal FW 7.12.26 Fixes: ------ 1. Problem: Early panic of driver can cause system to crash. Change: Validate Tx data is allocated before accessing it in flow. Introduced: Day 1. Relevance: All. 2. Problem: Packets from a VF with pvid configured which were sent with a different vlan were transmitted instead of being discarded. Change: (FW) Fix the relevant flow. Introduced: Day 1. Relevance: SRIOV. Enhancements: ------------- 1. Request: RHEL6.5 distros provides the newer ethtool operations via extended ethtool_ops structure. Driver need to populate the respective callbacks. 2. Request: Change 1G-SFP module detection by verifying that not only it is not compliant with 10G-Ethernet (EEPROM address 3[6:4] is cleared), but that also it is a 1G-Ethernet compliant (EEPROM address 6[7:0] is NOT zero). This change is done in order not to enforce 1G link speed for non-Ethernet 8GB SFP modules. 3. Request: Prevent probe in case of early PCI error [i.e., reads return only Fs]. 4. Request: Prevent implicit PF unload flows when VFs are enabled. 5. Request: Vxlan tunnelled packets are RSSed according to inner header. Version 1.712.00 (Nov 06, 2014) =============================== Internal FW 7.10.51 Fixes: ------ 1. Problem: CQ76291 - Unable to set ntuple hash filtering with NCDE 11.05 drivers. Change: Ethtool support for hash-filtering configuration is missing for RHEL6 OOB drivers. Enabled the required functionality. Introduced: Day 1. Relevance: RH6.x. Enhancements: ------------- 1. Request: CQ74867/CQ76289 - Add new nvm option 237 to control Post2 coeff, IPreDriver and IFir in addition to the existing iDriver from option 212 for SFP ports. 2. Request: Rebrand elink, clc, sp_verbs and linux driver to QLogic. Version 1.710.70 (Oct 22, 2014) =============================== Internal FW 7.10.51 Fixes: ------ 1. Problem: CQ75774 - RHEL 6.6 Snapshot 4 : Call trace while doing iscsi BFS and loading drivers using dd kit. Change: Removed the callbacks from ethtool_ops which are already supported from ndos in the case of RHEL6.6. Introduced: Day 1. Relevance: RHEL6.6 drivers. Version 1.710.53 (Oct 2, 2014) =============================== Internal FW 7.10.51 Fixes: ------ 1. Problem: All Rx data is received on queue 0 when RSS is configured. Change: Fix endian issue when configuring RSS update ramrod. Introduced: 1.710.02. Relevance: BE. 2. Problem: Fix configuring device endianity. Change: Return endianity to original values on shutdown, and configure endianity registers for LE machines during load. Introduced: Day 1. Relevance: BE. 3. Problem: iscsi out-of-order fails after flooding system logs. Change: fix build_skb() for iscsi out-of-order in accordance with new kernel API. Introduced: 1.78.07. Relevance: iSCSI OOO on 3.5.0 or newer linux kernel. Version 1.710.52 (Aug 26, 2014) =============================== Internal FW 7.10.51 Fixes: ------ 1. Problem: Kernel crash during TSO tunnening when iommu is enabled. Change: Properly mark BD w/o mapping to prevent unmapping of 0 PFN. Introduced: 1.78.04. Relevance: TSO, Tunneing, 57712/578xx. 2. Problem: Unable to use SW GRO when driver disables TPA for some reason. Change: Fix appropriate flows in bnx2x_[fix|set]_features(). Introduced: 1.72.10. Relevance: module parameter disable_tpa=1 or kdump environment. 3. Problem: CQ74715 - GRC-timeout messages may appear in syslog during ethtool -d. Change: Fix set of registers for ethtool -d. Introduced: 1.78.02. Relevance: All. 4. Problem: CQ74781 - Boot from SAN may fail after BRB fails to init. Change: Revert flushing mechanism of BRB in favour of old increments of the producers by-hand. Introduced: 1.78.24. Relevance: Boot from SAN. 5. Problem: BZ1009332 (RH) - Interface cannot change settings right after load. Change: When using fiber, allow ethtool configuration to pass prior to phy initialization. Introduced: Day 1. Relevance: All. 6. Problem: GSO tunneling over IPv6 is not working. Change: Properly set IPv6 description for FW. Introduced: 1.78.51. Relevance: GSO + tunneling over IPv6. 7. Problem: Some features on BE are not functional. 1. Tunneling 2. TX-Switching. 3. Anti-spoofing. Change: Fix endianess. Introduced: 1.78.51. Relevance: BE. Enhancements: ------------- 1. Request: Laid down infrastructure for forward/backward compatibility of fastpath HSI between linux hypervisor and assigned VF. 2. Request: Support RHEL6.6. Version 1.710.51 (Jul 17, 2014) =============================== Internal FW 7.10.51 Fixes: ------ 1. Problem: CQ74514 - System crash due to double free, when VLAN tagged packets are received. Change: The VLAN tagged packets are handed over to kernel only through the correct interface. Introduced: 1.710.50. Relevance: VLAN tagged traffic on kernel older than 2.6.37. Version 1.710.50 (Jul 10, 2014) =============================== Internal FW 7.10.51 Fixes: ------ 1. Problem: CQ54005 - SW timestamping not working on kernels older than 3.4.0, even though it is supported. Change: Set the ethtool get timestamp info callback function to advertise SW timestamping capabilities on all kernels that support it. Introduced: 1.74.00. Relevance: ALL. 2. Problem: PCIe EEH error may cause recursive EEH errors. Change: Sync the completion of the slowpath and periodic tasks. Introduced: Day 1. Relevance: PCIe EEH error recovery. 3. Problem: CQ74156 - assigning a vf to RHEL6.5 VM causes attention. Change: PF driver should cause inbox driver to gracefully fail due to incompatibliity in doorbell configuration. Introduced: 1.78.55. Relevance: SRIOV, RHEL6.5 VM. 4. Problem: Tx swithcing enabled inter-PF and inter-VF traffic. Change: (FW) Fix the flow in Switch-Dependant multi-function mode. Introduced: Day 1. Relevance: Tx switching, Switch-Dependant multi-function. 5. Problem: Driver panic under memory stress. Change: Prevent misusage of NULL as memory page. Introduced: 1.78.07. Relevance: Kernels 3.5.0 or newer. 6. Problem: CQ73992 - VF load fails when no interrupts are configured. Change: Prvent SRIOV from being enabled if no entries exist in the igu CAM for VFs. Introduced: Day 1. Relevance: SRIOV. 7. Problem: CQ73678 - Low probability data miscompare occurring when a packet with Exchange Context = 1 (responder) and OX_ID > supported device range is received interleaved in the middle of a sequence of another exchange. Change: (FW) Fix double buffer mechanism to properly handle scenario. Introduced: Day 1. Relevance: FCoE. Enhancements: ------------- 1. Request: Driver doesn't read producers to identify Rx work is done, instead relying on the FW cookies themselves. 2. Request: Add support for busy poll [CONFIG_NET_RX_BUSY_POLL]. Version 1.710.39 (Jun 02, 2014) =============================== Internal FW 7.10.32 Fixes: ------ 1. Problem: CQ73899 - No link on 1G-baseT ports. Change: Set the PHY access mode even in case of LFA. Introduced: T7.4 (LFA). Relevance: 57800. 2. Problem: FCoE traffic suffers from drops in UFP mode. Change: Configure HW accoding to ETS parameters. Introduced: 1.710.xx. Relevance: UFP mode. Enhancements: ------------- 1. Request: Allow disablement of EEE by passing module param native_eee=-1. Version 1.710.38 (May 20, 2014) =============================== Internal FW 7.10.32 Fixes: ------ 1. Problem: CQ73060 - doorbell fatal assert. Change: Increase per-VF doorbell threshold from 4 to 64. Introduced: 1.78.00 (SR-IOV day 1). Relevance: SR-IOV. 2. Problem: In some MF modes storage-only functions also function as L2. Change: Fixed device configuration. Introduced: 1.710.37. Relevance: NPAR1.5, UFP. 3. Problem: When failing to configure MAC for VF, driver reports success. Change: Fix the return values in the VF and PF flows configuring the VF mac. Introduced: 1.78.00 (SR-IOV day 1). Relevance: SR-IOV. Version 1.710.37 (May 08, 2014) =============================== Internal FW 7.10.32 Fixes: ------ 1. Problem: FIP packets are dropped at firmware when FCoE function is not 0/1 on UFP mode. Change: (FCoE FW) Fix the relevant firmware flow. Introduced: 1.710.31. Relevance: FCoE UFP. Enhancements: ------------- 1. Request: Restore L2 functionality for NPAR1.5 Storage functions. Version 1.710.36 (May 05, 2014) =============================== Internal FW 7.10.31 1. Problem: CQ73458, CQ73457, CQ73457 - boot from SAN does not work. Change: Fix 'new' previous driver unload support to use bar addresses instead of grc addresses. Introduced: 1.78.24. Relevance: Boot from SAN. Version 1.710.35 (May 01, 2014) =============================== Internal FW 7.10.31 1. Problem: CQ73562 - NPAR1.5: storage only functions functional as L2. Change: Revise storage mf flows to fix. Introduced: 1.710.xx. Relevance: NPAR1.5. 2. Problem: Burst of FIP packets with destination MAC of ALL-FCF_MACs causes FCoE traffic to stop. Change: (FW) Workaround that drop all such FIP packets. Introduced: Day 1. Relevance: All. 3. Problem: When unloading a PF which marked as "acceptClassifyFailed" and afterwards loading a new PF with same flag, an assert is mistakenly raised. Change: (FW) Prevent the incorrect assertion. Introduced: Day 1. Relevance: UFP. 4. Problem: UFP FCoE traffic does not seem to work. Change: Add several missing FW/HW initialization required for UFP. Introduced: 1.710.31. Relevance: UFP. 5. Problem: Function might try to load after UNDI while using only FLR. Change: Verify driver isn't loaded after UNDI in the uncommon previous driver flow branch. Introduced: Day 1. Relevance: UNDI. Version 1.710.34 (Apr 23, 2014) =============================== Internal FW 7.10.30 1. Problem: CQ73346 - No link on 578xx-KR port with swapped polarity lane (nvm option 135 is set). Change: Set back polarity settings when phy is initialized in case it was run over by previous link owner. Introduced: T7.8c. Relevance: 578xx-KR. 2. Problem: CQ73518 - No link on 578xx-KR2 port. Change: Apply CQ73346 changes to KR only. Introduced: 1.710.33. Relevance: 578xx-KR2. 3. Problem: Tx switching doesn't enable IPv6 traffic. Change: Add missing configuration of mcast list len on PF side. Introduced: 1.710.30. Relevance: SR-IOV. Version 1.710.33 (Apr 13, 2014) =============================== Internal FW 7.10.30 1. Problem: CQ73346 - No link on 578xx-KR port with swapped polarity lane (nvm option 135 is set). Change: Avoid clearing RX polarity setting in KR mode. Introduced: T7.8c. Relevance: 578xx-KR. Version 1.710.32 (Apr 10, 2014) =============================== Internal FW 7.10.30 1. Problem: CQ73085 - init 0 after PCIe advanced error recovery leads to kernel panic. Change: Don't request cnic's irq if cnic is not loaded. Introduced: 1.78.06. Relevance: PCIe Advanced Error Recovery. 2. Problem: PCI removal for VFs leaks memory. Change: Release bulletin board and mailbox upon PCI removal. Introduced: Day 1. Relevance: SRIOV. 3. Problem: ethtool shows incorrect link state for VF. Change: fix get_link for VFs. Introduced: 1.710.30 with PF speed propagation to VFs. Relevance: SRIOV. 4. Problem: CQ73219 - "vf ndo called but vfqs struct is null" message appears in syslog. Change: Move test for vfqs to NDOs from common function. Introduced: 1.710.30 with PF speed propagation to VFs. Relevance: SRIOV. 5. Problem: VF init fails after several re-assignements/flrs. Change: Correct PF's handling of vlan filter credits for its VFs. Introduced: 1.710.30. Relevance: SRIOV. Version 1.710.31 (Mar 06, 2014) =============================== Internal FW 7.10.30 1. Problem: CQ72978 - Poor performance in 20G dual engine bidirectional scenario. Change: Use 64 bytes as minimum for rx memory allocation alignments. Introduced: Day 1. Relevance: Setups with 32 byte cache alignment (RHEL 32bit). Enhancements: ------------- 1. Request: Decrease memory footprint on kdump kernels by using a single queue and disabling TPA. 2. Request: (FW) Add support for FCoE (UFP). Version 1.710.30 (Feb 25, 2014) =============================== Internal FW 7.10.7 Fixes: ------ 1. Problem: CQ72881 - hypervisor sometimes crashes during VF flr. Change: Correct checking of whether vlan/mac objects were initialized. Introduced: 1.710.07. Relevance: SRIOV. 2. Problem: CQ72716 - SLES11 SP2 fails to load bnx2x.ko due to unknown symbols related to ptp. Change: Don't compile timesync related code on kernels that don't have CONFIG_PTP_1588_CLOCK defined. Introduced: 1.710.07. Relevance: SLES11 SP2. 3. Problem: PF has DMAE failures on messages from VF 32 (relative index). Change: Use 64-bit variables when testing if VF events occurred. Introduced: 1.710.08. Relevance: SRIOV. 4. Problem: Possible deadlock between VF message and VF flr. Change: Remove vfop-continuations; VF flows are serialized in the IOV work queue. Introduced: Day 1. Relevance: SRIOV. 5. Problem: Semaphore locking with timeout always done with timeout 0. Change: Fix compat code. Introduced: Day 1. Relevance: Kernels < 2.6.26. 6. Problem: ptp4l app may fail with error: interface does not support requested timestamping mode even though timesync is enabled in kernel and driver. Change: Compile ethtool timesync related code based on existence of ts_info callback in ethtool_ops structure and not based on kernel version. Introduced: 1.710.07. Relevance: Kernel ptp support required in addition to ethtool support for timesync info. 7. Problem: CQ72866 - get driver version fails on FCoE interfaces. Change: Wait for MFW to finish handling of buffers. Introduced: Day 1. Relevance: NPAR. 8. Problem: CQ73002 - Ethtool -S on VFs show un-advancing statistics. Change: Hide port statistics from VFs output. Introduced: Day 1. Relevance: SRIOV. 9. Problem: CQ72331 - VF's reported speed in a VM varies from the PF's reported speed. Change: Propagate PF's current speed to VFs. Introduced: Day 1. Relevance: SRIOV. 10. Problem: CQ73099 - driver does not compile against RHEL7 SS7. Change: Adopt Makefile. Introduced: Day 1. Relevance: RHEL7. Enhancements: ------------- 1. Request: Ignore VF Rx-Mode configuration; VF Rx-Mode is never set to promiscuous mode. Version 1.710.08 (Feb 05, 2014) =============================== Internal FW 7.10.7 Fixes: ------ 1. Problem: "section mismatch in reference" warnings appear during probe. Change: Return the __devinit modifier for backward compatibility. Introduced: 1.710.07. Relevance: RH6.x, RH5.x, SLES11 (all variants). 2. Problem: CQ72227 - VMs with network interfaces bridged to the HV bnx2x PFs' vlan interface result in loss of traffic. Change: Calculate checksum in Rx vlan legacy flows. Introduced: 1.72.09. Relevance: RH6.x. 3. Problem: CQ72662 - machine crashes when old cnic performs configuration. Change: Update BNX2X_DEV_VER as bnx2x struct has changed, i.e., bnx2x should not be compatible with older cnic. Introduced: 1.710.07. Relevance: cnic. 4. Problem: Observed VF timeouts when PF receives messages while its in the process of configuring classifications for the VF. Change: Create a new workqueue for sriov related tasks, and move all iov related work done in the interrupt handling queue into it. Introduced: Day 1. Relevance: SRIOV. Version 1.710.07 (Jan 30, 2014) =============================== Internal FW 7.10.7 Fixes: ------ 1. Problem: CQ72152 - bnx2x panic dump on VM shutdown. Change: Ensure final part of FLR handling is performed only after device cleanup is complete. Introduced: 1.78.00. Relevance: SR-IOV. 2. Problem: CQ72379 - panic occurs on on kernels with build_skb support when running iSCSI traffic. Change: Fix error checking condition in allocation buffers for OOO flow. Introduced: 1.72.04. Relevance: iSCSI with build_skb supported kernel. 3. Problem: Panic dump on a VF when compiling with STOP_ON_ERROR causes a system crash. Change: Prevent VF's panic dump from accessing slowpath elements. Introduced: Day 1. Relevance: SR-IOV, SOE. 4. Problem: Shutdown flow when VFs are present show stack error traces. Change: disable PCI function only on PCI remove. Introduced: 1.710.06. Relevance: SR-IOV. 5. Problem: CQ72592 - Cannot change link setting for SFP port when module is plugged out. Change: Ignore port-type if not changed when processing link change request in ethtool. Introduced: T6.2a. Relevance: SFP. 6. Problem: CQ71984 - VFs of PFs 4,5,6 and 7 don't seem to run traffic. Change: Fix overflow when writing VFs' interrupt configuration in IGU. Introduced: 1.78.52. Relevance: SR-IOV. Enhancements: ------------- 1. Request: Added support for S-tag dynamic re-configuration (UFP). 2. Request: CQ71636 - flr flow no longer outputs "vlan mac object was not initialized" to system logs. 3. Request: Add initial support in the `get_driver_version' feature (i.e., loaded driver versions are filled in shmem). 4. Request: Add timesync support. Driver supports timestamping send / receive PTP packets, as well as adjusting the on-chip clock. Version 1.710.06 (Jan 14, 2014) =============================== Internal FW 7.10.3 Fixes: ------ 1. Problem: bnx2x triggers warnings with CONFIG_DMA_API_DEBUG=y. Change: Integrate 95e92fd4 "bnx2x: fix DMA unmapping of TSO split BDs". Introduced: Day 1. Relevance: All. Enhancements: ------------- 1. Request: Change default behaviour of Tx Switching - PFs are configured for Tx switching when their VFs are enabled (i.e., when VFs are about to appear on the pci bus). 2. Request: BZ1046885 (RH) - shutdown flow no longer releases PCI resources. 3. Request: CQ68228 - SRIOV - support RSC for windows VMs. Version 1.710.05 (Jan 05, 2014) =============================== Internal FW 7.10.3 Fixes: ------ 1. Problem: Theoretical bug where AFEX sw code can corrupt dmae commands. Change: Fixed types of slowpath structs to prevent overflow. Introduced: Day 1. Relevance: AFEX. 2. Problem: RSS not configured properly for Windows VF over KVM. Change: Flags parameter sent to rss config function wasn't initialized properly. Introduced: 1.78.14. Relevance: SRIOV - windows VM over linux. 3. Problem: 10M-FD was advertised in case 10M-HD was requested for BCM54618SE. Change: Advertise 10M-FD only when it is requested. Introduced: 1.78.23. Relevance: BCM54618SE. 4. Problem: CQ72188 - 578xx fails to link with KinnexA SFP+T (1GBT) module. This fix handles only the link issue, assuming the SFP EEPROM is accessible, which is another aspect of the problem, handled in MFW 7.10.04. Change: Reset TX_EN when RJ45 SFP module is detected. Introduced: T7.8. Relevance: SFP-RJ45 module. 5. Problem: VF with a vlan set by HV receives untagged packets. Change: Fix deletion of previous vlan filters by HV. Introduced: 1.78.00. Relevance: SR-IOV. Enhancements: ------------- 1. Request: CQ72287 - Add support for Luma SFP+ (1GBT RJ45) module. This module lacks the connector type, so added this unspecified type while checking if the module compliance with 10G ethernet or not. Version 1.710.04 (Dec 17, 2013) =============================== Internal FW 7.10.3 Fixes: ------ 1. Problem: BD mode is not functional. Change: Fixes in configuration. Introduced: 1.710.02. Relevance: BD MF mode. 2. Problem: Incorrect 8073 link partner detection for KR2 work-around. Change: Fix 8073 detection. Introduced: 1.78.1. Relevance: 57840-KR2. 3. Problem: CQ71792 - VF fails to receive multicast traffic. Change: Fix the VF-PF Multicast filters configuration. Introduced: Day 1. Relevance: SR-IOV. 4. Problem: Configuration space configured with one MSI-X message too much for VFs supporting RSS. Can cause over-allocation of MSI-X messages for VFs. Change: Fix configuration space setting configured by PF for its VFs. Introduced: Day 1. Relevance: SR-IOV. 5. Problem: CQ72145 - No ping in NPAR 1.5 mode. Change: Avoid configuring device to illegal multi-function mode. Introduced: 1.710.02. Relevance: NPAR 1.5. Version 1.710.03 (Dec 05, 2013) =============================== Internal FW 7.10.3 Fixes: ------ 1. Problem: CQ71571 - management logs don't show number of VFs. Change: Add missing field in data passed to management FW. Introduced: Day 1. Relevance: OEM specific query data flow. 2. Problem: CQ71692 - MCP assert during DCB configuration flow. Change: Clear rtnl work queue during unload. Introduced: 1.78.50. Relevance: 57712 and 578xx with DCB enabled. 3. Problem: CQ71353 - KR device cannot get link on all 4 ports when connected to a 1G (54680E) IOM. Change: Force CL48 sync_status LOW to prevent Warpcore from getting stuck in CL73 parallel detect loop while link partner is sending CL37 pages on all lanes. Introduced: Day 1. Relevance: 578xx-KR. 4. Problem: BZ920329,1022730 (RH) - PCIe AER is not configured properly. Change: Add missing OS calls to enable error reporting and perform cleanup after an error is handled. Introduced: Day 1. Relevance: PCIe Advanced Error Reporting recovery. 5. Problem: CQ68092 - Idle check fails on 57711E MF mode with the error: "NIG: interrupt 1 is active.Value is 0xC.". Change: Show warning "NIG: Got packets w/o Outer-VLAN in MF mode" instead of error in case NIG_REG_NIG_INT_STS_1 bits 2,3 are on. Introduced: Day 1. Relevance: 57711E, MF mode. 6. Problem: Null pointer dereference on system w/o MSI capability. Change: Properly limit number of vectors. Introduced: 1.74.12. Relevance: 57711E, MF mode w/o MSI capability. 7. Problem: FW assert during RSS update. Change: Fix endian issue in rss update parameters. Introduced: 1.710.01. Relevance: BE. 8. Problem: CQ71873 - TCP checksum errors observed in tunneling scenario. Change: Pick a correct header for FW. Introduced: 1.78.22. Relevance: ESX: TSO + tunneling. 9. Problem: Driver configures Tstorm accept flags unnecessarily. Change: Remove said configuration. Introduced: NPAR 1.0 Day 1. Relevance: NPAR 1.0. 10. Problem: CQ71584 - vfs with mismatching vlans have connectivity. Change: Classify packets for VFs correctly according to vlan. Introduced: 1.78.00. Relevance: SR-IOV. 11. Problem: Wrong assert code in FLR final cleanup in case it is sent not after FLR. Change: (FW) Fix assert code. Introduced: day 1. Relevance: BCM57712/57810/57840. Version 1.710.02 (Nov 07, 2013) =============================== Internal FW 7.10.2 Fixes: ------ 1. Problem: CQ70427 - FW ASSERT due to incorrect statistics query may happened in low memory condition. Change: Allocate FW statistics memory after number of RSS queues in known. Introduced: 1.78.00. Relevance: 57712/578xx MF-modes, 4-port mode, 57711, 57710. 2. Problem: CQ70554/CQ71071 - Failed to acquire 1G link over CL37 against 1Gb switch. This issue happens when the device is in KR mode, and the switch advertises only 1G link speed over CL37. Change: To solve this, the auto-detect mode was enabled in the Warpcore allowing it to select the higher speed protocol between 10G-KR (over CL73), or go down to 1G over CL73 when there's indication for it. Introduced: Day 1. Relevance: 578xx-KR. 3. Problem: When removing bnx2x while there is a mix of passed through and non passed through VFs, the next bnx2x probe will hang when VF devices are probed. Older OS (e.g. RH < 6.3 and SLES < 11SP3) have this problem even w/o passedthrough VFs. Change: Disable VF access at bnx2x remove, so when VFs are probed again they can't access the device. Introduced: 1.78.00. Relevance: SR-IOV. 4. Problem: CQ68627 - Incorrect port value is displayed for specific Passive DAC (Direct Attached Cable) with missing Passive indication in it's EEPROM. Change: In case there's a DAC indication, but without neither Passive or Active indication (In SFP+ Cable Technology field), treat this cable as a Passive DAC. Introduced: Day 1. Relevance: 578xx-SFP. 5. Problem: CFC attention during load of VF. Change: Validate status of bulletin board (implicitly) during load and prevent loading of VF if it's invalid. Introduced: 1.78.00. Relevance: SR-IOV. 6. Problem: CQ71456 - SR-IOV failed to work on RHEL5.10. Change: Fixed ARI compatibility issues for RHEL5.x. Introduced: 1.78.13. Relevance: SR-IOV, RHEL5.x. 7. Problem: CQ71570 - Link is reported to be up when SFP+ module is plugged in without cable. This occurs with specific module types which may generate temporary TX_FAULT indication. Change: Avoid changing any link parameters when checking TX_FAULT indication when physical link is down. Introduced: 1.74.1. Relevance: 578xx-SFP. 8. Problem: CQ71580 - Probed functions shows "bnx2x_nic_load_analyze_req" error messages. Change: Change printing scheme, as flow is possible in MF UNDI. Introduced: 1.78.24. Relevance: Multi-function UNDI. 9. Problem: CQ71629 - self-test, mtu change, other ethtool operations cause 'timeout waiting for state X' message to appear, and device may be not functional. Change: Do not release rtnl lock in between DCB re-configuration. Introduced: 1.78.50. Relevance: 57712/578xx with DCB enabled. 10. Problem: CQ71584 - VFs with different vlans configured by HyperVisor are able to ping. Change: When HV configures vlan to a VF configure vlan stripping to that specific vlan rather than all vlans. Introduced: 1.78.09. Relevance: SR-IOV. 11. Problem: CQ71749 - Recovery failed while system running netperf with parity error generated manually. Change: Do not mark device as unusable if DMAE engine returns error. Introduced: 1.74.16. Relevance: All. Enhancements: ------------- 1. Request: In multi function scenarios with UNDI, re-probe interfaces (on new kernels) until UNDI is unloaded. 2. Request: Initial support in new switch dependent MF mode. Version 1.710.01 (Oct 10, 2013) =============================== Internal FW 7.8.52 Fixes: ------ 1. Problem: When compiled with stop-on-error and Tx switching is enabled, source MAC on sent packets is all zeroes. Change: Set the parsing buffer descriptor with the source MAC. Introduced: Day 1. Relevance: SOE. 2. Problem: CQ71260, CQ71149 - DMAE timeout on SR-IOV VF PF channel. Change: Protect statistics DMAE flow with global DMAE lock. Introduced: 1.78.00. Relevance: SR-IOV. 3. Problem: Driver sets NETIF_F_HIGHMEM only if setting 64-bit DMA mask succeeded. This is wrong, as this flag indicates whether the device/driver can handle skbs located in high memory, and the conditional setting may result with unnecessary memory copies. Change: Set NETIF_F_HIGHMEM in dev_featrues unconditionally. Introduced: Day 1. Relevance: All. Version 1.78.75 (Oct 08, 2013) ============================== Internal FW 7.8.52 Fixes: ------ 1. Problem: CQ71240 - Compilation fails on SLES11SP3. Change: Fixed Makefile. Introduced: 1.78.57. Relevance: All. 2. Problem: CQ71012 - iscsi login fails. Change: Allocate enough ilt resources to timers block to accomodate all L2 and cnic connections. Introduced: 1.78.52. Relevance: Storage scenarios. Enhancements: ------------- 1. Network interface (PFs & VFs) expose their physical port ID on new kernels. Version 1.78.57 (Oct 01, 2013) ============================== Internal FW 7.8.52 Fixes: ------ 1. Problem: CQ71012 - ethtool -d causes improper chip access and halts HW. Change: Remove pretending mechanism from the flow. Introduced: 1.78.02. Relevance: All. 2. Problem: Warning 'vmalloc: allocation failure: 0 bytes' and bnx2x dump stack are seen in dmesg. Change: Don't attempt to allocate regs dump buffer for VFs (as they don't have the regs dump feature and the buffer length is 0 which triggers the warning). Introduced: 1.78.56. Relevance: SR-IOV. 3. Problem: Page-fault during fw_dump may happen. Change: Validate trace buffer address received from MCP. Introduced: Day one. Relevance: All. 4. Problem: Wrong coalescing value is configured with ethtool -c in HW. Change: Update limit and readme. Introduced: Day one. Relevance: All. 5. Problem: CQ71149, CQ70530 Hypervisor crash / VFs lose traffic. Change: Rlease VF PF Channel mutex in error handling flows. Introduced: 1.78.00. Relevance: SR-IOV. Version 1.78.56 (Sep 23, 2013) ============================== Internal FW 7.8.52 Fixes: ------ 1. Problem: CQ70977 - compilation fails on RHEL6.5 Alpha. Change: Fixes in compat. Introduced: Day one. Relevance: RHEL6.5 Alpha. 2. Problem: CQ70744 - wrong values are specified in README.TXT for interrupt coalescing. Change: Fixes in README. Introduced: Day one. Relevance: Documentation. 3. Problem: Ethtool output for VFs shows register dump support. Change: Set length of dump supported on VFs in ethtool callback to 0. Introduced: Day one. Relevance: SR-IOV. 4. Problem: CQ70531 SRIOV HV reboots on PF toggle with VFs passed through. Change: Call kernel's disable SR-IOV only if module parameter was set. Introduced: Day one. Relevance: SR-IOV. Version 1.78.55 (Sep 12, 2013) ============================== Internal FW 7.8.51 Fixes: ------ 1. Problem: CQ68680 - parity errors appear during register dump. Change: Ignore AEU indication of MCP parity when parities are masked. Introduced: Day one. Relevance: All. 2. Problem: CNIC misbehaves after bnx2x failures during load. Change: Correct return values on bnx2x_load_cnic() failures. Introduced: 1.74.01. Relevance: CNIC. 3. Problem: CQ70833 SRIOV - Could not load vfs on pfs. Change: Use Path relative PF func rather than device absolute when reading IGU mapping memory. Introduced: 1.78.52. Relevance: SR-IOV on engine 1. 4. Problem: CQ70904 UIO calculates doorbell address according to old doorbell configuration. Change: Change cid designated for UIO to be such that cnic can reverse engineer a value in API so that UIO will use correct address. Introduced: 1.78.52. Relevance: CNIC. 5. Problem: Supported but unhandled messages on VF PF channel lead to VF lock never being released. Change: Rlease VF lock in this case. Introduced: 1.78.00. Relevance: VF-PF version interoperability. Version 1.78.54 (Sep 09, 2013) ============================== Internal FW 7.8.51 Fixes: ------ 1. Problem: Driver does not compile on SLES11 SP3. Change: Fix compatibility macros. Introduced: 1.78.53. Relevance: SLES11 SP3. Version 1.78.53 (Sep 02, 2013) ============================== Internal FW 7.8.51 Fixes: ------ 1. Problem: Missing "than" in the readme file at "...the driver requires more *than* 256 kB of virtual memory...". Change: Added the missing "than". Introduced: Day one. 2. Problem: In multifunction mode with SR-IOV enabled, function start fails on second function in engine. Change: fix status block allocation between VFs and PFs. Introduced: 1.78.52. Relevance: Multifunction with SR-IOV. 3. Problem: CQ70398 - chips stall in a very rare case under heavy traffic with TPA/GRO enabled. Change: (FW) Fix the relevant firmware flow. Introduced: 1.50.00 (FW 5.0.0). Relevance: All. Enhancements: ------------- 1. Request: PCI link speed & width printed values are that of the minimum along the path from the root port. Version 1.78.52 (Aug 27, 2013) ============================== Internal FW 7.8.50 Fixes: ------ 1. Problem: csum for IPv6 with extensions is not calculated properly on TX. Change: Notify FW about extensions in non-LSO flow. Introduced: Day one. Relevance: 57712/578xx. 2. Problem: CQ70358 - The kernel log contains an alarming error message: "drv_pulse != mcp_pulse". Change: The trigger for this message was too strict and there is really nothing wrong in this scenario - so the threshold was changed to allow some tolerance. Introduced: Day one. Enhancements: ------------- 1. Request: Support VF multiqueue, receive/transmit side scaling. Version 1.78.51 (Aug 12, 2013) ============================== Internal FW 7.8.50 Fixes: ------ 1. Problem: CQ69690 - getfeatcfg() returns ETS/Priority Tagging/PFC as operational when DCBX is disabled on the switch side. Change: Take remote error into account when returning the answer. Introduced: 1.70.01. Relevance: 57712/578xx with DCBX. 2. Problem: CQ70231 - Device accesses released VF stats memory causing NMI. Change: Modify VF state in stats safe conditions. Introduced: 1.78.00. Relevance: SR-IOV. 3. Problem: CQ70232 - VF driver is leaking DMA Coherent memory. Change: Release VF stats memory buffer when unloading. Introduced: 1.78.00. Relevance: SR-IOV. Version 1.78.50 (Aug 01, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: CQ70272 - panic during release after queue allocation failure. Change: Prevent double memory freeing of tpa information. Introduced: 1.74.02. Relevance: Low memory conditions. 2. Problem: CQ67151 - Windows VM causing linux HyperVisor to log errors. Change: Fix broken "vlan config list" flow to complete successfully rather than enter error flow. Introduced: 1.78.00. Relevance: SR-IOV. 3. Problem: CQ69693 - VLAN Discovery w/o priority or no outgoing traffic after DCBX negotiation. Change: Change context for DCB handling to make HW configuration robust for races. Introduced: 1.78.00. Relevance: 57712/578xx with CNIC. 4. Problem: CQ70292 - SKB allocation may needlessly allocate memory. Change: Revert changes in Rx buffer allocation for older releases. Introduced: 1.78.06. Relevance: Linux OS prior to 3.3. 5. Problem: CQ70272 - panic during release after queue allocation failure. Change: Prevent release of tpa information; Re-arrange order of fastpath movement due to change in cnic fastpath indices. Introduced: 1.74.02. Relevance: Low memory conditions. 6. Problem: Possible FW assert in statistics flow. Change: Add protection to different statistics flows. Introduced: Day one. Relevance: All. Enhancements: ------------- 1. Request: Add FW version to assert printout to ease parsing. Refactor assert printing code. Version 1.78.25 (Jul 21, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: Using iproute2 sriov ndos on non SR-IOV capable PFs hangs the driver. Change: Improve sanity checking in ndos. Introduced: 1.78.09. Relevance: All. 2. Problem: When using Multi-function preboot, logs claims probe is aborted. Change: Change driver prints. Introduced: 1.72.13. Relevance: Multi-function preboot driver. 3. Problem: CQ67403 - VF stats are not working. Change: Modify the "stats started" mechanism to allow for VFs. Introduced: 7.8.21. Relevance: SR-IOV. Version 1.78.24 (Jul 11, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: CQ69938/CQ69471 - VF PF channel data is read from wrong address when the first PF to be loaded has zero VFs. Change: Configure DMAE block to SR-IOV mode based on the SR-IOV capability existence and not on whether driver internal SR-IOV data structures have been allocated. Introduced: 1.78.00. Relevance: SR-IOV in Multifunction with mixed PFs with and without VFs. 2. Problem: Pure performance in TSO tunnelling scenarios. Change: fix csum calculation. Introduced: 1.78.22. Relevance: tso+tunnelling. Enhancements: ------------- 1. Request: Initial support for Multi-Function preboot driver support. Version 1.78.23 (Jul 02, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: CQ69561/CQ69564/CQ69542 - link flap occur when link speed lower than 10G due to changes entered for CQ68365 to avoid intermittent link when speed changes between 10Mbps, 100Mpbs and 1000Mbps. Change: Revert change for CQ68365 for now. Introduced: 1.78.8. Relevance: 578xx. 2. Problem: CQ69770 - 10Mb/100Mb Half-Duplex are always advertised when only 10Mb/100Mb Full-Duplex configured. Change: Select 10/100Mb half-duplex based of the speed capability mask. Introduced: Day 1. Relevance: 848xx/54618se. 3. Problem: Division by zero in dcbx update flow. Change: Protect specific flow. Introduced: 1.78.21. Relevance: 57712/578xx with DCBX. 4. Problem: CQ67928 - Dropless_fc is not always functional. Change: Add feature initialization in link related flows. Introduced: 1.72.00. Relevance: All. Version 1.78.22 (Jun 27, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: CQ69617 - PTE write access might occur in MF_ALLOWED mode when IOMMU is active. Change: Added rmmod HSI indicating to MFW to stop running OEM specific data query flows which might trigger this failure in IOMMU mode. Introduced: Day one. Relevance: Fix requires MFW 7.8.15 and latter. 2. Problem: RH5.1 gets stuck upon driver insmod. Change: Set the PCI power state to D0 during probe. Introduced: 1.78.21. Relevance: OS version < 2.6.21 (vanilla), old distros. 3. Problem: CQ68638 - system hangs during rmmod with VF assigned to VM on kernels under 3.10. Change: Add missing initialization. Introduced: 1.78.20. Relevance: SR-IOV. 4. Problem: CQ69436 - System panics during shutdown. Change: uses `dev_close()' during shutdown flow to notify CNIC the device closes. Introduced: 1.78.19. Relevance: CNIC. Version 1.78.21 (Jun 20, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: CQ69421 - ETS does not work in SD-MF mode. Change: Invoke fairness update from DCBX flow. Introduced: Day one. Relevance: SD-MF mode + ETS enabled. 2. Problem: CQ69086 - FW assert during load/unload test. Change: Prevent statistics update procedure from starting before initialization is completed. Introduced: Day one. Relevance: All. 3. Problem: CQ69569 - Loopback test failed on 1G optic modules if required speed is forced to 10G. Change: Don't check optic module attributes in internal loopback mode. Introduced: Day one. Relevance: All. Version 1.78.20 (Jun 03, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: VF link shows as 'none'. Change: Instead of sampling the PF speed at VF probe (when the link may have still been down) rely on PF capabilities to report VF link. Introduced: 1.78.18. Relevance: SR-IOV. 2. Problem: CQ68638 - system hangs during rmmod with VF assigned to VM. Change: Protect rmmod flow from calling pci_disable_sriov. Introduced: 1.78.00. Relevance: SR-IOV. 3. Problem: Nvram is accessible via ethtool when it shouldn't be. Change: Correct logic test of PCIe Power management current state when accessing nvram. Introduced: 1.78.00. Relevance: All. 4. Problem: Attempt to confgure VF mac/vlan via iproute2 suite while PF is down results in null pointer dereference. Change: Validate that PF is up in VF ndos. Introduced: 1.78.09. Relevance: SR-IOV. 5. Problem: BZ819610 (SLES) - low throughput is achieved on GSO. Change: (v2) Request FW to perform IP checksum on GSO packets. Introduced: 1.78.13. Relevance: 57710/57711. 6. Problem: CQ68022 - FW dump is observed during loading PF with large number of VFs. Change: Improve timing during VFs initialization. Introduced: 1.78.00. Relevance: SR-IOV. 7. Problem: CQ65909 - ethtool -t generates warnings in syslog but passes. Change: Hide debug warning messages under msglvl NETIF_MSG_HW. Introduced: Day 1. Relevance: All. Version 1.78.19 (May 23, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: CQ68995 - Shutdown is stuck on a machine booted from SAN. Change: During PCI shutdown callback, don't try to close the netdevice via the regular mechanisms (i.e., _netdev() calls). Introduced: 1.78.17. Relevance: Boot from SAN. 2. Problem: CQ69086 - MC Assert immediately after device comes up. Change: Prevent sending second STATS query by initialization fw memory. Introduced: Day one. Relevance: All. 3. Problem: BZ819610 (SLES) - low throughput is achieved on GSO. Change: Request FW to perform IP checksum on GSO packets. Introduced: 1.78.13. Relevance: 57710/57711. 4. Problem: For 57712 HW driver prints wrong value for PCI link speed. Change: Fix pci link speed decoding. Introduced: 1.60.00. Relevance: 57712. 5. Problem: For 57840 HW driver prints wrong value for PCI link speed. Change: Fix pci link speed decoding. Introduced: 1.70.00. Relevance: 57840 on Gen3. 6. Problem: CQ69216 - failed to configure VF mac via PF using `ip link'. Change: Fix compatibility for VF ndos. Introduced: Day 1. Relevance: SR-IOV, Citrix Xen. 7. Problem: CQ68489 - After windows 8 inbox driver fails to load over KVM hypervisor (they are not compatible) T7.8 windows driver fails to load (supposed to be able to). Change: When unknown TLV arrives on te VF-PF channel, ack the FW to allow other TLVs of this VF to pass. Introduced: Day 1. Relevance: SR-IOV. 8. Problem: Low throughput in tunneling ipv6 over ipv4. Change: Fix HW configuration. Introduced: 1.78.07. Relevance: 57712/578xx tunneling. Enhancements: ------------- 1. Request: When GRO setting changes while LRO is enabled, don't reload as LRO takes precedence. Version 1.78.18 (May 12, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: CQ68642 - iproute2 callbacks not working in RH64. Change: Add iproute2 callbacks starting from RH61 and SUSE11SP2. Introduced: 1.78.09. Relevance: 57712/578xx SRIOV. 2. Problem: CQ68872 - Kernel Panic in multicast configuration flow. Change: All flows changing multicast configuration now take the `netif_addr' bottom-half lock, preventing races on deletion. Introduced: 1.78.14 (1.70.06). Relevance: All. 3. Problem: CQ67915, CQ68972 - VFs fail to appear after loading a PF. Change: Don't request more VFs than what's possible according to the PF's configuration space, even if using module parameter `num_vfs' with a greater value. Introduced: 1.74.02. Relevance: SRIOV. 4. Problem: CQ68365 - Intermittent link issue when link speed is lower than 10G due to Warpcore firmware issue, which was initially observed on KX. Change: Reset the OS8 Tx fifo during link initialization, and link change as a work-around. Introduced: Day 1. Relevance: 578xx. 5. Problem: CQ68990 - incorrect speed shown in VF device link. Change: When VF is probed it samples the PF link speed and capabilities and uses these from that moment forward. Link changes in the PF are NOT forwarded to the VF (i.e. if the PF link goes down Vfs can still communicate). Introduced: 1.74.02. Relevance: SR-IOV. 6. Problem: CQ69122 - Debug print of memory allocation addresses showed the wrong address. Change: Log the address being allocated. Introduced: Day 1. Relevance: All. 7. Problem: BZ921799 (RH) - PCIe Advanced Error Reporting - sometimes `BAD MCP validity signature' appears in syslog. Change: Await for shmem re-validation after slot reset. Introduced: 1.78.17. Relevance: All. 8. Problem: Inaccurate max_fcoe_exchanges returned to CNIC caused some performance issues. Change: Count only actual FCoE functions during calculation. Introduced: 1.78.17. Relevance: FCoE. Enhancements: ------------- 1. Request: CQ67924 - During driver assert preserve hw state for next registers dump. Version 1.78.17 (Apr 29, 2013) ============================== Internal FW 7.8.21 Fixes: ------ 1. Problem: VF halted with VF malicious notification errr_id-0xb.. Change: (FW Eth) Fix relavalnt FW flow. Introduced: 1.64.00. Relevance: 57712/578xx SRIOV. 2. Problem: CQ68159 - FCoE offload fails on second NPAR function in the same port. Change: (FW FCoE) Fix FCoE packet classification flow. Introduced: Day 1. Relevance: 578xx NPAR mode. 3. Problem: CQ68187 - After running a lot of FCoE traffic while two ports are running FCoE with at least on them with high function number (>1) in the same engine in 4-port mode a zeroed CQE will be given. Change: (FW FCoe) Fix hardware initialization. Introduced: 1.76.00. Relevance: 57800, 57840, 4-port mode with multi-function.. 4. Problem: CQ68159 - Second FCoE function on engine does not offload after it logs into target. Change: Provide ULP driver with max_fcoe_exchanges allowed. Introduced: 1.76.00. Relevance: 578xx/57712: a. two port configuration with 2 FCoE PFs on same port. b. 4-port configuration wih FCoE on ports 1 and 3. c. 4-port configuration wih FCoE on ports 2 and 4. 5. Problem: A memory leak is encountered when unloading the driver. Change: Prevent multiple-allocations of the t2 memory, and free the underlying ilt pages before releasing the memory of the ilt itself. Introduced: 1.78.00. Relevance: 57712, 578xx in presence of CNIC. 6. Problem: Disabling 20G link speed doesn't take effect after MFW first brought up the link in 20G. Change: Actually disabling 20G link speed, and not leave configuration as default. Introduced: 1.78.00. Relevance: 57840-KR2. 7. Problem: CQ67441 - iSCSI boot scenario fails when there was not link flap avoidance in MF SD MODE with some FW (MFW). Change: Let the FW know abpout the mode by passing flag DRV_MSG_CODE_LOAD_REQ_FORCE_LFA in the param field for the LOAD_REQ command. Introduced: 1.74.02. Relevance: All with MFW 7.8.3 and above. 8. Problem: BZ921799 (RH) - PCIe Advanced Error Reporting - driver failed to recover from second error. Change: Inside flow, need to re-save the PCI state so it could be restored after next SBR. Introduced: 1.78.06. Relevance: All. 9. Problem: CQ68876 - Delete all vlan/MACs returns -EBUSY, failing the flow. Change: Don't return -EBUSY when failing to take writer lock. Introduced: 1.78.13. Relevance: All. Enhancements: ------------- 1. Request: CQ68812 - revise PCI shutdown flow. 2. Request: CQ68664 - Add new PHY LED mode EXTPHY2 to set the link LED for 100M/1G/10G through LED1 pin of the 8483x PHY. 3. Request: CQ68656 - VF starts with all zero MAC address. This means a MAC address must be configured to it prior to interface load. This can be done either to the VF device directly or from the HyperVisor (via iproute2 suite). 4. Request: CQ66471 - when compiling driver with stop-on-error, re-instruct fw to test Tx packets via the `enforce_security_flag' (FW now supports the feature). 5. Request: Allow UDP tunneling offload. Version 1.78.16 (Apr 11, 2013) ============================== Internal FW 7.8.18 Fixes: ------ 1. Problem: In encapsulation, increasing only id in outer IP header causes gro flow to flush state every packet. Change: Increase id in inner IP header instead. Introduced: 1.78.05. Relevance: 57712/578xx. 2. Problem: CQ68375 - Compilation is broken on some 3.8.x kernel. Change: (v2) Fix compat for inner* functions. Fix definition of bnx2x_bridge_gtelink(). Introduced: 1.78.15. Relevance: Kernels above 3.8. 3. Problem: CQ68678 - TPA Rx aggregations are mishandled when sent using vlan0 with priority only; Eventually will be dropped by OS. Change: Don't claim such aggregations have partial checksums; Instead, allow network stack to handle them without any checksum. Introduced: 1.78.08. Relevance: RHEL 5.x, 6.x. 4. Problem: Configuring mac address to loaded a loaded VF device would cause null pointer dereference. Change: Add seperate flow for VF for mac configuration via ndo. Introduced: 1.74.07. Relevance: SR-IOV. 5. Problem: CQ68070, CQ68299 - Kernel Panic after NULL pointer dereference in `bnx2x_queue_state_change'. Change: Don't access FCoE's sp object unless it was initialized by cnic first. Introduced: 1.74.01. Relevance: AFEX. 6. Problem: nvram update with byte resolution failed on BE machine. Change: Fix byte update flow. Introduced: Day one. Relevance: All. 7. Problem: CQ68529, CQ68472 - loading driver after BFS caused DMAE timeout on AMD-Vi (with IOMMU). Change: Prevent memory write transaction in load flow if BFS was detected. Introduced: Day one. Relevance: 57712/578xx. 8. Problem: CQ67715 - compilation failed with SLES11SP[23] on some architectures. Change: Fixed in compat. Introduced: 1.78.08/1.76.51. Relevance: All. 9. Problem: CQ68638 - System hang when unload PF driver under network stress. Change: PF notifies the VFs via the bulletin board that it is going down. VFs use this indication to stop sending messages on the vfpf channel, and to change their state to carrier off, preventing triggering of the tx watchdog. Introduced: 1.78.00 (SR-IOV day 1). Relevance: SR-IOV. Enhancements: ------------- 1. Request: CQ67720 - Extend nvram CRC validation to additional regions. Version 1.78.15 (Mar 21, 2013) ============================== Internal FW 7.8.18 Fixes: ------ 1. Problem: CQ68093 - Disabling RX/TX pause when flow-control is set to autoneg doesn't have any impact. Change: Avoid advertising pause capabilities in case both are disabled. In case either exclusive are enabled, advertise asymmetric pause. Introduced: Day 1. Relevance: Autoneg devices. 2. Problem: CQ67916 - Long KR2 link up time due to consecutive KR2 disable/ recovery. Change: After KR2 is disabled, wait at least 5 seconds before trying KR2 recovery, to provide enough time for the link to come up after KR2 is disabled. Introduced: Day one. Relevance: 57840-KR2. 3. Problem: CQ67801 - OS panics, showing "scheduling while atomic" in logs. Change: Setting Rx mode is now scheduled into sleep-able context. Introduced: 1.78.08. Relevance: All. 4. Problem: CQ68300 - When SFP module EEPROM is access by OEM entity, the I2C may stop responding. Change: Provide a way to read both sections a0/a2 of module EEPROM. Introduced: Day one. Relevance: 8726/8727/57800/57810-SFI. 5. Problem: CQ68375 - Compilation is broken on some 3.8.x kernel. Change: Fix compat for GRE feature. Introduced: 1.78.07. Relevance: Kernels above 3.8. 6. Problem: Inconsistent VF configuration detected. Change: Race on VF-PF mailbox caused messages to be overwritten. Add mutex to protect the mailbox. Introduced: 1.78.00. Relevance: 57712/578xx SRIOV. Version 1.78.14 (Mar 06, 2013) ============================== Internal FW 7.8.18 Fixes: ------ 1. Problem: CQ67973 - After VF device load/unload statistics are corrupt. Change: Zero stats structures on VF device load. Introduced: 1.74.02. Relevance: SR-IOV. 2. Problem: CQ67859 - Long KR2 link up time due to consecutive KR2 disable/ recovery. Change: After KR2 is disabled, wait at least 5 seconds before trying KR2 recovery, to provide enough time for the link to come up after KR2 is disabled. Introduced: Day one. Relevance: 57840-KR2. 3. Problem: CQ67637 - No ping from VFs in switch dependant multifunction mode. Change: Open VF queues with outer vlan removal enabled according to PF multi-function mode rather than VF multi-function mode. Introduced: 1.74.02. Relevance: SR-IOV. 4. Problem: CQ67635 - Chip crashes when iSCSI firmware tries to retransmit iSCSI login command. If the iSCSI Login is carrying data not aligned to 4 bytes, it will cause a hardware attention. Change: (FW iSCSI) Fix to iSCSI retransmit flow. Introduced: Day 1. Relevance: All. 5. Problem: CQ67285 - iSCSI-boot installation fails when switching SFP+ boot port and moving the SFP+ module prior to boot. The SFP+ insertion triggers an interrupt which configures the SFP+ module according to module parameters that were not init. Change: In the context of the assertion interrupt of the SFP+ module configure the SFP+ module only if PHY parameters were initialized. Introduced: 1.74.00. Relevance: 578xx - SFI. Enhancements: ------------- 1. Request: Enable IPGRE RSS by default. Version 1.78.13 (Feb 25, 2013) ============================== Internal FW 7.8.17 Fixes: ------ 1. Problem: Tunneling offload is not functional. Change: Fixes in tx flow. Introduced: 1.78.11. Relevance: GRE 57712/578xx. 2. Problem: CQ67472 CQ67633 CQ67664 CQ67721- Race at VF interface unload leads to "dead" vf. Change: Reader/Writer lock mechanism erroneously modified sp-verbs return value, breaking SR-IOV state machine. Introduced: 1.78.08. Relevance: SR-IOV. 3. Problem: Kernel crash due to cnic-bnx2x version mismatch. Change: Update interface version due to structure change. Introduced: 1.78.11. Relevance: CNIC storage. 4. Problem: Inter-PF TX switching was always allowed in NPAR mode and set. Change: Disable inter-PF TX switching. Introduced: Day 1. Relevance: BCM57712/57810/57840, NPAR mode with TX switching. 5. Problem: CQ67720 - Issuing on-chip TCP close to iSCSI connection while there are open OOO isles will cause system crash. Change: (FW iSCSI) Fix relevant firmware flow. Introduced: 1.60.00 (FW 6.0.0). Relevance: BCM57710/57711/57712/57810/57840. 6. Problem: CQ67005 - In some cases of on-chip termination the graceful termination timer gets "stuck", and the termination doesn't complete. Change: (FW iSCSI) Firmware fix to MSL timer tolerance. Introduced: Day 1. Relevance: BCM57711/57712/578xx. 7. Problem: CQ67848 - Driver fails to compile on SUSE11SP3. Change: Perform code adaptations. Introduced: Day 1. Relevance: SUSE11SP3. 8. Problem: CQ67861 - SR-IOV sysfs support caused long timeouts in driver load/unload and "unknown device" printouts when sriov virtual functions were configured (via nvm cfg or via CCM). Note, SR-IOV didn't have to be enabled. Change: Support SR-IOV sysfs interface only when PF is up and scan only relevant VFs when loading/unloading. Introduced: 1.78.11. Relevance: Machines where number of VFs > 0 (configured via CCM or nvm cfg. SR-IOV may have been disabled). 9. Problem: GRE enabled for 57710/57711. Change: Disable the feature for unsupported hw. Introduced: 1.78.06. Relevance: 57710/57711. 10. Problem: CQ67180 - when ARI forwarding flag is not present in pci bridge device probe fails. Change: Only fail sriov support. Introduced: 1.74.02. Relevance: SR-IOV. Version 1.78.12 (Feb 14, 2013) ============================== Internal FW 7.8.15 Fixes: ------ 1. Problem: Driver fails to compile on SLES11SP2. Change: Revert compat changes. Introduced: 1.78.11. Relevance: SLES11SP2. Version 1.78.11 (Feb 13, 2013) ============================== Internal FW 7.8.15 1. Problem: Division-by-zero is possible when receiving unusual aggregated (GRO/LRO) packets. Change: Use number of aggregated packets from FW cookie. Introduced: 1.78.09. Relevance: GRO/LRO. 2. Problem: Driver does not compile on SLES11 SP2 Xen kernel. Change: Introduce said kernel in the compat file. Introduced: 1.78.09. Relevance: SLES11 SP2 Xen. 3. Problem: CQ67367 - Complete starvation of ETH traffic in stress scenario involving FCoE and ETH traffic. Change: Fix hardware initialization values. Introduced: Day 1 of 4-port. Relevance: 578xx, 4-port mode. 4. Problem: Fix performance issue of non-LSO encapsulated packets with L4 checksum offload. Change: (FW ETH) Fix the relevant firmware flow. Introduced: 1.78.10 (FW 7.8.14). Relevance: BCM57712/57810/57840, non-LSO encapsulated packets with L4 checksum offload. 5. Problem: CQ67253 - Chip gets stuck during heavy FCoE traffic in 4-port mode while working vs. 3PAR targets. Change: (FCoE FW) Fix relevant firmware flow. Introduced: Day-1. Relevance: BCM57712/57810/57840 FCoE 4-port mode. 6. Problem: CQ67011 - False error reporting while working vs. 3PAR targets. Change: (FCoE FW) Fix relevant firmware flow. Introduced: Day-1. Relevance: BCM57712/57810/57840 FCoE. 7. Problem: FW assert when compiling with STOP_ON_ERROR. Change: Stop instructing fw to test Tx packets via the `enforce_security_flag' (waiting for FW support). Introduced: 1.78.08. Relevance: SOE with iSCSI support. Enhancements: ------------- 1. Request: CQ67513 - Support dynamic control of number of VFs via sysfs interface. 2. Request: CQ67682 - Added debug prints for parity attentions. Version 1.78.10 (Feb 05, 2013) ============================== Internal FW 7.8.14 Fixes: ------ 1. Problem: Driver does not compile on SLES11 SP2 and SP3. Change: Fix compat.h and various ifdefs to allow compilation. Introduced: 1.78.09. Relevance: SLES11 SP2/SP3. Enhancements: ------------- 1. Request: CQ67078 - Control SFP+ tap values through nvm configuration. Version 1.78.09 (Feb 03, 2013) ============================== Internal FW 7.8.14 Fixes: ------ 1. Problem: Compilation of driver fails when kernel is compiled without TCP/IP support (CONFIG_INET). Change: Don't compile the GRO bridging fix if TCP/IP is not enabled. Introduced: 1.78.08. Relevance: All. 2. Problem: BZ867302 (RH) - Kdump kernel crashes during bnx2x load. Change: Ignore spurious interrupts received before interrupts are enabled in the IGU. Introduced: 1.72.13. Relevance: Kdump kernel. 3. Problem: CQ67344 CQ67342 CQ67343 CQ67214 activating or configuring register dump / flow control / self test / int. coalescing / nic identification (blink led) for a VF would crash the Guest OS. Change: Create a separate ethtool ops struct for vfs, supporting vf-safe ops only. Introduced 1.74.02. Relevance: SR-IOV. 4. Problem: GRO usage may cause qdisc counting to go wrong. Change: correctly set gso_segs for all aggregated packets. Introduced: 1.72.09. Relevance: net-next, qdisk ingress enabled. 5. Problem: In SFP detection module when 1G device is detected, an error for wrong forced link speed is printed, regardless of requested link speed. Change: Condition the warning print for wrong forced link speed only if the previous doesn't match the current. Introduced: 1.74.10. Relevance: 578xx - SFP+. 6. Problem: CQ66632 - driver logs "unknown MF mode 0x100" when in single function mode. Change: Issue printout only when multi function mode is really unknown. Introduced: Day 1. Relevance: Forced Single Function mode. 7. Problem: CQ66564 - Chip might crash when receiving data packet carrying TCP FIN flag during heavy iSCSI traffic. Change: (FW iSCSI) Fix race condition between data placement command, and receive buffer release command during connection termination. Introduced: Day 1. Relevance: BCM57710/57711/57712/57810/57840 iSCSI. 8. Problem: When receiving data packet after FIN was received, a RST packet was sent in response. Change: (FW iSCSI) Data packet that arrives after FIN was received will be dropped. Introduced: Day 1. Relevance: BCM57710/57711/57712/57810/57840 iSCSI. 9. Problem: Malicious VF may cause a hardware attention if VF will send LSO packet with zero mss value. Change: (FW ETH) Fix the relevant firmware flow. Introduced: 1.64.00 (FW 6.4.0). Relevance: BCM57712/57810/57840, SRIOV only. 10. Problem: CQ66794 - device is writing to address 0 in 57710 TPA. Change: (FW ETH) Fix the relevant initialization code in 57710. Introduced: 1.64.00 (FW 6.4.0). Relevance: 57710 only, when TPA is enabled. 11. Problem: CQ66787 - When packet with payload bigger than MTU arrives a Malicious VF notification errr_id-0x3 was given. Change: (FW ETH) Silently drop packets with payload bigger than MTU. Introduced: 1.78.00 (FW 6.4.0). Relevance: BCM57712/57810/57840, SRIOV only. Enhancements: ------------- 1. Request: CQ67327 - Driver learns metal version from MFW instead of reading MISC_REG_CHIP_METAL. 2. Request: CQ61593 - Added private flags support which passes the information of which storage offloads are available, and whether a given function is `storage-only'. 3. Request: CQ67340 - Storage-only devices use their SAN mac for their primary mac. 4. Request: Improve performance of non-LSO checksum offloading of packets with tunneling. 5. Request: In tunneling LSO, set DF flag on the IPv4 header in case we don't increment the IP ID. 6. Request: CQ67514 - SR-IOV: Support HyperVisor iproute2 callbacks for configuring and querying VF properties. 7. Request: Set elink shmem link indication as up during loopback test. Version 1.78.08 (Jan 13, 2013) ============================== Internal FW 7.8.12 Fixes: ------ 1. Problem: CQ66869 - Throughput in bridging scenarios when GRO is enabled (and LRO is disabled) is very low. Change: Under GRO, calculate pseudo checksum and send packet with CHECKSUM_PARTIAL to the network stack. Introduced: 1.72.09. Relevance: GRO bridging. 2. Problem: CQ67111 - Failure to allocate all Tx queues may lead to panic. Change: Correct pointer references to queues structures when memory is insufficient for all queue allocations. Introduced: 1.72.13. Relevance: Multi-CoS. 3. Problem: CQ66264 - Null pointer dereference when deleting vlan mac classifications. Change: Add a multiple-reader/single-writer lock protecting the vlan_mac_obj registry list. Introduced: 1.70.00. Relevance: All. 4. Problem: vlan mac functionality may cause memory leaks. Change: Release unreferenced elements from execution queue when the queue gets emptied. Introduced: 1.70.00. Relevance: All. Enhancements: ------------- 1. Request: CQ66471 - when compiling driver with stop-on-error, instruct fw to test Tx packets via the `enforce_security_flag'. Version 1.78.07 (Dec 26, 2012) ============================== Internal FW 7.8.12 Fixes: ------ 1. Problem: CQ66512 - Race between FLR flow and VF close flow leads to FW assert. Change: Avoid changing the function state in FW ram at close flow. Introduced: 1.74.02. Relevance: SR-IOV. 2. Problem: CQ66879 - The LED does not blink on the BCM84834 based board due to awkward HW LED wiring. Change: Use LED4 of the BCM84834 to toggle the panel LED while keeping interrupt disabled to avoid NIG attentions, and at the end restore NIG to previous state. Introduced: Day 1. Relevance: BCM84834. 3. Problem: CQ66572, CQ66438, CQ66437 - configuring vlan group for VF device was not supported for VFs running in old kernels. Change: Implement the vlan_rx_register ndo in relevant kernels. Introduced: 1.78.00 (SR-IOV day one). Relevance: SR-IOV VF devices in kernels before 2.6.37. 4. Problem: CQ66795 - NC-SI traffic is stopped between probe phase to ifup phase when launched after UNDI driver (in FCoE or iSCSI boot). Change: Re-enable NIG filters after closing them as part of other driver unload flow in probe phase, and close LLH filters set by UNDI. Introduced: 1.74.10 (when fixing CQ #64854). 5. Problem: Final cleanup on 4-port during FLR mode may cause hardware attention. Change: (FW) Fix the relevant firmware flow. Introduced: Day 1. Relevance: BCM57712/57810/57840, FLR flow in 4-port mode. 6. Problem: CQ66558 - Total loss of network traffic and crash may occur when ToS changes during the life-cycle of a TCP connection (e.g., pure ack in a connection supporting ECN) while TPA is enabled. Change: (FW Eth) Fix handling of ToS change in TPA firmware flow. Introduced: 1.64.01. Relevance: TPA enabled. 7. Problem: With TPA enabled, an aggregation of tcp packets can be started by a Pure-ACK packet over IPv6. Change: (FW Eth) Increase minimum packet size for RX TCP Aggregation. Introduced: 1.64.01. Relevance: TPA enabled. 8. Problem: On rare occasion, self test link may fail since it may be still stabilizing while sampling it. Change: Sample link state up to 2 seconds before declaring link test failure. Introduced: Day 1. Relevance: All, but mostly 10G-baseT PHY. 9. Problem: CQ66402 - EEE is not fully enabled for BCM84834. Change: Resolve EEE AN for BCM84834 as well. Introduced: Day 1. Relevance: EEE in BCM84834. Enhancements: ------------- 1. Request: Integrated upstream patch d46d132c, `use netdev_alloc_frag()'. 2. Request: CQ66689 - Add support for RJ45 SFP module. 3. Request: Support differnet GRE RSS modes. Feature is conigured using two module params with following values: gre_tunnel_mode - Set GRE tunnel mode: 0 - NO_GRE_TUNNEL 1 - NVGRE_TUNNEL 2 - L2GRE_TUNNEL 3 - IPGRE_TUNNEL gre_tunnel_rss - Set GRE tunnel RSS mode: 0 - GRE_OUTER_HEADERS_RSS 1 - GRE_INNER_HEADERS_RSS 2 - NVGRE_KEY_ENTROPY_RSS Version 1.78.06 (Dec 09, 2012) ============================== Internal FW 7.8.9 Fixes: ------ 1. Problem: After PMF migration when KR2 is enabled, a link flap would occur since the KR work-around indication was not saved in shmem. Change: Save KR2 work-around parameter in shmem, and synchronize it like rest of link parameters with all PFs. Introduced: T7.8. Relevance: 57840-KR2. 2. Problem: register dump via ethtool (ethtool -d) would cause vfc parity and tsem interrupt to be raised. Change: Remove the vfc registers from the registers being read by register dump. Introduced: 1.78.02. Relevance: T7.8. 3. Problem: CQ64624 - non inbox driver on RH6.3 appear to have DMA issues. Change: Use compat.h to override the missing CONFIG_NEED_DMA_MAP_STATE in RH6.3. Introduced: Day 1. Relevance: RH6.3. 4. Problem: CQ66536 - Boot from SAN fails due to dcbx out of sync towards specific switch. Failure occurs because link flap after OS driver loads is missed by the switch. Change: Don't flap the link when driver takes link ownership, if loads after preboot driver, even if required link settings aren't similar. Introduced: Day 1. Relevance: Boot from SAN flow. 5. Problem: VLAN acceleration in not functional on RHEL6.4. Change: Adapt compat.h to RHEL6.4. Introduced: Day 1. Relevance: RHEL6.4. 6. Problem: CQ66620 - Panic when memory allocation fails. Change: Correct the movement of PFs when memory allocation fails. Introduced: 1.72.51. Relevance: FCoE. 7. Problem: CQ66790 - KR2 link remains down after reboot. FCOE driver reconfigured bnx2x driver settings via ethtool, while 1G/10G supported link speed were missing by default, causing the ethtool to clear existing 1G/10G link advertisement. Change: Add 1G/10G link speeds to KR2 Net Serdes Interface, and additional, add support for 20G advertisement when autoneg link speed is set via ethtool. Introduced: T7.8. Relevance: 57840-KR2. 8. Problem: CQ66353 - VFs do not enumerate when only port 1 is enabled and configured for SR-IOV. Change: Gracefully abort iov probe when a fucntion has SR-IOV capability but 0 VFs. Introduced: 1.74.02. Relevance: SR-IOV. Enhancements: ------------- 1. Request: Support for NVGRE RSS by module param (nvrge_rss_en). 2. Request: Revised PCIe Advanced Error Recovery. 3. Request: CQ65639, CQ65815 - Implement a shutdown callback which handles PCI power management. 4. Request: CQ66821 - Propagate new SF personalities from NVM. Version 1.78.05 (Nov 19, 2012) ============================== Internal FW 7.8.9 Fixes: ------ 1. Problem: CQ66067 - 'ethtool -t' on a VF causes a kernel warning. Change: on VFs, self tests are no longer supported. Introduced: 1.78.02. Relevance: SRIOV. 2. Problem: CQ66540 - MAC is all 0s for FCoE function in SD mode. Change: Use SAN MAC instead. Introduced: 1.78.00. Relevance: FCoE SD mode for 57712/578xx. Version 1.78.04 (Nov 16, 2012) ============================== Internal FW 7.8.9 Fixes: ------ 1. Problem: KR2 - Possible link flap after link up due to frame errors. Change: Adjust KR2 register configuration fix this problem, so the frame error detection band-aid is now removed. Introduced: 1.78.03. Relevance: 57840-KR2. 2. Problem: 'make soe' fails. Change: Rearrange code for STOP_ON_ERROR. Introduced: 1.78.03. Relevance: All. 3. Problem: CQ65961 - driver compilation fails on RHEL6.4 test kernel. Change: Fix in compat.h. Introduced: Day one. Relevance: All. 4. Problem: CQ66407 - No link against certain 10G switches in KR2 mode. CQ66381 - No link against certain 1G switched in KR2 mode. Change: Fix KR2 register setting to fit these modes as well. Note that in case of 8073 LP, a 10G fallback is still required. Introduced: T7.8. Relevance: 57840-KR2. Enhancements: ------------- 1. Request: Support for GRE TX CSUM offload and LSO (IPv4 and IPv6). Version 1.78.03 (Nov 13, 2012) ============================== Internal FW 7.8.9 Fixes: ------ 1. Problem: CQ65780 - Link flap on KR2 against 20G switch. CQ66364 - Link delay on KR2 connected to Pass through. CQ66079, CQ66331, CQ66407, CQ66381 - KR2 cannot link against various 10G switches. Change: 1. Add 10G fallback to KR2 devices, in case link partner doesn't set NP bit in the base page, or it only advertise 1G-KX. In that case, KR2 configuration is removed, and AN will be restarted. 2. Add KR2 recovery, in case port is in 10G-fallback mode, and sigdet is cleared, BP is cleared or LP advertises NP in BP. 3. Add Frame Error Detection when link is up, and error frames are seen, restart AN. Introduced: 1.78.00. Relevance: 57840-KR2. Enhancements: ------------- 1. Request: CQ66234 - add debug information for malicious notifications from firmware. Version 1.78.02 (Nov 08, 2012) ============================== Internal FW 7.8.9 Fixes: ------ 1. Problem: CQ65641 - No 1G link against certain switches. Change: Restore CL72 misc control register to default value rather than 0. Introduced: T7.2. Relevance: 578xx-KR. 2. Problem: CQ65784 - No link against 1G switch in KR2 mode. Change: Check 1G link as well in KR2 mode. Introduced: 1.78.00. Relevance: 57840. 3. Problem: Several KR registers were not set correctly back to default correctly after loopback test. Change: Set those global registers over the global WC lane (zero) rather than the current lane. Introduced: 1.74.02. Relevance: 57840 - KR/KR2. 4. Problem: KR2 work-around (From CQ65727 fix), may be set off too early. Change: Wait for 4 seconds after signal is detected, before start checking the need for symptoms of this problem, and in that case, disable the whole KR2 configuration, and not just CL73. Introduced: 1.78.01. Relevance: KR2. 5. Problem: CQ65773 - No link after PXE boot in link flap avoidance case. Change: Set the appropriate default PHY DEVAD even if LFA kicks in. Introduced: 1.74.02. Relevance: 57712. 6. Problem: CQ66067 - 'ethtool -t' on a VF causes panic. Change: Remove self-test support from VFs. Introduced: day 1. Relevance: SR-IOV. 7. Problem: Driver crashes when adding VLAN on an interface while CNIC is not loaded. Change: Check if CNIC is loaded before trying to configure the FCoE queue with VLAN. Introduced: Introduced: 1.78.00. Relevance: All. 8. Problem: CQ65406 - FLR on VF0 on MF system can cause system crash. Change: (FW Fix) Fix to FLR flow in Initial Cleanup Ramrod. Introduced: 1.78.00 (FW 6.4.0). Relevance: BCM57712/57810/57840, SRIOV Only. 9. Problem: CQ65838- Driver asserts when VM is started. Change: (FW fix) FLR Initial Cleanup for VF with function state disabled is now allowed. Introduced: 1.78.00 (FW 7.8.0). Relevance: BCM57712/57810/57840, SRIOV Only. 10. Problem: CQ66088, CQ66042, CQ65950 - FCoE is not functional on 4-port mode. Change: (FW fix) fix for separation between the 2 ports of path. Fix function ID assignment. Introduced: 1.78.00 (FW 7.6.0). Relevance: BCM57840 on 4-port mode. 11. Problem: CQ65951 - Chip 57840 hangs when offloading iSCSI connection. Change: (FW iSCSI) Firmware implementation fixed. Introduced: 1.78.00 (FW 7.6.0). Relevance: 57840. 12. Problem: CQ65981 - KR link stays down after toggling OEM switch port state. Change: Add recovery sequence that runs every two seconds for four times after PHY is initialized, and after link goes down. In case it detects link down, it toggles RX/TX asic, and restarts autoneg. Introduced: Day 1. Relevance: 57810-KR. 13. Problem: CQ63937 - D3 external loopback test failing on 20G boards. Change: Refine force 20G KR2 mode, mainly around CL72 registers. Introduced: Day 1. Relevance: 57840-KR2. 14. Problem: When using netconsole the system may crash. Change: Add napi for cnic queues only if cnic is enabled and as part of cnic_load. Introduced: 1.78.00. Relevance: All. 15. Problem: Potential crash during panic dump. Change: In panic dump, collect information from the cnic queues only if cnic queues were initialized. Introduced: 1.78.00. Relevance: All. 16. Problem: CQ66284 - DXGXS fails to pass traffic. Change: Set XMAC mode to XLGMII only in KR2 and not in DXGXS mode. Introduced: 1.78.00. Relevance: 57840-DXGXS. 17. Problem: CQ66105 - In SD mode, outer vlan may be incorrect. Change: (FW) Fix function update flow. Introduced: 1.78.00 (FW 7.2.3). Relevance: 57711/57712/578xx. 18. Problem: CQ65838 - SRIOV: FW assert during IOV switch uninstall. Change: (FW) Downgraded FW assert to a warning. Introduced: 1.78.00 (FW 7.8.2). Relevance: 57712/578xx. 19. Problem: CQ65432 - FCP RSP overflow/underflow error was wrongly reported. Change: (FW FCoE) Fix in FW flow. Introduced: Day one. Relevance: 57712/578xx FCoE. Enhancements: ------------- 1. Request: CQ65665 - Add grc dump generation capability. Supported from kernel v3.0.0 and above. Usage: 'ethtool -d eth> filename'. 2. Request: When unknown TLV arrives on the VF PF channel: 1. do not lock the channel. 2. if the VF is acquired, respond that TLV is not supported. Version 1.78.01 (Oct 18, 2012) ============================== Internal FW 7.8.2 Fixes: ------ 1. Problem: CQ65645 - Possible incorrect link speed provision following rapid link speed change. Change: Clear link speed mask after each link change, and not only after link down. Introduced: Day 1. Relevance: Autoneg. 2. Problem: Ethtool -p working for PMF only. Change: Set HW lock for each PHY trunsaction. Allow led blickering for not PMF. Introduced: Day 1. 3. Problem: Big Endian machines filter incoming ARP packets. Change: Corrected function_start ramrod after HSI changes. Introduced: 1.78.00. Relevance: Big Endian Multi-Function devices. 4. Problem: Idle Check fails after boot from SAN. Change: Clean NIG interrupts in UNDI unload flow. Introduced: Day 1. Relevance: Boot from SAN. 5. Problem: CQ65727 - KR2 fails to link against (non-8073) 10G switch. Change: Apply KR2 work-around in case CL73 fsm is stuck waiting for next-page. Introduced: T7.5. Relevance: KR2. 6. Problem: 10G Functions are allocating minimal Rx rings. Change: Correct fix reducing the size of rings for 1G functions. Introduced: 1.72.06. Relevance: 5771x. 7. Problem: Driver loading with non-zero debug parameter may lead to segmentation fault and improper board name is printed. Change: Fix boards descriptions. Introduced: 1.74.03. Relevance: 578xx and 57712 VF. 8. Problem: CQ65910 - KR2 fails to link against (non-8073) 10G switch. Change: Apply KR2 work-around in case CL73 fsm is stuck waiting for next-page on a specific lane, and not on both lanes of the port. Introduced: T7.5. Relevance: KR2. 9. Problem: CQ65848 - When probing for devices on RH6.3, 57840 boards in multi-function mode are ignored. Change: Override linux's defined PCI_DEVICE_ID for 57840 MF. Introduced: 1.78.00. Relevance: 57840 MF. 10. Problem: Possible crash when storage services are requested and the device is in INT mode. Change: Update the interrupt handler with the correct condition to check completions on the OOO queue. Introduced: 1.78.00. Relevance: All. 11. Problem: CQ61866 - Link drops during reboot test using MFW older than T7.2 due to lack of appropriate PHY lock in those versions. Since this is timing related, some systems may exhibit this issue more often than others. Change: When old MFW is detected, check correct EMAC setting for CL45 and the correct PHY clock to achieve good PHY access. In case it is not set correctly, change it accordingly. In addition, in case of external PHY, set the external PHY's EMAC mode in case it is different than the internal PHY. Introduced: Day 1. Relevance: All. Enhancements: ------------- 1. Request: CQ65695 - when DCB ioctls fails due to wrong version passed by user, print the versions (both requested and passed). 2. Request: enlarge the memory reserved for the PF VF bulletin board for future growth. 3. Request: CQ64735 - Control SFP+ tap values through nvm configuration. Version 1.78.00 (Sep 16, 2012) ============================== Internal FW 7.8.2 Fixes: ------ 1. Problem: Driver load fails due to interrupts remaining masked forever. Change: Added logic to the sp task to determine whether it was invoked by an interrupt or by another flow (e.g. SRIOV). Introduced: 1.72.10. Relevance: SRIOV. 2. Problem: When SFP+ module is plugged in after driver is already loaded, it may not be recognized. Change: Allow SFP module recognition time of up to 300ms, without resetting the module power in the middle. Introduced: 1.74.01. Relevance: 578xx-SFP. 3. Problem: CQ65455 - driver does not compile on XenServer 6.1. Change: Updated compat.h with xenserver support to enable compilation. Introduced: XenServer 6.1 RC (58117p). Relevance: XenServer 6.1. 4. Problem: CQ65429 - driver ignores auto-greeen disablement via module parameter. Change: Fixed misbehaviour in which driver always enabled auto-greeen according to shmem value. Introduced: 1.70.20. Relevance: 578xx, auto-greeen. 5. Problem: When ethtool -t reports errors - it does not provide any information about errors founded. Change: Change print level for errors. Introduced: Day one. Relevance: All. 6. Problem: CQ65475 - LPI keeps on advancing when link speed is one for which EEE is inactive. Change: Enable LPI and claim EEE is active only if EEE was negotiated for actual link speed. Introduced: 1.74.10. Relevance: 578xx, EEE. 7. Problem: CQ56737(cont.) - TX_DIS signal causes current leakage issue on the module 3.3V power rail (V_3P3_SFP2) when no module is plugged. Change: Keep TX laser always enabled even when SFP+ module is plugged out. Introduced: 1.74.00. Relevance: 578xx. 8. Problem: No link on 578xx 10G-baseT boards. This problem is introduced only now, due to changes in 20G link indication which indirectly affects detecting this type of link. Change: Apply correct supported mode to the XFI interface of the Warpcore. Introduced: No. Relevance: 578xx. 9. Problem: When device in KR2 mode link with BCM8073, and link partner initiate autoneg, link is not recovered. Change: In this mode, when link goes down, and KR2 work-around is set, re-advertise 20G speed and restart autoneg. This fix also covers scenario where a 8073 link partner is swapped with true KR2 link partner. Introduced: 1.75.00. Relevance: 57840-KR2. 10. Problem: CQ65497 - Observing packet drops when running heavy traffic. Change: Add BRB initialization to port phase. Introduced: 1.74.11. Relevance: 57712/578xx. 11. Problem: CQ65569 - Memory is leaking during modprobe/rmmod test. Change: Properly release memory during rmmod. Introduced: 1.74.04. Relevance: All. 12. Problem: CQ64468, CQ65257 - Lower IPv6 performance. Change: Fix parsing csum validation from FW. Introduced: 1.74.04. Relevance: IPv6 with extension headers. 13. Problem: CQ65322 - packets are not completed on the forward channel. Change: (FW iSCSI) fix a bug in ETH firmware flow regarding forward channel consumer updates. Introduced: 1.64.00 (FW 6.4.0). Relevance: iSCSI. Enhancements: ------------- 1. Request: Add script mk_kernel_patch.sh which generates patch for driver integration into kernel tree. 2. Request: CQ63733/CQ63815 - Support new DIDs for 57840 device. 3. Request: Add PHY FW upgrade for BCM84834. 4. Request: Add support for 20G-KR2. 5. Request: Load CNIC only if storage services are requested (i.e. cnic module registers to bnx2x). 6. Request: Change to D3 only upon shutdown; enable nvram access while functions are down via ethtool. Version 1.74.12 (Aug 30, 2012) ============================== Internal FW 7.4.12 Fixes: ------ 1. Problem: CQ65076 - PFC storm is generated when PFC is disabled and enabled on the switch port with converged I/O is running. Change: (FW) BRB configuration is the same for PFC and PAUSE. Introduced: 1.71.00. Relevance: 578xx. 2. Problem: CQ65322 - Not all packets are completed on forward channel. Change: (FW iSCSI) Fix a bug in ETH firmware flow regarding forward channel consumer updates. Introduced: 1.64.02. Relevance: 57812, 578xx + iSCSI. Version 1.74.11 (Aug 27, 2012) ============================== Internal FW 7.4.10 Fixes: ------ 1. Problem: CQ64753 - When using netconsole, the system may crash if CNIC is enabled. Change: Correct the function that handles the netpoll call. Move 'napi add' from probe to NIC load, and add mapi only for queues which are enabled. Introduced: Day 1. Relevance: All. 2. Problem: Power leakage when over current asserted. Change: SFP+ power disable when over current asserted.. Introduced: Day one. Relevance: All. 3. Problem: Starting an interface causes BE machine to freeze. Change: Fixed endian issue when handling classification eqe. Introduced: 1.74.08. Relevance: 57710 BE. 4. Problem: CQ64721 - False parity errors reported in the VFC, XSEM and TSEM CAM memories when operating near -5% on the 1.0V Core supply. Change: Register value update that improves read margin timing on affected CAM memories. Introduced: Day 1. Relevance: BCM578xx. 5. Problem: CQ65076 - PFC storm is generated when PFC is disabled and enabled on the switch port while converged I/O is running. Change: BRB configuration is the same for PFC and PAUSE. Introduced: 1.72.00. Relevance: BCM57810. 6. Problem: CQ62937 - Chip hangs when RST packet is sent from pure-ack queue causing credit-return overflow. Change: (FW iSCSI) Firmware implementation fixed to send RST packet only from regular transmit queue. Introduced: 1.70.09 (FW 7.0.16). Relevance: All. 7. Problem: CQ65323 - FW assert during traffic when DCB enabled. Change: Don't execute another STATS_QUERY before all FW completions are done. Introduced: 1.64.00. Relevance: All. 8. Problem: CQ65280 - 'ethtool -t' fails for 57711. Change: Correct link's opening of NIG-BRB filters for 57710 and 57711, which set a non-existent bit and dirtied the idle check. Introduced: 1.74.04. Relevance: 57710, 57711. 9. Problem: Link sometimes continuously flapped when EEE was configured. Change: Remove EEE support for 84833 phys with fw version 0x1f81. Introduced: 1.74.02. Relevance: 578xx, EEE. 10. Problem: CQ65325 - on 4-port devices, some functions do not show LPI assertions in their statistics. Change: Remove the disablement of LPI assertions via a register common to both ports on a single path. Introduced: 1.74.02. Relevance: 578xx, EEE. Version 1.74.10 (Aug 20, 2012) ============================== Internal FW 7.4.9 Fixes: ------ 1. Problem: CQ64645 - Duplex state is always shown as full even if actual duplex is half. Change: Display the correct duplex value. Relevance: 57712. Introduced: 1.74.00. 2. Problem: Link flap avoidance feature might not work on BE architecture. Change: Fix Endianity in the LFA structure in the scratchpad. Introduced: 1.74.02 (when LFA feature was added). 3. Problem: CQ64942 - DCC doesn't converge because link isn't flapped after clp exit, causing remote side not to send DCC first command. Change: Disable LFA for first link flap after clp exit with DCC parameters. Introduced: 1.74.02. Relevance: MF allowed mode. 4. Problem: CQ56737 - TX_DIS signal causes current leakage issue on the module 3.3V power rail (V_3P3_SFP2) when no module is plugged. Change: Keep TX laser always enabled, should be disable in case of fault to get valid module. Introduced: 1.70.00. Relevance: 578xx. 5. Problem: CQ65037 - Disabling PFC priorities through dcbnl doesn't work. Change: Clear relevant bit when disabling. Code mistakenly only set relevant bit when enabling. Introduced: Day 1. Relevance: 57712 + 578xx. 6. Problem: CQ65074 - Possible no link when LFA kicks in after pre-boot driver initialized the link, since preboot drivers do not work in interrupt mode, hence do not initialize it. Change: If LFA terms are met, initialize the necessary interrupt registers in the PHYs. Introduced: 1.74.02. Relevance: 57712 + 8073/8727/848x3. 578xx + 54618se/848x3. 7. Problem: CQ64849 - PFC is not enabled even when asked explicitly through BACS when remote peer doesn't support DCBX. Change: Configure PFC/ETS values even if remote peer is missing if asked explicitly through dcbnl/ioctl. Introduced: Day 1. Relevance: 57712 + 578xx. 8. Problem: CQ64854 - Link flap is observed during boot from SAN. Change: Fix driver's reload flows (inner unload/load) to inform the MFW not to toggle the link. Introduced: Day 1. Relevance: All. 9. Problem: Stack overrun in HyperVisor in SRIOV error flows. Change: Change state machine transitions to utilize rescheduling of workqueue items instead of recursion in error flows. Introduced: 1.74.02. Relevance: SRIOV. 10. Problem: Some VFs fail to load in VMs. Specifically, FLR cleanup is not performed on VFs with vfid >= 8. Change: Store the result of the logical and of the FLRed vfs mask and the existing VFs in u32 rather than u8. Introduced: 1.74.02. Relevance: SRIOV. 11. Problem: CQ64980 - On systems where the ethtool set_settings function is called when interface is loaded, LFA doesn't occur. Change: Limit link reset on ethtool only for EEE setting, and restart N-WAY negotiation. Introduced: 1.74.06. Relevance: LFA. Enhancements: ------------- 1. Request: Add EEE to LFA conditions. 2. Request: Display the following warning when non-10G Ethernet SFP optic module is plugged in, and the speed is forced to 1G. "Warning: Link speed was forced to 1000Mbps. Current SFP module in port 2 is not compliant with 10G Ethernet". 3. Request: CQ64686 - boards with 54618se external phys now use native eee instead of auto-grEEEn. Version 1.74.09 (Aug 06, 2012) ============================== Internal FW 7.4.9 Fixes: ------ 1. Problem: ethtool -t under traffic may fail. Change: Update registers' definitions. Introduced: Day one. Relevance: All. 2. Problem: Ethtool shows previous speed/duplex instead of unknown when DCC indicates 'link down'. Change: Fix callback when flag MF_FUNC_DIS is set. Introduced: 1.72.11. Relevance: DCC. 3. Problem: At insmod driver would clear all the bits of the recovery register of that engine. In Physical Device Assignment this could lead to the recovery bit of a loaded PF (on another VM) to be cleared, leading to recovery taking place while a PF is active. This could certainly crash a VM, and perhaps also the HyperVisor. Change: Do nothing with the recovery reg at insmod. Driver sets it's bit at nic_load, resets it at nic_unload, and if a VM crashes ungracefully, bootcode clears the bit at pulse timeout. Introduced: 1.72.03. Relevance: Recovery Flow in Physical Device Assignment. 4. Problem: At previous driver unload flow (removing the initialization remnants after chip was initialized by a driver from which control was wrested such as kdump in pda, or after undi driver) condition to activate FLR was wrong, resulting with FLR never taking place (and driver load taking place after timeout, disregarding the fact that the function was not reset). Errors in FLR activation led to function not acking the unload command towards mcp, leaving the function disabled. Change: Fix FLR activation condition and error handling in previous unload flow. Introduced: 1.72.13. Relevance: Physical Device Assignment. 5. Problem: No connectivity between VF and its host PF when in single function mode even if tx-switching module param was set. Change: Add the source and dest mac addresses to the parsing BD if the tx-switching module param was set (this was already done in switch independent multi function mode, so problem only occurs in single function mode. Introduced: 1.72.02. Relevance: SRIOV in single function mode. Version 1.74.08 (Aug 01, 2012) ============================== Internal FW 7.4.9 Fixes: ------ 1. Problem: CQ64511 - if num_vfs module parameter is given but SRIOV capability is not present in pci config space probe was failed. This caused device with 2x10g ports and 2x1g ports to show only the 10G devices, or a machine with E3 and E1.5 devices to show only the E3 devices. Change: Succeed probing SRIOV incapable devices regardless of num_vfs, module parameter. if SRIOV capability is not present - don't support it. Introduced: 1.74.02. Relevance: SRIOV. 2. Problem: CQ64723 - Spelling error in the following debug print: "WOL not supproted". Change: Replace supproted with supported. Introduced: 1.72.12. 3. Problem: Once the first VF interface is loaded, fcoe non-offloaded stats are no longer collected, and PF issues stats requests for the first VF address even after it is unloaded. Change: Properly position VF stats requests on ramrod with respect to FCOE stats requests. Introduced: 1.74.02. Relevance: SRIOV. 4. Problem: CQ64670 - If there are more than 64 cids for PF (e.g. 64 queues for PF plus a fwe for iscsi or fcoe, or when multi cos is supported when there 22 or more pf rx queues) the pf cids overspill into VF space, causing misinterpretation of PF completions as belonging to VF (can lead to HW assert, kernel null pointer dereference, etc). Change: Enlarged the PF queues space to 256. This should cover any known configuration. Added logic to ensure that even if this barrier is breached by number of PF queues, SRIOV will simply be denied to the PF, rather than crashing catastrophically. Introduced: 1.74.02. Relevance: SRIOV. 5. Problem: Possible memory leak in mcast configuration flow. Change: Properly release memory. Introduced: 1.64.00. Relevance: All. Enhancements: ------------- 1. Request: Use different bit to mark to MFW not to take link ownership upon other driver unload flow (due to MFW logics change). 2. Request: CQ64169 - Update the driver string to "QLogic 10G/20G Ethernet Driver" instead of listing all the different chips. 3. Request: Endian changes to support clean compilation with sparse. Version 1.74.07 (Jul 17, 2012) ============================== Internal FW 7.4.9 Fixes: ------ 1. Problem: CQ64141 - vf cannot send traffic after interface down/up. Change: Update net carrier status at interface up. Introduced: 1.74.02. Relevance: SRIOV. 2. Problem: CQ64368 - GRC timeouts are seen when driver trying to configure XMAC with PFC setting, while link speed is lower than 10G, and only UMAC is active. On extreme cases, GRC timeout may lead to system hang. Change: Configure PFC parameters on XMAC only when XMAC is active. Introduced: Day 1. Relevance: 578xx connected to DCBX enabled switch in 1G link speed or lower. 3. Problem: Transmit statistics are miscounted. Change: Fix Address type on parsing buffer descriptor. Introduced: 1.74.06. Relevance: 57712/578xx. 4. Problem: CQ64420 - kernel panic due to division by zero was caused by vf driver interperting an rx cqe as a gro cqe when in fact it was an lro cqe. Change: Widened vf pf interface to allow vf to request either lro, ipv6 lro or gro queues. Introduced: 1.74.02. Relevance: SRIOV. 5. Problem: in NPAR vfs of pfs higher than 0 fail to load. Change: Treat vf index sent by vf at acquire as absolute in path and not relative within pf. Introduced: 1.74.02. Relevance: SRIOV with NPAR. 6. Problem: Possible memory leak when NIC load fails. Change: Free all memory allocated until the failing point. Introduced: 1.74.02. Relevance: All. 7. Problem: CQ64080 - dcbnl reports that dcbx is supported even if it is disabled in nvram (nvm cfg 105 == 0). Change: 1. Init bp->dcb_state and bp->dcbx_enabled according to dcbx nvram value (as reflected through shmem). 2. Don't enable dcbnl/ioctl to change dcbx state if it is disabled in nvram. Introduced: Day 1. Relevance: 57712 + 578xx. 8. Problem: iSCSI connection on-chip TCP graceful termination fails if OOO isles exist when TCP CLOSE ramrod is sent. Change: FW iSCSI fixup. Introduced: 1.74.04. Relevance: iSCSI OOO. 9. Problem: CQ64612 - EEE statistics are not gathered correctly on 4-port device. Change: Read EEE statistics on a per-port manner when gathering stats. Introduced: 1.74.02. Relevance: EEE on 4-port devices. 10. Problem: Unloading a device might causing a 'Failed to connect to CNIC IRQ' warning to appear. Change: Don't request cnic interrupt when working in single msi-x mode. Introduced: 1.72.16. Relevance: Single MSI-X & iSCSI OOO. Enhancements: ------------- 1. Request: Propagate bootcode version and phy firmware version from pf to vf. 2. Request: Add asynchroneous aggregative communication channel from pf to vf (bulletin board). 3. Request: Support mac address configuration of vf from pf. Mac address is supplied either at acquire response (if already configured at that stage) or via the bulletin board. Support ndo_set_vf_mac. Once mac is configured by pf requests from the vf for changing it or adding more macs will be denied. 4. Request: HSI change to reduce number of sparse endian warnings. Version 1.74.06 (Jul 02, 2012) ============================== Internal FW 7.4.8 Fixes: ------ 1. Problem: CQ62298 - MTU changes for iscsi interface while interrupts are INTa cause timeouts and assertions. Change: CNIC notifies bnx2x whether its responsible for the interrupt or not via a flag. Introduced: 1.72.51. Relevance: iSCSI OOO over INTA. 2. Problem: CQ64001 - error bit set in ME register when VF tries to load. Change: Do not disable pci access to the VF upon vf release, as the VF requires pci access at all times (as does the PF for posting responses). Introduced: 1.74.04. Relevance: SRIOV. 3. Problem: CQ63998 - fail to load VF in 32bit guest OS on 64bit Hypervisor. Change: use aligned_u64 instead of U64 in addresses in the vf pf channel interface. Introduced: 1.74.04. Relevance: SRIOV. 4. Problem: Driver has a memory leak. Change: Fix unload flow - PFs should free memory instead of VFs. Introduced: 1.74.02. Relevance: All. 5. Problem: Other driver unload flow can end incorrectly. Change: Fix uncommon unload flow - always analyze current FW version. Introduced: 1.74.02. Relevance: Other driver unload. 6. Problem: CQ64274 - Wrong fairness between traffic classes. Change: FW: Fix ETS default settings. Introduced: 1.74.04. Relevance: All. 7. Problem: CQ63871 - LFA ignores EEE configuration change through ethtool. Actually this applies to any change coming from the ethtool in case there's no change in link params. Change: Whenever the link_set function is called in order to change link parameter, force reset the link, since this is probably the wanted behavior even if LFA conditions are met. Introduced: 1.74.02. Relevance: All. Enhancements: ------------- 1. Request: Lay groundwork for forward compatibility in vf pf channel interface. Changed the interface messages to be TLVs, in preparation of future extensions. 2. Request: Prevent link-flaps during other driver unload. Version 1.74.05 (Jun 26, 2012) ============================== Internal FW 7.4.7 Fixes: ------ 1. Problem: CQ63429 - If MSIX and MSI allocation fails, probe phase failed completely without the fallback of using INTx. Change: In such a case in PF, use INTx and complete probe fails successfully. Introduced: 1.74.02. Relevance: All. 2. Problem: CQ63790 - Wrong logic when clearing FP structure, causing only partial clearance of TPA info, and potential clearance of none allocated buffers. Change: Clear only allocated buffers and clear the entire tpa_info structure. Introduced: 1.74.03. Relevance: All. 3. Problem: XSTORM MC assert is observer during heavy TCP outbound traffic. Change: Increase number of BDs to stop/resume TX queue. Introduced: Day one. Relevance: GSO. Enhancements: ------------- 1. Request: CQ64131 - add suport nvm cfg fields for "pause on host ring". Working either by module param or nvram configuration. Version 1.74.04 (Jun 18, 2012) ============================== Internal FW 7.4.7 Fixes: ------ 1. Problem: bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on encapsulated segments. Change: Change checksum handling in Rx flow - decide whether checksum was validated by FW. Introduced: Day 1. Relevance: All. 2. Problem: Link warpcore eee passthrough mode is configured according to wrong logic. Change: Remove logic - always configure the warpcore for eee passthrough mode. Introduced: 1.74.02. Relevance: 57711, 577xx. 3. Problem: CQ63755 - Driver crash after load as result of LFA logic. Change: Close and open NIG-BRB gates only during when driver loads and unloads respectively. Introduced: 1.74.02. 4. Problem: If no VFs were allocated to a PF with SRIOV capability, driver would attempt to dereference a null pointer when setting up a queue if a VF was loaded. Change: Gracefully handle no resources. Introduced: 1.74.04. Enhancements: ------------- 1. Request: FW - change ETS default settings to fairness between traffic classes (rather than strict priority). Version 1.74.03 (Jun 11, 2012) ============================== Internal FW 7.4.6 Fixes: ------ 1. Problem: After MTU change queue statistics are not consistent. Change: Corrected Statistics preservation when clearing the fp struct. Introduced: 1.74.02. Relevance: All. 2. Problem: EEE ethtool options could not work in Multi function mode. Change: pass eee support information through shmem2. Introduced: 1.74.02. Relevance: EEE flow. 3. Problem: CQ63654 - When using 'native_eee' with high enough value, interface does not work properly. Change: Verify native_eee value is within correct bounds. Introduced: 1.74.02. Relevance: EEE flow. 4. Problem: CQ61938 - Under heavy iSCSI traffic when TCP out-of-order conditions occur, fw might send NOP-OUT commands with zero-length TCP window. This will eventually cause the connection to close and be recovered. Change: (FW iSCSI) Firmware fix in TCP out-of-order mechanism. Introduced: 1.64.00. Relevance: All. 5. Problem: iSCSI connections on-chip TCP establishment might fail. Change: (FW iSCSI) Firmware fix in on-chip TCP establishment. Introduced: 1.74.01. Relevance: All. 6. Problem: CQ62937 - iSCSI connections on-chip TCP graceful termination fail is OOO isles exist when TCP CLOSE ramrod is sent. Change: (FW iSCSI) change TCP CLOSE ramrod status code when OOO isles exists. Introduced: 1.64.00. Relevance: All. 7. Problem: If IGU parsing failed due to bad IGU configuration, probe phase crashed. Change: Fail gracefully the probe phase. Introduced: day 1. Relevance: All. 8. Problem: CQ63681 - bnx2x crash after port is configured with 1.74.02. CQ63755 - bnx2x panic when bring up a link. CQ63785 - Intermittent Driver Assert after configuring IP/Vlan information on device. The root cause is insufficient gate closure between the NIG to the BRB during link flap avoidance. It used to rely on specific filters, which didn't capture all traffic. Change: Close the NIG-BRB gate during LFA reset to prevent packets flowing in before BRB is reset. Introduced: 1.74.02. Relevance: All. Version 1.74.02 (Jun 03, 2012) ============================== Internal FW 7.4.4 Fixes: ------ 1. Problem: Possible crash when doing ethtool -L while CNIC is up. Change: Indicate the updated number of CIDs and ILT lines to CNIC during NIC load. Introduced: 1.72.51. Relevance: All. 2. Problem: Warning kernel logs might be displayed during probe, indicating that number of MSIX vectors in IGU is different than the value advertised in PCI config space. This warning can be displayed due to new scheme used in MFW T7.4. Change: Remove that warning. Introduced: 1.70.23. Relevance: (1) MFW T7.4 is used AND (2) SRIOV is enabled in nvram AND (3) MF mode or 4 port mode is used. 3. Problem: Nic load takes long time and might fail when using MFW T7.4, as driver assumed wrongly that all status block advertised to it were allocated by the MFW (which is wrong with new MFW scheme). Change: Assume number of status blocks is the minimum between the value advertised in PCI and the actual allocation found in IGU scan. Introduced: 1.72.51 (when forcing of maximum 16 SBs was removed). Relevance: (1) MFW T7.4 is used AND (2) SRIOV is enabled in nvram AND (3) MF mode or 4 port mode is used. 4. Problem: CQ63210 - Ethtool -A fails to change pause parameters correctly. Change: Set requested flow control prior to the interface load. Introduced: Day one. Relevance: Boards with autoneg capabilities. 5. Problem: CQ63403 - Under low memory condition, there is a flow which may cause kernel to crash: 1. Device must be in operational state (UP). 2. Changing device parameter fails due to insufficient memory. 3. rmmod or 'ip link ethX down' leads to crash. Change: Update state on memory allocation failure; prevent accessing uninitialized structure. Introduced: 1.70.06. Relevance: Low memory conditions. 6. Problem: CQ63429 - Probe fails due to memory allocation failure when using MFW T7.4. Change: Move sp_objs, fp_stats and TPA structures out of fp structure, to force contiguous memory allocation to always be smaller than 128KB. Introduced: day 1 with MFW T7.4. Relevance: Low memory conditions. 7. Problem: CQ63630 - Packets smaller than 92 bytes ignored by kernel when MTU > 1500 on kernels 3.3 and above. Change: Fix specific flow by updating skb properly. Introduced: 1.72.04. Relevance: All. Enhancements: ------------- 1. Request: Added EEE (802.3az) support to 578xx boards with 84833 phys. 2. Request: CQ63159 - Add basic Link Flap Avoidance support. Whenever link toggles, the requested link parameters are saved in a shared memory and are used to determine the conditions for LFA to occur. LFA can be achieved only in case all of the following terms take place: 1. MFW release used is 7.4.2 and above. 2. Requested Link Speed, Duplex, Speed Capability Mask and Requested Flow Control are the same as the saved ones. Note that in case LFA conditions are not met, link should be re-initialized and flapped like before. 3. Request: When link speed is autoneg, and flow control selected is autoneg as well, apply the RX/TX parameters of the ethtool -A as the advertised ones. 4. Request: Alpha support of SRIOV. Bnx2x can now drive a regular physical function, an sriov virtual function, or a hyper-visor physical function. This is determined according to: 1. If num_vfs module parameter is supplied then the pf is a hyper visor. In the proper environment (kernel version, iommu, flr capabilities, etc) it will add 'num_vfs' virtual functions to the pci device tree. If the environment is not SRIOV friendly the PF will act normally. 2. If the chip-id belongs to a virtual function then the function is a VF and the driver will treat it as such. Such devices can only be created in the fashion described above. 3. Otherwise, the function is a normal PF. Version 1.74.01 (May 17, 2012) ============================== Internal FW 7.4.4 Fixes: ------ 1. Problem: CQ62902 - Unable to bring up device with single MSI-X vector. Change: Fix HC hw configuration. Introduced: 1.72.16. Relevance: 57710/57711 only. 2. Problem: CQ62543 - SFP+ module's not responding to I2C request. This problem occurs when the MFW is reset during I2C operation, and cause the I2C bus for read error due to "Transaction Pending". Change: Extend the I2C work-around such that on the last try, perform a SFP+ power reset to release this state. Introduced: Day 1. Relevance: 578xx SFI. This fix applies only for boards with SFP+ power disable option (nvm cfg 160). 3. Problem: If memory allocation for iSCSI OOO fails its napi object will not be deleted. In certain circumstances when memory allocation fails FCoE queue may not have napi object. After ethtool -L the number of napi objects to delete is wrong. Change: Allocate napi object for all fp-s (no skip). Set the number of allocated napi objects within the napi_add function. Introduced: Day 1. Relevance: All. 4. Problem: Crash in IF-up if the driver was not compiled with CNIC. Possible memory shortage which may fail IF-up if the driver was compiled with CNIC. Change: Correct QM allocation size. Introduced: 1.72.51. Relevance: All. 5. Problem: DCB priority was used to override inner vlan priority in SD mode. Change: (FW) In SD mode only outer vlan priority will be overridden by DCB priority. Introduced: Day one. Relevance: 57712/578xx with DCB in SD mode. 6. Problem: Inner vlan was added in case of DCB priority even outer vlan is present in SD mode. Change: (FW) In SD mode inner vlan will not be added due to DCB priority. Introduced: Day one. Relevance: 57712/578xx with DCB in SD mode. 7. Problem: Outer vlan was overridden by DCB priority even when working in STATIC COS mode and inner vlan was also present in SD mode. Change: (FW ETH) In SD mode and STATIC COS mode outer vlan priority will be overridden by inner vlan priority. Introduced: Day one. Relevance: SD mode. Enhancements: ------------- 1. Request: Remove the BCM_CNIC compile flag, make CNIC support in the bnx2x driver a run-time decision. 2. Request: TX_Fault support for SFP+ Modules on 578xx boards. 3. Request: Add support for UDP 4-tuple hash. Add support for setting UDP 4-tuple hash via ethtool -N. Add support for getting hash settings via ethtool -n. Update the README file and man page with the use of the ethtool -N command. 4. Request: CQ60633 - Support change of DCBX values from non PMF drivers, and not only from PMF drivers. Note: Feature is supported only in MFW 7.4.1 and above. 5. Request: CQ62639 - Add support for dumping VPD data of SFP modules via ethtool command. Note: Feature is supported from kernel 3.4.0. 6. Request: CQ62871 - Indicate in the README file and man page that the 'ethtool -s ethX speed NNNNN' command can be used to set in NPAR mode the maximal partition speed without a system reboot. Version 1.74.00 (May 01, 2012) ============================== Internal FW 7.2.51 Fixes: ------ 1. Problem: On RHEL 6.3, vlan cannot be created. Change: Corrected compat.h for RHEL6.3. Introduced: Day 1. Relevance: RHEL6.3. 2. Problem: CQ62690 - in MF mode driver load fails for some of the interfaces due to memory shortage. Change: Corrected doorbell allocation size. Introduced: 1.72.51. Relevance: All. 3. Problem: Possible crash in ethtool -d. Change: Don't access VFC registers when online. Introduced: Day 1. Relevance: 57712, 578xx. 4. Problem: CQ62216 - Function may fail to load after UNDI boot. Change: If pglue invalid address interrupt is set clear the 'was_error' bit in pglue. Introduced: Day 1. Relevance: All. Enhancements: ------------- 1. Request: CQ62637 - When SFP (1G) optic module is plugged in, adjust the link speed and supported speeds accordingly. 2. Request: Add support for SW timestamping in transmit. Add ethtool operation for querying timestamping capabilities. 3. Request: Corrected prints on insmod for future 57840 B1. 4. Request: Integrate the upstream "bnx2x: remove some bloat" patch by Eric Dumazet turning many inline functions to regular functions. Version 1.72.52 (Apr 19, 2012) ============================== Internal FW 7.2.51 Fixes: ------ 1. Problem: PMF does not update NCSI statistics. Change: Driver now passes statistics to MCP whenever possible. Introduced: 1.72.16. Relevance: NCSI statistics (57712, 578xx). 2. Problem: CQ60448 - Rare case of no link due to missed interrupt may occur due to a race condition between acknowledging the IGU via the BAR and restoring the NIG interrupt mask via the GRC. A fix for this issue from 1.72.13 may be insufficient. Change: Verify that the NIG attention was acknowledged specifically, otherwise if another interrupt was acknowledged on the same time, this check could have been missed. Introduced: Day 1. Relevance: All. 3. Problem: CQ62591 - Failure to compile driver with stop-on-error. Change: Added missing parenthesis in SOE ifdefed code. Introduced: 1.72.51. Relevance: All. 4. Problem: Napi delete is done according to the current number of queues and not according to the original number of queues. Change: 'Remember' the number of queues during init_one and use this number when deleting napi. Introduced: Day 1. Relevance: All. 5. Problem: Ethtool -L doesn't work with char device. Change: In case of char device refuse ethtool -L operation (add a debug print). Introduced: 1.72.04. Relevance: All. 6. Problem: Idle check shows an error in the IGU when working in single MSI-X mode. Change: Changed interrupt initialization - IGU is configured to SIMD prior to the initial ack. Introduced: 1.72.16. Relevance: 57712, 578xx. Enhancements: ------------- 1. Request: Remove the limitation of 16 RSS queues and allow up to 64 (will be limited according to the number of MSI-X vectors in PCI configuration space). Change default number of queues to be 8 (rather than number of CPUs). 2. Request: Allow increasing the number of queues using ethtool -l above the number of queues that was defined in init_one. 3. Request: Support pci device ids of 57811. Version 1.72.51 (Apr 03, 2012) ============================== Internal FW 7.2.18 Fixes: ------ 1. Problem: ethtool -d may cause chip to halt. Change: Update registers list for the dump. Introduced: Day one. Relevance: 578xx only. 2. Problem: CQ61214 - network kdump fails. Change: Functions release all hw locks they possess during probe. Introduced: Day one. Relevance: kdump. 3. Problem: CQ61763 - Parity recovery might fail on devices with two ports on the same path. Change: Don't reset MACs on parity handling, as it caused resetting of blocks owned by the MFW (on the other port not running the parity recovery). Introduced: Day one. Relevance: 57710 + 57711 + 4 port devices. 4. Problem: Other driver unload flow checks whether doorbells are out of reset in the wrong reset register. Change: Corrected the register checked. Introduced: 1.72.13. Relevance: All. 5. Problem: There is the case when the driver prevents configuration of additional MAC address. Change: Fix broken process of looking for an empty MAC entry. Introduced: 1.70.06. Relevance: All. 6. Problem: VPD extended data is not extracted correctly on old kernels. Change: corrected VPD read to support non-zero starting position. Introduced: 1.62.xx - where the device started to support longer VPD. Relevance: Boards that require FFV reporting on machines with linux kernels older than 2.6.29. 7. Problem: Driver fails to compile on RHEL 6.3 pre-alpha. Change: changed compat to prevent definition of functions that were backported into RHEL6.3 pre-alpha. Introduced: Day 1. Relevance: RHEL 6.3. 8. Problem: CQ61832, CQ62308 - Warnings seen in kernel log when running cnic test. Change: Removed warning as it was logged in a legitimate flow. Introduced: 1.64.20. Relevance: All. 9. Problem: CQ62295 - LED is still ON after the PHY got reset from fan failure test case. Change: Added work around to configure 84833 PHY to 1Gbps and all LEDs off before putting it into RESET status for hardware limitation. Introduced: Day one. Relevance: 84833 PHY. 10. Problem: CQ62298 - CNIC loses interrupts when working in INTA. Change: Stop passing interrupts to cnic only when it is de registered. Introduced: 1.64.07. Relevance: CNIC Storage. 11. Problem: CQ62279 - Bandwidth Weight not working properly. Change: Fix cmng init code - wrong parenthesis in fairness configuration. Introduced: 1.72.13. Relevance: 57711E/57712/578xx - MF devices. Enhancements: ------------- 1. Request: Wait for all 64 read tags from PCI to complete before performing parity recovery, instead of 32 tags as done today. 2. Request: Add support for external loopback test in ethtool self-test. When in MF-mode, indicate to the user that only online tests are performed. Reduce the number of tests by '1' in upstream version (as idle-check is not performed). 3. Request: Make the transmission queues adjacent (such that 'real_num_tx_queues' is the real number and there are no holes). Remove the workaround to flush all high queues during NIC load. 4. Request: Update CDU memory allocation to support up to 8 memory regions (rather than a single contiguous memory region). Reduce CDU ILT page size to 32KB. 5. Request: Add support to 57811. 6. Request: Change non-eth CIDs to start right after the eth CIDs (rather than at 48). 7. Request: In AFEX mode FCoE function should not be used for regular L2 traffic. Then the function memory print is reduced and its functionality limited to FCoE traffic only. Version 1.72.17 (Mar 20, 2012) ============================== Internal FW 7.2.18 Fixes: ------ 1. Problem: Compilation failed on SLES10.x XEN kernels. Change: Add MSIX defines if not defined in kernel headers. Introduced: 1.72.16. Relevance: SLES10.x XEN kernels. Version 1.72.16 (Mar 19, 2012) ============================== Internal FW 7.2.18 Fixes: ------ 1. Problem: CQ62046 - No link on 57712 + 8727 designs in which the TX laser is controller via GPIO, after T6.0 drivers/MFW were loaded previously without reboot. On these designs the TX_LASER is enabled by logic AND between the PHY(through MDIO), and the GPIO. When old driver which doesn't support these designs is used, it disables the MDIO part, thus the GPIO control has no affect. Change: Enable the TX_LASER on the PHY for those design to enable the GPIO control it. Introduced: 1.62.01. Relevance: BCM8727 designs with GPIO controlling the TX laser. 2. Problem: CQ62136 - boards get stuck after boot from SAN. Change: Changed UNDI unload by incrementing the producer's ring by one each iteration. Introduced: 1.72.13. Relevance: boot from SAN. 3. Problem: Consistent statistics does not work for old FW. Change: Statistics are kept locally, copied to shmem upon update. Introduced: 1.72.09. Relevance: firmware-version prior to bc 6.4.0. 4. Problem: FW sequence of requests to MCP is wrong after parity recovery. Change: Learn sequence number from shmem in nic load step. Introduced: 1.72.13. Relevance: All. 5. Problem: PXP2 is in wrong state due to double initialization occurring after global parity, one from the driver and one from the MCP. Change: Don't clear value of relevant register after resetting the MCP as a part of the recovery process to avoid the double init. Introduced: MFW 7.0.45. Relevance: All. 6. Problem: CQ62169 - XEN: Failed to bring up interface if the system can't allocate enough MSIX vectors. Change: Disable PCI MSIX capability if pci_enable_msix fails. Introduced: Day one. Relevance: XEN kernel only. Enhancements: ------------- 1. Request: Initiated FLR via MFW command no longer requires re-enabling the target read. This code can be removed since the MFW minimal required version for initiated FLR was updated. 2. Request: Remove BNX2X_MSG_CNIC debug level as it is not used. 3. Request: If the system can allocate at least one MSI-X vector - use it instead of failing to MSI or INTx modes. Version 1.72.15 (Mar 12, 2012) ============================== Internal FW 7.2.18 Fixes: ------ 1. Problem: CQ62104 - Intermittent link failure on 5771x + 8727. The "Unapproved module" flag had an indirect impact on the fix for CQ62046, which ended up in no link. Change: Clear "Unapproved module" flag in case only "warning message" is required for such modules (common case). Introduced: 1.72.14. Relevance: 5771x + 8727. Version 1.72.14 (Mar 08, 2012) ============================== Internal FW 7.2.18 Fixes: ------ 1. Problem: Driver build fails on kernels with ARCH variable defined. Change: Remove references to ARCH in Makefile. Introduced: 1.72.13. Relevance: All. 2. Problem: CQ62046 - No link on 57712 + 8727 designs in which the TX laser is controller via GPIO, after T6.0 drivers/MFW were loaded previously without reboot. This issue occurs since old drivers control the 8727 TX laser only by changing PHY register, and new drivers assumed this register had a default value, despite that this register is not actually controlling the TX laser in those designs. Note that this issue is not likely to occur because T6.0 driver don't support these kind of boards, and loading new drivers afterwards without reset, is not common practice. Change: Check SW flag instead of querying the TX_DIS register. Introduced: 1.62.01. Relevance: BCM8727 designs with GPIO controlling the TX laser. 3. Problem: insmod bnx2x more than twice may causes MCP assert during initialization of device. Change: Study MCP command sequence before sending first command. Introduced: 1.72.13. Relevance: All. 4. Problem: CQ62061 - No link on the second port of 57711 + 84823, since PHY was left in reset. Change: Unreset PHY on the second port. Introduced: 1.70.01. Relevance: 57711 + 84823. Version 1.72.13 (Mar 07, 2012) ============================== Internal FW 7.2.18 Fixes: ------ 1. Problem: TC-related warning message.with the additional call to upper stack to set real num of queues to 1. Change: Reset tc during unload to avoid warning messages. Change the call to upper stack to set real num of queues to number of RSS (rather than 1) Move setup-tc back to be after setting real number of queues. Introduced: 1.72.12. Relevance: All. 2. Request: CQ61426 - 4-port device with 2x10G and 2x1G ports is displayed as 4x10G ports. Change: Update the pci.updates and pcitable files which are part of the release process to map the pci ids of the 1G ports to corresponding 1G identification strings. Change the identification string of the entire device from 10G to 1/10G. Introduced: Day one. Relevance: 57800. 3. Problem: Debug print of 'ioctl received while the device is down' appears frequently on the debug log. Change: Remove this debug print. Introduced: 1.72.12. Relevance: All. 4. Problem: CQ61720 - MDC/MDIO access timeout message may appear on driver load due to missing clock setting before resetting the LED. Change: Relocate setting the MDC/MDIO clock before resetting the LED since this operation involves access to the PHY registers. Introduced: 7.0.0. Relevance: All. 5. Problem: When a TPA aggregation is open and a packet is accepted with timestamp OOO, the new packet begins a new aggregation instead of being indicated separately. Change: (FW ETH) Fix the relevant firmware flow. Introduced: 1.72.09 (FW 7.2.14). Relevance: All. 6. Problem: CQ61596 - There exists a corner case where firmware will send out only a single 'pure ACK' (TCP acknowledgement segment that has no payload) while 255 or more 'pre ACKs' and a 'delayed ACK' are queued and awaiting transmission. The other ACKs in the queue are sent with a payload of one byte and all have identical sequence number and valid TCP/IP checksum. When the very next TCP/IP packet is sent for the offloaded connection, the receiver will trim a single byte off the incoming packet because of the ACK received with payload of one byte. Change: (FW iSCSI) Fix the relevant firmware flow. Introduced: 1.62.01 (iSCSI FW 6.2.1). Relevance: iSCSI only. 7. Problem: FW statistics per queue does not increasing in queue counters, but properly increasing in device counters. Change: Fixed lack of queue statistics update. Introduced: 1.72.09. Relevance: All. 8. Problem: CQ61763 - parity recover might fail on devices with two ports on the same path. Change: Clear validity map of correct port before resetting MCP, as because of wrong clearance nic load after recovery can fail due to race between mailbox messages to MFW initialization process. Introduced: day one. Relevance: 57710 + 57711 + 4 port devices. 9. Problem: CQ60448 - Rare case of no link due to missed interrupt may occur due to a race condition between acknowledging the IGU via the BAR and restoring the NIG interrupt mask via the GRC. Change: Make sure that the IGU ack command is completed before restoring the NIG interrupt mask. Introduced: Day 1. Relevance: All. 10. Problem: Wrong debug prints in self-test. Disturbing debug prints on BNX2X_MSG_ETHTOOL filter. Change: Remove the problematic debug prints. Introduced: 1.72.12. Relevance: All. 11. Problem: CQ60042 - Flow control is not functional when OEM 57810s devices set to auto and evaluated via 1gb PT Module. Change: Added code to handle CL37 AN when link is achieved via CL37 in 578xx-KR. Introduced: T7.0. Relevance: 578xx-KR. 12. Problem: CQ61967 - Compilation fails on RH when only kernel-devel package is installed. Change: Fix Makefile to look for the kernel. Introduced: Day one. Relevance: All. 13. Problem: CQ61511, CQ61099 - Unable to bring up device without proper shutdown or device reset. Change: Implemented a new scheme to unload existing driver at the probe and restore states. Introduced: Day one. Relevance: Boot after UNDI, kexec() execution. Enhancements: ------------- 1. Request: Remove unnecessary `multi_mode' module parameter. 2. Request: CQ61934 - Update default Tx Equalization settings for SFP+ mode after analysis at all PVT corners. Relevance: 578xx SFP+. 3. Request: Remove `gro check' workaround from driver. Version 1.72.12 (Feb 28, 2012) ============================== Internal FW 7.2.16 Fixes: ------ 1. Problem: 1G LED stays on with cable unplugged on 57712+8727 designs. Change: Restored the MODE_LED_OFF mode to explicitly keep the LEDs off. Introduced: 1.72.07. Relevance: LED manipulation for 54616/18 and 8727 PHYs. 2. Problem: When getting / setting the number of queues via ethtool -l/L need to use 'combined' rather than 'rx'/'tx', as we we don't have independent rx and tx queues. The number of rings cannot exceed the number assumed during probe, as there will not be msi-x vector or napi object to the extra rings. When waking / starting the entire range of tx rings (which is 16*coses + non-ethernet) we may get old transmit requests on non-existing queues. Change: Use the 'combined' field rather than the 'rx'/'tx' fields. Limit the number of rings to the number assumed during probe. When waking / starting the tx rings start only the 'real' rings (and not the entire range). Introduced: 1.72.04. Relevance: All. 3. Problem: CQ61532 - System halts when driver is loaded after fan failure has occurred. This can be seen also after reboot in fan failure status. This problem happens in 578xx only where the MFW stops the clocks which prevents the host to map the PCI IO registers to BAR0, and cause fatal error. Change: MFW signals the fan failure by setting the PCI version number to 0xff (reflected in PCI address 0x8), thus allowing the driver to check this failure before mapping the bar. Fix requires MFW version 7.2.15 (and above). Introduced: MFW 7.0.51 /MFW 7.2.0. Relevance: 578xx boards with fan. 4. Problem: CQ61720: MDC/MDIO access timeout right after driver is loaded. This warning message is printed since the link periodic function is called before the link interface is initialized. Change: Start link periodic function only after link is initialized. Introduced: 1.70.12. Relevance: All. 5. Problem: CQ61680 - 57810 KR link may not come up in 1G after running loopback test. Change: Restore the 10G KR force register to their default value before starting KR autoneg. Introduced: 1.70.00. Relevance: 57810-KR when connected to 1G only link partner. 6. Problem: CQ61439 - when installing RHEL 5.7 on an iSCSI HDD, network interfaces get DMAE timeouts. Change: When enabling IGU interrupts for INTA, also remove the INTA disabled bit in the pci command register. Introduced: Day 1. Relevance: BCM57712, BCM57810. 7. Problem: CQ61628, CQ61381 - PFC frames are not honored, due to incorrect link attributes synchronization which happen following PMF migration or remote-fault detection. Change: Update link_status with the PFC_ENABLE flag on link update in addition to the pfc update function. Introduced: 1.70.00. Relevance: Multi-function(1.70.00) or SFP+ devices (1.72.07). 8. Problem: Statistics counter skb_alloc_failed updated incorrectly. Change: Updated memory allocation error handling flow. Introduced: 1.72.09. Relevance: All. 9. Problem: When decreasing the number of queues comparing to the previous load we may get old transmit requests on non-existing queues. Change: Temporary and non-upstream solution: Add call to upper stack to set real num of queues to 1. This will flush all qdisc queues greater than 1. Move setup_tc to be before set_real_num_queues to prevent warning messages. Introduced: 1.72.04. Relevance: All. Enhancements: ------------- 1. Request: Update debug prints to the appropriate mask. During probe use debug print which doesn't include eth%d. Add an error debug print when an error code (-Exx) is returned. Remove the 'releasing a lock on resource n" debug print. In debug prints put the printed string on a single line even if exceeding 80 characters. The updates described above were done only on the following files: bnx2x_main.c, bnx2x_cmn.c, bnx2x_cmn.h, bnx2x_ethtool.c, bnx2x_dcb.c, bnx2x_compat.h, bnx2x_stats.c, bnx2x.h. Relevance: All. Version 1.72.11 (Feb 21, 2012) ============================== Internal FW 7.2.16 Fixes: ------ 1. Problem: Memory leak in bnx2x_tpa_stop() if build_skb() fails while using the build_skb infrastructure. Change: Fixed. Introduced: 1.72.04. Relevance: Only new kernels with build_skb support. 2. Problem: CQ61625 - Statistics code cause prints of BUG to dmesg. Change: Missing checks in statistics code inserted. Introduced: 1.72.09. Relevance: All. 3. Problem: Unable to query/configure DCB parameters when in OFF state. Change: Remove the limitation for the IOCTLs. Relevance: DCBx supported devices. 4. Problem: CQ60873 - ethtool reports duplex/speed of closed functions. Change: If closed function/link is down, then ethtool reports duplex/speed as unknown. Relevance: All. 5. Problem: Ethtool allows forced speed of 20G to pass. Change: Return -EINVAL on forced speed of 20G (unsupported). Relevance: All. 6. Problem: CQ61601 - The FW version for 84833 PHY was captured incorrectly. As a result, the major number is always reported as '1'. Change: Fixed to read the correct field of the PHY register. Introduced: 1.72.04. Relevance: 84833 PHY. 7. Problem: Removing driver causes NULL pointer dereference when trying to reset the Forwarding ring's non existent netdev queue. Change: Only attempt to reset netdev queues for fastpaths that really have netdev queues. Introduced: 1.72.07. Relevance: iSCSI OOO. 8. Problem: CQ61564 - PFC statistics are ticking backwards. Change: PFC statistics are now consistent, both with HW and with inner reload. Relevance: BCM57712. 9. Problem: On rare cases, when link speed changes from 10G to 1G or lower, then remote fault may be reported. Change: Check remote fault indication on link speed of 10G and above, since UMAC and EMAC do not support it. Relevance: BCM578xx, BCM848x3, BCM872x. Introduced: 1.72.07. 10. Problem: CQ61678 - System crash after running IO and pulling cable. Occurs since TX pipe is stalled due to missed XON indication (from MAC did to NIG). See related CQ56434 which fixed the problem for 57712. Change: Force XON on NIG on link down/up. Introduced: 1.70.00. Relevance: 578xx. 11. Problem: FCoE capabilities values written to scratchpad are wrong, and doesn't match the values arrived from cnic. Change: Fix wrong assignment. Introduced: 1.72.06. Relevance: 578xx. 12. Problem: CQ61584 - bnx2x asserts after/during iSCSI "Connection Establishment Scenarios" test. Change: (FW iSCSI) Firmware fix to MSL timer tolerance. Introduced: Day one. Relevance: iSCSI. 13. Problem: Aggregation may stall TCP connection, since bytes to place on SGE improperly calculated. Change: (FW ETH) Firmware fix to TPA flow. Introduced: 1.72.09 (FW 7.2.14). Relevance: All. Enhancements: ------------- 1. Request: link read_status updates link partner's capabilities (fc, speed) whenever autoneg was used. New versions of ethtool output these capabilities. Relevance: All boards with phys that support autoneg. 2. Request: Remove deprecated SAFC support from driver code. bnx2x proprietary SAFC support has been trumped out by upstream Multi COS support. Version 1.72.10 (Feb 06, 2012) ============================== Internal FW 7.2.14 Fixes: ------ 1. Problem: Kernel crash while "ethtool -K lro off" during traffic. Change: Use fp flag for TPA mode. Introduced: 1.72.09. Relevance: All. 2. Problem: GRO still on, while rx checksum is off. Change: Update GRO feature according to checksum configuration. Introduced: 1.72.09. Relevance: All. 3. Problem: Unable to shut GRO on kernel with dev->hw_feature. Change: Mark GRO as HW feature. Introduced: 1.72.09. Relevance: Feature supported on kernels above 2.6.39. On other kernels module parameter "disable_tpa" should be used to disable GRO. 4. Problem: CQ61214 - Network kdump fails on bnx2x device. Change: Make driver to wait 5 sec when 'reset_devices' is on. This to allow HW to detect driver disappearance from normal kernel and properly initialize FW. Relevance: Kdump environment. 5. Problem: Not all statistics are reset in MF mode upon close/open. Change: Every function erases its function statistics' SP upon init. Introduced: 1.72.09. Relevance: Boards in MF mode. 6. Problem: WWN parameters are incorrect in FCoE SD mode. Change: Properly load the parameters in FCoE SD mode. Introduced: 1.72.08. Relevance: FCoE SD mode. Enhancements: ------------- 1. Request: When autoneg is on, ethtool -a outputs the pause configuration instead of the pause result. Relevance: All boards with autoneg-capable phys. 2. Request: Remove redundant allocation-failure messages in places that there is already a similar message from the kernel. 3. Request: Write zeros to driver_version in NC-SI shmem structure, as it should not be supported under Linux at all. 4. Request: Clarify the driver defaults in the readme file. 5. Request: CQ58557 - Allow reading the external PHY FW from any driver instance even if it is not loaded since the value is stored in shared memory and does not require any locking or any special access. Version 1.72.09 (Feb 01, 2012) ============================== Internal FW 7.2.14 Fixes: ------ 1. Problem: Possible soft-lockup in driver code. Change: Release lock in case of error. Introduced: 1.72.07. Relevance: All. 2. Problem: Driver didn't mark in shmem that driver capabilities are supported, so MFW ignored those values. Change: Mark in shmem feature is supported. Introduced: 1.72.04 (when new NC-SI commands were added). Relevance: BCM57712/BCM578xx. 3. Problem: CQ60672 - iSCSI boot fails in 57810+84833 NIC when running at 100HD link achieved via auto-neg. Change: Added configuration to set MAC controller in half duplex mode when PHY links up in half duplex mode. Introduced: Day 1. Relevance: 578xx+848x3. Enhancements: ------------- 1. Request: Statistics are consistent (i.e. not reset) when using operations which require an implicit nic_unload/nic_load. MTU change, LRO change, and self-test are examples of functionalities benefiting from this change. Relevance: All. 2. Request: CQ61246 - update dropless_fc section in README. Relevance: 57712/578xx. 3. Request: CQ59527 - Update README with handling low memory conditions on 32-bit platforms. 4. Request: CQ58302 - Update README and man page with regard to ethtool -L: The number of rx and tx rings should be the same, other and combined should be zero. 5. Request: CQ59122 - Added new TPA mode GRO. In this mode packets are aggregated such that the original packets can be reconstructed by the OS. All packets in the aggregation have the same ACK number and Timestamp. Relevance: Kernels with GRO support. Version 1.72.08 (Jan 24, 2012) ============================== Internal FW 7.2.11 Fixes: ------ 1. Problem: CQ60942 - incorrect default admin MIB values. Change: Fix default admin MIB values. Introduced: 1.72.00. Relevance: DCBX capable devices. 2. Problem: CQ60808 - dcbxinfo prints 'DCB is out of sync'. Change: Use driver flags as bit-mask. Introduced: 1.70.17. Relevance: DCBX capable devices. 3. Problem: FCoE/iSCSI interface initialization fails after recovery process. Change: Enable driver to approach the chip during nic load performed at the end of the recovery process. Introduced: Day 1. Relevance: All. Enhancements: ------------- 1. Request: Support FCoE SD mode. Relevance: BCM57712/BCM578xx. Version 1.72.07 (Jan 19, 2012) ============================== Internal FW 7.2.11 Fixes: ------ 1. Problem: CQ59723 - drv_pulse doesn't match mcp_pulse. Change: Learn mcp pulse at nic load step instead of during probe step. Introduced: Day 1. Relevance: All. 2. Problem: CQ60838 - Occasionally the KR link does not come up. Change: Invoke auto-neg restart at the end of the KR link configuration. Introduced: 1.72.00. Relevance: 578xx KR. 3. Problem: CQ61028 - No LED at 1G on 57712+8727 designs. Change: Removed a logic error checking for a different PHY. Introduced: 1.70.00. Relevance: LED manipulation for 54616/18 and 8727 PHYs. 4. Problem: CQ60094 - soft kernel panic in bnx2x_execute_vlan_mac. Change: Released consumed credits when removing pending commands. Introduced: 1.72.00. Relevance: All. 5. Problem: MAC addresses responded to mcp for get_drv_info request are not aligned as requested by MCP. Change: Align MAC addresses appropriately. Introduced: 1.72.00. Relevance: 578xx. 6. Problem: BCM84833 is able to link up when link speed is set to 10G force while link partner is set to 1G force. Change: When requested speed is 10G force, advertise only 10G speed. Introduced: 1.70.00. Relevance: BCM84833. 7. Problem: Unable to load device when CNIC is not selected. Change: Fix feature initialization. Introduced: 1.70.51. Relevance: All. 8. Problem: If nic load fails after recovery flow, recovery is still marked as in progress, hence recovery flow will be performed again. Change: In such a case, detach failed function but mark that recovery has already been performed. Introduced: Day one. Relevance: All. 9. Problem: If failed during nic load, MISC register holding function status might hold wrong value, causing logical errors in parity recovery flow. Change: Mark function as loaded in MISC register only if nic load succeeded. Introduced: Day one. Relevance: All. Enhancements: ------------- 1. Request: CQ59363 - Display the link partner FC capabilities when FC is not autoneg. Relevance: All. 2. Request: Added support for Byte Queue Limiting. Relevance: Linux kernel version 3.3. 3. Request: CQ57932 - Add Tx-Fault link detection. In case TX errors are detected by the MAC layer, the elink will signal the OS that the link went down, and when the error is gone, a link up signal will be sent. Relevance: BCM84823. 4. Request: Support Multiple Concurrent COSes on 57710/57711E devices. Reinstate 'pri_map' module parameter for controlling the mapping of Priorities to Classes of Service. Relevance: 57710/57711E. 5. Request: Reinstate pri_map module parameter which allows direct user control over the mapping of skb priority to traffic classes. Relevance: All. 6. Request: CQ60175 - Add Multiple RX filters support per NetQueue. Relevance: ESX only. 7. Request: Change marking whether function is loaded or not in MISC register to be bitwise and not a global counter, so that MFW will be able to mark function as not loaded in case driver pulse is timed out (for physical device assignment). Relevance: All. Version 1.72.06 (Jan 17, 2012) ============================== Internal FW 7.2.11 Fixes: ------ 1. Problem: CQ60906 - nic loading after recovery flow failed due to DMAE timeout. Change: Wait for DMAE completions inside nic load performed at the end of the recovery flow. Don't wait for DMAE completions during all recovery flow besides inside the nic load. Introduced: 1.72.05. Relevance: All. 2. Problem: CQ60731 - DCBX/VIC traffic is dropped after recovery flow. Change: When running recovery flow on the non global leader, send driver load before performing the recovery and driver unload when the recovery process is done. By that, MFW will restore NIG values upon the driver unload at the end of the process. Introduced: Day one. Relevance: BCM57712/BCM578xx. Requires MFW 7.2.9 and above. 3. Problem: CQ58306, CQ58507 Intermittent KR link failure after link enable. Change: Reset rx and tx path if link is not up. Introduced: Day 1. Relevance: 57810-KR, when MFW used is older than 7.0.48. Enhancements: ------------- 1. Request: CQ57889 - Less memory is allocated for Rx buffers of 1G ports. Relevance: BCM578xx 4-port only. 2. Request: Support FCoE capabilities command from CNIC. Once this command arrives store the values in appropriate scratchpad address. 3. Request: Add module parameter to enable support of tx-switching. Relevance: BCM57712/BCM578xx. 4. Request: CQ57932 - Add Tx-Fault link detection. In case TX errors are detected by the MAC layer, the elink will signal the OS that the link went down, and when the error is gone, a link up signal will be sent. Relevance: BCM57712/BCM57800/BCM57810 with BCM8727/BCM8726/BCM84833 PHYs. 5. Request: CQ60699 - Disable auto-grEEEn for 84833 PHY. Relevance: 84833 PHY only. Version 1.72.05 (Jan 10, 2012) ============================== Internal FW 7.2.11 Fixes: ------ 1. Problem: Ethtool statistics omitted function statistics when in Multi-queue, MF mode. Change: Fixed. Relevance: All. 2. Problem: CQ59825, CQ60741 - system crash during 'ethtool -t'. Change: Fixed insufficient memory allocation. Introduced: 1.72.04. Relevance: All. Enhancements: ------------- 1. Request: CQ55885 - Added recoverable/unrecoverable statistics for ethtool. Currently counting parity errors and panic_dump. Version 1.72.04 (Jan 03, 2012) ============================== Internal FW 7.2.11 Fixes: ------ 1. Problem: bnx2x_panic does not show idle_chk prints. Change: Fix idle_chk to print with NETIF_MSG_PROBE msg level. Introduced: 1.70.02. Relevance: All. 2. Problem: CQ60539, CQ60487 - DCBX: device ignored missing TLVs. Change: Treat missing TLVs as an error - do not configure the feature. Relevance: DCBx supported devices. 3. Problem: The common PHY init function for 84833 was split, but the second half of the call was not invoked to capture the PHY FW version. Change: Added code to invoke the second half. Also, use a different PHY register to collect the version info. Relevance: 84833 only. 4. Problem: CQ60377 - Task was corrupted when working with CONF REQ. Change: FCoE Firmware fix to relevant RX flows. Introduced: 1.72.00 (FW 7.2.0). Relevance: BCM57712/BCM578xx. 5. Problem: Compilation problem on kernel 3.1.6. Change: skb_frag_dma_map was introduced only in kernel 3.2.0. bnx2x_get_rxnfc parameter change was introduced only in kernel 3.2.0. Introduced: Day one. Relevance: All. 6. Problem: Compilation problem with SOE enabled. Change: struct sw_rx_bd contains 'data' member rather than 'skb'. Introduced: 1.72.03. Relevance: All. 7. Problem: DMA operations are waiting for completion during recovery flow. Change: Return immediately that timeout expired when pending for DMA completion during recovery flow. Introduced: day one. Relevance: All. Enhancements: ------------- 1. Request: use build_skb() kernel infrastructure in RX path. 2. Request: Use kcalloc instead of kzalloc when allocating arrays. 3. Request: Use a kernel ethtool function to build the default indirection table (supported from kernel version 3.2.0). 4. Request: Decrease stack size in NVRAM self-test function. 5. Request: Add support for getting and setting the number of queues via ethtool (using -l / -L options). 6. Request: Support 3 new NC-SI OEM commands (insert data requested from MFW). 7. Request: Support RH5.8. 8. Request: Use the 'unlikely' macro with the debug printk() macros (DP, DP_CONT, BNX2X_DBG_ERR) and with the BNX2X_DEV_INF macro. 9. Request: Protect bnx2x from races due to lack of RTNL lock protection between PFs in physical device assignment: 1. Added per PF HW lock for nvram accesses. 2. Added per PF HW lock for recovery reg accessed. 3. Modified Undi presence detection to verify doorbell queue block is out of reset and so under the per PF HW lock. 10. Request: When bnx2x is loaded on an engine where FW was already loaded verify FW matches loading driver (in Physical Device Environment FW may have been loaded by a different bnx2x from another VM). Version 1.72.03 (Dec 20, 2011) ============================== Internal FW 7.2.10 Fixes: ------ 1. Problem: PFC in 4-port mode is not functional. Change: Take port index into account when configuring NIG registers. Relevance: 4-port + DCB devices. 2. Problem: CQ59565 - FW version does not show the VPD FFV when applicable. Change: The chip VPD was extended and now it can be longer than 128B, while the driver failed the FFV read if the offset was larger than 128B. Introduced: 1.62.xx - where the device started to support longer VPD. Relevance: Boards that require FFV reporting. 3. Problem: CQ60236 - Possible false positive self-test idle check failure while performed under traffic on 578x0 B0: "ERROR UCM: FIC1_INIT_CRD is not 64". Change: On 578x0 B0 the value of FIC1 can be different than 64 under traffic. The test was updated to reflect that. Introduced: Day one. Relevance: 578x0 B0. 4. Problem: No link detected at speed 100m AN connected to 10BaseT/100BaseTx switch. Change: Remove the supported limitation from setting 100Mb speed. Introduced: 1.70.100. Relevance: 57712 + 84833. 5. Problem: CQ59823 - Driver hang when FCoE IO starts. Change: (FW FCoE) Firmware fix to data transmission flow. Introduced: 1.72.00 (FW 7.2.0). Relevance: All. 6. Problem: CQ59828 - iSCSI connection fails to send write commands when NPAR-SD mode is enabled. Change: (FW iSCSI) Firmware fix to TCP establishment flow of iSCSI connection. Introduced: 1.72.00 (FW 7.2.0). Relevance: 57712/578xx. Enhancements: ------------- 1. Request: Support Basic Physical Device Assignment. Bnx2x was adapted to allow loading it in paravirtualized environment. This means: 1. Bus device function is obtained from Me register. 2. Wide bus sequence interruption by ZLR is avoided via the indirect interface only in E1. Post E1 chips use direct register access. 3. FLR final cleanup failure results in nic load failure (previously this was ignored). Version 1.72.02 (Dec 08, 2011) ============================== Internal FW 7.2.9 Fixes: ------ 1. Problem: No link is established at 100M on 57712+84833 combination. 100Mb force is not supported, and is limiting the advertising speed for 84833 firmware version of 1.39 and older. Change: Modify the advertised speed to include 100Mb even if this speed is not supported for current 84833 firmware version. Note however, that since 100Mb force speed is not supported, in order to advertise 100Mb, user will need to specify this speed explicitly as one of the advertised speeds when using the ethtool command. Introduced: Since support of 57712+84833 is introduced. Relevance: 57712/578xx + 84833. 2. Problem: 84833 PHY firmware size has grown to cause timeout on initialization. This leads to PHY misconfiguration due to PHY register clobbering between software and the PHY firmware. Change: Extend firmware initialization timeout period for all ports. Introduced: Day one. Relevance: 84833 PHY designs with a single SPIROM Enhancements: ------------- 1. Request: Add PFC tx/rx frames counter to port statistics exposed to ethtool. 2. Request: Support Ethernet statistics request from MFW, and forward iSCSI/FCoE statistics request to cnic. 3. Request: 84833 PHY FW team recommended a few changes when configuring the PHY: (1) Use super isolate feature when the PHY is no longer use (e.g. unloading driver). (2) Bring PHY out of super isolate mode as the last step of initialization. Relevance: 84833 PHY only Version 1.72.01 (Nov 30, 2011) ============================== Internal FW 7.2.9 Fixes: ------ 1. Problem: CQ57679 - "FATAL HW block attention set1 0x8" message in syslog when running ethtool -d under traffic. Change: Remove registers which should not be read during traffic. Introduced: Day one. Relevance: ethtool -d under traffic. 2. Problem: CQ59765 - Link loss on 10G port after running ethtool test on 1G port, since the MAC loopback test was done on XMAC causing the 10G port to lose link. Change: On 1G port, run UMAC loopback. Introduced: 1.70.53 Relevance: 57800 only (2x10G + 2x1G) 3. Problem: CQ59828 - Unable to connect to iSCSI target in NPAR-SD mode. Change: Allow setting MAC in NIG for NPAR-SD mode. Introduced: Day one. Relevance: NPAR-SD mode. 4. Problem: CQ59448 - Chip hangs when target sends FIN out-of-order or with isles open at the initiator side. Change: Fin dropped if received out of order or with isles still open. Introduced: 1.60.00 (FW 6.0.0) Relevance: All. 5. Problem: CQ59904 - Unable to create VLAN interface on RHEL6.2. Change: Adopt VLAN scheme to RHEL6.2 kernel. Introduced: Day one. Relevance: RHEL6.2. Enhancements: ------------- 1. Request: Support iSCSI SD mode. 2. Request: Support DCBNL CEE calls on RHEL6.2. Version 1.72.00 (Nov 13, 2011) ============================== Internal FW 7.2.7 Fixes: ------ 1. Problem: CQ59471 - DCBx does not work with NPAR on kernels with multi-CoS support. Change: The DCBx negotiation result was not propagated to all functions. Introduced: Day one. Relevance: DCBx and kernels with multi-CoS (2.6.39 and above). 2. Problem: Compilation failed on SLES11SP2 beta7 kernel. Change: Fix compat.h. Introduced: Day one. Relevance: SLES11SP2 beta7 kernel. 3. Problem: CQ59626 - set skb_record_rx_queue for FCoE ring out of range. Change: Introduce fp->rx_queue and use it instead of fp->index. Introduced: 1.70.53. Relevance: FCoE + kernel with skb_record_rx_queue support. 4. Problem: CQ59651 - GRC-timeout messages run in syslog. Change: Fix race between two statistic-related flows by using local state in bnx2x_stats_handle(). Introduced: Day one. Relevance: All. 5. Problem: CQ59454 - Port identify test fails on 54616 PHY. Change: Updated driver to driver LEDs through MDIO for 54616 Introduced: T7.0 Relevance: 54616 PHY based boards. 6. Problem: In NPAR-SD mode on FCOE packets VLAN priority is not taken from DCB results, i.e. default priority is always used even if a change was negotiated. Change: Fixed in FW 7.2.7. Introduced: Day one. Relevance: All. 7. Problem: CQ57927 - Chip hangs when a retransmission occurs which is not aligned to 4-bytes from the beginning of iSCSI PDU. Change: Fixed in FW 7.2.5. Introduced: FW 7.0.16. Relevance: All. 8. Problem: Arrival of packets beyond task IO size can lead to crash. Change: Fixed in FW 7.2.5. Introduced: Day one. Relevance: All. 9. Problem: CQ57933 - iSCSI does not support Traffic Class 2. Change: Fixed in FW 7.2.3. Introduced: Version 1.71.00. Relevance: All platforms running DCB enabled with COS 2 and higher. Version 1.70.200 (Nov 01, 2011) ============================== Internal FW 7.2.2 Fixes: ------ 1. Problem: CQ58580 System becomes unresponsive or unstable after running self test. This was due to kernel stack overflow by the self test during load/unload. Change: Located stack-hungry code in the nic load flow and modified it to consume reasonable amount of stack. Introduced: Day one. Relevance: All Chips. This issue only occurs in low stack kernels - specifically kernels using 4kb stack depth such as 32bit PAE kernel. Version 1.70.53 (Oct 24, 2011) ============================== Internal FW 7.2.2 Fixes: ------ 1. Problem: CQ58884: On 1G copper ports, the RX UMAC is not close to prevent arrival of partial segments during link reset process. Change: Close the UMAC and the NIG RX during link reset process. Introduced: T7.0 Relevance: 578xx. 2. Problem: Traffic blink rate LED is too fast. Change: Adjust the blink rate to 578xx clock. Introduced: T7.0 Relevance: 578xx. 3. Problem: CQ58887 - System with low memory PSOD when running mtu change. Change: Switch between FP indexes in order to avoid mapping of FP with napi to to one napi-less, during memory allocation. Introduced: Version 1.60.27. Relevance: ESX-5.0. 4. Problem: Traffic LED blink rate for 10GBase-T designs is a bit slow. Change: Adjust the slow clock counter in the PHY to increase the blink rate. Introduced: T7.0: a fix for CQ56846 Relevance: 84823 and 84833 PHYs 5. Problem: CQ58996 - After 20 iterations of reboot test, adapter does not dcbx-sync with switch. Change: Perform hard reset to the XMAC during link establishment to clear possible left-overs. Introduced: T7.0 Relevance: 57810/57800 6. Problem: CQ57952 - Chip consumes too much power in case of fan failure. Change: unload driver and power down chip. Relevance: 57810. 7. Problem: CQ58990 - KR link occasionally comes up at 1G when 10G is expected. This is exposed only when a previous software entity (e.g. MFW, prior to OS driver loading up) that owns the KR PHY left it at 1G. Change: Keep auto-neg disabled while configuring the capability advertisement. Re-enable it after configuration is done. Introduced: Day One Relevance: 578xx blade designs. 8. Problem: skb truesize is under estimated. Change: bnx2x allocates a full page per fragment. It should account in skb->truesize, the size of the fragment, not the used part of it. Introduced: Day One Relevance: All. 9. Problem: 84833 PHY FW command handler interface requires further refinement as they don't seem to work. Change: Made further adjustments and consolidated the command handler routine (in anticipation for other commands besides auto-grEEEn)). Introduced: Version 1.70.50. Relevance: 84833 PHY. Enhancements: ------------- 1. Request: Add LED functionality to 54618SE PHY based boards. 2. Request: Put 84833 PHY in super isolate mode regardless of the strapping pin. The PHY stays in this mode until driver is loading up. Relevance: 84833 PHY only. Version 1.70.52 (Oct 04, 2011) ============================== Internal FW 7.2.2 Fixes: ------ 1. Problem: CQ58418 - WoL does not work after driver unload. Change: The PME was not enabled in the configuration space. Introduced: Day one. 2. Problem: CQ58516 - DCBX ioctls return without error on non-DCB capable devices. Change: Check DCB state in IOCTLs code. Introduced: 1.64.00. Relevance: Non-DCB capable devices. 3. Problem: Compilation failed on RHEL6.2 kernel. Change: Fix in compat.h. Relevance: RHEL6.2 - alpha. 4. Problem: Lack of handling some HW failure indications. Change: Fix improper initialization of mask register. Introduced: 1.60.00. Relevance: 57712/578xx only. 5. Problem: bnx2x_dcbnl_get_cap returns error for DCB_CAP_ATTR_DCBX. Change: Add missing brake statement. Relevance: DCB capable devices. 6. Problem: CQ57274 - Zero queues are used when num_queues was set to -1. change: Make sure num_queues is treated as unsigned number. Relevance: All. 7. Problem: Unable to change the speed with ethtool while using DAC (direct attached cable). Change: The port was matched against fiber only without considering DAC. Introduced: Version 1.60.28. Relevance: Optic ports with DAC. Enhancements: ------------- 1. Request: Immediately return an error from the bnx2x_cnic_sp_post() if we are in the middle of the parity error recovery flow. This will significantly speed up the CNIC_STOP command flow when called in the parity recovery context. Relevance: CNIC only. 2. Request: Allow DCBNL functionality for RHEL6.1 and RHEL6.2. 3. Request: Changed 'pri_map' module parameter to control mapping from priority to traffic class instead of deprecated role in SAFC configuration. Version 1.70.51 (Sep 13, 2011) ============================== Internal FW 7.2.2 Fixes: ------ 1. Problem: Forced 100M speed cannot pass traffic with 578xx+84833. Change: Configure the Warpcore to SGMII auto-neg when interfacing the 84833 PHY. Introduced: Day 1 Relevance: 578xx + 84833 PHY only, PHY FW v1.27 is required. 2. Problem: Cannot establish link with 84833 PHY using PHY FW v1.27. Change: The FW has been changed to fully support superisolate mode. That requires the PHY initialization sequence to change. Introduced: Day 1 Relevance: 84833 PHY, PHY FW v1.27 is required. 3. Problem: Overflow occurs during init, when generating statistics ramrod toward the FW (writing to index outside of array bounds). Change: Increase number of elements in the array inside struct bnx2x_fw_stats_req. Introduced: Day 1. Enhancements: ------------- 1. Request: Collect FCoE statistics from FW (both offloaded and non offloaded), and add them to the statistics response toward the MCP in NPAR-SD mode. These statistics are not counted in the ones published to ethtool. Relevance: 57712 + 578xx. Version 1.70.50 (Sep 08, 2011) ============================== Internal FW 7.2.2 Fixes: ------ 1. Problem: MC assert while initializing iSCSI on some 57711E boards. Change: Adjust iSCSI license at bnx2x_open. Introduced: 1.64.00. Relevance: 57711E. 2. Problem: CQ57274 - kernel panic when trying to load bnx2x with negative amount of receive queues. Change: Changed all module parameters from integer to unsigned integer. Introduced: Day 1. 3. Problem: CQ58271 - Improper array initialization in call to get_dcbx_params_ioctl. Change: Take array size into account when data is copied. Introduced: 1.64.00. Relevance: 57712/578xx. 4. Problem: Ethtool Advertised pause frame use don't show the pause capability when flow-control not set to autoneg. Change: Display the advertised pause frame use even if flow-control is not set to autoneg. Introduced: 1.70.27. 5. Problem: On-chip TCP connection establishment on iSCSI connections is broken. Change: Fixed in FW 7.2.2. Introduced: In FW 7.2.1. Relevance: iSCSI only. Enhancements: ------------- 1. Request: Reduce power consumption for 57810 fan failure by: * Powering down the Warpcore. * Kill clocks to all driver present blocks. * Clear BME(Bus Master Enable) and MS(Memory Space). Note that if fan failure occurs when using drivers released before this date will result in system crash. 2. Request: Prevent link flap on 1G copper ports when driver unloads in case the PHY is already initialized and link is up. Relevance: 57800 + 5461x. Version 1.71.00 (Sep 02, 2011) ============================== Internal FW 7.2.1 Fixes: ------ 1. Problem: Driver compilation failed on 2.6.38.x kernels. Change: Fix compat for these kernels. Introduced: 1.70.21. 2. Problem: Error messages "FATAL HW block attention set2 0x20" in the kernel log on specific systems. Change: Recoverable LCRC errors due to not masking CPL_OF caused the print while it should be ignored. Introduced: Day one. Relevance: 57710 and 57711. 3. Problem: PCI scan could lead to GRC read. Change: Second function indirect windows were not cleared by the driver since the driver used the port index before it was initialized and therefore cleared only function 0. Since the driver is not using these indirect windows, it will clear them all. Introduced: Day one. 4. Problem: CQ57061 - GRC timeout messages appear on some systems during driver load. Change: Take HW LOCK before resetting the HW, which prevents from undi_unload reading registers while block is in reset state. Introduced: Day one. 5. Problem: Compilation failed on SLES11 SP1 update 1. Change: Fix conflict on backported feature in bnx2x_compat.h. Introduced: 1.70.20. Relevance: SLES11 SP1 update 1 only. 6. Problem: The GPHY ports are not completely powered down on driver unload if the GPHYs have no external pins to bring them to reset state. As a result, their link partner may still see link. Change: Put the GPHY in low power mode. Introduced: 7.0.0. Relevance: T0000G boards. 7. Problem: CQ56991, CQ57007 - PFC pauses non pausible traffic. This was because FW was configured to work in STATIC_COS on 57712 and 578xx regardless of kernel version. In kernels where multiple traffic classes are not supported this essentially blocked network traffic from being assigned any tc other than 0. If pausible traffic was assigned tc 0 the network traffic would necessarily collide with it. Change: Configure FW to work in STATIC_COS only in kernels which support multiple traffic classes. Introduced: 1.70.15. Relevance: 57712 and 578xx on kernels before 2.6.39. 8. Problem: CQ57469, CQ57377, CQ56861, CQ57296 - CFC HW attention, XSTORM assert or kernel panic when changing the MTU under the TCP traffic (on the Tx side). Tx queues were stopped before bp->state was changed to a value different from BNX2X_STATE_OPEN, which allowed the bnx2x_tx_int() called from the NAPI context to re-enable it. This then allowed the netdev->ndo_start_xmit() to be called in the middle of the function reset and rings freeing, which caused the above failures. Change: Change bp->state to a value different from BNX2X_STATE_OPEN BEFORE disabling the Tx queues in order to restore the protection against the above race in the bnx2x_tx_int(). Introduced: In 1.70.16 in the fix for CQ56438. 9. Problem: CQ57566 - During link down event "stats updated but no MAC active" messages appear in system log. Change: Lowered the debug level of the message. Introduced: Day one. 10. Problem: PMF migration during remote fault result in invalid link state. Change: Sync link attributes during remote fault periodic check. Introduced: 1.70.09. Relevance: Fiber ports. 11. Problem: FCoE traffic causes null pointer deref on kernels below 2.6.38. Change: Path correct parameter to netdev_alloc_ms() Introduced: In 1.70.15 12. Problem: CQ57250 - The LED Link light does not turn on at 1Gb/s speed Change: Adjust elink_set_led to allow for correct LED behavior. Introduced: Day one. Relevance: 578xx with direct connection. 13. Problem: CQ56820 - XMAC loopback (within "ethtool -t" test) may fail due to timing issue related to the CORE loopback type used. Change: Change XMAC loopback to local line loopback. Introduced: In 1.70.00. Relevance: 578xx. 14. Problem: CQ57841 - NIG timer error and connection loss after driver is loaded. Change: Apply NIG drain when remote fault is detected. Introduced: In 1.70.00. Relevance: Fiber ports. 15. Problem: CQ57738, CQ57719, CQ55158 - Remote fault detection occasionally causes link issues, and traffic problems. Change: Remove remote-fault detection for T7.0. Introduced: In 1.70.00. Relevance: Fiber ports. 16. Problem: CQ56894 - packet drops during UDP stress test on 578xx. Change: Recalculate thresholds configuration according to 578xx HW. Introduced: In 1.70.00. Relevance: 578xx. 17. Problem: CQ57842 - Message "Illegal configuration detected for Max BW" appears in syslog when link toggles. Change: Adjust number of VNICs for 4-port devices. Introduced: In 1.70.00. Relevance: 578xx 4-port. 18. Problem: CQ56409, CQ57534 - Initiator periodically sends out Discovery Solicitation after login is established. This was caused by a missing VLAN filtering on the bnx2fc side. To enable such a filtering on the ESX bnx2fc needs to be aware of the currently configured VLANs on the CNA device. Change: Expose the CNA VLANs configuration to the CNIC. Relevance: FCoE on the ESX only. Introduced: Day one. 19. Problem: Compilation failed on kernel-3.0.x. Change: Fix compat.h. Introduced: Day one. 20. Problem: Improper RX ring configuration showed in some case via ethtool -g. Change: Store current device configuration and pass to ethtool handler. Introduced: 1.64.14. 21. Problem: Degradation in latency benchmarks noted (multiple TCP_RR). This was because driver configured FW to use the same state machine for rx and tx indices in status block. Change: Use.seperate state machines for tx and rx. Introduced: 1.60.00. 22. Problem: Forced half duplex link may not be supported. Change: Clear full duplex bit in Warpcore when configuring forced link. Introduced: Day 1. Relevance: 578x0 + 84833, no exposure to 54616S/18SE PHY because it is configured as SGMII interface, not XFI. 23. Problem: CQ56846 - 84833 PHY has no traffic LED on 10G. Change: Enable LED stretch on a different register offset for 84833. Introduced: Day 1. Relevance: 84833 PHY. 24. Problem: CQ56813 - 84833 PHY can't link up at forced 100M Change: PHY FW requires setting auto-neg advertisement even at forced link mode. Introduced: Day 1. Relevance: 84833 PHY. 25. Problem: 84833 can't link up at 10G after the link went down from sub-10G. Change: Re-enable 10G advertisement on every driver load instead of relying on hardware default. Introduced: Day 1. Relevance: 84833 PHY. 26. Problem: 84833 PHY FW command handler interface changed (needed for (auto-grEEEn and RJ45 pair swap). Change: Made register offset adjustments to accommodate the new interface. Relevance: 84833 PHY. 27. Problem: CQ58086 - on 578xx B0 ETS BW 0% is not allowed by driver. Change: Provide alternative HW configuration for this case. Introduced: 1.70.00. Relevance: 578xx with DCB support. 28. Problem: Driver allowed DCBX queries on non-pmf interfaces. Change: Disable the queries on non-pmf interfaces. Introduced: 1.70.00. Relevance: MF devices with DCB support. 29. Problem: Driver may get out of sync with FW when UNDI is present. Change: Init fw_seq after undi_unload is done. Introduced: Day one. 30. Problem: GRC-timeout message may may appear in syslog during driver load. Change: 1. Remove access to removed registers in 57712/578xx. 2. Do not allow device reset while reading IGU HW block info. Introduced: 1.64.00. Relevance: 57712/578xx. 31. Problem: CQ57969 - The iSCSI traffic completely stops when dual port FCoE & iSCSI RX/TX is run. Change: Fix wrong HW configuration. HW eas configured to per mac guarantee mode instead of per class guarantee mode. Introduced: 1.70.00. 32. Problem: Compilation failed when FCOE selected but FCOELIB is not in kernel config. Change: Fix #if condition. Introduced: 1.70.00. Relevance: Specific kernel configuration. 33. Problem: IP and TCP ECN related TPA aggregation rules do not comply with LRO requirements. Firmware followed requirements for RSC which are incompatible with LRO requirements: 1. Allow TPA aggregation even if TCP ECE and CWR flags are set. 2. Allow TPA aggregation only if IP ECN CE and ECT bits are either 00 or 11. Change: Fixed in FW 7.2.0. Firmware now allows TPA aggregation only if: 1. TCP ECE and CWR are both 0's. 2. IP ECN CE and ECT bits are other than 11. Introduced: Firmware version 6.4.0. 34. Problem: CQ56960 (iscsi) - Arrival of un-solicited ASYNC message causes firmware to abort the connection with RST. Change: Fixed in FW 7.2.0. Introduced: Firmware version 4.6. 35. Problem: CQ55751 - Setting advertise speed in ethtool is not working, and displaying "Advertised pause frame use" was incorrect. Change: Fix ethtool functionality. Introduced: Day one. 36. Problem: Device may not send pause frames when configured to pause on exhausted rings. This is seen when configuration of the TX side to "pause disable" and the RX side to "pause on exhausted ring". Change: Fixed in FW 7.2.1. Introduced: Firmware version 6.0.8. Relevance: BCM57711/BCM57712/BCM578xx. 37. Problem: Arrival of target-initiated NOP-IN during intense ISCSI traffic might lead to crash. Change: Fixed in FW 7.2.1. Introduced: Firmware version 6.0.0. Relevance: iSCSI only. Enhancements: ------------- 1. Request: Add remote fault link detection for 578xx based on LSS errors in the MAC layer. Relevance: 578xx. 2. Request: Added 54616 PHY support. Relevance: 54616 PHY. 3. Request: Enable FEC (Forward Error Correction) on 57810-KR. 4. Request: Support vlan trunk mode in NPAR-SD mode. If that mode is active, set FW to silently remove all vlan in ingress packets. Relevance: NPAR-SD mode only. 5. Request: Initialized NIG LLH registers to disable ACPI packet recognition and configure the ACPI patterns. 6. Request: Configure NPAR-SD function parameters via function update ramrod. 7. Request: Allow changing network cos mode after chip initialization, via a new slow path command. Version 1.70.21 (Jul 25, 2011) ============================== Internal FW 7.0.23 Fixes: ------ 1. Problem: Warning about the pending bit coming from the VLAN_MAC object if parity error happens under the rtnl_lock(). Change: Clear the internal VLAN_MAC object pending bit if bnx2x_config_vlan_mac() is called with RAMROD_DRV_ONLY flag. Introduced: Day one. 2. Problem: bp->sp_state bits stayed set forever set if there was a parity error under rtnl_lock() Change: Clear bp->sp_state after interrupts are disabled. Introduced: Day one. 3. Problem: No flow-control on 578xx when link is up at 1G and below. Change: Add pause functionality to UMAC Introduced: 7.0.0. Relevance: 578xx 4. Problem: CQ56991, CQ57007 - Networking traffic priority was mapped to the COS configured at startup which was 0 by default. If FCOE or ISCSI were configured by DCBX negotiation result to COS 0 the network traffic would cause drops on a dropless traffic class and could foul up ETS or PFC. Change: When DCBX negotiation result occurs configure all priorities other than FCOE and ISCSI to the Networking COS. Introduced: 1.70.15 Relevance: 57712/578xx with DCB support. 5. Problem: CQ57063 - tx checksum offload feature would not turn off when 'ethtool -K eth tx off' was used. Change: Since at startup bnx2x declares support for ipv4 and ipv6 checksum offload, connect the ethtool ipv6 set checksum premade op to the set_tx_csum op which affects both ipv4 and ipv6 instead of the ipv4 op which affects only ipv4. Introduced: 7.0.0. 6. Problem: CQ56294 - Incorrect Remote fault detection may lead to link down on 5771x fiber devices. Change: Fix LSS fault mechanism to detect remote fault and transmit local fault through the BMAC. This change requires leaving the BMAC out of reset in case link of 10G goes down Introduced: 7.0.0. Relevance: 5771x-fiber devices (8706/8726/8727), 10G only. Version 1.70.20 (Jul 19, 2011) ============================== Internal FW 7.0.23 Fixes: ------ 1. Problem: CQ56950 - When speed is set to 1G on SFP+ device, link may fail to come up and system may hang due to incorrect initialization of the XGXS mode in the NIG. Change: Fix typo. Introduced: 1.70.13. Relevance: 57712+8727 and 57711+87x6. 2. Problem: Possible race between Queues UPDATE from the NIV_FUNCTION_UPDATE and from VLAN HW stripping configuration. Change: Move Queues UPDATE in NIV_FUNCTION_UPDATE flow to be executed from inside bnx2x_sp_rtnl_task (under rtnl_lock()). Introduced: 1.70.14. Relevance: NIV only. 3. Problem: Link down when running iSCSI reboot test. Change: Ensure that PHY_TX_ERROR_CHECK_FLAG is asserted before error checking. Introduced: 7.0.8. Relevance: 57712 with non-optic phys. 4. Problem: CQ57055 - ESX doesn't support LRO on top of IPv6. Change: Separate TPA queue configuration: introduce BNX2X_Q_FLG_TPA_IPV6. Introduced: Day one. Relevance: ESX only. 5. Problem: CQ57125 - Missing configuration for the FIP MAC in single function mode and for WWN in multi function mode. Change: Add the missing configuration. Introduced: Day one. Relevance: FCoE only. 6. Problem: CQ56784 - LED doesn't flash during LED test. Change: Add the missing configuration. Introduced: Day one. Relevance: 578xx. 7. Problem: During error handling "FW failed to respond" message appears. Change: Add missing command from driver to FW. Introduced: 1.70.08. 8. Problem: CQ56687 - Traffic LED do not blink under multiple OSes and dim. Change: Enable LED blink and set rate. Introduced: 7.0.0. Relevance: 57712 + 8727. 9. Problem: Parity attentions clearing code didn't cover ATC and PGLUE_B blocks for 57712. Change: Add the ATC and PGLUE_B blocks to the parity mask registers data base. Introduced: Day one. Relevance: 57712 only. 10. Problem: Parity errors recovery flow for 578xx was broken. Change: Fix the above flow: - Add a separate column for the 578xx in the parity mask registers DB. - Fix the bnx2x_process_kill_chip_reset() to handle the blocks newly introduced in the 578xx. Introduced: Day one. Relevance: 578xx only. 11. Problem CQ56870 - ethtool -d (register dump) causes bnx2x panic on E3 boards. Change Add support for E3 A0 and E3 B0 in register dump. Introduced: Day one. Relevance 578xx only. Enhancements ------------ 1. Request: Fix the direction of the dma_sync() to synchronize towards CPU as it's supposed to be. 2. Request: CQ56857 - Add support for AutoGrEEEn using nvram configuration as default with module parameter to force it to on or off. 3. Request: CQ56737 - Disable TX_DIS Signal when SFP+ module is plugged out to prevent current leakage. Relevance: 578xx. Version 1.70.19 (Jul 13, 2011) ============================== Internal FW 7.0.23 Fixes: ------ 1. Problem: 578xx B0 - HW attention during traffic. Change: properly configure 578xx B0 mode. Introduced: 1.70.00. Relevance: 578xx B0. 2. Problem: Possible no link when DAC is connected to 578xx device Change: Restart WC microcode after module is plugged in and detected. Introduced: Day one. Relevance: 578x0 only. Version 1.70.18 (Jul 12, 2011) ============================== Fixes: ------ 1. Problem: CQ56434 - System crash after running IO and pulling cable. Occurs since TX pipe is stalled due to missed XON indication (from MAC did to NIG). Change: Force XON on NIG on link down/up. Introduced: T7.0. 2. Problem: 84833 PHY link does not come up. The extra PHY write to the auto-neg register is bringing the PHY to auto-neg failure, resulting in constant retry. Change: Remove the extra write to this register when auto-neg is enabled. Introduced: Day one. Relevance: 84833 PHY only. 3. Problem: CQ56462 - Unable to get link on both ports on several systems. Change: Initialize warpcore twice in succession. Introduced: 1.70.03 Relevance: 578xx. 4. Problem: 84833 link still comes up at 10G even when configured to be forced 100. Change: Disable 10G advertisement. Introduced: Day one. Relevance: 84833 PHY only, may affect 84823. 5. Problem: CQ56785 - Soft lockup/NULL pointer dereference while running FCoE traffic. Change: Properly calculate TX queue for FCoE L2 traffic. Introduced: 1.70.15. Relevance: 57712/578xx with FCoE. 6. Problem: Kernel warning messages regarding the attempt to access the Tx queue with index more or equal to netdev->real_num_tx_queues. Change: Align the initialization of the netdev with the Tx multi-CoS logic. Introduced: 1.70.15. 7. Problem: CQ56790 - During the loading of the bnx2x module there is an error indicating that the symbol bnx2x_dbg_buf could not be found. Change: Declare bnx2x_dbg_buf as a non-static variable. Relevance: ESX only. 8. Problem: Setting Warpcore registers may be ignored due to missing cycle in MDC/MDIO. Change: On 578xx-B0, set free running counter on EMAC before each cl45 access, and clear it at the end. This is not done globally, to prevent clock collisions between the four MDIO masters (One per EMAC). Introduced: Not applicable. Relevance: 578xx-B0. Enhancements ------------ 1. Request: Use vmalloc for a zlib inflate buffer. 2. Request: Remove unnecessary read of PCI_CAP_ID_EXP The PCIE capability offset is saved during PCI bus walking. It will remove an unnecessary search in the PCI configuration space if this value is referenced instead of reacquiring it. Also, pci_is_pcie is a better way of determining if the device is PCIE or not (as it uses the same saved PCIE capability offset). 3. Request: CQ56790 - Pass the mf_mode to the CNIC so that CNIC can determine if it needs to call the DRV_CTL_START_NPAR_CMD/DRV_CTL_STOP_NPAR_CMD to setup the NIG when in NPAR mode. Relevance: ESX only. Version 1.70.17 (Jul 05, 2011) ============================== Internal FW: 7.0.23 Fixes: ------ 1. Problem: PFC is not configured for ports 1,3 on 4-port devices. Change: Enable the configuration for every port. Relevance: DCBX, 578xx 4-port devices. 2. Problem: Warning message: "MDC/MDIO access timeout" on the first driver load. This warning appears during the link reset sequence, but it has no significant meaning, since it occur prior to the first phy initialization command. Change: Adjust AER and CL45 clock during link reset sequence. Introduced: Day one. Relevance: 57712+8727. 3. Problem: "Soft lockup" errors. Caused by race between bnx2x_sp_task() and local IRQ both calling for napi_schedule(), which adds elements to a local NAPI list. Change: Disable local IRQs when calling for napi_schedule() from bnx2x_sp_task(). Introduced: 1.60.17. Relevance: FCoE only. 4. Problem: (CQ56741, CQ56744, CQ56697, CQ56590) "Soft lockup". Caused by race between dcb negotiation update flow and nic unload flow. The dcb update flow, which is an element in the sp work queue waits for rtnl lock in order to call bnx2x_setup_tc while nic unload flow which takes the rtnl lock waits for the sp work queue to be flushed. Change: The dcb negotiation update flow now schedules the call to the bnx2x_setup_tc on the rtnl_sp task. 5. Problem: Possible problems in using fcoe and iscsi concurrently. The same cid was assigned to both. Change: Allocate each its own cid. Introduced: 1.70.15. 6. Problem: Compilation failed on vanilla kernels below 2.6.33 when FCOE module is selected. Change: Add appropriate #ifdef structure. Introduced: 1.70.15. Enhancements ------------ 1. Request: CQ56174 - Add AutogrEEEn support to 54618SE PHY. Relevance: 578xx. 2. Request: Support sharing of PFC configuration between functions on the same port. Relevance: MF devices with DCB support. 3. Request: CQ54245 - Add Operational DCB state to GET_DCBX_PARAMS structure. Relevance: 57712/578xx with DCB support. 4. Request: Add ability to Enable/Disable DCB according to remote configuration/absence. Relevance: 57712/578xx with DCB support. 5. Request: Add statistics ramrods to EQ resources accounting. Version 1.70.16 (Jun 29, 2011) ============================== Internal FW: 7.0.23 Fixes: ------ 1. Problem: CQ56500 - ESX driver didn't compile. Change: Change the ESX grcDump function to use the standard functions for disabling/clearing/enabling parity attentions. Introduced: 1.70.15. Relevance: ESX only. 2. Problem: CQ56438 - Tx timeout was hit when there was a parity error and offloaded drivers (bnx2i/bnx2fc) loaded. It takes too long for the offloaded drivers to close (CNIC_STOP) bnx2x disabled a carrier after the CNIC_STOP completed. Change: Moved the bnx2x_tx_disable() call to be before the CNIC_STOP call. Introduced: Day one. 3. Problem: When DAC (Direct Attached Cable) is used, there's not actual link down event on the far side since transmitter output is not disabled. Change: Disable transmitter output when link is disabled. The same change in MFW (since v7.0.20) will cause link to stay down using earlier version of this software (CQ56652). This version and after fixes it. Introduced: Day one. Relevance: 57712+8727. 4. Problem: CQ53144 - Repeating "NOHZ: local_softirq_pending 08" messages in the syslog: NAPI softirq was scheduled on a local CPU but ksoftirqd wasn't invoked. This was caused by calling the napi_schedule() for the FCoE L2 ring from a workqueue and not from the ISR as it is supposed to, which caused the above phenomenon. Change: Disable local softirqs before napi_schedule() call (local_bh_disable()) and then re-enable them (local_bh_enable()). This will invoke the ksoftirqd if needed. Introduced: 1.60.17. Relevance: FCoE only. 5. Problem: In MF mode, when DCBX enabled, ifconfig down of PMF function may cause stop traffic on other function. Change: Use generic scheme when configuring HW and FW for DCBX; Protect function from going down during inappropriate state. Relevance: MF, DCBX only. 6. Problem: CQ56292 - bnx2x assert dump when setting MTU to 9000. This was caused by an improper initialization of the fp->rx_buf_size for none-FCoE rings which led to improper initialization of BD buffer sizes for those rings. Change: Fix the code that initializes the fp->rx_buf_size value. Introduced: 1.70.08. Relevance: FCoE on ESX only (CNA). 7. Problem: CQ56531 - Kernel crash due to page fault. Num of queues supplied to kernel erroneously included the iscsi queues which resulted with kernel choosing a transmission queue index beyond the boundary of the bxn2x's tx queues array. Change: Supply the kernel with correct number of tx queues. Introduced: 1.70.15. Relevance: iSCSI OOO (since kernels 2.6.34 or Red Hat 6.0). 8. Problem: CQ56582 - BCM57810 may exhibit link down when connected to KR switch. Change: Don't overwrite the value for other reg. Introduced: 1.70.15. Relevance: 578xx KR. 9. Problem: CQ56538 - DCBX: The PFC pause frames being sent have source MAC address of 00:00:00:00:00:00. Change: Initialize source MAC address in the MAC Introduced: Day one. Relevance: 578xx. 10. Problem: CQ56507 - Panic Dump after DCBX negotiation completed. Change: (FW) Fix TX queue allocation scheme and DCB related firmware flows. Introduced: 1.70.15 (FW 7.0.19). Relevance: 57712/57810A0/57840A0, when multiple-priorities is activated together with DCB. 11. Problem: CQ54938 - Driver asserts on CFC delete command, when running stress test against an Equalogic target, while issuing RESET_LUN commands. Change: (FW iSCSI) Decrease activity counter in the cleanup flow, to compensate for later activity counter increase. Introduced: 1.70.01 (FW 7.0.0). Relevance: iSCSI. 12. Problem: Basic FCoE over NIV is not working when there is inner vlan on packet. Change: (FW ETH) Fixed the flow in NIV mode to change a zero inner vlan vid to the NIV default vlan. Introduced: 1.70.15 (FW 7.0.21). Relevance: BCM57712/BCM578xx, only with NIV on packets with inner vlan. 13. Problem: CQ55328 - FCoE discovery does not work with ESX CNA device. The ESX stack would complain about the number of filters for the CNA NetQueue. Change: Call netif_set_poll_cna() after the FCoE NAPI structure has been initialized. Introduced: 1.70.08. Relevance: ESX CNA only. Enhancements ------------ 1. Request: Optimized the memory barriers usage in the slow path. 2. Request: Add AutogrEEEn support to 84833 PHY. 3. Request: Implement the netdev->ndo_fcoe_get_wwn(). Version 1.70.15 (Jun 22, 2011) ============================== Internal FW: 7.0.21 Fixes: ------ 1. Problem: Need to update references from 54616 PHY to 54618SE. Change: Updated references from 54616 PHY to 54618SE. Introduced: Day one Relevance: No functional impact. 2. Problem: Need to update T0000G to enable AutogrEEEn by default. Change: Updated T0000G to enable AutogrEEEn by default. Introduced: Day one. Relevance: T0000G boards. 3. Problem: Driver loading problems on 4 port device with active MF mode. Problem occurs due to wrong calculation of mailbox function. Change: In 4 port mode, change calculation of BP_FW_MB_IDX to be: port_id + vnic_id*2. Introduced: Day one. Relevance: 4 port device (578xx) with active MF mode. 4. Problem: Wrong calculation of the available slow path elements. As a result possible false "ring is full" messages and failures of slow path commands. Change: Fixed the above calculations. Introduced: 1.70.12. 5. Problem: CQ56287 - STOP_ON_ERROR compilation was broken. Change: Make the bnx2x_int_disable() function public. Introduced: 1.70.13. 6. Problem: Compilation failed on 2.6.39 kernels. Change: Fix compat for the kernels. Introduced: 1.70.13. 7. Problem: CQ56325 - 57800 does not send LLDP frames. Change: Enable DCBX for 4-port devices. Introduced: 1.70.01. Relevance: 578xx 4 port devices. 8. Problem: Storm clocks were not initialized properly in E3. Change: (FW) Remove wrong clock initialization from init tool and move it to MCP. Introduced: Version 1.70.13 (FW 7.0.20). Relevance: BCM57800. Power-cycle of the device is needed in order to fix the Storm frequency, a regular driver update is not enough. 9. Problem: Possible race between writing event-ring element and updating the host-coalescing index. Change: (FW) Fix the flow by sending host-coalescing index update only after the completion of the event-ring writing. Introduced: Version 1.70.01 (FW 7.0.0). 10. Problem: Basic FCoE on NPAR-SD was not working. Change: (FW-FCoE) Fixed the flow in NPAR-SD mode to add default vlan also when there is vlan with vid=0 on packet. Relevance: BCM57712 and BCM578xx, only NPAR-SD mode. Enhancements ------------ 1. Request: Propagate WWN info up to bnx2fc driver. Relevance: FCoE only. 2. Request: CQ56040 - Enable DCBX on ESX5.0 and newer. Relevance: ESX with DCB only. 3. Request: Honor BAM on KR NVRAM config for 578xx. Relevance: 578xx KR only. 4. Request: CQ56086 - Integrate VMware ESX grcDump gdb patch. Relevance: ESX only. 5. Request: Add fan failure detection for 578xx-SFI Relevance: 578xx with fan mounted. 6. Request: Support multiple concurrent classes of service for network traffic. Support mapping of skb priority to traffic class and traffic class to transmission queue in kernel. Update said mapping according to multi class queue discipline and DCBX negotiaton. Relevance: Kernel 2.6.39 or Red Hat 6.1. Version 1.70.14 (Jun 14, 2011) ============================== Internal FW: 7.0.20 Fixes: ------ 1. Problem: Possible spurious cnic interrupt. Change: Properly disable cnic sb. Introduced: 1.60.00. Relevance: (Theoretical) when CNIC is supported. 2. Problem: In NPAR-SD mode, VIF SET request for FCoE function takes more than 40 seconds to be completed and ACKed back to the MCP. Change: Queue update ramrod sent to FCoE ring couldn't wait for completion in the same context. Therefore, don't wait for completion for this ramrod on FCoE ring. Introduced: 1.70.00. Relevance: FCoE in NPAR-SD mode. 3. Problem: In NPAR-SD mode, theoretically traffic can be dropped due to early VIF SET ACK sent back to the switch. Change: Send VIF SET ACK from driver to MCP only after function update ramrod is completed + all queue updates ramrods are completed. Introduced: 1.70.10 (when silent vlan removal was added). Relevance: NPAR-SD mode. Enhancements ------------ 1. Request: CQ53961 - Remove 10Mbps from 84833 PHY. Honor PHY speed attributes for 10/100. If the driver is set up to advertise only 10M, no speed capability will be advertised. And no link will be established. Relevance: 84833 PHY based boards. 2. Request: Add definition for autogreen in eLink. Relevance: 84833 PHY and 54618SE PHY based boards. Version 1.70.13 (Jun 12, 2011) ============================== Internal FW: 7.0.20 Fixes: ------ 1. Problem: Driver might set NPAR-SD mf_mode even if that mode can't be set. Driver sets NPAR-SD according to value written to NVRAM, without considering error cases such as missing NVRAM images etc. Change: Set mf_mode to NPAR-SD only if mac address in shmem is valid. If address in shmem is valid, then MFW performed all checks and found that mode as valid. Introduced: Day one. Relevance: NPAR-SD mode only. 2. Problem: Memory leak in during selftest. Driver mapped skb twice. Change: Do it once. Introduced: 1.70.09. 3. Problem: CQ55933 - ESX CNA enabled driver tries to configure Rx mode for an FCoE ETH queue for NICs that do not support an FCoE. Change: Configure Rx mode for an FCoE ETH queue only for the NICs that support FCoE (57712 and newer). Introduced: 1.70.08. Relevance: ESX CNA only. 4. Problem: CQ55928 - Tx traffic stop in DCB update flow. Change: (FW) Fix wrong address calculation in DCB update ramrod. Introduced: Version 1.70.09 (FW 7.0.16). Relevance: BCM57712 and BCM578xx, only when DCB is enabled and FCOE is running. 5. Problem: No TX in Firmware WRR mode. Change: (FW ETH) Fix CoS mapping to VOQs. Introduced: Version 1.64.00 (FW 6.4.0). 6. Problem: CQ55598 - During fast retransmit, the TCP sequence is advanced by the size of the TCP data retransmitted. Change: (FW iSCSI) Fix firmware to avoid update of in-order TCP sequence. Introduced: Version 1.70.09 (FW 7.0.16). Relevance: iSCSI. 7. Problem: Chip may stop transmission after DCB update in NPAR-SD mode. Change: (FW FCoE) Fix firmware calculation of transmission credit. Introduced: Version 1.70.00 (FW 7.0.0). Relevance: FCoE, NPAR-SD mode. 8. Problem: VLAN packets are not received on kernels above 2.6.37. Change: Improper FW configuration. Introduced: Version 1.70.10. Relevance: When DCB enabled in NVRAM. 9. Problem: CQ56073 - PFC feature is not functional. Change: Fix handling of DCB negotiation. Introduced: Version 1.70.02. Relevance: 57712 only. 10. Problem: CQ56019 - Compilation fails on RHEL 6.1. Change: Fix bnx2x_compat.h. Introduced: Version 1.70.11. Enhancements: ------------- 1. Request: Update PMD settings for 578xx SFI/XFI/DXGXS according to the new recommended values. 2. Request: Add support for 3 COSes for 578xx (B0) devices. 3. Request: Add elink_84833_hw_reset_phy function. Relevance: 84833 PHY based boards. 4. Request: Added support for 2 queues on different CoSes in 57712 and 578xx A0. 5. Request: Performance improvements in order to resolve PCI bottleneck on short packet PPS test on multiple connections. Version 1.70.12 (May 24, 2011) ============================== Fixes ----- 1. Problem: (CQ55655) WOL is not functional on functions 2-7. Cause: Incorrect register configuration. Change: Allow WOL via HW registers. Impact: Introduced in 1.64.01. 2. Problem: Undefined device behaviour when bringing up more than 16 eth queues with CNIC enabled. Cause: Resource management mechanism does not allow more than 16 queues without actual limiting the number. Change: Limit number of eth queues to 16. Impact: 57712 only. 3. Problem: Possible no link on 578xx SFP+. Cause: Failed reading from SFP+ module EEPROM due to I2C register not returning acknowledge over successful operation. Change: Add work-around of up to 3 retries in case of I2C failure. Impact: 578xx SFI. 4. Problem: (CQ55748) Link loss during up/down test. Cause: Race in driver code causes it to get out of sync. Change: Fix assignment with the lock. 5. Problem: In NPAR-SD mode, iSCSI and FCoE MAC addresses for relevant functions are zero. Cause: In NPAR-SD mode, iSCSI and FCoE MAC addresses were not taken from shmem for functions in which these protocols are enabled. Change: If NPAR-SD mode is used and the function is iSCSI/FCoE enabled, read suitable MAC addresses from shmem. 6. Problem: In NPAR-SD mode, default vlan tag might not be silently removed by the FW. Cause: default vlan value and mask sent to FW in function update ramrod (for NPAR-SD mode) includes 3 bits of priority. Change: default vlan value and mask in function update ramrod will include only 12 bits of vlan id. 7. Problem: Parity recovery was broken. Cause: Improper handling of starting and termination of the 'periodic_task'. Change: Ensure that only a PMF is running a periodic task. Stop a periodic task when a function is shut down. Impact: Introduced in 1.70.09. 8. Problem: Chip may crush under PF FLR. Cause: Driver could get interrupt on a disabled function. Change: (In FW 7.0.18) Fixed relevant firmware flow. Impact: Introduced in 1.70.00 (FW 7.0.0) 9. Problem: Improper device behaviour on BE platform. Cause: Use improper calculation for FW offsets. Change: Use FW offsets instead. Impact: Introduced in 1.64.01 Enhancements ------------ 1. Request: Add the ability to switch settings from one speed to another in the Warpcore without having to unload the driver. Change: Add a routine to restore the Warpcore register settings back to default. The routine is called before configuring the Warpcore to the desired speed settings. Impact: 578xx only. 2. Request: Separate the accounting of the context-less SP commands and those that complete on the FP Rx ring. Change: As requested. 3. Request: Reduce loading time when not in hotplug flow. Change: As requested. 4. Request: Updates the bnx2x_set_features() to handle loopback mode. Change: When enabled, it sets internal-MAC loopback. Impact: Backport from upstream. 5. Request: Add 20G supported display for ethtool. Change: As requested. 6. Request: (CQ55781) Allow GDB script to poke at the hardware registers. Change: As requested. Impact: ESX only. 7. Request: Reduce number of pcie transactions in high PPS rate scenarios. Change: (In FW 7.0.18) Changing Status block DMA to host to be read from RAM instead of 3 IMM DMA's. This reduces the number of transactions on PCI and resolves with faster replenishment of PCI credits, since we reduced the number of read modify write transaction on host cash lines. 8. Request: Use FW 7.0.18. Change: As requested. Version 1.70.11 (May 18, 2011) ============================== Fixes ----- 1. Problem: (CQ55251) "BAD MCP validity signature" shown when device hot-plugged. Cause: Race between FW initialization and driver load. Change: Let FW to complete initialization by adding msleep in driver. 2. Problem: TPA is not functional on platforms where CONFIG_NEED_DMA_MAP_STATE is not defined. Cause: We used dma_unmap_addr_set() and dma_unmap_addr() macros for internal storing and for further retrieving of the DMA mappings which were then used for BDs configuration in the TPA Rx flow while dma_unmap_addr() will always return zero on the mentioned above platforms. Change: Don't use the mentioned above macros in flows others than "map->unmap". Impact: TPA only. Introduced in 1.70.09. 3. Problem: Compilation failed on SLES11 SP1 update 1. Cause: Conflict on backported feature. Change: Fix bnx2x_compat.h. Impact: SLES11 SP1 update 1 only. 4. Problem: Wrong link LED when speed lower than 10G on 578xx devices. Cause: Incorrect LED mode setting. Change: Set correct LED mode setting. Impact: 578xx devices only. 5. Problem: One queue is not selected for transmission in kernels below 2.6.38. Cause: Incorrect mapping function. Change: Fix compat to implement mapping similar to 2.6.38. Impact: Kernels below 2.6.38 with multi queue support. 6. Problem: TCM, DMAE, PBF, TIMERS, XCM, DMAE parity errors were ignored, while still asserting the "close the gates" bit. Cause: The appropriate bits were not checked when checking for parity errors. Change: Added the missing bits handling to the parity recovery code. 7. Problem: Compilation failed on RHEL 5.7. Cause: Conflict on backported feature. Change: Fix in bnx2x_compat.h. 8. Problem: (CQ55312) DMAE timeout message shown in the syslog when loading the first function on the port. Cause: BMAC was reset after the NIG-to-BRB channel was open and before the FW was initialized. This caused the parity error in TCM. Change: Reset BMAC before opening NIG-to-BRB channel. Impact: Introduced in 1.70.04. Enhancements ------------ 1. Request: Optimize buffer mapping manipulations in the TPA flow. Change: As requested. 2. Request: Don't use atomic bit operations unless needed. Change: As requested. 3. Request: Propagate the CFC_DEL ramrod error code up to CNIC. Change: As requested. Version 1.70.10 (May 5, 2011) ============================== Fixes ----- 1. Problem: LRO failure in IPv6 case. Cause: Erroneous calculation of lro_mss size for IPv6 case. Change: Fix LRO MSS calculation in IPv6 case. Impact: 57712 and newer IPv6 LRO only. 2. Request: Potential link issue. Cause: Incorrect code alignment led to bad PHY struct initialization. Change: Fix PHY struct initialization. Impact: Introduced on 1.70.09. 3. Request: Potential inconsistent link state report towards OS. Cause: Possible race between netdev->open() and link attention handling flows both reporting link state towards OS. Change: Protect the link reporting code with the same locking scheme as used for the link state handling protection. Enhancements ------------ 1. Request: Use FW 7.0.17. Change: As requested. 2. Request: Employ silent vlan removal feature. Change: Silent vlan removal use: 1. In NPAR-SD mode silently remove the default vlan. 2. In ESX Network Plug-in Architecture silently remove the NPA default vlan. 3. When DCB is enabled in kernels which don't treat vlan-0 as non-vlan use silent vlan removal to: a. Remove vlan 0 with priority 0 if non fcoe queue. b. Remove vlan 0 with any priority if fcoe queue. 3. Request: Do not add VLAN tag or modify the priority of an explicit vlan tag of packets with TC_PRIO_CONTROL value in the skb priority. Change: As requested. Version 1.70.09 (May 3, 2011) ============================== Fixes ----- 1. Problem: (CQ53629) System spontaneously reboots. Cause: PCI/DMA address mapping error not properly handled by driver, which may cause chip to access improper addresses in host memory. Change: Add proper handling for mapping errors. 2. Request: (CQ49132) Link seen as up when cable(mostly fiber) is not fully connected. Cause : In this scenario, the physical link is up, while error are detected on the MAC layer. Change: Add periodic check for LSS errors on the MAC layer, since they don't provide indication by interrupt. Impact: Currently only 57712. Note that this fix will not discover a case where one of two wires of fiber cable is plugged out. 3. Problem: Storms get stuck shortly after a single-engine recovery. Cause: Functions were not unloading against MCP in case of parity error thus later LOAD request was always returning a FUNCTION load code. This lead to improper HW/FW initialization. Change: Added unloading against the MCP in case of parity error. Impact: 57712 and newer only. Introduced in 1.70.06. 4. Problem: Kernel panic when handling egress UDP packet for which checksum offload has been requested. Cause: The above case hasn't been properly handled in the code. Change: Add a proper handling for the above case. 5. Problem: In case of VLAN removal of a first small packet in TPA aggregation, driver may access uninitialized address. Cause: Firmware places a corrupted RX completion element in this case. Change: (in FW 7.0.16) Fixed relevant firmware flow. Impact: Introduced in 1.64.02 (FW 6.4.0). 6. Problem: (FCoE)(CQ54302) Unexpected FW behavior causes driver assert. Cause: Task SP-RAM address is not updated and the thread uses wrong SP-RAM address. Change: (in FW 7.0.16) Fixed relevant firmware flow. Impact: Introduced in 1.64.02 (FW 6.4.0). 7. Problem: (FCoE)(CQ53330) on 578XX 4-port mode FW causes driver assert. Cause: The firmware KCQEs on wrong EQ. Change: (in FW 7.0.16) Fixed relevant firmware flow. Impact: Introduced in 1.70.01 (FW 6.4.0). 578XX 4-port only. 8. Problem: (CQ53924) Ethtool Self Test fails loopback test. Cause: Unmapping of dma memory was not performed before accessing it. Change: Added unmap of the relevant memory. 9. Problem: MDC/MDIO access to Warpcore registers may fail with low probability. Cause: Warpcore PCB controller may get stuck without having MDC free running in the system. Change: Add work-around for 578xx-A0 by adding another write to the MDIO bus after each MDC access to the Warpcore. This will be fixed in HW for 578xx-B0. Impact: 578xx. 10. Problem: (DCB)(CQ54899) PMF migration may cause DCB get out-of-sync. Cause: Driver did not update port structure correctly. Change: Fixed DCB update code. Impact: Introduced in 1.70.06. 11. Problem: The following error is logged as soon as bnx2fcd service is started: "kernel: 8021q: device eth# has buggy VLAN hw accel". Cause: Under Red Hat 6.1 the bnx2x was compiled assuming the netdev centralized handling of hardware acceleration exists in kernel. Change: Changed the bnx2x to compile using the old scheme of handling of hardware acceleration in RH6.1. Impact: RH6.1 12. Problem: (CQ53276) 578xx ethtool display and settings are not done per board type. Cause: Missing distinctions between various Warpcore interfaces. Change: Check Warpcore network interface during init stage, and update the supported network attributes accordingly. Impact: 578xx 13. Problem: (CQ54552) System breaks once link is up after PMF migration when speed is 1G. Cause: Missing synchronization flag between PMF and non-PMF which indicate the XGXS type, led to incorrect initialization once link is up after PMF migration. Change: Initialize this flag during synchronization 14. Problem: ethtool will not show the correct media type after PMF migration and changing the SFP+ module type Cause: Media type was not synchronized after it is changed Change: Synchronize media type between PMF and non-PMF Impact: SFP+ based boards. Introduce on 1.64.19 15. Problem: Over-current message displays with port0 instead of port1 on 57712 SFP+ devices. Cause: 57712 port enumeration is per path. Change: Set the correct port number of the over-current display message according to the device type. Impact: 57712 with SFP+ boards. 16. Problem: Possible dead locks in slow path flows involving interface toggling. Cause: vlan_mac object was using spin_lock() semantics instead of spin_lock_bh() semantics while it may be called under a spin lock with BHs disabled in the ndo_set_rx_mode() flow. Change: Fixed the mentioned above code. Impact: Introduced in 1.70.06. 17. Problem: A possible deadlock in flows involving the DMAE operations. Cause: We protected the DMAE engine with mutex (suspends a task when lock can't be taken) in the bnx2x_issue_dmae_with_comp() function while it is also called under a spinlock in the ndo_set_rx_mode() flow. Change: Protect the above DMAE engine with a spinlock instead of a mutex. Impact: Introduced in 1.70.06. 57712 and newer in the NPAR mode only. Enhancements ------------ 1. Request: Add preliminary support for E3+84833 to pass extlb_test. Caveat that both drivers must be loaded at this time to function correctly. Change: As requested. 2. Request: Disable FCoE and DCB on unsupported platforms. Change: Determine allowed platforms by kernel version. Impact: FCoE/DCB. 3. Request: Add over-current check for 578xx Change: As requested Impact: 578xx 4. Request: Add default TX PMD settings (de-emphasis) for 578xx. Change: Set the TX settings per PMD type (SFI/XFI/DXGXS/KR) according to DVT measurements to achieve optimal link. Impact: 578xx. 5. Request: Use FW 7.0.16. Change: As requested. 6. Request: Write driver version string to specified offset in scratchpad for NC-SI OEM commands. Change: Read scratchpad offset from ncsi_oem_data_addr field of shmem2. Then, write driver version to appropriate offset. 7. Request: Remove zeroing of Ram0 from driver as it is performed by init tool. Change: Removed relevant code and the defines. Version 1.70.08 (Apr 11, 2011) ============================== Fixes ----- 1. Problem: Possible chip hang in case of parity error in QM. Cause: QM was reset before PXP causing 'close the gates' to be de-activated shortly before resetting PXP, PSWRQ sends a write request to PGLUE, PXP is reset, PGLUE tries to read the payload data from PSWWR, but PSWWR does not respond. The write queue in PGLUE will be stuck, DMAE commands will not return. Change: Change reset order of PXP and QM blocks so that PXP is reset before QM. Impact: During error recovery flow of QM parity attention only. Introduced in 1.53.1. 2. Problem: Tx of a CNA netdev wasn't properly disabled. Cause: Typo in a bnx2x_tx_disable(). Change: Fix the above typo. Impact: ESX CNA only. Introduced in 1.64.13. 3. Problem: Fairness issue between functions 0, 1 and functions 2,3 on 57840 4x10G. Cause: BRB threshold registers weren't initialized properly. Change: Use reset values of BRB threshold registers. Impact: 57840 4-Port only. 4. Problem: CNIC module would try to load iSCSI and/or FCoE despite invalid MF/MAC configuration of the appropriate. Cause: bnx2x_register_cnic() overwrites cnic_eth_dev->drv_state. Change: Do not overwrites cnic_eth_dev->drv_state in bnx2x_register_cnic(). Impact: iSCSI and FCoE only. 5. Problem: Possible inconsistent rx_mode state for iSCSI L2 queue. Cause: Both BNX2X_FILTER_ISCSI_ETH_START_SCHED and BNX2X_FILTER_ISCSI_ETH_STOP_SCHED bits might be set, which in line might cause the situation when the rx_mode that is finally configured is not the one that has been requested the last. Change: Clear the already pending state when configuring the new one. Impact: iSCSI L2 only. 6. Problem: (CQ51066) Link status in port mailbox indicates AUTONEG is disabled and no Serdes. Cause: Link status was zeroed during link down state. Change: Set AUTONEG and SERDES indications when needed. 7. Problem: Possible pending SP ramrod completion after FUNC_STOP ramrod is sent. Cause: Missing protection when checking bits in bnx2x_wait_sp_comp(). Change: Added the protection with netif_addr_lock for the mentioned check. Impact: Introduced in 1.64.00. 8. Problem: (CQ54422) Compilation Failed on RHEL 6.1. Cause: Backported features complict. Change: Adopt features in compat. 9. Problem: Potentioal race in NPAR-SD mode might cause sending of function update ramrod before function start ramrod is completed. Cause: LOAD_DONE message to MCP is sent before function start ramrod. LOAD_DONE request starts VIF initialization process that ends with VIF_SET request from the switch that triggers function update ramrod. Change: Perform function start ramrod before sending LOAD_DONE message to MCP. Enhancements ------------ 1. Request: Add CNA dummy device. Change: As requested. ESX 5.x only. 2. Request: Integrate the upstream "Support for managing RX indirection table" patch by Tom Herbert implementing the support for ethtool -X/-x options. Change: Integrated the mentioned patch taking into the account all remarks of the netdev people about this patch. 3. Request: Add 1G support for XFI serdes network interface type of Warpcore Change: As requested Impact: 578xx - XFI Version 1.70.07 (Apr 04, 2011) ============================== Fixes ----- 1. Problem: TX fault LED doesn't work upon module validation. Cause: Incorrect GPIO assignment. Change: Fix GPIO setting that controls the TX fault LED. Impact: 578xx - SFP+. 2. Problem: DAC may not link up. Cause: Register read was missing after setting EDC mode. Change: Read EDC register after setting it. Impact: 578xx - DAC. 3. Problem: Parity errors prevent device from load on emulation environment. Cause: Emulation environment limitation. Change: Disable parity on emulation environment. Impact: Emulation environment only. 4. Problem: Incorrect SFP+ module power setting. Cause: Value was swapped. Change: Reverse value to fit board scheme. Impact: 578xx SFP+ when nvm cfg #160 is set. 5. Problem: When accept all TX packets is enabled (all TX packets are duplicated to both the physical and loopback ports), LSO traffic throughput is less than expected. Cause: Firmware accounted duplicated LSO (and also some non-LSO) packets twice in the rate shaping algorithm, instead of only once. Change: (In FW 7.0.15) Fixed relevant firmware rate shaping bytes calculation for duplicated TX packets. Impact: Introduced in 1.64.01 (FW 6.4.0). 6. Problem: PF FLR while VFs are running may cause system to get stuck. Cause: If VF FLR happens after PF is down, the VF may try to send an event message to the PF by mistake. Change: (In FW 7.0.15) Fixed relevant firmware flow. Impact: Introduced in 1.70.00 (FW 7.0.0). 7. Problem: When TPA is enable, tcp packets with erroneous length might add wrong bytes to packet. Cause: Firmware didn't verify the packet length is equal Ethernet header + IP total length. Change: (In FW 7.0.15) Added the required verification. Impact: Introduced in 1.64.01 (FW 6.4.0). 8. Problem: (FCoE) FCoE on physical port 1 can't be enabled. Cause: Wrong cos allocation. Change: (In FW 7.0.15) Fixed relevant firmware flow. Impact: 57810/57840 only. Introduced in 1.70.00 (FW 7.0.0). 9. Problem: (iSCSI) Chip hangs upon arrival of iSCSI packet with split digest. Cause: Firmware sends erroneous hardware read command. Change: (In FW 7.0.15) Fixed relevant firmware flow. Impact: Introduced in 1.70.00 (FW 7.0.0). Enhancements ------------ 1. Request: Add an ability for a separate configuration of internal (Tx) switching filtering options. Change: As requested. Impact: SRIOV and virtualization only. Version 1.70.06 (Mar 29, 2011) ============================== 1. Problem: (CQ53274) Pci names are incorrect/inaccurate. Cause: Pci names are not updated. Change: Removed 57713 et al. Added 578xx family with MF and VF flavors. 2. Problem: (DCB MF) PMF migration caused to lose DCBX results. Cause: DCBX results is hidden from other PFs. Change: Add DCBX notification mechanism during PMF migration. 3. Problem: (DCB) Static configuration is not properly handled. Cause: Static configuration flow does not handle HW interrupt, because of state where DCBX initialization performed. Change: Move DCBX initialization to the end of nic_load. Impact: DCBX involved flows. 4. Problem: (CQ53768) Kernel panic at bnx2x_cnic_reuse_ooo_pkt. Cause: Wrong arithmetics on Tx HW consumer for a Forwarding ring. Change: Fixed the above arithmetics. Impact: iSCSI OOO only. Introduced in 1.64.00. 5. Problem: (CQ53347) Data does not validate reported while running Chariot for RH6.0 x64. Cause: In case of VLAN removal of a first packet in TPA aggregation, firmware may add padding bytes in the middle of the packet. Change: (in FW 7.0.14) Fixed relevant firmware flow. Impact: Introduced in 1.70.00. 6. Problem: (CQ53523) System stuck during load/unload under traffic. Cause: RX processor can get stuck in infinite loop when a set mac configuration is done during traffic. Change: (in FW 7.0.14) Fixed relevant firmware flow. Impact: Introduced in 1.70.00. 7. Problem: Link may not come up after SFP+ module plug in on BCM8726 based boards Cause: Module detection was not triggered by module insertion, which may lead to incorrect setting of EDC mode Change: Initialize AEU before collecting the group of signals in charge for generating interrupts Impact: BCM8726 based boards Introduced in 1.52.50 8. Problem: (CQ54040) Unable to perform iSCSI login. Cause: Missing iSCSI L2 and Netq MAC ramrods completion handling. Change: Added a missing code. Impact: iSCSI and ESX only. 9. Problem: bnx2x_func_state_change() and bnx2x_queue_state_change return a negative value while PENDING (1) value should be returned. Cause: test_bit(nr, vec) returns all-F's if nr is a variable and the requested bit is set. Change: Chaged test_bit(nr, vec) to !!test_bit(nr, vec) when nr is a variable. Impact: Introduced in 1.64.08. 10. Problem: If MCP sends to driver second NPAR-SD event before first one handling is done, no NPAR-SD events will be handled since now on. Note that second event from MCP while first one is not done yet should not happen due to "one pending" mode, but it is good practice to handle both messages if such a scenario occures in some way. Cause: drv_status field was checked to match exact value instead of bit masking the value to match various events. Change: Check drv_status bits to know which NPAR-SD events should be handled. Impact: NPAR-SD mode only. 11. Problem: (CQ52000 & CQ51697 Cont.) XAUI short detection mechanism only applies to 10G. Change: Remove 1G XAUI short detection. Impact: 8727 and 8706 PHYs. Enhancements ------------ 1. Request: Enable CL37 1G parallel detect Change: As requested. Impact: 578xx KR. 2. Request: (CQ53138) Disable fairness algorithm, when ETS is enabled. Change: As requested. 3. Request: Use FW 7.0.14. Change: As requested. 4. Request: Configure netdev unicast addresses list. Change: As requested. 5. Request: Add a support for a parity errors recovery for 57712 and newer. Change: As requested. 6. Request: Add MOD_ABS support for 578xx SFP+ modules Change: As requested. 7. Request: Invert OPTRXLOS signal on SFP/XFP interface for 578xx Change: As requested. Version 1.70.05 (Mar 17, 2011) ============================== ***** This version does not support CNIC ***** 1. Problem: (CQ53457) in MF mode actual TX max bandwidth differs from configured for the device. Cause: non-pmf function has overwritten configuration according to 10G link speed in UP flow. Change: Fix device load flow for non-pmf functions. Impact: MF mode with link speed other than 10G. 2. Problem: (CQ5772) (NPAR) Some configuration of Bandwidth Weight and Maximum Bandwidth is not functional. Cause: MAX algorithm timer was set to smaller value then MIN algorithm. In some cases this may cause under-run on the line. Change: Increase MAX algorithm timeout from 100usec to 400usec. Impact: Introduced in 1.64.09. 3. Problem: (CQ52834) (iSCSI) connection/login issues in DCBX environment. Cause: Erroneous context override by firmware. Change: (in FW 7.0.12) Fixed relevant firmware flow. Impact: DCBX environment only. 4. Problem: (CQ53526) (NPAR) Driver asserts while running iSCSI/L2 traffic. Cause: Forward channel configured for TX switching. Change: Disable TX switching for FWD channel. Impact: NPAR mode. 5. Problem: (CQ53414) bnx2x reports link down when loaded. Cause: The code was set to report the link state on load time. Change: Assume the link is down when loading and only report link up after loading. 6. Problem: (CQ53427) ethtool reports incorrect info for 10GE Passive Copper Cable connections Cause: Cable type was not taken into consideration Change: Determine port type using cable type information acquired from external SFP+ module if exists Impact: SFP+ type 7. Problem: No fan failure notification when the fan failed and nvram option 83 is set to enabled. Cause: The fan failure worked only for specific external PHYs and not according to option 83. Change: Enable fan failure regardless of the PHY type if option 83 is set to enable. Impact: No fan failure notification unless the PHY is SFX7101, BCM8073, BCM8481, BCM84823 or BCM84833 - other PHYs or designs without external PHY will not report fan failures (but the FW will stop the PHY). 8. Problem: Ethtool self test idle check tests erroneously for active connections. Cause: 1. Input registers were confused. 2. Connection type bit offset has changed since 57712. Change: Converted self test idle check to work with static record array Corrected register confusion and location of connection type. Impact: Saved 18% off linux driver compilation time. 9. Problem: Rx and Tx coalescing timeout parameters are reversed. Cause: Parameters passed erroneously between functions. Change: Swapped parameters in function call. Impact: Bug exists in all bnx2x versions supporting interrupt coalescing. 10. Problem: (CQ52887) Interrupt test using ethtool's self test fails. Cause: The ramrod, RAMROD_CMD_ID_ETH_EMPTY, is used for both the interrupt test and NetQueue commands. When self test is ran, the NetQueue would always intercept this ramrod but not complete the command. Change: Do not explicitly intercept the EMPTY ramrod in the netq code. Instead use the appropriate SP queue object to send the EMPTY ramrod. Impact: ESX only. 11. Problem: ethtool shows the wrong port connected. Cause: Dual media port presentation was swapped. Change: Show the active port. Impact: Dual media board. 12. Problem: (CQ53303, CQ52600) Firmware doesn't support FLR on both ports on the same path simultaneously on 578xx. Cause: The Flr flow hold some variables only for the last port treated. Change: (in FW 7.0.13) Added an array to hold separate variables for each port. Impact: Only 578xx. 13. Problem: FCoE doesn't identify function in NPAR-SD mode. Cause: FW use MAC classification. Change: (in FW 7.0.13) Classify function according to ID. Impact: Introduced in 1.70.01. 14. Problem: (iSCSI) Chip hangs upon arrival of iSCSI packet with FIN flag set. Cause: Tstorm signals Ustorm to release same BRB block twice. Change: (in FW 7.0.13) Fixed relevant firmware flow. Impact: Introduced in 1.64.01. Enhancements ------------ 1. Request: Add initial support for 1G over fiber. Change: As requested. Impact: 578xx fiber. 2. Request: (CQ50798) Add support for BCM8722. Change: As requested. 3. Request: Allow set speed in NPAR mode when device still closed. Change: As requested. 4. Request: Use FW 7.0.13. Change: As requested. 5. Request: Use DCBNL app-list to store negotiated app tlvs. Change: As requested. 6. Request: Add support for DCBNL peer information. Change: As requested. 7. Request: Honor GPIO configuration values on Tx laser control, on top of existing EPIOs. Change: As requested. Impact: 578x0 SFP+ designs. 8. Request: Link support for Everest 57810 + 84833B0PHY. Change: As requested. Impact: Everest 57810 + 84833B0PHY combination can pass traffic for testing. 9. Request: Add SGMII support for a specific OEM design. Change: Clear signal detect and configure internal PHY before BCM54618SE establishes link. Impact: SGMII ports of 57800 only. 10. Request: (CQ52000 & CQ51697) Short on XAUI lanes on the MAC side of 8727 and 8706 PHYs needs to generate link down event. Change: Tx fault detection has been added. In addition link qualification includes checking for Tx fault. The fault detection bit is read twice to clear any stale value. Impact: 8727 and 8706 PHYs. 11. Request: Support added for E3 + 84833B0 PHY firmware upgrade. Change: As requested. Impact: E3 + 84833B0 PHY combinations. 12. Request: Disable Tx switching for 57712/578xx. Change: As requested. Impact: 57712/578xx in NPAR mode, ESX. Version 1.70.04 (Mar 01, 2011) ============================== ***** This version does not support CNIC ***** Fixes ----- 1. Problem: (CQ53258) Ethtool self test fails loopback_test (offline) when run on the copper ports Cause: Test was done over 10G rather than 1G, and test did not wait long enough for the link to come up Change: When speed capability doesn't include 10G, then perform the self test using 1G. In addition, for PHY loopback test, wait for the link to come and not assuming it is already up. Impact: 57800 copper ports 2. Problem: (CQ51134) NC-SI functionality dependant on Port initialization Sequence Cause: During common init, the driver resets both BMACs such that if NCSI was enabled on the other port, it will stop working Change: BMAC will be reset during port initialization only Impact: 5771x with NCSI enabled Version 1.70.03 (Feb 24, 2011) ============================== Fixes ----- 1. Problem: ethtool -t under heavy traffic may show idle_check error. Cause: idle_check mistakenly reported error. Change: Fix idle_check routine. 2. Problem: (CQ53143) Configuring a primary ETH MAC with ifconfig tool didn't clear the old MAC configuration. Cause: Missing code that clears the old MAC configuration. Change: Added a missing code. Impact: Introduced in 1.64.00. 3. Problem: (CQ51593) Statistics are inaccurate on 578xx devices. Cause: Improper handling data from MSTAT HW block. Change: Fix data handling. Impact: 578xx only. 4. Problem: "DMAE timeout" appears in syslog and chip halts. Cause: Improper HW initialization sequence. Change: (v2) Fixed relevant init sequence. Impact: Introduced in 1.70.00. Enhancements ------------ 1. Request: Translate 10G-Force KR and 1G-Force KR to autoneg with advertisement of 10G and 1G in accordance. Change: As requested. Impact: 578xx KR interface. 2. Request: Support NVRAM configuration of EPIO assignment on Tx laser control. Change: As requested. Impact: 578xx SFP+ interface, existing boards with this parameter unconfigured should still work using hardcoded default EPIO. Version 1.70.02 (Feb 21, 2011) ============================== Fixes ----- 1. Problem: (CQ52452, CQ50960) VLAN stripping is not enabled for higher functions when function 0 is not up. Cause: Function ID field was always set to zero in UPDATE ramrod data. Change: Properly configure the above field in the ramrod data. Impact: Multi-function only. Introduced in 1.64.00. 2. Problem: NULL pointer dereference in a flow of closing iSCSI L2 queue. Cause: SW bug that caused cnic handler routine not to be called for CFC_DEL ramrod completion of iSCSI L2 queue. Change: Fix the above SW bug. Impact: iSCSI only. Introduced in 1.70.01. 3. Problem: (CQ52417), (CQ52845) Flow control doesn't work for 20G. Cause: Flow control wasn't enabled for 20G. Change: Set flow control on 20G according to settings. Impact: 57840 20G. 4. Problem: (CQ52023) Driver asserts with HW attention. Cause: Traffic type to priority/COS table was reset after link down by driver causing transmission on the wrong COS. Change: (In FW 7.0.10) Removing the table in RAM from HSI section. Impact: Introduced in 1.64.00 (FW 6.4.0). 5. Problem: System may crash when configuring some RX rings with TPA enabled and some with TPA disabled. Cause: Firmware tries to do TPA also for the non-TPA clients. Change: (In FW 7.0.10) Fixed relevant firmware flow. Impact: Introduced in 1.64.9 (FW 6.4.15). BCM57710/57711/57711E only. 6. Problem: System crash under TCP traffic when driver is toggling TPA. Cause: Firmware bug. Change: (In FW 7.0.10) Fixed relevant firmware flow. Impact: Introduced in 1.64.03 (FW 6.4.7). 7. Problem: Firmware aggregated packets with wrong checksum. Cause: Firmware didn't check checksum as a requirement for aggregation. Change: (In FW 7.0.10) Fixed relevant firmware flow. Impact: Introduced in 1.64.0 (FW 6.4.0). 8. Problem: 10G-KR doesn't link up on an OEM design. Cause: CL72 should not be disabled in KR environment. Change: Removed codes that disables CL72. Impact: 578xx 10G-KR. 9. Problem: Possible packet corruption when resetting the primary interface when there are VLAN interfaces configured for this interface. Cause: VLAN HW acceleration (stripping) is configured after Rx packets are allowed at the end of netdev->open(). Change: Configure VLAN stripping in Client SETUP if there are VLAN interface already configured for this interface. Impact: Kernels below 2.6.37. Introduced in 1.62.01. 10. Problem: System locks up after loading driver on 1Gb copper ports. Cause: Incorrect interrupt acknowledge when link change occurs lead to interrupt storm. Change: Acknowledge the interrupt correctly on 1G ports. Impact: 578xx with 2x1G and 2x10 port. Introduced in 1.70.01. 11. Problem: When resetting/disabling link in 578xx boards output for TX PAUSE signal to the MAC is not disabled Cause: Relevant register in the NIG is not cleared when link is disabled. Change: Set value to 0 in that register if link is disabled. Impact: 578xx. 12. Problem: BCM578xx may misconfigure the link on some OEM designs. Cause: ELink determines 4-port mode strictly from the input pin, not from override register that MFW always configures. Change: Changed to determine the 4-port mode by reading the override register. Impact: 578xx. 13. Problem: Driver unload may halt under traffic fails. Cause: Incorrect order of disabling XMAC. Change: Close the XMAC RX path before issuing XMAC soft reset. Impact: 578xx. 14. Problem: (CQ51417) ethtool -t may cause device to hang. Cause: Race in interrupt handling during self test. Change: Wait for SP completions in load flow to avoid the race. Impact: Introduced in 1.64.01. 15. Problem: Drivers assert while transmitting packets. Cause: Firmware lose packets synchronization during transmission (Xstorm Assert). Change: (In FW 7.0.11) Fixed relevant firmware flow. Impact: Introduced in 1.64.10. (FW 6.4.15). 57712/578xx only. 16. Problem: (CQ52536) Extra bytes might be added in the middle of the payload when a packet with padding after the TCP payload is received, while TPA is enabled. Cause: Firmware wrongly places padding bytes on RX SGEs. Change: (In FW 7.0.11) Fixed relevant firmware flow. Impact: Exists in all previous versions. The problem will be exposed only in very rare case in which a device on the network pads the Ethernet packet to longer than 72 bytes. 17. Problem: "DMAE timeout" appears in syslog and chip halts. Cause: Improper HW initialization sequence. Change: Fixed relevant init sequence. Impact: Introduced in 1.70.00. 18. Problem: ethtool -t fails on 578xx B0. Cause: test accessed unexistent registers. Change: remove improper access. Impact: 578xx only. Enhancements ------------ 1. Request: Remove support for 57710 emulation and FPGA. Change: As requested. 2. Request: Add performance improvements to Ethernet TX flows in BCM57711. Change: (In FW 7.0.10) Added optimizations in TX flow. 3. Request: Use FW 7.0.11. Change: As requested. 4. Request: CQ52000 Short on XAUI lines between Everest 2 and 8727 PHY needs to generate link down event. Change: Tx fault detection has been added. In addition link qualification includes checking for Tx fault. 5. Request: Collect FW TPA statistics: aggregations, bytes in aggregations and a number of aggregated network frames. Change: As requested. Version 1.70.01 (Feb 07, 2011) ============================== Fixes ----- 1. Problem: Potential wrong PHY initialization when loading the first function on a port, after another function from this port was unloaded. Cause: In this case, the driver won't lock PHY access, which may cause MDC/MDIO collision. Change: Initialize the lock flag on the probe stage, instead of the common and port init stage. Impact: Multi-function mode. 2. Problem: CQ52212 8073PHY intermittently exhibits signs of disconnected devices upon loading/unloading. Cause: Microcontroller and Driver both controlling Xaui Low Power Mode. Change: Remove Driver control of Xaui Low Power Mode. Impact: 8073PHY based boards. 3. Problem: CQ51624 PHY TXONOFF_PWRDN_DIS bit set to "1" instead of default 0 to prevent reset & power down of PHY. Cause: When GPIO controls TX Laser on 8727 and 8706, turning off laser will put PHY in low power mode. Change: Set TXONOFF_PWRDN_DIS accordingly. Impact: 8727PHY and 8706PHY based boards with TX laser controlled by GPIO_0. 4. Problem: L2 TX LSO Packets with LLC-SNAP header and in-band VLAN header are corrupted (BCM57710/BCM57711/BCM57711E). Cause: Firmware sends an illegal command, resulting with a corrupted header in such cases. Change: (in FW 7.0.9) Fixed relevant firmware flow. Impact: BCM57710, BCM57711 and BCM57711E only. 5. Problem: (iSCSI) Chip hangs when running iSCSI IOs bigger than 32KBs. Cause: Firmware bug. Change: (in FW 7.0.9) Fixed relevant firmware flow. Impact: Introduced in 1.64.01 (FW 6.4.0). 6. Problem: 57710 constantly get a parity errors in PBF and TM blocks during TCP/UDP traffic. Cause: False parity errors in the above blocks. PBF and TM blocks parity error attentions are not implemented in 57710. Change: Don't enable parity attentions in the PBF and TM blocks on 57710. Impact: 57710 only. Introduced in 1.70.00.04. 7. Problem: The atempt to configure iSCSI MAC address would cause a "NULL pointer dereference" error when CNIC module was loaded before L2 interface is opened. Cause: iSCSI L2 MAC object was initialized before bp->slowpath memory was allocated (bp->slowpath was NULL at that stage). So, as long as the object used references to bp->slowpath memory, it caused the above error, when we tried to utilize it. Change: Move iSCSI L2 MAC object initialization from bnx2x_cnic_probe() to the DRV_CTL_START_L2_CMD callback. Impact: iSCSI L2 only. Introduced in 1.64.00. 8. Problem: iSCSI L2 queue wasn't receiving any packet. Cause: Rx mode of this queue didn't have ACCEPT_ANY_VLAN option. Therefore FW filtered every packet by VLAN (assuming untagged frames having VLAN_ID 0) and as long as there were no HW VLAN acceleration configured, no frames were delivered to iSCSI L2 queue. Change: Added ACCEPT_ANY_VLAN option to iSCSI L2 queue rx mode. Impact: iSCSI UIO only. Introduced in firmware version 1.64.00. 9. Problem: (CQ52656) In NPAR mode "ethtool -t ethX" does not report error on some partitions while no link. Cause: Link is not tested for non PMF partitions. Change: Allow link testing for non PMF partitions. Impact: NPAR mode only. 10. Problem: (CQ52402) In NPAR mode setting some speed via ethtool -s causes device to hang. Cause: FW configured with illegal configuration. Change: Limit allowed speed to range from 1%-100% of actual line speed. Impact: NPAR mode only. 11. Problem: (CQ51417) Running ethtool -t causes the interface to hang. Cause: Link test was checked according to 57711/2 scheme rather than 578xx. Change: Test link according to the chip type. Impact: BCM578xx. 12. Problem: Possible problems with buffers mapping in iSCSI OOO flow on kernels 2.6.34 and newer. Cause: Improper mapping functions used (pci_xxx instead of dma_xxx). Change: Use the proper mapping functions in the above flow. Impact: iSCSI OOO only. Kernels 2.6.34 and newer. Introduced in 1.60.15. Enhancements ------------ 1. Request: Add autoneg parallel detect and pause support for 578xx KR. Change: As requested. Impact: 578xx-KR. 2. Request: Use FW 7.0.9. Change: As requested. 3. Request: Set default number of rx buffers to be divided equally between rx queues to decrease amount of pre-allocated buffers on systems with multiple CPUs. Change: As requested. 4. Request: Configure a mini-jumbo (2500) MTU for FCoE L2 ring. Don't change it when NIC's MTU changes. Change: As requested. 5. Request: Call for a cnic handler routine for CFC_DEL ramrod completion of iSCSI L2 queue. Change: As requested. Version 1.70.00.4 (Jan 19, 2011) ============================== Fixes ----- 1. Problem: VIF_LIST_GET request in NPAR-SD mode responded always with zero value. Cause: drv mailbox param value was cleared after valid value was written, and therefore zero was read by the MCP and sent to the switch. Change: Fix the logic. Impact: NPAR-SD mode only. 2. Problem: Warpcore microcode wasn't loaded as image from nvram. Cause: Non-clear loading sequence from the nvram forced loading microcode statically as temporary work-around. Change: Warpcore microcode will be loaded solely from the nvram by the bootcode. Impact: 578xx only; Requires bootcode 7.0.0.0/6.4.3 and above. 3. Problem: Statistics is not displayed correctly on 578xx. Cause: Improper initialization. Change: Fix initialization flow. Impact: 578xx only. 4. Problem: NPAR-SD packets did not reach MCP after driver is loaded. Cause: NIG registers initialization by the driver did not mark that NPAR-SD tag header can be included in rx packets, and overwrote value inserted by the MCP. Change: Write correct value to that register in NPAR-SD mode. Impact: NPAR-SD mode only. 5. Request: BCM8727 Link LED not functioning properly during BACS LED test. Change: Not blinking correct link light. Impact: BCM57712 + BCM8727 based boards. 6. Problem: (CQ51134) NC-SI functionality dependant on Port initialization Sequence. Cause: When the driver loads the first port, some PHYs require reset and loading their microcode on both ports. In case NCSI was enabled on the other port, the traffic was stopped since PHY was reset. Change: Load PHY microcode during common init, only if the PHY microcode wasn't loaded. Impact: Requires bootcode 6.2.9 to resolve this problem PHY firmware upgrade will require reboot from now on. 7. Problem: (CQ51367) - BCM84823/84833 activity LED blinks at lower rate on 10G link. Cause: The activity LED control registers are not configured right. Change: Enabled activity LED stretch_en bit. Made activity LED blink on source. Impact: BCM57712 + BCM84823/84833 based boards. 8. Problem: ESX - CNIC 'change MTU' would fail or result in a PSOD. Cause: Mismatched module IDs for request/free IRQ. Change: Masquerade as CNIC when cnic ops are called form bnx2x. Impact: ESX only. 9. Problem: (NPAR, FCoE) FCoE MAC wasn't read in NPAR mode. Cause: Missing code. Change: Add the missing code. Impact: FCoE in NPAR mode only. 10. Problem: (iSCSI) If iSCSI offload is requested in switch dependent MF mode zero MAC would be configured for iSCSI L2 queue. Cause: Bug in a driver. Change: Prevent the configuration of an illegal MAC. Impact: iSCSI in switch dependent mode only. 11. Problem: (CQ51413) Driver crashed, when number of queues was set to a value smaller than a default one due to SAFC configuration. Cause: Broken connection between an SAFC initialization and a memory allocation code. Change: Fixed the above flaw. Impact: SAFC only. Introduced in 1.62.06. 12. Problem: "Statistics sequence counter out of order" storm assert. Cause: Race between the LINK_UP event handler and the timer which both are calling the bnx2x_storm_stats_post() thus sending consequent statistics ramrods without waiting for a completion of the first. Therefore FW will read the ramrod data of the second ramrod while handling the first one, which will cause the above assert. Change: Prevent the above race. 13. Problem: Possible sending of a spurious MSI-X message after MSI-X is disabled. Cause: MSI-X configuration wasn't properly cleared when MSI-X was disabled. Change: Properly clear MSI-X configuration. Impact: Introduced in 1.60.28. 14. Problem: Kernel panic when loading bnx2x with int_mode=1 and disable_iscsi_ooo=1. Cause: INT#x ISR was scheduling iSCSI OOO ring's NAPI regardless NO_ISCSI_OOO flag. Change: Consider NO_ISCSI_OOO flag before scheduling iSCSI OOO ring's NAPI. Impact: Introduced in 1.64.07. 15. Problem: XSTORM assert due to wrong values in XSTORM RAM, occurring after turning up first interface on the other path (specifically traffic_type_to_priority_cos table was cleared in XSTORM RAM). Cause: driver used to reset LCPLL in bnx2x_init_hw_common process, which is performed per each path. That configuration is not needed as it is done by the MCP, and is wrong because LCPLL is common and not per path. Change: Remove that configuration from driver (it is done by MCP). 16. Problem: In NPAR-SD mode - DCBX configuration was not updated in FW. Cause: Relevant implementation was removed as a workaround because of the side effects it caused. Those side effects were caused by two bugs resolved in this version (problem #12 and problem #15 above). Change: Re-enable DCBX configuration implementation in NPAR-SD mode (remove workaround that prevented it). Impact: NPAR-SD mode only. 17. Problem: 578xx B0 can't receive traffic in SD mode. Cause: Inverted port configuration. Change: Fix port configuration. Impact: 578xx B0 only. 18. Problem: (FCoE) There was no licensing for FCoE. Cause: Missing FCoE licensing handling code. Change: Added the missing code. Impact: FCoE only. 19. Problem: (NIV) VIF_SET ack was sent twice from driver to MCP and causing logic errors. Cause: Wrong implementation that if bnx2x_func_state_change returns non zero value it is an error, while in fact only negative value is error. Change: Assume error only if bnx2x_func_state_change returns negative value. Impact: NPAR-SD only. 20. Problem: 57840: 4 port mode is not functional. Cause: Incorrect initialization for this mode. Change: Fix driver and FW (7.0.7) initialization. Impact: 57840 only. 21. Problem: 57840: 4 port mode - Grc-timeout appears in syslog. Cause: Statistics HW is not properly initialized. Change: Init MSTAT1 correctly. Impact: 57840 4 port mode only. 22. Problem: DMAE timeout after a few modprobe->ifup->rmmod iterations. Cause: PGLUE_B was disabled before BMAC reset is completed. Change: Fixed the relevant driver flow. Impact: Introduced in 1.64.08. 23. Problem: a. rx error packets detailed in ethtool were increasing all the time while NPAR-SD session is up. b. rx error packets detailed in NPAR-SD protocol STATS_ARRAY_GET request were increasing all the time while NPAR-SD session is up (in UIF type request only). Cause: all NPAR-SD messages reached host, but are destinated to vif_id of the MCP which is unknown to FW. Therefore, FW marks these packets as per port mf_tag_discard packets. Yet, these per port statistics were also counted in PMF's per func statistics as rx error packets, and were also sent as rx error bytes in per port stats request of NPAR-SD protocol. Change: a. Don't count per port mf_tag_discard/outer_vlan_discard packets as per func rx error packets of the PMF. b. Don't count per port mf_tag_discard/outer_vlan_discard packets as per port rx error packets sent in stats request of NPAR-SD protocol. 24. Problem: The module date was not updated since 2010/08/01. Cause: The date was moved to another source file which did not updated it automatically on submission to the version control system. Change: Update the file properties so the version control system will update the date automatically. Impact: Introduced in 1.60.32. 25. Problem: 578xx unable to link after unload-load sequence. Cause: Incomplete reset sequence. Change: Fix reset sequence. Impact: 578xx. 26. Problem: 578xx 4-port: load/unload test fails when compiled with CNIC. Cause: Inappropriate client_id configuration for non eth clients. Change: Fix initialization for 4-port mode. Impact: 578xx 4port. 27. Problem: 57800 GPHY port (SGMII) LEDs don't work. Cause: The LED setting routine is called only on 10G link. Change: Call the LED setting routine even for non-10G link. Impact: 578xx. 28. Problem: Unable to receive multicast frames on high functions in a multi-function mode. Cause: approx_mcast_engine_id was not properly initialized in setup ramrod data. Change: Fixed the relevant driver code. Impact: Mutli-function mode only. 29. Problem: 578xx 4-port: load/unload test fails when compiled with CNIC. Cause: Inappropriate client_id configuration for non eth clients. Change: Fix initialization for 4-port mode. Impact: 578xx 4port. 30. Problem: ifup returned error when device has illegal iSCSI mac. Cause: FCoE/iSCSI features were enabled even with illegal mac. Change: Disable the features if mac is illegal. Impact: 57712 SF mode. Enhancements ------------ 1. Request: CQ51710 - Disable CMS (common mode sense) feature in 84823 PHY, as this reduces power consumption and allows a better 10G link stability. Change: Clear the CMS bit in PHY register in PHY configuration routine. Impact: BCM84823B based boards. 2. Request: (CQ51889) Add Common Mode Sense (CMS) enable/disable functionality. Change: Adding field 156 to nvm cfg, as well as support in eLink. Impact: NVM config and Common Mode Sense capable PHYs. 3. Request: Increase RX ring size to 512 when using Jumbo Frames. Change: As requested. Impact: ESX only. 4. Request: Enable OOO by default and have the OOO ring match in size with a RX ring. Change: As requested. Impact: ESX only. 5. Request: Add statistics collection for NPAR-SD, and copy results to expected location in scratchpad if requested by the MCP due to request from the switch. Change: Added NPAR-SD fields to qstats strcuture and collecting info for these fields each time stats are collected. When requested by the switch, writing relevant fields to exact location in scratchpad according to NPAR-SD protocol. Impact: NPAR-SD enabled boards only. 6. Request: Support for 578XX B0. Change: As requested. 7. Request: Use FW 7.0.8. Change: As requested. 8. Request: Add dcbnl implementation supporting the FW DCBX engine. Change: As requested. Impact: 57712 only. 9. Request: Support SGMII with 54618SE GPHY for 57800. Change: As requested. Impact: Devices 3 and 4 of 57800 and small Warpcore changes only. 10. Request: Get all CNIC related info from shmem in the bnx2x. Change: As requested. Impact: iSCSI and FCoE only. 11. Request: Replace ethtool stats counter "rx_outer_vlan_discard" name with "rx_mf_tag_discard". Change: As requested. 12. Request: Preserve temperature input setting for PCIE and Warpcore Serdes equalization logic. Change: As requested, Warpcore initialization is now preserving that register value (no longer blindly overwrite it). Impact: 578xx 13. Request: Support multi-function and DCBX in 4 ports mode (BCM578xx). Change: (In FW 7.0.8) As requested. Version 1.64.10 (Dec 7, 2010) ============================== Fixes ----- 1. Problem: (CQ50681) Device hangs on up/down test when PFC is enabled Cause: If the device is going down while in PFC Xoff it will not set it to Xon and therefore, on the next load it will remain in constant Xoff Change: Force PFC Xon when enabling the device Impact: 57712 and 578xx 2. Problem: Tx packets are sent with wrong TCP checksum in case of TCP bi-directional scenarios Cause: Firmware didn't update the L4/L3 checksum correctly in mixed traffic of packets with/without checksum offload Change: Fixed the relevant firmware flow Impact: Introduced in 1.64.08 3. Problem: A possible dead-lock situation between sch_direct_xmit() and bnx2x_run_loopback() (calling bnx2x_tx_int()) on netif_tx_lock() Cause: Both functions above take a netif_tx_lock() but bnx2x_run_loopback() is called in a syscall context and takes a lock without disabling BHes on a local CPU, which may cause a dead lock as long as sch_direct_xmit() is called in a soft_irq() context Change: Explicitly disable local BHes in bnx2x_run_loopback() to prevent a mentioned above dead-lock situation Impact: Introduced in 1.60.25 4. Problem: (MF) ethtool -s speed has no effect in multi-function mode Cause: Address calcutated using func_id instead of vn_id Change: Fix address calculation Impact: Introduced in 1.64.09, MF only 5. Problem: ethtool -t failed on sigle port boards and 57712 (nvram test) Cause: Erroneous access to unexistent port info Change: remove the access 6. Problem: All ingress packets were dropped by 57712 on Big Endian machines Cause: Rx mode wasn't properly configured for 57712 on Big Endian machines Change: Fix Rx mode configuration code for 57712 Impact: Introduced in 1.64.00, 57712 only 7. Problem: PCI bus error when trying to transmit LSO packets from 57712 on Big Endian machines Cause: Parsing BD parsing_data field was malformed when running 57712 on Big Endian machines Change: Fix the code handling the parsing_data field of a parsing BD for 57712 Impact: Introduced in 1.53.0a, 57712 only 8. Problem: Kernel panic when receiving in none-MSI-X interrupt mode Cause: Indirection table was configured with none-existing queues when MSI-X was not attainable and RSS queues set was cut to a single queue. The reason for the above was an improper location of SAFC initialization code and usage of the SAFC parameters for the indirection table configuration despite the fact that an SAFC MF mode was not requested/not available Change: Don't use SAFC parameters unless SAFC MF mode is requested Impact: Introduced in 1.64.00 9. Problem: Single connection performance is much lower than expected in 57712 Cause: The firmware uses a malfunctioning bit in the HW for single connection optimization Change: The firmware uses a different bit with similar functionality Impact: Introduced in 1.64.00 when the optimization was implemented. Doesn't cause any penalty compare to older versions 10. Problem: (FCoE) An FCP_CONF frame was not transmitted when required Cause: A confirmation indication was not handle properly if the task was from middle path type Change: Fixed relevant firmware flow Impact: FCoE only. Exist in all previous FCoE releases 11. Problem: CQ48350, CQ49176, CQ50911 and CQ51200. BCM57712 not linking up after wake on S4 and S5. Cause: PHY firmware does not have enough time to download in 8073 and 8727 common init. Change: Poll until firmware is downloaded, and then timeout at 300ms. Impact: 8727 and 8073 PHY 12. Problem: Statistics were updated in wrong counters Cause: The per-queue statistic address was miscalculated Change: Fixed address calculation Impact: Introduced in 1.64.00 13. Problem: Firmware assert will occur when LSO packets is duplicated in case Tx-switching is enabled and packet is sent without VLAN Cause: Firmware looses synchronization with packet index which is enforced by firmware for debugging purposes Change: Fixed relevant firmware flow Impact: Introduced in 1.64.00 14. Problem: L2 packets which are duplicated in case Tx-switching is enabled may be counted twice in the Tx statistics Cause: Firmware counts statistics each time a transmission command is sent to hardware, even if the duplicated packet was already sent Change: Fixed relevant firmware flow Impact: Introduced in 1.64.00 Enhancements ------------ 1. Request: Use FW 6.4.16 Change: As requested 2. Request: Integrate VLAN enhancements from the net-next Change: As requested 3. Request: Use slow path function object mechanism to synchronize between function stop ramrod to NPAR-SD ramrods, instead of sleep work around in NPAR-SD mode used today Change: As requested. Logic was added to function object 4. Request: Remove unrequired clearance of specific VIF from NIV VIF lists if that function is unloaded from host side (as anyway VIF_LIST_SET commands will be sent from switch). Change: Don't call FW NIV_VIF_LISTS ramrod for the sub command of VIF_LIST_RULE_CLEAR_FUNC from the driver unload flow 5. Request: Use NIV_VIF_LISTS hsi new echo field to distinguish in ramrod completion flow for which sub command the respones is relevant, instead of using a bp dedicated field for that Change: As requested (instead of using last_viflist_req_to_fw field). 6. Request: treat NPAR-SD driver_niv_support as a global shmem2 field, and write its value only in LOAD_COMMON flows Change: As requested 7. Request: Add a support for TPA over IPv6 for 57712 and above Change: As requested Impact: Introduced in 1.64.10. 57712 and above only 8. Request: Support for forward connection traffic in NPAR-SD mode Change: TX packets are sent with destination field, on NPAR-SD tag header, which is equal to the source VIF value Impact: NPAR-SD mode is supported in BCM57712 only 9. Request: Enable Tx switching for 57712 Change: As requested Impact: 57712 in NPAR mode only Version 1.64.09 (Nov 18, 2010) ============================== Fixes ----- 1. Problem: CRC errors are seen with line-rate traffic on BCM578xx Cause: Warpcore microcode was not loaded, and its clock wasn't synchronized well Change: Load Warpcore microcode and apply clock compensation This change is a temporary work-around which will be embedded in the bootcode later on Impact: 578xx Only 2. Problem: (CQ50748) MinBW not functioning as expected in certain NPAR configuration Cause: MinBW algorithm coefficients were not calculated properly and cause the algorithm to not function well in extreme cases Change: Re-calculate the algorithm coefficients to allow granularity of 1:100 Impact: Affects NPAR mode in which MAX bandwidth can be configured to over-subscription 3. Problem: Single Tx L2 connection enhancement feature is broken when FLR is sent on function which is under traffic Cause: Tx firmware didn't release internal resources, which may be taken by connections that belong to FLRed functions Change: (in FW 6.4.13) Fixed relevant firmware flow Impact: Introduced in 1.64.01 (in FW 6.4.0) 4. Problem: Broadcast packets are received on a client which isn't configured to receive them Cause: The firmware always passed broadcast packets to the leading client even when it wasn't configured to received them Change: (in FW 6.4.13) Fixed relevant firmware flow Impact: BCM57711 only, introduced in 1.64.05 (in FW 6.4.7) 5. Problem: TPA does not aggregate packet when RSS disable Cause: Wrong initialization by firmware Change: (in FW 6.4.13) Fixed firmware initialization Impact: Introduced in 1.64.06 (in FW 6.4.9) 6. Problem: (iSCSI, CQ50672) Chip hangs when running iSCSI traffic on one function and toggling load/unload on the other function Cause: Firmware initialized the CAM incorrectly, causing iSCSI out of order client to receive an unexpected packet Change: (in FW 6.4.13) Fixed relevant firmware flow Impact: BCM57710 only, introduced in 1.64.01 (in FW 6.0.0) 7. Problem: Compilation failed on RH5.6 Cause: Redefinition of backported function Change: Remove the definition from bnx2x code for RH5.6 Enhancements ------------ 1. Request: Add NPAR-SD support Change: As requested 2. Request: (CQ49959) Request to log event log in case the PHY does not come out of reset, and MDC/MDIO timeout Change: As requested 3. Request: (CQ51065) NPAR mode: change Max BW from units of "intervals of [100Mbps]" to units of "% of physical link speed" Change: As requested Impact: NPAR mode only 4. Request: (FCoE) Synchronize all storms with ABTS operation before the transmission of ABTS packet, in order to avoid potential races Change: As requested Version 1.64.08 (Nov 08, 2010) ============================== Fixes ----- 1. Problem: 4-port MF/SF combined mode on 578xx is not functional Cause: Improper HW initialization Change: Common for both ports HW properly configured Impact: 578xx only 2. Problem: Compilation failed on 2.6.36 kernels Cause: Improper conditions in bnx2x_compat.h layer Change: Fix condition for functions' definitions 3. Problem: (CQ50903) Driver prints some debug info when dcbx enabled Cause: Debug info printed with error dbg level Change: Remove the prints 4. Problem: Weighted fair queuing congestion management doesn't work on BCM57712 Cause: Firmware might send packet to wrong port in case weighted fair queuing is enabled Change: (in FW 6.4.10) Fixed firmware flow Impact: Introduced in 1.64.00 5. Problem: Firmware doesn't work correctly for 2 TCP connections with the same toeplitz hash result, when TPA is enabled Cause: The firmware wrongly invalidated the aggregation for the first connection, when a packet from the second connection arrived Change: (in FW 6.4.10) Fixed firmware flow Impact: Introduced in 1.64.03 6. Problem: (CQ50722) When more than 16 TPA aggregations are open, aggregations might not close properly Cause: The firmware miscalculated the TPA timer address Change: (in FW 6.4.10) Fixed firmware flow Impact: Introduced in 1.64.03 7. Problem: (iSCSI, CQ50380) Event viewer shows NOP events Cause: TCP window is closed and initiator cannot properly process incoming in-order packets Change: (in FW 6.4.10) Fixed firmware flow Impact: Introduced in 1.64.00 8. Problem: False bug-check when trying to set speed in NPAR mode when link is down Cause: The FW should be configured only after the physical link is up Change: Do not configure the FW while link is down with the new speed settings Impact: 57712 NPAR mode only 9. Problem: (iSCSI) in NPAR mode devices have incorrect iSCSI mac address Cause: Mac address is taken from port configuration Change: Take the addreses from NPAR configuration Impact: 57712 NPAR mode only Enhancements ------------ 1. Request: Use FW 6.4.11.1 Change: As requested Version 1.64.07 (Nov 03, 2010) ============================== Fixes ----- 1. Problem: No RSS in a multi-function mode Cause: RSS engine ID was not initialized in Client SETUP ramrod data Change: Set RSS engine ID in the SETUP ramrod data Impact: Introduced in 1.64.00. 57711 and 57712 only 2. Problem: (CQ50624) Race between the netdev->open() and the last part of pci_dev->probe() that configures the interrupt mode and adds NAPIs causes kernel panic Cause: Improper operations order: netdev_register() should be called after driver is completely configured Change: Move all driver initializations before the netdev_register() call Impact: Introduced in 1.60.28 Enhancements ------------ 1. Request: Unify the slow path flows for all types Client Change: Handle iSCSI OOO slow path in a NAPI (interrupt driven instead of polling as it used to) 2. Request: Add support for 57800 HW Change: As requested 3. Request: Add hw statistics support for 578xx Change: As requested 4. Request: (CQ50053) Add "Dual Media Support" section to README/Man pages Change: As requested Version 1.64.06 (Oct 27, 2010) ============================== Fixes ----- 1. Problem: (CQ49515, CQ50024) Occasionally losing link on force 10/100 connections on BCM84823 based boads Cause: Not waiting for GPHY to complete reset Change: Add 50ms delay after 84823 PHY comes out of reset Impact: BCM84823 based boards 2. Problem: (CQ50559) Build fails with RHEL6 kernel Cause: Redefinition of backported function Change: Remove the definition for RH kernels Impact: Introduced in 1.64.05 3. Problem: (iSCSI OOO) When in MF mode, Hardware may get PCI error in case of iSCSI out-of-order flow Cause: Firmware set the wrong PCI function ID Change: Fixed firmware flow in FW 6.4.9 Impact: Introduced in 1.64.03, 57712 iSCSI OOO only 4. Problem: (CQ50483) Chip got stuck during stress test Cause: Context was not initialized correctly by the Firmware Change: Fix the initialization in FW 6.4.9 Impact: Introduced in 1.64.03, BCM57710/11/11E only 5. Problem: (FCoE) Trying to transmit from invalid host memory address Cause: Receiving incorrect FCP_XFR_RDY second packet Change: Rejecting the second FCP_XFR_RDY packet for the specific task Impact: Introduced in 1.64.00. FCoE only 6. Problem: (FCoE) False timer REC_TOV expiration Cause: Inappropriate advance of timer counter Change: Fixed firmware flow in FW 6.4.9 Impact: Exists in all previous FCoE releases 7. Problem: (FCoE) Transmitting FCP_DATA frames with wrong OX_ID Cause: Changing OX_ID once REC_TOV expiration is detected Change: Fixed firmware flow in FW 6.4.9 Impact: Exists in all previous FCoE releases Enhancements ------------ 1. Request: Use FW 6.4.9 Change: As requested Version 1.64.05 (Oct 20, 2010) ============================== Fixes ----- 1. Problem: ESX Non LRO net-queues were still aggregating incoming TCP frames Cause: net-queues not reserved for LRO were not internally marked as such (tpa not disabled) Change: correctly disable tpa for such queues Impact: ESX only 2. Problem: RX broken in MF SD mode Cause: Improper hw configuration Change: Write correct values to HW registers Impact: Intoduced in 1.64.04 3. Problem: Link up event is not reported to the OS Cause: Inconsistent link report state handling Change: Change the link report state handling 4. Problem: (ESX, PR379952/PR405074) FW asserts on invalid value in a VLAN field in the start BD (xmit flow) Cause: The first sg element might not contain all the headers Change: Do a simple check and if this holds pull tail on the skb Impact: ESX only. This may happen only when the VMs are using 3.0.x tools 5. Problem: Broadcast packets can be received on the wrong L2 client Cause: Classification flow was using "unmatched unicast" flag also for broadcast packets Change: Fixed firmware flow Impact: 57710 only. Introduced in 1.64.03 6. Problem: When more than 16 TPA aggregations are open, aggregations are not closed properly Cause: Firmware miscalculated the address for the TPA timers Change: Fixed firmware flow Impact: Introduced in 1.64.03 7. Problem: (FCoE) RRQ frame was not sent after abort operation Cause: Corrupted ABTS ACC frame reported to the driver Change: Firmware updates the correct R_CTL field in task context Impact: Introduced in 1.64.00 8. Problem: (CQ49968) DMAE timeout on specific system during init Cause: The DMAE can take up to 200ms to complete on some systems Change: Update the DMAE timeout from 2ms to 200ms 9. Problem: Incorrect HW statistic on 578xx Cause: Read stats from inexistent address Change: Adopt statistics collection to avoid reading from the address Impact: 578xx only Enhancements ------------ 1. Request: (CQ49997) Implement Bandwidth allocation for Nic partitioning mode Change: As requested Impact: 57712 only 2. Request: Use FW 6.4.8 Change: As requested 3. Request: Properly calculate the LRO MSS value (needed for TCP delayed ACK handling) Change: As requested 4. Request: Add support for BCM57810/57840 adapters Change: As requested Version 1.64.04 (Oct 14, 2010) ============================== Fixes ----- 1. Problem: (CQ49886) MC Assert on 57710 with more than 4 queues Cause: ESX does not align physical memory to requested size. Thus ILT pages do not adhere to 57710 alignment requirements Change: Allocate extra memory and manually align CDU ILT pages. Define ILT pages for all other clients to be 4K Impact: ESX only 2. Problem: (CQ49827, CQ49844) pNic Link/Unlink test fails when the pNic eventually fails to load Cause: During load skb allocation for L2 queues is stopped on the first failure. If this happens on the default queue before a minimal number of skbs were successfully allocated nic load fails Change: Do not break upon first skb allocation failure. Fail only if after queues size allocation attempts not enough skbs were successfully allocated Impact: ESX only 3. Problem: (CQ50208) ESX4.0/4.1 pNic statstics are not updated Cause: Using a local statistics structure for ESX instead of the net_device statistics structure Change: Use the correct statistics structure for ESX Impact: ESX only 4. Problem: (CQ49826) Wrong skb queue mapping passed to hard_xmit Cause: FCoE L2 queue is not disabled and is used by the stack Change: Disable FCoE L2 queue for E1x in general and all devices in ESX Impact: ESX only 5. Problem: ethtool -S shows all possible queues including disabled queues such as FCoE or queues with no stats such as iSCSI OOO queues Cause: ethtool statistics call-backs iterate over all queues. Change: Iterate only over L2 queues and FCoE queue if not disabled. 6. Problem: (ESX) packets received on a net queue may arrive after its filters are removed Cause: filter removal completion is not syncronized with the net-queue fast-path completions Change: Send a flush command for the net-queue after deleting the filter and before returning from the filter removal call-back Impact: ESX only 7. Problem: (CQ50308) Compilation failure on RHEL6RC1 Cause: Definition of list_rotate_left in bnx2x_compat.h for all kernels from 2.6.34 Change: Remove the definitions for non IOV kernels Version 1.64.03 (Oct 11, 2010) ============================== Fixes ----- 1. Problem: (ESX) MSI-X was disabled forever after NIC down/up sequence Cause: MSI-X was explicitly disabled in the bnx2x_close() in ESX driver Change: Cancel the explicit MSI-X disabling Impact: ESX only 2. Problem: (CQ50033) Link remains down on the PMF despite the DCC "link up" indication Cause: DCC event handler wasn't handling the event for the PMF Change: Fix the DCC event handler code Impact: 57711 and 57712 only 3. Problem: (iSCSI) Occasional HW attentions in iSCSI OOO offload/upload scenarios Cause: When multiple consecutive packets are sent on L2 forward connection, firmware might incorrectly manage internal transmission credit Change: Fixed in FW 6.4.6 Impact: Introduced in 1.64.00 (FW 6.2.0) 4. Problem: LSO packets with large contiguous buffers may not be properly sent to the network Cause: Firmware didn't calculate the number of segments to be sent to the network for LSO packet with large contiguous buffers correctly Change: Fixed in FW 6.4.6 Impact: Introduced in 1.64.02 (FW 6.4.5) 5. Problem: (FCoE) FCP_XFR_RDY verification failure leads to the task abort Cause: Error in a verification procedure in the second FCP_XFR_RDY packet on a single task Change: Fixed in FW 6.4.6 Impact: Introduced in 1.64.00 (FW 6.4.0) 6. Problem: Malicious VF detection flow may cause memory corruption on TX processor Cause: Bug in relevant firmware flow Change: (Fixed in FW 6.4.7) Fixed firmware flow Impact: Introduced in 1.64.00 (FW 6.4.0) 7. Problem: (FCoE)(CQ50211) InvalidCrcCount value after collecting statistics Cause: Wrong statistics collection in firmware Change: (Fixed in FW 6.4.7) Fixed firmware flow Impact: Introduced in 1.64.00 (FW 6.4.0) 8. Problem: (FCoE)(CQ50267) ABTS sent with incorrect RX_ID value Cause: Firmware reported incorrect task information when detecting the error Change: (Fixed in FW 6.4.7) Fixed firmware flow Impact: Introduced in 1.64.00 (FW 6.4.0) Enhancements ------------ 1. Request: Use FW 6.4.7 Change: As requested Version 1.64.02 (Sep 27, 2010) ============================== Fixes ----- 1. Problem: (FCoE) panic dump while opening FCoE connection Cause: FCoE ramrods were counted on incorrect SPE pool Change: Use L5 pool Impact: Introduced in 1.64.00 2. Problem: Wrong statistic counter might be updated Cause: (Fixed in FW 6.4.5) In client init the queue statistic address might be calculated wrongly Change: Fixed the calculation in client init Impact: Introduced in 1.64.00 (FW 6.2.1) 3. Problem: Congestion management doesn't work properly in case of a single L2 connection scenario on 57712 Cause: In case of a single connection L2 firmware didn't allow pausing transmission which is needed for the congestion management functionality Change: (Fixed in FW 6.4.5) Firmware now considers congestion management decision to pause transmission Impact: Introduced in 1.64.00 (FW 6.2.1) 4. Problem: The firmware returned the wrong error state for Ethernet ramrods Cause: The code in Xstorm didn't save error state correctly Change: (Fixed in FW 6.4.5) Fixed the relevant flow Impact: Introduced in 1.64.00 (FW 6.2.0) 5. Problem: PF FLR could hang the chip Cause: The firmware didn't return activity counter to CFC correctly Change: (Fixed in FW 6.4.5) Fixed the relevant flow Impact: Introduced in 1.64.00 (FW 6.2.0) 6. Problem: (CQ49299, PR57004) HW stuck after 8 hours of heavy LSO traffic Cause: When driver send an LSO packet with total length longer than 64K, the firmware calculate the total SGL length in a uint16 variable which overlaps and causing an erroneous PBF command Change: (Fixed in FW 6.4.5) Change the counter to be uint32 7. Problem: L2 traffic might be stopped in case of dcb updates COS value for some traffic types Cause: The firmware didn't return activity counter to CFC correctly Change: (Fixed in FW 6.4.5) Fixed the relevant flow Impact: Exists in all previous releases that support dcb updates Enhancements ------------ 1. Request: Port a new way L2 FW handles FCoE and FIP packets Change: Starting from FW 6.4.4 L2 FW forwards FCoE and FIP frames to FCoE L2 client unconditionally. This means that there is no need to configure any MAC for an FCoE L2 client any more. So, all such code has been swept out Impact: Introduced in 1.64.00 (FW 6.4.4) 2. Request: Use FW 6.4.5 Change: As requested Version 1.64.01 (Sep 20, 2010) ============================== Fixes ----- 1. Problem: BMAC relays control packet to host and BRB is filled with unnecessary packets Cause: BMAC is configured to relay control packets to host Change: Configure BMAC not to relay control packets to host 2. Problem: Failed to load high functions in MF mode Cause: bnx2x was trying to configure the HC for the default SB, which doesn't have it (during FCoE ETH ring configuration) Change: Exclude HC configuration from FCoE ETH ring initialization 3. Problem: After "Fix 2" packets were silently dropped on the receive side in a SD MF mode Cause: Tx OUTER VLAN was not properly configured Change: Properly configure Tx OUTER VLAN in the function start ramrod 4. Problem: (CQ49795) Link loss on port after multiple iterations of load-unload Cause: When link change occur, and at the same time the driver is unloaded, the NIG attention is left latched since it is used to be cleared only during link change event. This leads that following link change events are actually masked. Change: Clear NIG latched attention during driver unload Impact: BCM84823 based boards 5. Problem: False link up indication on boards with BCM84823 PHYs Cause: Not waiting until PHY has come out of reset Change: Poll on reset bit. Timeout after 1 second Impact: BCM84823 based boards 6. Problem: iSCSI OOO didn't work over VLAN Cause: Inconsistent Client configuration and fast path functions implementation for OOO Client in regard to HW VLAN acceleration Change: Don't assume HW VLAN acceleration in fast path iSCSI OOO functions Impact: iSCSI OOO only Enhancements ------------ 1. Request: Add capability to build against SuSE source RPMs Change: As requested 2. Request: Set drop threshold for receiver lossy COS to 90, when PFC is enabled Change: As requested Version 1.64.00 (Aug 31, 2010) ============================== Fixes ----- 1. Problem: (CQ47855) Link test fails under Linux using ethtool Cause: In case a MAC test followed by link test, the NIG attention might be cleared while ISR was already triggered due to NIG attention. This led to declaring the MAC test as failed since there's actually no link in this case. Change: In case NIG interrupt mask is cleared during interrupt handling, do not execute link status update routine. 2. Problem: (CQ48747) Dual media: fiber port does not link at 1gig speed Cause: The link speed in the pass-through phy (84823) was set to 10G Change: Set the pass-through speed to 1G as well when fiber is set to 1G 3. Problem: (CQ49143) Dual Media: First attempt to change from default TP to FIBRE using ethtool does not work. Cause: When changing port type from TP to FIBRE the command failed since FIBRE doesn't support autoneg, yet the port type was changed. Change: When ethtool command fail, do not change port type. Impact: Dual-Media boards 4. Problem: Compilation error on kernels 2.6.34 and later Cause: netdev_name() defined by both kernel and driver Change: Fix compat.h for these kernels 5. Problem: 84823 PHY not showing correct Link LED's. Cause: Incorrectly setting LED Masks Change: Eliminated offending branch in code Impact: Introduced in 1.60.24 6. Problem: (CQ49137) ethtool -t test fails in dual-media boards Cause: Link wasn't tested correctly depending on the media configuration Change: Test link according to media configuration Impact: Dual-Media boards 7. Problem: (CQ49004) Dual Media: Switch show link on both media simultaneously. Cause: Not disabling TX on non-active port. Change: In case link is up in non SFP+, disable the SFP+ TX laser. Impact: Dual-Media boards 8. Problem: On BCM8727 based boards, when link speed is changed from 1G to 10G, PCS may be halted Cause: Restoring 10G link setting was done according to old PHY microcode Change: Restore default 10G link setting according to new microcode Impact: BCM8727 based boards 9. Problem: (ESX) Performance regression found by VmWare Cause: Tx ring was configured to have a smaller length than it was in IOVP driver Change: Configure Tx ring to have the same length as in IOVP driver Impact: ESX only 10. Problem: (CQ48584) Intermitted link issue and unexpected behavior using boards with external PHYs Cause: PHY lock indication was missing on second port, so there was no locking between the ports. When two ports tried to read/write from the PHY, they the instruction may collide. Change: Set PHY lock indication of both ports Impact: 57710/57711 on boards with external PHY. Introduced: T5.0 11. Problem: (CQ49219) Dual media: Copper link does not come up once 10gbaseT priority is set in driver property Cause: Link indication from both Copper and Fiber Change: Ignore link indication from Fiber in case Copper is selected Impact: Dual-media boards Introduced: 1.60.32 12. Problem: (CQ49296) - Dual media: Copper link would not come up upon removal of fiber media when serdes priority and 1GB full is set Cause: When Fiber link is set to 1G, its XAUI will not automaticity power down like it does in 10G. This cause the BCM84823 to detect false link from the BCM8727 even if Fiber is not connected. This ends up in not linking the copper side. Change: When link is configured to 1G, power down the BCM8727 XAUI side, and when link comes up, power it up. Impact: Dual Media boards. 13. Problem: (CQ49137) -Dual Media: Ethtool fail - Link_test (online) on TP every few iterations. Cause: Link detection may take very long in case of copper, while the wait up time was limit to 10sec only. Change: Increase link wait up time in link test to 14sec Impact: Dual Media boards. 14. Problem: Dual Media PHY 84823 activity and front panel LED's not functioning correctly. Also Diagnostic Mode LED's not firing correctly Cause: LED masks not set correctly Change: Changed LED masks, and added LED mode for Diagnostics Impact: Dual Media boards 15. Problem: CQ49197 - No link at 1Gb/2.5Gb on BCM8073 based boards Cause: CL37 BAM was enabled on all boards while it should be configurable. Change: Disable CL37 BAM by default. Impact: BCM8073 based boards Introduced in 1.60.21 16. Problem: HW Statistics collection through the DMAE broken on 57712 Cause: For 57712 the DMAE command needs to include the destination function. Change: Adjust the DMAE command to work on 57712 Impact: Introduced in 1.60.01 17. Problem: Possible inconsistency in parity recovery flow in case of bogus usage of bnx2x_trylock_hw_lock() function Cause: Inconsistent error core returned (-EINVAL while function returns `bool') Change: Return `false' in case of an error Impact: 1.60.01 18. Problem: The firmware sends an assert when starting the first vf in a passthru mode Cause: The firmware trys to send an event to the pf, but since the vf was never initialized, the firmware couldn't find which pf to use Change: The firmware will only send an event in case the function was initialized before. Fixed in FW 6.4.4 Impact: Introduced in FW 6.2.1.1. ESX NPA only 19. Problem: (CQ48770) When working with rate-limiting in 57711/2 with jumbo frames, the rate is half of what configured Cause: Firmware miscalculated the amount of bytes transmitted Change: Fixed the calculation. Fixed in FW 6.4.4 Impact: Introduced in firmware version 6.0.20 20. Problem: PCI entity wasn't calculated before write event ring element in the initial cleanup and MaliciousVf handlers Cause: Used wrong PCI entity in the handlers Change: Calculate the PCI entity before using it. Fixed in FW 6.4.4 Impact: Introduced in FW 6.2.0 21. Problem: In FLR final cleanup flow - in some cases the IGU cleanup command was wrong Cause: Used wrong parameters for calculation of the function id from Pf or Vf. Change: Fixed the calculation. Fixed in FW 6.4.4 Impact: Introduced in FW 6.2.0 22. Problem: (ESX PR582737): TX switching along with LSO packet results with HW attention Cause: LSO packet might be sent on a port which doesn't have sufficient QM credits Change: LSO packets are sent only if credits were charged for the chosen port (physical vs. loopback). Fixed in FW 6.4.4 Impact: Introduced in first tx switching version 6.1.4 23. Problem: Possible race between dcb update and ethernet tx single connection optimizations Cause: When Single Eth connection is present it may not allow updating the association of tx queues to COSes Change: L2 firmware now considers DCB updates and may stop a single connection run to allow DCB configuration update Fixed in FW 6.4.4 Impact: Introduced in version 6.0.15 24. Problem: The firmware didn't support TX switching for MAC-VLAN-PAIR Cause: The firmware didn't initialize the VFC correctly Change: Fixed the VFC initialization. Fixed in FW 6.4.4 Impact: Introduced in FW 6.2.0 25. Problem: The error field in ramrod CQE was always sent as 0 Cause: Wrong initialization of the CQE Change: Sending the right value. Fixed in FW 6.4.4 Impact: Introduced in FW 6.2.0. 26. Problem: The code entered the infinite loop in the Cstorm Common VfZone handler Cause: Wrong calculation of a VF ID Change: Fixed the VF ID calculation. Fixed in FW 6.4.4 Impact: Introduced in FW 6.2.0. 27. Problem: (CQ49649) Dual Media: No 1Gb fiber link after changing driver speed property, when cable is connected. Cause: Link interrupt is generated from NIG attention common for both phys on dual media board. The NIG status was set for both PHYs while it should have been done for the copper attention only. Change: Set NIG attention according to the active PHY Impact: Dual media boards Enhancements ------------ 1. Request: Use FW 6.2.1.1 Change: As requested 2. Request: Integrate T6.1 changes Change: As requested 3. Request: Support HW Rx hash generation for a single queue configuration Change: As requested 4. Request: Provide a way to know if there are pending ramrods' completions in multicast and rx_mode configuration flows Change: Return a positive value from bnx2x_config_rx_mode() and bnx2x_config_mcast() if there are pending ramrods' completion 5. Request: Add "delete all" and "reconfigure" verbs to the VLAN_MAC object Change: As requested 6. Request: Add "reconfigure" verb to the MCAST object Change: As requested Version 1.60.29 (Jul 21, 2010) ============================== Fixes ----- 1. Problem: (CQ48770) When working with rate-limiting in 57711/2 with jumbo frames, the rate is half of what configured Cause: Firmware miscalculated the amount of bytes transmitted Change: (In FW 6.0.30) Fixed the calculation Impact: Introduced in 1.60.16 (FW 6.0.20) 2. Problem: FW XSTORM assert during server reboot test Cause: There were two statistics ramrods sent with the same statistics counter. There was a race condition in the bnx2x driver that allowed this situation Change: Protect statistics ramrod sending code and statistics counter update with the spin lock Enhancements ------------ 1. Request: Use FW 6.0.30 Change: As requested 2. Request: Rearrange LLH memory organization Change: Allow 16 MACs in the memory; do not set FCoE MACs in LLH Impact: Switch-Independent mode only Version 1.60.28 (Jul 14, 2010) ============================== Fixes ----- 1. Problem: Possible crash during load/unload of one function, if more functions are loaded. Cause: Statistics ramrod of one function might override data of other functions Change: (In FW 6.0.29) Fixed statistics ramrod Impact: Introduced in 1.60.07 (FW 6.0.5) 2. Problem: Port detection feature(ethtool -p) for dual-media is not working Cause: BCM8727 LED needs to be set via the PHY, and not the MAC Change: Set BCM8727 LED via PHY Impact: Dual-Media boards 3. Problem: ethtool -s ethX speed YYY does not work properly Cause: Forcing port configuration every call to ethtool -s Change: Do not change port configuration if not requested Impact: Introduced in 1.60.27 4. Problem: Divide by 0 in driver code, after disabling coalescing via ethtool Cause: Conversion from usec to interrupt per sec done without check for zero Change: Check for zero in conversion Impact: Introduced in 1.60.26 5. Problem: (CQ48787) ethtool -t fails in Switch-Independent mode after bringing up higher functions (4,5,6,7) Cause: Improper mac placement in NIG block Change: Fixed address calculation Impact: Switch-Independent mode only Enhancements ------------ 1. Request: Modify Dual-media look & feel such that ethtool gets and sets the configuration of the active PHY only. Active PHY is the PHY which linked up, or in case of link down, according to the port selection Change: As requested 2. Request: Use FW 6.0.29 Change: As requested 3. Request: Don't call for pci_disable_msix() every time bnx2x_nic_unload() is called Change: Move pci_enable_msi/msix() to pcidev->probe() callback 4. Request: (ESX) Call for netif_napi_add() before netdev->open() Change: As requested. This change is relevant for all platforms 5. Request: Support for ethtool_cmd.speed_hi field Change: As requested Version 1.60.27 (Jul 07, 2010) ============================== Fixes ----- 1. Problem: (CQ48202) Under low memory condition, rx stop functioning during load/unload test Cause: Some queue may be not fully populated, under low memory condition, which may cause FW to drop packets for this queue Change: Change memory allocation scheme in order to avoid this situation 2. Problem: Link lost every other time when driver is brought up. Cause: When the PHY swap parameter ('nvm cfg' option 124) is set, the PHY's swap everytime the link is brought up. Change: Instead of storing the PHY order, we calculate it fresh everytime. Impact: Dual-media boards. Enhancements ------------ 1. Request: Return an error if bnx2x_set_flags() is called for unsupported flags Change: As requested 2. Request: Don't collect statistics if requested so according to edebug-driver interface (edebug_driver_if field in shmem2 region) Change: As requested 3. Request: Add support to bnx2x to extract Toeplitz hash out of the receive descriptor for use in skb->rxhash Change: As requested Impact: Kernel 2.6.35 and newer 4. Request: Add ethtool port selection for dual media Change: As requested Impact: Dual media boards Version 1.60.26 (Jun 30, 2010) ============================== Fixes ----- 1. Problem: Incorrect LED behavior on dual-media platform Cause: The LED settings are used to control GPIO in favor of over-current detection Change: On NOC (No-OverCurrent) flavor, configure the GPIOs to reflect LED behavior rather than unnecessary over-current indication Impact: BCM8727 based boards 2. Problem: Possible deadlock on bp->stat_sm_lock spinlock Cause: Inappropriate locking function was used for protecting a resource accessed by workqueue and timer: used spin_lock()/spin_unlock() while should be spin_lock_bh()/spi_unlock_bh() Change: Use an appropriate locking API: spin_lock_bh()/spin_unlokc_bh() Impact: Introduced in 1.60.22 3. Problem: Possible crash loading cnic if iSCSI OOO has been disabled in a bnx2x Cause: cnic was unaware of the fact that iSCSI OOO may be disabled in the bnx2x Change: Add an appropriate bit in a cnic_eth_dev->drv_state and set it if iSCSI OOO is disabled in the bnx2x. This is done in a bnx2x_cnic_probe2() Impact: CNIC only 4. Problem: Interrupt coalescing was disabled in the chip Cause: Coalescing was erroneously disabled by bnx2x by default Change: Properly configure coalescing Impact: Introduced in 1.60.11 Enhancements ------------ 1. Request: Fit Dual media selection to the new scheme Change: As requested 2. Request: Enable to set the GPIO which controls the external PHY reset (through nvm cfg 129) Change: As requested Impact: BCM8727 based boards Version 1.60.25 (Jun 23, 2010) ============================== Fixes ----- 1. Problem: Link down when using specific DACs (Direct Attached Cables) Cause: Some DAC's EEPROM do not respond at 400Khz speed Change: Set 2-wire transfer rate of SFP+ module EEPROM to 100Khz Impact: BCM8727 based boards 2. Problem: (FCoE) (CQ48021) RESET_LUN operation failed due to error detection Cause: Detecting a protocol violation in response frame from target (target protocol violation) Change: (In FW 6.0.28) Mask the error reporting Impact: FCoE only 3. Problem: (FCoE) 10% performance degradation Cause: Read queue used by firmware did not have enough credits Change: (In FW 6.0.28) Change the read queue used by firmware Impact: Introduced in 1.60.24 (FW 6.0.27) 4. Problem: (FCoE) (CQ48403) Target does not handle incoming FCP_DATA Cause: Increasing SEQ_CNT is not supported by target Change: (In FW 6.0.28) Reset the SEQ_CNT back to zero when transmitting new FCP_DATA frame Impact: FCoE only 5. Problem: There was a "timeout waiting for queue[0]" message in a syslog when running self-test (ethtool -t ethX) on 57712 Cause: Unlike HC IGU won't generate an interrupt for status block updates that have been performed while interrupts disabled thus Tx work generated by loopback test will never be handled Change: Call for bnx2x_tx_int() from inside the loopback test for chips with IGU (57712 and newer) Impact: 57712 only 6. Problem: (CQ48284) up-down test on port 1 causes traffic to stop on port 0 Cause: Improper cleanup of HC and IGU blocks during function init Change: Fix HC block cleanup, remove unnecessary IGU clean-up Impact: Introduced in 1.60.15 Enhancements ------------ 1. Request: (CQ48374) Add a module parameter to disable iSCSI OOO Change: As requested: added a disable_iscsi_ooo module parameter, which is present if BCM_CNIC is defined, otherwise iSCSI OOO is not enabled anyway 2. Request: (iSCSI) Add counters for iSCSI out-of-order events Change: As requested (counters can be read from RAM through GRC) (In FW 6.0.28) 3. Request: Use FW 6.0.28 Change: As requested Version 1.60.24 (Jun 16, 2010) ============================== Fixes ----- 1. Problem: (iSCSI) (CQ42399) Unable to run I/Os greater than 1500 bytes with initiator MTU set to 9000 and target MTU set to 1500 Cause: Timestamp option was not considered in MSS calculation Change: (in FW 6.0.27) Fix mss calculation when timestamp option is present Impact: iSCSI only 2. Problem: (iSCSI) (CQ46648) Connection closure tests fail Cause: Incorrect FIN max retransmit count Change: (in FW 6.0.27) Fix FIN max retransmit count Impact: iSCSI only 3. Problem: (FCoE) Address calculation of task-context in Ustorm could be wrong Cause: Address calculation considered an argument twice Change: (in FW 6.0.27) Fix calculation 4. Problem: (FCoE) Ustorm RAM read/update could be wrong during event generation Cause: Confusion between addresses while accessing RAM databases Change: (in FW 6.0.27) Use appropriate address for each specific database 5. Problem: (FCoE) ABTS local-completion mechanism did not handled error if error was detected on ABTS BA_ACC Cause: Not handling error caused an assert Change: (in FW 6.0.27) Handle error by overwriting RX state. Cleanup shall follow to clean the task 6. Problem: (FCoE) Writing to host memory from Tstorm could be corrupted Cause: Using the same write VQ for Tstorm and Cstorm Change: (in FW 6.0.27) Using the write VQ belongs to Tstorm only 7. Problem: bnx2x wouldn't properly function with 2.6.29 kernel Cause: bnx2x used new netdev->netdev_ops interface starting from 2.6.30 and not from 2.6.29 kernel as should be Change: Use new netdev_ops interface starting from 2.6.29 kernel Impact: 2.6.29 kernel only Enhancements ------------ 1. Request: Align TCP advertised window in iSCSI (4b alignment) Change: As requested in FW 6.0.26 2. Request: Mask protocol violations error detected by chip on HP targets Change: Masking the specific checks (in FW 6.0.26) 3. Request: Dropping invalid packets which are received during the abort procedure Change: As requested (in FW 6.0.27) 4. Request: Use FW 6.0.27 Change: As requested Version 1.60.23 (Jun 10, 2010) ============================== Fixes ----- 1. Problem: Avahi daemon crashed after loading bnx2x.ko on kernels newer than 2.6.30 Cause: SAN MAC was added (dev_addr_add()) before netdev_register() call and call_netdevice_notifiers(NETDEV_CHANGEADDR, dev) has been called for a unregistered device Change: Call dev_addr_add() after netdev_register() Impact: Introduced in 1.60.21 2. Problem: Link status notification appeared each time when DCBX negotiation received Cause: DCBX update handled as link update and notification printed Change: Remove link notification from this flow Impact: DCBX only 3. Problem: (CQ47700) Can't get Link when forcing speed on 10/100M Cause: When link is not set to autoneg, MDIX wasn't enabled so link couldn't be established on direct cables Change: Enable MDIX when autoneg is disabled Impact: BCM84823 based board 4. Problem: (CQ47671) "ethtool -p ethx" has no effect on the port's LED Cause: Specific PHY requires specific phy settings Change: In case of copper phys, set LED registers directly in the PHY, rather than the NIG Impact: Copper boards 5. Problem: (iSCSI OOO) Producer of OOO Rx CQ ring was updated twice than was expected Cause: The mentioned producer was updated both in the bnx2x_cnic_get_ooo_cqe() and in the bnx2x_cnic_reuse_ooo_pkt() while is meant to be updated only in the bnx2x_cnic_reuse_ooo_pkt() Change: Don't advance CQ ring producer in the bnx2x_cnic_get_ooo_cqe() Impact: iSCSI OOO only 6. Problem: (iSCSI) UIO Client wasn't able to handle IPv6 traffic Cause: UIO Client was not receiving multicast traffic because in non-promiscuous mode only one Client per function will receive multicast packets (leading RSS Client) Change: Configure UIO Client's to accept all multicast packets Impact: iSCSI only 7. Problem: bnx2x would not compile on kernel 2.6.34 Cause: Improper dependency in bnx2x_compat.h Change: Switch on netdev_hw_addr_list_for_each during bnx2x_mc_addr() definition 8. Problem: (CQ47854) Driver crash during FCoE test Cause: HW assert causes driver to halt Change: Notify user with appropriate message without causing panic 9. Problem: Unable to bring up function 2-7 if MBA didn't configure MACs Cause: Check for MAC for both multi-function modes Change: Check for OV tag in Switch-Dependent mode Impact: Introduced in 1.60.10 Enhancements ------------ 1. Request: Change PXP Write block initialization values in 57712 to help reduce latency Change: As requested Impact: 57712 only Version 1.60.22 (Jun 02, 2010) ============================== Fixes ----- 1. Problem: (CQ47662) "stats updated by DMAE but no MAC active" message while up/down test Cause: Race on update of statistics' state machine Change: Use spinlock to protect the state machine 2. Problem: (CQ46918) Network bursts are larger than the configured connection on FLEX 10 Cause: Inaccurate bytes calculation at rate shaping mechanism Change: Calculation was fixed in FW 6.0.25 3. Problem: (CQ47623,CQ46388,CQ47225,CQ47833) System hangs during iSCSI stress traffic Cause: Incorrect packet trimming lead to HW internal error Change: Fixed packet trimming on LB port in FW 6.0.25 Impact: Introduced in 1.60.10 (FW 6.0.11) 4. Problem: All BRB interrupts are masked Cause: BRB interrupt mask is not initialized so reset value is used Change: Initialize interrupt mask so only parser read length errors are masked Impact: In scenarios where BRB interrupts occur, indicate appropriate error information 5. Problem: (CQ47834, CQ47795, CQ47980) On low memory condition, driver caused kernel panic in bnx2x_ilt_mem_op() Cause: Unallocated memory access Change: Validate non NULL pointers before access 6. Problem: (FCoE) FCoE traffic experiences a lot of drops Cause: Improper PFC configuration - mixed RX/TX COSes Change: Fixed configuration Impact: Introduced in 1.60.21 Enhancements ------------ 1. Request: Don't limit the pause advertisement for large MTU Change: As requested Impact: 57712 and above 2. Request: Forward setup ramrod should complete on event ring and not as a tx_bd_cons increment Change: (in FW 6.0.25) as requested 3. Request: Use FW 6.0.25 Change: As requested 4. Request: Use terminate ramrod for non forwarding clients Change: As requested Version 1.60.21 (May 26, 2010) ============================== Fixes ----- 1. Problem: (iSCSI OOO) Kernel panicked in the skb_put() when called from bnx2x_cnic_reuse_ooo_pkt() Cause: Wrong skb function has been used for resetting the data length in the skb: skb_put(skb, -skb_headlen(skb)) Change: Use the proper function: skb_trim(skb, 0) Impact: iSCSI OOO only 2. Problem: 57710 - Load/unload stress test caused chip to hang Cause: Disable of device in the middle of MSIX message caused deadlock in HC block Change: Use PCI configuration space to avoid the deadlock Impact: 57710 only 3. Problem: iSCSI is not functional in switch independent mode Cause: iSCSI mac was not written into NIG memory Change: Fix handling of MAC addreses in switch independent mode Impact: switch independent mode only 4. Problem: Changing MTU when CNIC is loaded was causing CFC error Cause: Setting CDU validation value for iSCSI L2 Client was done from bnx2x_register_cnic(), which is not called in change MTU flow Change: Move setting of iSCSI L2 Client CDU validation value to bnx2x_cnic_sp_post() right before it sends iSCSI L2 Client SETUP ramrod Impact: iSCSI only 5. Problem: 57710/57711/57711E: unable to load device on machine with 16 (and more) CPUs Cause: Improper HC SB calculation Change: Exclude none l2 contexts from HC SB calculation Impact: 57710/57711/57711E only; introduced on 1.60.13 Enhancements ------------ 1. Request: (FCoE) Set SAN MAC before ifup event in order to allow the bnx2fc properly configure WWN Change: Move the dev_addr_add() for a SAN MAC to pci_dev->probe() flow (bnx2x_init_one()) making it similar to networking MAC address configuration (it is configured in netdev at this stage as well). dev_addr_del() for a SAN MAC has been moved to bnx2x_remove_one() correspondingly Impact: FCoE only 2. Request: Lower the bnx2x skb memory footprint on ESX Change: Limit the OOO Rx ring to 40 BDs Impact: ESX only Version 1.60.20 (May 18, 2010) ============================== Fixes ----- 1. Problem: (iSCSI OOO) Call for bnx2x_cnic_reuse_ooo_pkt() was causing a kernel panic Cause: There was a wrong fp picked in bnx2x_cnic_reuse_ooo_pkt() (fwd instead of ooo) Change: Pick the right fp Impact: iSCSI OOO only 2. Problem: (FCoE)(CQ47674) Chip hangs during destroy FCoE connection flow Cause: FCoE reordering mechanism was corrupted during disable connection flow Change: (Fixed in FW 6.0.24) Assure not to overrun relevant context for reordering operation Impact: FCoE only 3. Problem: (FCoE)(CQ47644) Chip reporting an error instead of dropping the packet Cause: Some errors were detected before verifying FCoE delimiters Change: (Fixed in FW 6.0.24) Once an error detected, verify first the FCoE delimiters before reporting an error Impact: FCoE only 4. Problem: (iSCSI OOO) Chip hangs during out-of-order traffic Cause: Firmware internal synchronization issue between iSCSI and L2 flows Change: (Fixed in FW 6.0.24) Firmware fix Impact: Introduced in 1.60.10 (FW 6.0.11) Enhancements ------------ 1. Request: Add BNX2X_MSG_CNIC debug level Change: As requested 2. Request: Allow the RX rings to be initialize with a lower number of entries (at the source code level) Change: As requested 3. Request: Use FW 6.0.24 Change: As requested 4. Request: Enable PFC statistics in MAC Change: As requested Version 1.60.19 (May 12, 2010) ============================== Fixes ----- 1. Problem: (iSCSI OOO): OOO packets were not indicated on the OOO Rx ring Cause: There were missing OOO ring's CID and Client ID configuration in a TSTORM Change: Properly configure OOO ring's CID and Client ID in the TSTORM memory Impact: iSCSI OOO only 2. Problem: (iSCSI OOO): CNIC SB context in internal memory was zeroed after OOO and FWD rings' ramrods were completed Cause: There was a call for bnx2x_init_sb() for CNIC SB in bnx2x_register_cnic() Change: Remove the bnx2x_init_sb() call from bnx2x_register_cnic() Impact: iSCSI OOO only 3. Problem: (CQ46146) "ethtool -t" fails when the speed is forced on cx4 NICs to 100/10Mb Cause: Internal loopback test needs to conducted when speed is set to 10G force Change: Set speed to 10G force during loopback test, and restore link speed afterwards. Impact: ethtool -t test 4. Problem: Spelling error in module parameter Cause: "Then" used instead of "Than" Change: Fixed to "than" 5. Problem: (CQ47609) Link Level Pause causes link to pause after PFC has been negotiated Cause: Wrong MAC registers configuration Change: Fix configuration Impact: 57712 only 6. Problem: Link change after PMF migration may halt the system Cause: PHY attributes are provided to the initial PMF only Change: Load PHY attributes for every new function regardless of being PMF or not. Impact: Multi-function mode 7. Problem: (iSCSI OOO) OOO FW was not processing the incoming OOO packets Cause: TSTORM internal RAM was not properly initialized Change: Properly initialize OOO producer, CID and Client ID of OOO ring in a TSTORM internal memory Impact: iSCSI OOO only 8. Problem: (iSCSI OOO) L2 FW was generating XSTORM x_eth_vlan_special_check assert when trying to post packets on a FWD ring Cause: The running index that was posted on a VLAN field of the start BD was starting from 1, while FW was expecting it to start from 0 Change: Keep driver's packet producer and consumer running from 0 and decrement a FW packet consumer during completions handling instead Impact: iSCSI OOO only 9. Problem: (CQ47445) The duplex mismatch does not work as expected Cause: Duplex was set correctly in the phy, but wasn't passed to the driver. In addition, when setting 10/100 force speed, it actually advertised 10/100 with autoneg. Change: Return the correct duplex result, and when speed is set to 10/ 100, set the speed actually for force 10/100 Impact: BCM84823 based boards 10. Problem: (CQ47383) It takes long time to re-establish link in when working against some switches in force 1G mode Cause: PHY is unable to establish good link in this mode Change: Enable CL37 BCM autoneg instead of working in force 1G Impact: BCM8073 based boards 11. Problem: (CQ47436) FC setting not consistant Cause: "ethtool -a" show flow-control autonegotiation as off when speed is not set to autonegotiate. Change: Show the actual flow-control settings on "ethtool -a", but in case the speed setting is actually force speed, this setting will have no affect like with the BCM8727 Impact: ethtool -a 12. Problem: (CQ45632) NETDEV Watchdog message appeared and system hung Cause: driver disables tx while carrier still on Change: call to netif_carrier_off() after netif_tx_disable() Enhancements ------------ 1. Request: Remove redundant LCPLL setting which is done already in the bootcode Change: As requested 2. Request: (DCBX) Changing PFC RX configuration: In RX COS0 will always be configured to lossy and COS1 to lossless Change: As requested 3. Request: Remove Outer Vlan configuration for Mac partitioning mode Change: As requested 4. Request: Use FW 6.0.23 Change: As requested 5. Request: Allow driver compilation with different kernel location Change: As requested Version 1.60.18 (May 03, 2010) ============================== Fixes ----- 1. Problem: (CQ47451) iSCSI and FCoE broken and causes kernel panic Cause: Wrong FW offsets used Change: fix FW offsets defines Impact: Introduced in 1.60.17 2. Problem: Loading driver on one port may cause link toggling on the other port Cause: PLL was initialized for both ports instead of per chip Change: Initialize PLL once during common init Impact: 57712 only 3. Problem: Possible race between firmware threads when loading context to chip Cause: Common firmware handler which loads context for slow path handler may override other handlers context load responses Change: The common handler considers it's thread Id when waiting for the context load response 4. Problem: Loading driver on one port may cause link toggling on the other port Cause: Firmware generates false data digest error on incoming PDU Change: (Fixed in FW 6.0.22) Firmware fix Impact: Introduced in 1.60.10 (FW 6.0.11) 5. Problem: (iSCSI) (CQ46388,CQ46608,CQ46638) Chip hangs when running stress iSCSI traffic Cause: Firmware caused connection activity-counter to drop to a negative value Change: (Fixed in FW 6.0.22) Firmware fix Impact: Introduced in 1.60.10 (FW 6.0.11) Enhancements ------------ 1. Request: Remove the extra prefetch instructions from bnx2x_rx_int() Change: As requested 2. Request: (DCBX) add ETS support Change: As requested 3. Request: (DCBX) add DCB statistics information; add support for 4-bytes long remote chassis id Change: As requested 4. Request: Set NIC_MODE when cnic driver does not exist in the system Change: As requested Impact: Revert of change introduced in 1.60.11 5. Request: Remove Modules.supported file Change: As requested 6. Request: Use FW 6.0.22 Change: As requested Version 1.60.17 (Apr 27, 2010) ============================== Fixes ----- 1. Problem: Kernel warning message from pci_enable_msix() in case of parity error Cause: Improper handling of MSI-X enable/disable flow in parity error case Change: Disable interrupts, disconnect from IRQs and disable MSI-X in OS level in bnx2x_nic_unload() both in parity error case 2. Problem: FIP packets won't arrive to the FCoE L2 ring Cause: Current FW still doesn't support the FIP packets filtering according to the ETH type Change: Revert the previous enhancement that removed setting the "FIP MAC" to the FCoE L2 Client Impact: Introduced in 1.60.16 3. Problem: PCI speed is always reported as 5G (Gen2) on 57712 Cause: Wrong decoding of the PCI speed Change: Fixed the speed decoding Impact: Only 57712 4. Problem: There was a possibility that packets might be transmitted on the queue of the FCoE L2 Client before its SETUP ramrod is completed Cause: bp->state was set to OPEN after FUNCTION_START ramrod (before SETUP ramrod(s) are sent) Change: Set bp->state=OPEN only after all Clients' SETUP ramrods complete Impact: FCoE only, introduced in 1.60.10 5. Problem: (FCoE) Chip transmitting unwanted FCP_CONF frames Cause: Incorrect update of the CONFQ TX producer Change: (Fixed in FW 6.0.21) Reset the CONFQ TX producer at the beginning of transmission flow Impact: FCoE only Enhancements ------------ 1. Request: Add TCM storm context registers to the register dump Change: As requested Impact: 57712 only 2. Request: Add path info to the registers dump header Change: As requested Impact: 57712 only 3. Request: Modify LED configuration of the BCM84823 to fit the new phy firmware (2.25 and up) Change: As requested Impact: BCM84823 based boards only. 4. Request: Set packets producer for OOO Rx ring in TSTORM Change: As requested Impact: iSCSI only 5. Request: Limit number of BDs in OOO Rx ring to the number of CQEs minus maximum number of outstanding ramrods. Change: As requested Impact: iSCSI only 6. Request: Move handling of the FCoE L2 ring to NAPI Change: As requested Impact: FCoE only 7. Request: Remove support for FCoE L2 rings on 57711 Change: As requested Impact: FCoE only 8. Request: Use FW 6.0.21 Change: As requested Version 1.60.16 (Apr 22, 2010) ============================== Fixes ----- 1. Problem: MIN/MAX feature is not functional Cause: Miscalculation FW offsets in driver code Change: Offset calculation fixed Impact: Introduced in 1.60.01 2. Problem: (CQ47092) DCBX: Chassis ID Lower and Upper are switched Cause: bnx2x copied upper to lower and lower to upper Change: Assignment fixed Impact: Introduced in 1.60.01 3. Problem: iSCSI L2 ring Rx side wasn't functional Cause: iSCSI L2 Client Rx filtering configuration wasn't properly set Change: Properly set iSCSI L2 Client Rx filtering configuration 4. Problem: CQ047058: Link occasionally doesn't come up with 8073 based boards Cause: Insufficient delay during phy firmware load sequence Change: Increase delay during phy firmware load sequence to 120ms Impact: BCM8073/BCM8727 5. Problem: Function unload could bypass statistic ramrod (Theoretical bug) Cause: There was no reordering mechanism in the relevant firmware flows Change: (Fixed in FW 6.0.20) Adding reordering Impact: Introduced in 1.60.10 (FW 6.0.12) 6. Problem: (FCoE) (CQ47126, CQ47129) Miss detection of fc-crc error Cause: Firmware bug Change: (Fixed in FW 6.0.20) Firmware fix Impact: Introduced in 1.60.07 (FW 6.0.6) 7. Problem: (iSCSI) Firmware generate false data digest on incoming PDU Cause: First 4 data bytes arrived splitted into 3 packets Change: (Fixed in FW 6.0.20) Firmware fix Impact: Introduced in 1.60.10 (FW 6.0.11) 8. Problem: There were sporadic "timeout waiting for state X" messages in the dmesg when loading/unloading the driver Cause: There was a race on bp->set_mac_pending variable during increment/decrement Change: Replace increment/decrement of bp->set_mac_pending to set 1/set 0 to avoid the race 9. Problem: TSO packet was not identified is ESX environment (as a result there were CSUM errors on wire) Cause: Wrong condition is checked for identification of TSO packet Change: Fix the TSO identification condition (only check skb_shinfo(skb)->gso_size for being not zero) Impact: ESX and old kernels only (below 2.6.18) 10. Problem: Possible sporadic memory garbadging Cause: Waiting for CFC_DEL ramrod completion for OOO Client was done in polling mode while default SB interrupt was still enabled Change: Always wait for CFC_DEL ramrod completion in interrupt driven mode for all clients Impact: Introduced in 1.60.15 Enhancements ------------ 1. Request: Reuse completed Tx buffers in Rx ring from Tx DPC Change: As requested Impact: iSCSI OOO only 2. Request: Remove 57711-only FCoE L2 MAC manipulations Change: As requested Impact: FCoE only 3. Request: Simplify the iSCSI L2 Client MAC configuration code Change: Set/Clear iSCSI L2 MAC in bnx2x_drv_ctl() on START_L2/STOP_L2 commands Impact: iSCSI only 4. Request: Use FW 6.0.20 Change: As requested 5. Request: Use kmalloc() instead of vmalloc() for dynamic allocation of none-DMAable buffers Change: As requested 6. Request: Add an way for CNIC to return an L2 SPQ credit Change: Added DRV_CTL_RET_SPQ_CREDIT command option to bnx2x_drv_ctl() Impact: iSCSI only 7. Request: (DCBX) support transaction between different pause modes Change: Added support Impact: 57712 only Version 1.60.15 (Apr 15, 2010) ============================== Fixes ----- 1. Problem: FCoE INIT ramrod timeout Cause: HW wasn't producing interrupt on CNIC SB Change: bnx2x didn't send an ACK to IGU after establishing OOO and FWD clients Impact: CNIC only 2. Problem: (CQ47020) Kernel panic during cnic load Cause: Initializing of iSCSI L2 context validation values was done from bnx2x_cnic_probe() function, which is called both for devices that are down and their memories are still not allocated (including contexts) Change: Initialize iSCSI L2 context from bnx2x_register_cnic() which may be called only for interfaces that are up Impact: CNIC only 3. Problem: CFC error when FCoE INIT ramrod is sent Cause: FCoE Init CID was not initialized Change: Initialize fcoe_init_cid to the correct value in bnx2x_cnic_probe() Impact: FCoE only 4. Problem: (CQ47100) When the force KR enabler is set correctly, traffic does not work on 8073 based boards Cause: Polarity swap was not set correctly in case link is set to 1G Change: Initialize polarity swap correctly when enabled. Impact: BCM8073 based boards only 5. Problem: DCB change during FLR might cause chip hang Cause: Firmware skipped DCB update when encountered a PCI error Change: (Fixed in FW 6.0.19) Firmware flow changed to first update DCB version and only then to proceed to handle PCI error Impact: Introduced in 1.60.11 (FW 6.0.15) 6. Problem: (FCoE) Chip hangs after trying to access inappropriate host memory address Cause: Firmware instructed corrupted SGEs in PBF command due to corrupted Xstorm context Change: (Fixed in FW 6.0.19) Save entire Xstorm context during disable connection procedure Impact: Exists in all previous FCoE releases 7. Problem: (FCoE) (CQ47022) Disabling/Enabling the adapter from Host side without IO, causes device manager to hang Cause: Firmware did not update task properly in host memory after detecting illegal CONF request Change: (Fixed in FW 6.0.19) Save task context only after all verification has been completed Impact: Introduced in 1.60.01 8. Problem: (iSCSI) Connection close does not complete Cause: Final ACK from target is discarded by firmware Change: (Fixed in FW 6.0.19) Firmware fix Impact: Introduced in 1.60.10 (FW 6.0.11) 9. Problem: (CQ47034) MIN/MAX is not accurate for small packets Cause: The firmware didn't count inter-packet gap and preamble in bandwidth allocation. Change: (Fixed in FW 6.0.19) Fixed L2 calculation Impact: Introduced in 1.45.xx. Doesn't include fix for iSCSI and FCoE 10. Problem: (CQ46501) DCBX IOTCL config_dcbx_params.admin_dcbx_version shows incorrect value Cause: Variable initialized to incorrect value of 2 Change: Fixed to appropriate 0 (CEE) 11. Problem: Link down when upgrading BCM84823 phy firmware to 2.24/2.25 Cause: Changes in the firmware initialization required setting different values Change: Set the require phy register to achieve link and led in all speeds Impact: BCM84823 based boards Enhancements ------------ 1. Request: Add support for iSCSI OOO flow in L2 driver Change: As requested Impact: iSCSI only 2. Request: Don't call for NAPI related functions from non-NAPI context Change: Handle cleanup ramrods in an interrupt driven mode and not in a polling mode as it was 3. Request: (FCoE) Reset the entire KCQE before start initializing it Change: As requested 4. Request: (FCoE) Change firmware assert to error notification to driver when receiving MP frame with unknown R_CTL.function mode Change: As requested 5. Request: Use FW 6.0.19 Change: As requested 6. Request: Don't disable TPA on XEN enabled kernels Change: As requested Version 1.60.14 (Apr 08, 2010) ============================== Fixes ----- 1. Problem: Driver failed to pass TCP traffic in non-TPA mode on 57712 Cause: SGE buffer size was not configured to zero in non-TPA mode Change: Properly set TPA-related section in Client Init ramrod data Impact: 57712 only 2. Problem: Link LED for 10M/100M/1000M is not functional on BCM84823 based boards Cause: LED functionality was controlled by 10G core all the time Change: When link speed is up in 10M/100M/1000M, set led control to 1G core. Impact: BCM84823/BCM8481 based boards 3. Problem: Link doesn't come up when changed from 1G to 10G with BCM84823 based boards. Cause: Phy wasn't initialized in this case so some parameters were not cleared Change: Reset phy when any parameter is changed Impact: Seen on BCM84823 based board, but may relate to others 4. Problem: (CQ46902) Unable to load driver on some systems Cause: Old BIOS behaviour is not compliant with newest PCIE spec according to number of tags supported by the system Change: Driver validates the capability Impact: 57712 only Version 1.60.13 (Apr 4, 2010) ============================== **** This release doesn't support non-TPA mode on 57712 devices **** Fixes ----- 1. Problem: (CQ46501) DCBX IOTCL config_dcbx_params.admin_dcbx_version shows incorrect value Cause: Variable initialized to incorrect value of 2 Change: Fixed to appropriate 0 (CEE) 2. Problem: FC behavior is changed so that setting FC to auto when speed is force has no influence of to flow-control Cause: Although this configuration is not so logic, many boards have their configuration build this way so need to restore this behavior Change: Change back to old behavior Impact: Optic devices. Introduced in 1.60.11 3. Problem: When RX-polarity swap is set, traffic in 1G link doesn't pass. Cause: RX-polarity was set on the PMA/PMD side instead of the XGXS side Change: Set RX polarity on the XGXS side of the 8073 Impact: KR (BCM8073) 4. Problem: Autoneg flow-control is not seen using "ethtool -a" Cause: Duplicating the link parameters configuration for dual-media platform Change: Return the correct FC status Impact: Introduced in 1.60.11 5. Problem: Self-test was reporting errors in an IGU block when driver was configured to use INT#x Cause: Driver was reading interrupt status register when IGU was still disabled for the current PF Change: Connect to IRQs after HW initializing 6. Problem: Self-test was reporting errors in an IGU block when driver was configured to use INT#x Cause: Driver was reading interrupt status register when IGU was still not configured to Single ISR mode Change: Set IGU_PF_CONF_SINGLE_ISR_EN bit together with IGU_PF_CONF_FUNC_EN when driver is configured to Single ISR mode (MSI or INT#x) and do not turn it off unless the driver is configured to use MSI-X interrupt mode Impact: 57712 only 7. Problem: When link speed is set to 1G, link comes up in 10G when connected to device which advertise 10G. Cause: BCM84823 always advertises 10G speed. Change: When speed capability doesn't include 10G, or force speed is not set to 10G, disable 10G advertisement Impact: BCM84823, BCM8481 8. Problem: (CQ46844, CQ46842) Driver did not work properly on machines with large number of CPUs. Cause: Driver was managing more resources then available in FW Change: Taking into account max available L2 contexts Impact: 57712 only 8. Problem: Potential link issue with force 1G on 8073 Cause: Setting one of the registers in the force 1G sequence incorrectly Change: Fix 1G force sequence Impact: 57712 + KR only 9. Problem: Terminate ramrod called host coalescing on Tx segment Cause: Wrong logic while sending host coalescing on Tx Change: (Fixed in FW 6.0.17) The ramrod no longer send host coalescing Impact: Introduced in 1.60.6 (FW 6.0.3) 10. Problem: Firmware asserted when TPA is disable Cause: Wrong logic in the assert Conditions Change: (Fixed in FW 6.0.17) The assert may occur only when TPA is enabled Impact: Introduced in 1.60.12 (FW 6.0.15) 11. Problem: VF: system crashed when VF reads client init data Cause: Reading client init from VF memory and not from PF memory Change: (Fixed in FW 6.0.17) VF read the client init from PF memory Impact: Introduced in 1.60.12 (FW 6.0.15) 12. Problem: Pause on exhausted ring broken Cause: Internal pause data structure was initialized improperly Change: (Fixed in FW 6.0.17) Fix internal ram offset calculation Impact: Introduced in 1.60.12 (FW 6.0.15) 13. Problem: (FCoE) Timer expiration doesn't read DCB info Cause: DCB update is done only for transmission flows Change: (Fixed in FW 6.0.17) Read DCB info for timer expiration Impact: Introduced in 1.60.12 (FW 6.0.15) 14. Problem: Return credit in termination handler without executing DCB update Cause: Firmware bug Change: (Fixed in FW 6.0.18) Update DCB in the beginning of the terminate handler Impact: Introduced in 1.60.10 (FW 6.0.11) Enhancements ------------ 1. Request: When link speed is set to force on copper devices, set link to autoneg with specific link speed advertisement since force speed is not copper compliant Change: As requested Impact: BCM84823/BCM8481 based devices 2. Request: Add PFC/DCBX support for E2 Change: As requested 3. Request: Make driver to be compiled, by default, with FCoE support Change: As requested. FCoE support comes by default with CNIC support 4. Request: Don't allocate SGEs when TPA is not enabled for a specific ring Change: As requested 5. Request: Use FW 6.0.18 Change: As requested Version 1.60.12 (Mar 23, 2010) ============================== 1. Problem: Flow control is not set on optic devices Cause: When flow-control was set to force on optic devices, configuration was not permeate to the MACs Change: Set the FC configuration on optic devices according to user settings Impact: Optic devices Version 1.60.11 (Mar 22, 2010) ============================== Fixes ----- 1. Problem: Driver didn't work on big endian setups Cause: There were endianness bugs both in HSI and in driver Change: Properly handle endianness in EQ related code Impact: Introduced in 1.60.10 2. Problem: Potential link issue with BCM8727 Cause: In BCM8727, the firmware in second port must be loaded before the first port. Change: Download the second port to 8727 first during initialization Impact: 57712 only and SFP+ only 3. Problem: Driver didn't work with KVM SR-IOV Cause: Final client delete (CFCdelete ) was not communicated to the SR-IOV management code. Change: Passing the delete completion notifications to the SR-IOV management. Impact: Introduced in 1.60.10 4. Problem: (CQ46455) Load-unload test failed in Multi-Function mode Cause: Improper initialization and cleanup of IGU block Change: Fixed Impact: Introduced in 1.60.01 5. Problem: (FCoE) FCoE L2 client was receiving erroneous SETUP client ramrod completions Cause: FCoE L2 Tx SB index was configured to the same value as Rx index. As a result FW was overwriting the Rx SB index with a Tx index value Change: Fixed Tx index configuration Impact: Introduced in 1.60.10 6. Problem: BCM8073 isn't able to link up on specific board Cause: The default state of the GPIO1 is high and the PHY might not be in the good reset state after a POR Change: Toggle GPIO1 from LOW to HIGH during common init Impact: 57112 + 8073 7. Problem: (CQ46476) Unable to load driver on RH48/RH47 32bit Cause: Undefined symbols "____log2_NaN" used in kernel Change: Define the symbol if not defined 8. Problem: Binary data printed during fw_dump() Cause: Address of dump miscalculated for 57712 Change: Fix address calculation Impact: Only 57712 9. Problem: (CQ45724) in MF configuration, after bringing the interface down, ethtool does not reflect link status correctly Cause: Missing check for device status Change: Add check for device status 10. Problem: (CQ 46240) Unexpected completion is received during forward connection establishment Cause: Problematic initialization sequence of status blocks Change: (Fixed in FW 6.0.13) Firmware now checks for function enable before updating the status block Impact: Introduced in 1.60.01 (FW 5.3.19), relevant to 57710/11 only 11. Problem: (FCOE) Detect an error on FCP_RSP with confirmation request Cause: Firmware did not verify confirmation request indication when checked last sequence indication in FC header Change: (Fixed in FW 6.0.13) Fixed confirmation request verification Impact: Problem exists in all previous FCoE versions 12. Problem: (CQ46005) Maximum bandwidth allocation feature not working as expected Cause: Storm clock frequency was 500MHz instead of 550MHz - this affects the RT clocks configuration which had a 10% deviation Change: (Fixed in FW 6.0.14) Firmware now use correct clock frequency for RT configuration Impact: Relevant only to BCM57712 13. Problem: "Pause on exhausted rings" functionality broken Cause: Internal firmware variable was not set properly in RAM Change: (Fixed in FW 6.0.14) Firmware now sets the missing internal variable at L2 client init phase Impact: Introduced in 1.60.06 (FW 6.0.2) 14. Problem: (FCoE)(CQ46506) firmware hanged (all threads in Ustorm sleep) Cause: Error handling was not processed correctly Change: (Fixed in FW 6.0.14) Firmware fix Impact: Introduced in 1.60.10 (FW 6.0.11) 15. Problem: (FCoE)(CQ46342) RX_ID not populated inside REC_ELS packet Cause: Driver did not receive RX_ID during timer's error reporting Change: (Fixed in FW 6.0.14) Firmware fix Impact: Problem exist in al previous firmware releases 16. Problem: (iSCSI)Data placement of non-aligned small size data (<4 bytes) caused false data-digest error Cause: Internal firmware error Change: (Fixed in FW 6.0.14) Firmware fix Impact: Introduced in 1.60.10 (FW 6.0.11) 17. Problem: The firmware supported only unicast addresses that were recognized by the LLH (limit to 16 MACs) in switch independent mode Cause: The search in the CAM used the function id from the LLH Change: (Fixed in FW 6.0.15) Unmasked the function id in searches in the cam in switch independent mode Impact: Introduced in 1.60.10 (FW 6.0.10) 18. Problem: (iSCSI) Firmware might spin into infinite-loop when RQ is full Cause: Priority of Sleep when fetching new RQ producer is too high Change: (Fixed in FW 6.0.15) Reduce sleep priority Impact: Introduced in 1.60.10 (FW 6.0.11) 19. Problem: (iSCSI) Saturated window was not supported in option2 TCP connect Cause: Feature not supported Change: (Fixed in FW 6.0.15) Add support in firmware 20. Problem: (FCoE) (CQ46072) IO errors when running heavy traffic write operations Cause: Inappropriate line credit calculation in transmission path Change: (Fixed in FW 6.0.15) Firmware fix in line credit calculation Impact: Introduced in 1.60.10 (FW 6.0.10) 21. Problem: in 4-port mode - using port 2 and 3 caused errors followed by fw dump Cause: Inappropriate FW SB allocation, improper FW mailbox calculation Change: Add port id to the calculations Impact: 57712 4-port only Enhancements ------------ 1. Request: (CQ45126) Change NIC_MODE to impove latency if no offloaded connection is present Change: As requested 2. Request: Support dual-media configuration with swapped phy configuration Change: As requested. Impact: Dual media board 3. Request: Split speed and duplex parameters into two media Change: As requested 4. Request: Support powering down the BCM84823 copper core when phy configuration is set to second_port Change: As requested Impact: BCM84823 dual-media 5. Request: Add support for 4-port mode device Change: As requested Impact: 57712 6. Request: Add support for force 1G for KR triggered by new nvm cfg option 127: "Force KR enabler" Change: As requested Impact: KR(BCM8073) 7. Request: Add support for Client Setup ramrod Change: Use FW 6.0.15 8. Request: Cleanup VLAN related code Change: As requested 9. Request: Add TCP Out-Of-Order support in iSCSI Firmware Change: As requested (in FW 6.0.14) 10.Request: Increase L2 clients from 26 clients to 28 in order to support iSCSI Out of Order in multi function mode Change: As requested (in FW 6.0.15) 11.Request: Added client_init_ramrod_data struct, in order to decouple between driver and firmware client-related structures Change: As requested (in FW 6.0.15) 12.Request: Support changing COS and vlan priority updates according to DCB in L2 TX firmware Change: As requested (in FW 6.0.15) 13.Request: (FCoE) Support stop traffic\start traffic flow control ramrods Change: As requested (in FW 6.0.15) Version 1.60.10 (Mar 8, 2010) ============================== **** This release doesn't support big-endian architecture **** Fixes ----- 1. Problem: CFC HW attention was popping up on 57710 and 57711 when interface was closed Cause: bnx2x_pf_disable() was called for all types of chips Change: Call bnx2x_pf_disable() for 57712 only Impact: Introduced in 1.60.08; applies for 57711 and 57710 only 2. Problem: (FCoE) PFC didn't function properly Cause: Bad values of LLFC watermarks Change: Set LLFC watermarks to proper values Impact: 57712 PFC only 3. Problem: Limiting the number of queues with the num_queues module parameter to a number smaller then the number of CPUs renders the driver inoperable. Cause: The RX RSS indirection table is initialized with bad values. Change: Fixed the indirection table initialization Impact: Introduced in 1.60.01 4. Problem: VF load for VFs with id greater then 3 crashes the host driver. Cause: The host driver failed to allocate the HW-context for such VFs. Change: Fixed the host driver VF HW-context allocation for VFs. Impact: 57712 IOV only 5. Problem: (CQ45880, CQ46008) On 57712 incorrect statistic information is displayed for ethtool/ifconfig Cause: Reading the information from incorrect memory region Change: Fixed region and registers addresses Impact: 57712 only 6. Problem: (CQ46197) Compilation error on system with undefined value of CONFIG_PCI_MSI Cause: Code was not compiled due to undefined value Change: Removed dependency on this value Impact: Introduced in 1.60.06 7. Problem: BCM84823 Copper link doesn't come up Cause: Starting from firmware 2.20, BCM84823 enforces the XGXS to link first with the BCM84823 before it triggers LASI. Change: Set the appropriate flag for the 84823 which enforce XGXS initialization before external link is up Impact: BCM84823(copper) 8. Problem: CQ45718: Driver crash after driver load Cause: Driver was sending a relatively new command to a bootcode which doesn't support it. This command in unfamiliar with this bootcode, and should only be sent to bootcode which support it. Change: Send this command only to bootcode which support it. Impact: SFP+ only 9. Problem: Some error statistics weren't counted correctly Cause: The statistics address was miscalculated Change: Fixed address calculation (in FW 6.0.11) Impact: Introduced in 1.60.06 (FW 6.0.3) 10. Problem: iSCSI firmware broken Cause: TCP layer interface was changed Change: Applied new TCP interface to iSCSI firmware (in FW 6.0.11) Impact: Introduced in 1.60.07 (FW 6.0.4) 11. Problem: Possible permanent locking of Tx queue Cause: There was a memory barrier missing after tx_cons update Change: Added a missing barrier 12. Problem: Possible "queue is alive while ring is full" situation Cause: bnx2x_start_xmit() may have run and locked the queue while bnx2x_tx_int() has decided that it may unlock it Change: Take tx_lock while deciding to unlock the queue Enhancements ------------ 1. Request: Add clarification for int_mode driver parameter Change: Description fixed; Unnecessary define removed 2. Request: Support MAC partitioning mode (Multi function based on MAC classification) Change: As requested Impact: 57712 only (when set to MAC partitioning mode) 3. Request: Use FW 6.0.12 Change: As requested 4. Request: Use the upstream printouts and mcast iterators semantics Change: As requested Version 1.60.09 (Feb 22, 2010) ============================== Fixes ----- 1. Problem: (CQ46006) NIG test A36 failed if the driver was loaded before Cause: Configuration of PGLUE_B register with wrong value, while reset value is good Change: Remove erroneous configuration Impact: 57712 only 2. Problem: (CQ45648) driver asserts while trying to unload/load iSCSI/FCoE Cause: internal firmware resources were not cleaned properly by driver upon unload Change: (Fixed in FW 6.0.8) offset was generated for slow path sync line index Impact: 57712 only 3. Problem: (FCoE) Terminate handler will not complete Cause: Race between timer expiration and terminate handler invocation Change: (Fixed in FW 6.0.8) Impact: 57712 only 4. Problem: (CQ46052) Compilation warning on older kernels ("warning: assignment discards qualifiers from pointer target type") Cause: The compilation condition regarding the kernel version was mistakenly changed Change: Change the kernel version condition Impact: Introduced in 1.60.08 5. Problem: (FCoE) (CQ45915): Second CNIC interrupt was never arriving when working with port 1 Cause: Wrong SB ID was used in CNIC functions sending ACK to IGU Change: Added IGU_SB_ID to CNIC interface, fixed CNIC functions sending ACK to IGU to use the new index Impact: Has been introduced in T6.0 Enhancements ------------ 1. Request: For 57712 add support for switch-independent mode Change: As requested 2. Request: Add per-path licensing support Change: (In FW 6.0.9) Support BCM57712 address scheme Impact: 57712 only 3. Request: Minimize DMA transaction to improve PCIE latency Change: (In FW 6.0.9) Packet placement is done in single DMA command instead of two 4. Request: Constant pause avoidance Change: (In FW 6.0.9) Timeout for pause sending was added. Un-pause message will be sent upon timeout expiration. (Timeout default is 1 minute, can be set up to 5 minutes by the driver) Impact: 57711/57711E/57712 only 5. Request: Use FW 6.0.9 Change: As requested Impact: iSCSI is not functional in this version Version 1.60.08 (Feb 18, 2010) ============================== **** iSCSI is not functional in this version **** Fixes ----- 1. Problem: (CQ45963,CQ45962) DCBX IOCTL shows unusual values for admin_configuration_ets_pg, admin_pfc_bitmap Cause: Admin section was initialized with incorrect values Change: Choose correct init values 2. Problem: (CQ45961,CQ45960) DCBX IOCTL shows incorrect values for admin_dcbx_enable, dcb_enable Cause: The parameters were ignored by driver Change: Add handling for the parameters 3. Problem: (CQ45763, CQ45799) On 57712 a request can be sent on a disabled function Cause: Request sent from timers block that scans function 6/7 when function 2/3 scan off is set Change: Workaround in the driver that assures that if the timers starts scanning for function 6/7 nothing fatal will occur Impact: 57712 only 4. Problem: (CQ45973) On 57712 bringing up interface caused DMAE timeout Cause: Initialization of function not performed properly Change: Enable function in PGLUE_B module before accessing DMAE Impact: 57712 only 5. Problem: In KR board type, when loading the first port first, it causes the other port's link not to come up. Cause: BCM8073 requires that the second port's firmware will be loaded first. Change: Always load the first phy port's firmware Impact: 57712 only and KR only Enhancements ------------ 1. Request: Replace references to cnic_drv.h with cnic_if.h Change: As requested 2. Request: Add DRV_CTL_{START,STOP}_L2_CMD capabilities to drv_ctl() Change: As requested 3. Request: Update cnic driver with SP_SB information Change: As requested 4. Request: Add handling for iscsi mac addresses during registrer_cnic() unregister_cnic() and chip_cleanup() Change: As requested Version 1.60.07 (Feb 11, 2010) ============================== **** iSCSI is not functional in this version **** Fixes ----- 1. Problem: (CQ45674) Warning message was displayed when modprobe bnx2x "bnx2x_get_hwinfo ..." Cause: Inappropriate printing level for the message used Change: Set correct level 2. Problem: BCM8073 wasn't initialized during common init Cause: In 57712, the second port is actually port0 of the second path, and it wasn't treated like that. Change: Initialize port0 of both paths of BCM8073 during common init Impact: 57712 only and KR only 3. Problem: PCIE-X link speed is not displayed correctly for 57712 Cause: Misinterpretation of link speed encoded value Change: Fixed for 57712 Impact: 57712 only 4. Problem: Performance drop on high-PPS scenarios with new HC code Cause: New HC flow was overloading a HW buffer and caused back pressure on on-chip processors Change: (In FW 6.0.6) Remove some of the HW buffer uses Impact: introduced in 1.60.01 (FW 5.3.19) 5. Problem: (CQ45499) HW attention at BCM57710 stress test Cause: New HC flow could cause HW bug by using illegal timers command Change: (In FW 6.0.6) Remove the use of timers command, instead use aggregated interrupts Impact: introduced in 1.60.01 (FW 5.3.19) BCM57710/BCM57711 only 6. Problem: Change MTU causes L4 traffic to stop Cause: Status Block of cnic driver was not updated during nic_load Change: Add cnic SB update Impact: Introduced in 1.60.01 Enhancements ------------ 1. Request: Use FW 6.0.7 Change: As requested Impact: iSCSI is not functional in this version Version 1.60.06 (Feb 4, 2010) ============================== **** This version requires bootcode 6.0.6 or above for BCM57712 **** Fixes ----- 1. Problem: FCoE wasn't receiving mcast packets, including FIP packets sent to ALL_ENODE_MACS address Cause: There was DROP_ALL_MCAST flag set to FCoE L2 client Change: Set ACCEPT_MCAST flag to FCoE L2 client that will make it receive only matched mcast packets 2. Problem: Path1 shared memory data run over Path0 configuration Cause: The register that marks the beginning of the shared memory is global rather than split per path Change: Use different registers to mark the beginning of the shared memory per path. Impact: 57712 only 3. Problem: bnx2x stopped receiving on the VLAN after MTU change Cause: VLAN removal flag was not configured after reloading FW during change MTU flow Change: Configure VLAN removal flag if needed after MTU change 4. Problem: drivers enter infinite loop during crash dump Cause: lack of parentheses in loop expression Change: add parentheses 5. Problem: (iSCSI)(CQ45150) OIS Assert occurred after attempting to login to iSCSI target Cause: Firmware bug Change: Fixed in FW 6.0.2 6. Problem: (FCoE)(CQ44937) Data corruption after forcing FC-CRC error Cause: Hardware bug when detecting CRC error on FCoE data placement Change: (Fixed in FW 6.0.3) Firmware workaround - Send 64 DMA dummy write commands in order to prevent the false error from appearing 7. Problem: 57712 4-port mode doesn't link up Cause: XGXS wasn't actually configured in this mode since the current MD_DEVAD used didn't work. Change: Use different MD_DEVAD when working with the E2 XGXS Impact: 57712 only 8. Problem: 57712 4-port D2 nic test(internal loopback test) fail Cause: Loopback was set as 10G instead of 1G loopback Change: When speed selection is 1G, set 1G loopback, otherwise set 10G loopback. Impact: 57712 only Enhancements ----------- 1. Request: Add support for KVM SR-IOV (BCM57712 and onwards) Change: As requested 2. Request: Add support for VF devices Change: As requested 3. Request: Update README.TXT and manpages with GRO dependency on 8021q module Change: As requested 4. Request: Use FW 6.0.3 Change: As requested Version 1.60.04 (Jan 26, 2010) ============================== Fixes ----- 1. Problem: (CQ43831) Driver error reports while loading/unloading under DCC traffic Cause: A race condition between disabling the incoming traffic when unloading and DCC enabling the link Change: Changed DCC enable/disable commands to use a different register setting that will not interfere with normal unload sequence 2. Problem: Driver load under DCC traffic might fail Cause: Lack of lock between driver load command and DCC ack command Change: Add mutex to protect the FW mailbox 3. Problem: ifconfig up reported error while using bootcode 6.0.1 Cause: Lack of lock between DCBX init command and response handling Change: Add mutex to protect the FW mailbox 4. Problem: FW asserts while unloading/loading under DCC enable/disable commands Cause: DCC disable command changed the driver internal state and might overrun state changes which are initiated by the load/unload sequence. This caused the driver to be out of sync with the FW Change: DCC disable/enable command uses different flag and not the driver state 5. Problem: Error message is printed when failing to obtain MSI-X vectors Cause: When trying to work in multi-mode and not getting enough MSI-X vectors, the driver printed an error message indicating that it will use a single queue Change: Since this is a valid condition, the print is allowed under specific messages level only 6. Problem: port 1 of 57712 can't initialize correctly Cause: driver accessed incorrect shmem addresses Change: fixed Impact: 57712/57712E only 7. Problem: 57712 link is not up Cause: There's difference in AER strapping between 57711 and 57712 Change: Set the XGXS AER to the appropriate value according to the new XGXS model Impact: 57712 only Version 1.60.03 (Jan 20, 2010) ============================== Fixes ----- 1. Problem: Unresolved symbols during compilation on 32bit platforms Cause: Improper initialization of variable with FP symbol Change: Using integer constant instead Impact: Introduced in 1.60.01 2. Problem: MF dead in the water for 57711 Cause: Improper initialization of the FW caused it to hang Change: Fixed initialization Impact: Introduced in 1.60.01 3. Problem: HC not enabled for port 1 Cause: Improper initialization the HC in the FW Change: Fixed initialization Impact: Introduced in 1.60.01 4. Problem: (iSCSI) Unexpected chip behavior when padding is splitted into 2 or 3 parts Cause: Firmware bug when aligning split padding Change: Firmware was fixed Impact: Problem exists in all previous releases 5. Problem: (iSCSI) False data digest error when data digest is splitted into 3 parts Cause: Firmware bug when aligning split padding Change: Fixed in FW 6.0.1 Impact: Problem exists in all previous releases 6. Problem: (FCoE) (CQ45025) False REC_TOV timer expiration Cause: Timer was not reset when a task that supports REC_TOV was replaced by task that didn't Change: (Fixed in FW 6.0.1) When new task begin, we set the timer if it supports REC_TOV and reset timer if he doesn't Impact: Problem exists in all previous releases 7. Problem: (FCoE) Connection cache was not initialized properly and REC_TOV\E_D_TOV timers weren't disable after all functions destroyed Cause: Wrong calculation of number of active functions Change: (Fixed in FW 6.0.1) Add designated counter for number of active functions Impact: Problem in BCM57712 only 8. Problem: MSI-X vectors request in repeating ifup/ifdown test case fail due to not sufficient amount of resources Cause: MSI-X/MSI were not disabled if ifup failed due to lack of memory Change: Properly release allocated MSI-X/MSI vectors if ifup failed due to lack of memory Enhancements ----------- 1. Request: Remove GRO dependency on kernel version Change: Replaced with dependency on NETIF_F_GRO flag 2. Request: Integrate with bootcode 6.0.0 and above for proper handling of phy initialization in 57712 2-PORT-MODE Change: As requested 3. Request: (CQ39624) Provide detailed statistics with ethtool -S eth Change: As requested 4. Request: Add compatability of GRO feature with RH5.4 systems Change: As requested 5. Request: Improve performance of new HC code (submitted in firmware 5.3.19). Cut the storm utilization by 50% Change: As requested (in FW 6.0.1) 6. Request: Add ability to control BCM8073 PN polarity swap through nvm configuration Change: As requested. 7. Request: Use GPIO3 to take BCM84823 phy out of reset Change: As requested. 8. Request: Use FW 6.0.1 Change: As requested. 9. Request: Add support for FCoE to older kernels (e.g. RH5.4 in-the-box kernel) Change: As requested. Version 1.60.02 (Jan 12, 2010) ============================== Fixes ----- 1. Problem: Self-test didn't work on kernels newer than 2.6.25 Cause: There was missing a new way to report the number of tests Change: Added a support for a new way to report a number of tests when compiled against new kernels 2. Problem: (iSCSI)(CQ45150) OIS assert @ [bxois!HandleConnectionCqeWorkitem+429] when trying to logon to iscsi target Cause: Firmware bug Change: Fixed in FW 5.3.20.1 Impact: Problem exists only in release T6.0 Enhancements ----------- 1. Request: Add VLAN GRO support Change: As requested 2. Request: Use FW 5.3.20.1 Change: As requested Version 1.60.01 (Jan 12, 2010) ============================== Fixes ----- 1. Problem: 57712 emulation failed to run in 4 domains 10G mode (debug only) Cause: Driver accidently accessed non-existing EMAC Change: Remove access to EMAC register in case of emulation 2. Problem: In dual-media, only the SFP+ module on the first phy is checked Cause: Insufficient support in SFP+ module checking Change: Modify SFP+ module API verification to include parameter indicating the exact phy. Impact: Whenever driver send command to the bootcode, it will now also send parameter. Bootcode will treat this parameter only when it is relevant 3. Problem: (FCoE) Chip hangs while running normal rd/wr operations Cause: RX Doorbell was not handled properly Change: (Fixed in FW 5.3.18) Handling the case where receiving false RX doorbell 4. Problem: (FCoE) (CQ44936, CQ44937) Data corruption during read/write/compare test Cause: Error was not detected by FW since it was short FCP_RSP packets Change: (Fixed in FW 5.3.20) Checking if received the amount of data when receiving this format of FCP_RSP 5. Problem: (FCoE) (CQ44936, CQ44937) Data corruption during read/write/compare test Cause: When packet with invalid CRC detected, task context isn't reverted to previous valid state Change: (Fixed in FW 5.3.20) on detection of packet with invalid CRC, task cached context isn't write back to memory 6. Problem: (iSCSI) Chip hangs when running iSCSI read traffic Cause: Miscalculation of HW commands when SGEs are not 64-bytes aligned Change: (Fixed in FW 5.3.20) Fixing FW calculation of SGE alignment and fields in HW command 7. Problem: (FCoE) Upper layer didn't know which MAC to use during DCBX negotiation. Cause: Proper MAC (SAN) was not set in the netdev. Change: Call dev_addr_add() with the proper MAC and SAN type. 8. Problem: (FCoE) FIP packets were not ruled by the PFC FC. Cause: FIP packets were arriving on a regular L2 client. Change: Set a different MAC to the FCoE L2 client. Enhancement ----------- 1. Request: Changed the doorbell size (the stride between consecutive doorbells' addresses) from 4K to 128 Change: As requested 2. Request: Add support for dual-media board type Change: Redesign the CLC to be able to handle multi-phy boards. Rename clc/CLC to elink/ELINK. Driver is required to probe the phys on board before initializing the link. Specific phy access will be done using "phy" structure. Common access will go over all phys on board and execute the command on them. Impact: From now on, high level driver will not be familiar with the phys on-board. For every phy access, it is required to use the elink API, or add new one. 3. Request: Having the ability to pass data from the Tstorm to the driver over the SGL in fast_path_cqe (required for iSCSI Out-Of-Order) Change: As requested (in FW 5.3.20) 4. Request: Use FW 5.3.20 Change: As requested 5. Request: Add DCBX support for 57711 Change: As requested 6. Request: Remove #ifdef CONFIG_PCI_MSI sections from code Change: Removed #ifdef CONFIG_PCI_MSI sections. Left the code that was compiled when this (CONFIG_PCI_MSI) macro has been defined. Version 1.53.14 (Dec 7, 2009) ============================== Enhancement ----------- 1. Request: (CQ41760) Use more generic log message in case of fan failure Change: As requested 2. Request: (CQ43089) Add VPD-R V0 entry to displayed firmware revision in ETHTOOL Change: As requested 3. Request: Use FW 5.3.17 Change: As requested 4. Request: Enable parity errors recognition and recovery. Change: First implementation of parity error recovery flow. Currently only "process kill" is supported. Parity errors are currently disabled for E1 until the proper changes are done to init tool. Version 1.53.13 (Nov 17, 2009) ============================== Fixes ----- 1. Problem: Improper initialization of MF/SF causes driver to stall Cause: Using uninitialized values of fpid Change: Using fpid moved to later stages after its initialization Impact: None Version 1.53.12 (Nov 16, 2009) ============================== Fixes ----- 1. Problem: CQ41232: Management gets incorrect AN and FC bit values. Cause: FC wasn't updated correctly during link up event Change: Extract all status_link information correctly Impact: None 2. Problem: CQ36401: Excessive link down messages when driver is unloaded Cause: Link event is reported for every link event, even when link is not changed Change: Do not report link change unless there's actually link link change Impact: None 3. Problem: BCM8481 doesn't negotiate FC capabilities Cause: FC capabilities weren't advertised during phy initialization Change: Set BCM8481 FC capabilities during init stage Impact: None 4. Problem: (FCoE) Completions are not arrived on open tasks Cause: Connection does not register to QM since SQ producer/consumer Change: Fixed in FW 5.3.14: Set BCM8481 FC capabilities during init stage Impact: None Enhancement ----------- 1. Request: Support bootcode on 57712 Change: As requested Impact: 577712 Only 2. Request: Allocate available MSI-X vectors in normal mode Change: As requested Impact: None 3. Request: Use multi cpu rx when using msix in kernels without new napi Change: As requested Impact: None 4. Request: support correct number of iSCSI and FCoE sessions in the HW initializations Change: As requested Impact: None 5. Request: support any number of L2 queues in the HW initializations Change: As requested Impact: None 6. Request: Hanlde both Tx and Rx in NAPI Change: As requested Impact: None 7. Request: Support 4-port mode for 57712 Change: As requested Impact: None 8. Request: Use FW 5.3.14 Change: As requested Impact: None Version 1.53.11 (Nov 11, 2009) ============================== Fixes ----- 1. Problem: When iptable_nat module is installed on RH4, traffic halts Cause: iptable_nat on RH4 requests for GSO without asking for csum offload Change: When configuring the HW/FW to GSO, always configure csum offload as well 2. Problem: (FCoE) Chip hanged during data placement Cause: Thread started placing data before verifying the task type Change: Fixed in FW 5.3.13: verify task type is match to read in FCP_DATA before placement Impact: None 3. Problem: (CQ44328) (FCoE) Chip hanged after error was detected Cause: Thread was waiting for CRC result instead of releasing the packet Change: Fixed in FW 5.3.13: Release the packet if an error occurred during data placement Impact: None Enhancement ----------- 1. Request: Use FW 5.3.13 Change: As requested Impact: None Version 1.53.10 (Nov 08, 2009) ============================== Enhancement ----------- 1. Request: Use FW 5.3.12 Change: As requested Impact: None Version 1.53.9 (Oct 27, 2009) ============================== Fixes ----- 1. Problem: ethtool -t ethX FAILED Cause: test_registers() accessed registers without mask Change: Added mask for write access Impact: None Version 1.53.8 (Oct 26, 2009) ============================== Enhancement ----------- 1. Request: Use FW 5.3.10 Change: As requested Impact: None Version 1.53.xx (Oct xx, 2009) ============================== Enhancement ----------- 1. Request: Improve times for ifconfig up/down (slow 57712 chip revision) Change: As requested Impact: None Version 1.53.xx (Oct xx, 2009) ============================== Enhancement ----------- 1. Request: Add support for EMAC loopback for FPGA Change: As requested Impact: None Version 1.53.7 (Oct 22, 2009) ============================== Enhancement ----------- 1. Request: Use FW 5.3.9 Change: As requested Impact: None 2. Request: Remove compilation flag for BCM57712/BCM57712E/BCM57713/BCM57713E Change: As requested Impact: None Version 1.53.6 (Oct 21, 2009) ============================== Enhancement ----------- 1. Request: 57712 multifunction support Change: As requested Impact: None Version 1.53.5 (Oct XX, 2009) ============================== Fixes ----- 1. Problem: Failed to build bnx2x in chroot build environment Cause: The Makefile attempted to run with -j flag to utilize all CPU in the system and in chroot environment it resulted with "-j 0" Change: The Makefile should not force the -j option. Removed this feature Impact: Without explicitly providing the -j flag when compiling the driver, the compilation will consume more time Version 1.53.4 (Oct 11, 2009) ============================== Fixes ----- 1. Problem: Priority Flow Control on BCM57711 showed low performance Cause: Transmitted Xon PFC packet was malformed. PriorityEnableVector field in PFC packet was set to zero instead of the relevant priorities. This caused to remote peer to wait longer until timers expired to Xon again Change: Fixed in FW 5.3.8: set properly PriorityEnableVector in Xon PFC packet Impact: None 2. Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected FIN packet was received under traffic Cause: FW erroneously increased activity counter Change: Fixed in FW 5.3.8: condition for activity counter increment fixed Impact: None 3. Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected SYN packet was received under traffic Cause: TCP reset initiated by FW caused endless wake ups for FW Change: Fixed in FW 5.3.8: changed setting of FW internal flags Impact: None 4. Problem: iSCSI offload: Memory sanity of thread check fail during Query ramrod Cause: During Query ramrod, when FW prepared the context for upload on the scratchpad, it exceeds the thread scratchpad boundary Change: Fixed in FW 5.3.8: use the scratchpad within the thread boundary only Impact: None 5. Problem: iSCSI offload: TCP Close failed Cause: Bug in byte credit update during termination Change: Fixed in FW 5.3.8 Impact: None 6. Problem: FCoE INIT ramrod was never completed Cause: Reading from inappropriate VQ in Tstorm Change: Fixed in FW 5.3.8: reading from to the correct VQ Impact: None Enhancement ----------- 1. Request: BCM577xx support for FW 5.3.8 Change: As requested Impact: None 2. Request: Adding support broadcast and multicast received packets in L2 switch independant mode Change: In FW 5.3.8 as requested Impact: None Version 1.53.3 (Oct xx, 2009) ============================== Fixes ----- 1. Problem: Only Tx queue 0 was used in default configuration on kernel 2.6.30 and above Cause: bnx2x_select_queue() was returning 0 by default Change: Make bnx2x_select_queue() return stack tx_hash() by default Impact: None Enhancement ----------- 1. Request: Add a separate L2 ring for FCoE L2 traffic Change: As requested Impact: None Version 1.53.2 (Oct 8, 2009) ============================== Fixes ----- 1. Problem: 57712 failed to receive data from network Cause: Incorrect MAC type selected during initialization Change: MAC initializaton fixed Impact: None 2. Problem: 57712 failed to bring up interface Cause: Unhandled attention interrupt caused processor to stall Change: Added handling for new attentions Impact: None Version 1.53.1 (Oct 5, 2009) ============================== Enhancement ----------- 1. Request: 57712 support for FW 5.3.7 Change: As requested Impact: None Version 1.53.xx (Sep xx, 2009) ============================== Enhancement ----------- 1. Request: When PFC is enabled, set BigMAC to relay control packets to the system as well, and enable BigMAC to react on received Pause packets Change: As requested Impact: None Version 1.53.0a (Oct 1, 2009) ============================== Enhancements ------------ 1. Request: Use FW 5.3.7 Change: As requested Impact: None 2. Request: Add support for BCM57712 (by compilation flag) Change: As requested Impact: None Version 1.51.0a (Sep 14, 2009) ============================== Fixes ----- 1. Problem: Enabling fairness algorithm in the middle of the run causes the function to stop transmitting. Cause: The fairness credit is not initialized in this case. Change: Change the fairness credit init value. Impact: None. 2. Problem: (CQ42873) No traffic when number of receive buffers is configured to 50 (the minimum) in the advanced properties page. Cause: Firmware is always saving a CQE for each TPA aggregation. So in case less then 75 CQEs are on the ring, the firmware starts dropping packets. Change: Check if TPA is enabled before deciding if to drop packet. If TPA is disabled save only 11 CQEs instead of 75. Impact: None. Enhancements ------------ 1. Request: Use FW 5.3.4 Change: As requested Impact: None Version 1.51.x (Aug xx, 2009) ============================= Fixes ----- 1. Problem: Link is down with BCM8481 when connected to 1G device after it was connected to 100M device Cause: When link type changes from SGMII to GMII/XGMII, the SGMII configuration wasn't removed Change: Remove SGMII configuration in non-SGMII link type Impact: None 2. Problem: BCM8481 link is not able to link up after cable plug out/in Cause: New BCM8481 image required new configurtion of the LED4 signal which generate the interrupt Change: Detect link down using the LED4 signal rathen than the BCM8481 registers Impact: None 3. Problem: Link is down with BCM8481 when connected to 1G device after it was connected to 100M device Cause: When link type changes from SGMII to GMII/XGMII, the SGMII configuration wasn't removed Change: Remove SGMII configuration in non-SGMII link type Impact: None 4. Problem: BCM8481 link is not able to link up after cable plug out/in Cause: New BCM8481 image required new configuration of the LED4 signal which generate the interrupt Change: Detect link down using the LED4 signal rather than the BCM8481 registers Impact: None 5. Problem: Driver might read corrupted data from shared memory in case bootcode is missing Cause: Some pieces of code are not protected in case bootcode is missing Change: Add additional protection in case bootcode is missing Impact: None Enhancements ------------ 1. Request: When PFC enabled, pass pause frames towards the NIG Change: As requested Impact: None 2. Request: Improve FP performance Change: Remove writing ACK to USTORM from Tx flow and to CSTORM from Rx Impact: None 3. Request: Handle fan failure for BCM8481 PHY Change: As requested Impact: None 4. Request: Once PFC is selected along with emac, it is required to set BIT 3, KEEP_MAC_CONTROL, at emac register rx_mode. Setting this bit causes MAC control frames (except for pause frames) to be passed on for processing. This setting has no affect on the operation of the pause frames. This bit affects all packets regardless of RX Parser packet sorting logic. Change: As requested Impact: None 5. Request: Use FW 5.1.23.1 Change: As requested Impact: None 6. Request: Support kernel 2.6.31 (RC2) Change: Use DMA_MAP macros and .ndo_select_queue Impact: None 7. Request: (CQ41112) - PHY LED Programming for BCM8481 on BlackBird (BCM957711A1100G) Production Board Change: As requested Impact: None 8. Request: Increase DMAE max write size for 57711/57711E Change: As requested Impact: None 9. Request: Not handling statistics in panic condition Change: As requested Impact: None 10. Request: Enhance bnx2x_panic_dump() - print SB data Change: As requested Impact: None Version 1.52.2 (Aug 18, 2009) ============================= Fixes ----- 1. Problem: (CQ42998) 57711E PF on OS linked even after unassigning network in VC Cause: ethtool reports the physical link status instead of PF OS link status Change: bnx2x_get_link() returns no link if driver is not in open state Impact: None 2. Problem: ethtool displays 57711E PF link speed as 0 in certain scenario Cause: VC assigned network and max bandwidth were not refreshed during driver load Change: Refresh the VC assigned network and max bandwidth during driver load Impact: None 3. Problem: syslog and kernel logs always report 57711E PF speed as 10000 Mbps Cause: bnx2x_link_report() reports the actual physical link speed instead of the max bandwidth assigned to the PF Change: Report the max bandwidth assigned to the PF Impact: None 4. Problem: In some cases FW does not respond in time to driver requests and thus driver load fails Cause: For certain PHYs, FW might need some more time before responding to driver request Change: Increase the timeout up to 5 sec Impact: None Enhancements ------------ 1. Request: Set interrupt coalescing granularity to 4us instead of 12us Change: As requested Impact: None 2. Request: Change default interrupt coalescing numbers to supported numbers Change: Since the interrupt coalescing granularity is 4us, a value of 25 is actually configured as 24 to the HW Impact: None 3. Request: Fix bnx2x_fw_dump() to compute trace start address based on shmem offset Change: As requested Impact: None Version 1.52.1 (Aug 12, 2009) ============================= -- Upstream Version -- Fixes ----- 1. Problem: Link is down with BCM8481 when connected to 1G device after it was connected to 100M device Cause: When link type changes from SGMII to GMII/XGMII, the SGMII configuration wasn't removed Change: Remove SGMII configuration in non-SGMII link type Impact: None 2. Problem: BCM8481 link is down after cable plug out/in Cause: New BCM8481 image required new configuration of the LED4 signal which generate the interrupt Change: Detect link down using the LED4 signal rather than the BCM8481 registers Impact: None 3. Problem: (CQ35477) Incorrect display of External Phy Firmware Version for Everest XFP board. Cause: External Phy Firmware Version for BCM8705 PHY used to display 0000:0000 Change: Change not to display PHY FW version Impact: None 4. Problem: In BCM8727, spirom was loaded first on slave port, rather than on the master port. This may lead to xaui pll issue. Cause: Port-Swap wasn't considered when loading spirom to the BCM8727, hence first the slave port was loaded with the spirom. Change: First load the SPIROM to the master port. Impact: None 5. Problem: Possible FW assert in driver unload/load test case Cause: Possible race on statistics state machine state change Change: Added a write barrier to ensure that the state change is committed Impact: None Enhancements ------------ 1. Request: In promiscuous mode, pass management traffic to the host Change: As Requested Impact: None 2. Request: PCI drivers that implement the struct pci_error_handlers' error_detected callback should return PCI_ERS_RESULT_DISCONNECT if the state passed in is pci_channel_io_perm_failure Change: As Requested Impact: None 3. Request: (CQ41112) PHY LED Programming for BCM8481 PHY Change: As requested Impact: None 4. Request: (CQ41067) Add support for CL73 on XAUI Change: As requested Impact: None Version 1.52.0 (Jul 28, 2009) ============================= Fixes ----- 1. Problem: Redundant settings of vlan_features at set_tso Cause: There is no need to change vlan_features at set_tso since this field is a capability field and not current settings Change: Remove redundant code Impact: None 2. Problem: (CQ42550) No host traffic when NCSI is enabled on some systems Cause: The driver did not set the required filtering flags and received only traffic which was not intended for the BMC - on some systems, this is not enough and the driver should enable its own masking Change: Setup the driver mask to receive traffic even when NCSI is enabled Impact: None Version 1.50.13 (Jul 22, 2009) ============================== Enhancements ------------ 1. Request: Update to FW 5.0.21 Change: As requested Impact: None Version 1.50.12 (Jul 16, 2009) ============================== Fixes ----- 1. Problem: In some TPA aggregation cases, might go into TCP slow-start instead of fast-retransmit Cause: When TPA is used, pure ACK on open aggregation was aggregated Change: (FW 5.0.20) Do not aggregate pure ACK packets in TPA Impact: None Version 1.50.11 (Jul 7, 2009) ============================= Fixes ----- 1. Problem: Setting rx-usecs to the value less than 12 causes the traffic to stop Cause: Did not disable HC coalescing when set the coalescing timeout to zero (coalescing timeouts are multiples of 12us) Change: Disable HC coalescing, when timeout is set to the zero Impact: None 2. Problem: Packet descriptors in NIG might get out of sync if management egress traffic is pass through during self test Cause: During loopback test management egress traffic might be routed to the host and will not be cleared when exiting the diag mode Change: Disable management egress traffic when driver is in diag mode Impact: None Version 1.50.10 (Jul 1, 2009) ============================= Fixes ----- 1. Problem: (CQ42298) Management traffic does not resume after self test Cause: Writing to the egress management FIFO during the memory test interpreted as a start of a management packet and cause the FIFO not to be empty Change: Remove the write to the egress management FIFO from the self test Impact: None 2. Problem: Link up time takes too long with BCM8727 based NICs Cause: EDC mode is not set automatically Change: Set EDC mode manually according to the SFP+ module type detected (Passive DAC / Active DAC / LC-LRM / LC-SR / LC-LR) Impact: None 3. Problem: (CQ41567) In BCM8727 based NICs, when SFP+ module is not plugged, there is continuous messages of Link Down Cause: The EDC tries to process the Rx data/noise because its OPRXLOS input signal is false (low), indicating an Rx signal is present. Change: Perform 'Or' of the Active Module Absent Level with the Active Laser Loss of Light Level. This way we tell the EDC not process Rx data/noise when the module is not present. Impact: None Version 1.50.9 (Jun 25, 2009) ============================= Fixes ----- 1. Problem: Low throughput when using VLAN on kernel 2.6.26 or above Cause: New VLAN_features field in struct net_device was not initialized hence no offload capabilities were available with VLAN Change: Initialize VLAN_features field in struct net_device Impact: None 2. Problem: No event log in case fan failure occured prior to loading the driver Cause: The event was not detected since it was already set when the driver was loaded Change: Check for the event on load time Impact: None 3. Problem: Loopback test in self test might fail in case NCSI is enabled Cause: NCSI egress traffic is received instead of the loopback test packets Change: Disable NCSI egress traffic during loopback test Impact: None 4. Problem: ethtool reports link up when the device is down Cause: Bug in ethtool_op_get_link() Change: Use bnx2x_get_link() instead Impact: None 5. Problem: 57711E WoL does not work if only one function per port was active prior to shutdown Cause: WoL is configured to work in SF mode Change: Set the chip back to SF mode (so WoL will work) even if only one function was loaded per port in MF mode Impact: None Version 1.50.8 (Jun 8, 2009) ============================ Fixes ----- 1. Problem: When running many TCP connections (>200) on both ports, some connections hangs Cause: When all TPA aggregations are occupied, FW can override the RX CQE consumer of the other port Change: Fix in FW 5.0.18: reload the RX CQE consumer from RAM after TPA handler breaks to sleep Impact: None 2. Problem: CL73 enhancement causes link down Cause: Unknown Change: Revert CL73 enhancement until problem resolved Impact: None Version 1.50.7 (Jun 4, 2009) ============================ Fixes ----- 1. Problem: (CQ41533) Unapproved modules behavior is not enforced according to nvram configuration Cause: In case the module was not approved, the function quit before enabling the Tx laser - so even when set to warning, there was no link. When set to power off the module, there was continues false indication of over current when the module was extracted Change: When set to warning - enable the module. Validate that the module is present before checking for over current indication Impact: None 2. Problem: The coalescing timeout value displayed by `ethtool' is different for the one used by the FW Cause: The limitation for coalescing timeout values in driver's `ethtool -C' callback was wrong Change: Fix the limitation for coalescing timeout in `ethtool -C' callback Impact: None Enhancements ------------ 1. Request: Reduce the number of cache misses in a fast path Change: Avoid extra cache miss by updating `trans_start' from inside start_xmit() as long as it's done by the core network layer starting from kernel 2.6.31 Impact: None 2. Request: (CQ41067) Add 5771x CL73 support Change: As requested Impact: Everest is now able to link with devices which operate in CL73 alone / CL37 alone / or both 3. Request: Make 8727 over-current behavior code more efficient Change: As requested Impact: None Version 1.50.6 (Jun 1, 2009) ============================ Fixes ----- 1. Problem: In 8727, after power-fault occurred and the driver is unloaded and then reloaded, the interrupt is not cleared Cause: In this scenario, the mod_abs mode remain in "wait for module plugged in", so interrupt was not cleared Change: Set module_absent to wait for module absent scenario Impact: None 2. Problem: There is no need to read the warning string for un approved modules from the FW/nvram Cause: This is over design that cause unnecessary overhead - a constant string can be used Change: Use constant warning string instead of receiving it from FW/nvram Impact: Warning message is not to be used in the modules nvram file 3. Problem: High CPU usage in bnx2x_free_tx_pkt() Cause: prefetch(skb_shinfo(skb)) implied immediate cache miss when NET_SKBUFF_DATA_USES_OFFSET is enabled Change: Replaced prefetch(skb_shinfo(skb)) by prefetch(&skb->end). This would prefetch only the first one from two cache misses needed for reading of skb_shinfo(skb)->nr_frags, which is needed by dev_kfree_skb(skb), but it will do it in a background avoiding an immediate CPU stall Impact: None Enhancements ------------ 1. Request: Add support for BCM8727 without over current detection (BCM8727_NOC) Change: As requested Impact: None Version 1.50.5 (May 26, 2009) ============================= Fixes ----- 1. Problem: (CQ38975) Failed to setup leading connection after a lot of iterations of "down-up" test. Workaround for CQ37893 (Use INTx mode when MSI-X fails due to memory allocation failure) was broken Cause: bnx2x_set_int_mode() wasn't returning a status, thus there was no way to catch a mentioned above memory allocation failure Change: Return a status from bnx2x_set_int_mode() Impact: None 2. Problem: (CQ41349) Linux panic when disabling RX chksum and running RX traffic Cause: TPA enabled option was not controlled per function/queue level Change: FW fix in version 5.0.16: TPA enabled is now controlled per function/queue level Impact: None 3. Problem: (CQ41434) ethtool -S was printing junk on kernels with RSS support Cause: There was a bug in function returning number of lines in device statistics bnx2x_get_stats_count - it was returning more than there actually were) Change: Make bnx2x_get_stats_count return the correct number Impact: None Enhancements ------------ 1. Request: Support approved module list and warn if the module is not on the list Change: This feature requires bootcode 5.0.6 or later and a valid optic modules image on the nvram. The feature is controlled by nvram option 81 Impact: None 2. Request: Allow enabling and disabling the fan failure mechanism for different PHY types Change: Determine if fan failure enforcement is required according to nvram configuration. The configuration can be auto enforcement according to the PHY type, disabled or enabled Impact: None 3. Request: Support firmware flow control when consuming SGEs Change: FW change in FW 5.0.16: Added check for Flow control when consuming SGEs from host Impact: None 4. Request: Advertise driver DCC capabilities Change: As requested Impact: None Version 1.50.4 (May 18, 2009) ============================= Fixes ----- 1. Problem: (CQ40938, CQ40937, CQ40911, CQ40992) LSO test failure Cause: LSO packets with BDs that point to buffers that are less than MSS size caused the firmware to send illegal bytes within the same LSO packet Change: FW fix in version 5.0.14 Impact: Regression introduced in v1.50.2 2. Problem: (CQ41198) modprobe generate error on RH4.6 or 4.7 which will cause kernel panic Cause: pci_register_driver() returns count and not errno Change: Ignore the return code from pci_register_driver() in kernels below 2.6.10 Impact: None 3. Problem: (CQ38975,CQ38925) Failed to setup leading connection after a lot of iterations of "down-up" test Cause: There were a few memory barriers missing Change: Add missing memory barriers Impact: None Enhancements ------------ 1. Request: Reduce the time spent in skb_release_data() Change: Add prefetch(&skb->end) before calling dev_kfree_skb in order to bring in the cache line that skb_release_data() will eventually need (based on the bnx2 patch proposed by Eric Dumazet) Impact: None 2. Request: (CQ33228) Add required IOCTLs to support PHY FW upgrade Change: Add 3 magic numbers to the ethtool -E (eeprom) command to support PHY FW upgrade init, PHY FW upgrade complete, and PHY re-init after upgrade Add CL45 MDIO IOCTL support Impact: None 3. Request: Add support for BCM8481 SPI-ROM upgrade Change: As requested Impact: None Version 1.50.3 (May 14, 2009) ============================= Fixes ----- 1. Problem: (CQ40848,CQ40835) System breaks due to a firmware assert Cause: Firmware asserted when PCI read latency for RX BD ring was longer then 20usec Change: FW fix in version 5.0.12: Replace the workaround by a flow which polls on the RX BD ring every 4usec Impact: None 2. Problem: (CQ36705) Performance on 57711/57711E is lower when flow control is enabled than when flow control is disabled Cause: L2 firmware flow control was enabled for 57711/57711E and caused performance decrease Change: Disable L2 firmware flow control by default (add new module parameter to enable it) Impact: None 3. Problem: Workqueue might not be freed if driver fail to register Cause: Workqueue is not freed if driver fail to register Change: Free workqueue when driver fail to register Impact: None 4. Problem: Negative number of received packages might be returned in STOP_ON_ERROR debug mode Cause: Negative errno is returned in STOP_ON_ERROR debug mode Change: Do not return negative number of received packages Impact: None 5. Problem: Fan failure on BCM8727 was not supported on port 1 Cause: The fan failure assertion was tied only to port 0 Change: The fan failure assertion is tied to port 1 also Impact: None 6. Problem: BCM8727 shows link up while RX is disabled Cause: When module-compliance enforcement is enabled, and non-compliant module is detected, then the driver disables the TX-Laser for the phy, yet the link keeps showing link up. Change: When link is changing, in case the TX-laser is off, indicate that the link is down although the phy detects RX link up. Impact: None 7. Problem: (CQ41000) Could miss link up event in BCM8727 right after optic module insertion Cause: At the time that SFP+ module plugged-in was triggered, driver enabled the module while ignoring link change Change: Check for link changes during module plugged in/out Impact: None 8. Problem: BCM8727 doesn't link in 10G after changing from 1G Cause: 10G default configuration was overwritten after setting 1G configuration. Since the phy is not reset, the configuration for 10G doesn't go back to default after link speed change Change: When setting 10G, enforce 10G configuration, and not relay on the default configuration. Impact: None 9. Problem: (CQ40840) BCM57710 didn't receive multicast packets Cause: BCM57710 was unable to receive multicast packets. This BUG was introduced with transition to the new Rx HSI. It's unlikely that this failure is SuSE 11 specific Change: Fix BCM57710 specific multicast configuration code Impact: None Enhancements ------------ 1. Request: Add dropless_fc module parameter to send pause frames in case where one of the host buffers (when in RSS mode) are exhausted Change: As requested Impact: None Version 1.50.2 (May 05, 2009) ============================= Fixes ----- 1. Problem: (CQ40300) XFP adapter shows link up in network properties with no cable Cause: Link status register was updated long after interrupt was triggered Change: Check that RX PMD Loss of Sync bit is cleared and RX PMD Sync Acquired bit is set to detect link Impact: None 2. Problem: When Over-Current state is established, LASI interrupts are not cleared Cause: In this scenario, the module is powered-off so OPTXFLT/OPRXLOS indications are set. This cause a fixed RX_ALARM indication which cannot be turned off Change: When Over-current condition is detected, set RX_ALARM to detect only module-absent events, so when a new module is plugged in, it will be detected and then RX_ALARM will be set to detect link as well Impact: None Enhancements ------------ 1. Request: Improve Tx packet rate Change: FW 5.0.10 Impact: None 2. Request: Add support for future chip revisions Change: From now on bnx2x_main.c doesn't include huge X_init_values.h files. Instead X_init_values.h were transformed to X_init_values.c, which also include internal pointers initialization function for the appropriate chip revision Impact: None 3. Request: Add additional support for BCM8727 Change: Add support module detection, over-current detection and SFP+ EEPROM access Impact: None 4. Request: Add fan-failure check for BCM8727 Change: As requested Impact: None Version 1.50.1 (April 27, 2009) =============================== Fixes ----- 1. Problem: (CQ39681) Dtape test fails on Dell TL2000 media changer device Cause: Misalignment between driver and firmware Change: FW fix in version 5.0.8 Impact: None 2. Problem: When several protocols work together, interrupt rate is the sum of all protocol rates, instead of the maximum between them Cause: State machines in host coalescing code were independent and generated interrupts on their will Change: FW fix in version 5.0.8: Add dependency between the states machine - when an interrupt is generated then all state machines of this status block are handled as expired, resulting with lower interrupt rate Impact: None 3. Problem: Bootcode unable to set phy configuration Cause: When driver is loaded, it sets Serdes to work in CL45 while the bootcode is using CL22 for phy access, so when driver is unloaded, bootcode unable to access the phy. Change: When driver is loaded set Serdes mode to CL22 only when 1G-switch is set. This shall solve the issue for older bootcodes, and will be fixed in newer bootcodes Impact: None 4. Problem: BCM8481 is not able to link up in legacy speeds Cause: Setting legacy speeds requires additional phy configuration, and speed analysis Change: Enable legacy speeds for this phy Impact: None 5. Problem: (CQ40392) Build for SLES11 do not autoload on reboot Cause: SLES11 disables modules whose source is not maintained in the kernel.org source tree Change: Provide "supported: external" modules for SLES11 Impact: None 6. Problem: BCM8481 is not able to link with 10/100 switch Cause: XGXS was initializaed to work in none-SGMII mode Change: Set XGXS to work in SGMII mode if link speed is slower the 1G Impact: None 7. Problem: Potential error on unload Cause: The ILT could have been freed while a timer scan is in progress Change: Make sure that the timer scan is done before freeing the ILT Impact: None Enhancements ------------ 1. Request: Improve Tx latency Change: Removed taking tx_lock in Tx interrupt flow. This also voided a need for tx_xon_tasklet - Tx is moved to XON state directly from bnx2x_tx_int Impact: None 2. Request: Add support for new BMAC HW block for new chip types Change: When accessing the new BMAC, use the new registers. No need to initialize the PBF HW block credits since flow-control is always enable in that block. Impact: None 3. Request: Enable support for other chips in more general way. Change: Split init values and FW into 2 different files. Work against pointers in bnx2x struct instead of global arrays. Impact: None 4. Request: Add initial support for BCM8727 Change: Add support for the new dual-port SFP+ phy Impact: None 5. Request: In BigMac2, when PFC enabled, pass pause frames towards the NIG Change: Set the appropriate bit in the bigmac control register Impact: None 6. Request: Improve Rx packet rate Change: FW 5.0.8 Impact: None Version 1.50.0 (April 02, 2009) =============================== Fixes ----- 1. Problem: Rx was getting stuck on ia64 platform when system page size was configured to be 64KB on the kernels 2.6.27 and later Cause: The implementation on PAGE_ALIGN macro has been changed, which caused downcast in some places in the code and as a result improper HW configuration Change: Add a proper casting for the argument of SGE_PAGE_ALIGN macro Impact: None 2. Problem: (CQ39552) Link LED is turned OFF while running external loopback test Cause: When using phy loopback, the link doesn't actually comes up since there's no link partner Change: Set link led up on loopback test 3. Problem: BCM8481 is not able to link up in 10/100/1000 Mbps Cause: No 10/100/1000 link signal is connected from the BCM8481 to the Everest Change: BCM8481 will connect LED4 signal to the Everest LASI signal. The Everest will use the NIG latching mechanism which allows to catch a link event even if the link toggles fast 4. Problem: SFP+ (BCM8726) boards do not use flow-control Cause: Flow control wasn't set for BCM8726 Change: Set flow control according to configuration in BCM8726 Impact: None 5. Problem: Flow-control in MF mode should behave like in SF mode Cause: Old restriction which is not necessary Change: Remove special flow-control configuration in MF mode Impact: None 6. Problem: CNIC sanity tests fails Cause: When changing to new dynamic HC code, no RAM line was allocated to default SB so there was a memory corruption Change: FW fix in version 5.0.3: Add RAM line for default SB to dynamic HC array Impact: None 7. Problem: (CQ39503) Transmission stops for 5 second Cause: Confusion in scaling of the receive window of the remote. Sometimes it is taken "as is" as a number of bytes, without scaling Change: FW fix in version 5.0.3: Scaling added in 3 places in the code Impact: None 8. Problem: Low performance on Tx side in UDP test with small packets Cause: Extra memory barrier in Tx flow Change: Replace mb() to wmb() Impact: None Enhancements ------------ 1. Request: Improve FW performance Change: HC coalescing has been moved from USTORM to CSTORM. TSTORM performance has been improved. FW 5.0.3 Impact: None 2. Request: Add support for DCC Change: As requested Impact: None 3. Request: Improve performance Change: Connect Tx and Rx to different interrupt vectors Impact: None 4. Request: Add module parameter controlling number of Rx and Tx queues Change: As requested. Number of Tx queues must be not more than number of Rx queues Impact: None 5. Request: Add "per function" statistics support for NCSI management Change: As requested Impact: None Version 1.48.106 (Mar 04, 2009) =============================== Fixes ----- 1. Problem: (CQ38925) Unload/Load with netperf TCP traffic test eventually caused a SETUP ramrod failure Cause: ISR discarded a SP interrupt due to weak synchronization of atomic variable that disables interrupt handling (intr_sem) Change: Add write memory barriers where intr_sem is updated Impact: None 2. Problem: Possible problem in pram initialization Cause: There was a bug in init code generation script Change: Fix the pram initialization Impact: None Version 1.48.105 (Mar 02, 2009) =============================== -- Upstream Version -- Fixes ----- 1. Problem: Unload/Load test under traffic caused kernel panic in skb allocation/freeing functions Cause: Previously added patch (enhancement 6 in release 1.48.100) broke proper usage of net_device object Change: Remove the mentioned patch Impact: None Version 1.48.104 (Mar 01, 2009) =============================== Fixes ----- 1. Problem: New phy version (P14) of the BCM8726 unable to link up Cause: The new phy version doesn't behave exactly like its previous version (P13), hence requires some adjustments Change: 1. Microcode download requires write of another register 2. Read from "Limiting/LRM mode" register before setting Limiting mode Impact: No impact on P13 Enhancements ------------ 1. Request: Add limited (online) GRC dump using ethtool -d command Change: As Requested Impact: None Version 1.48.103 (Feb 19, 2009) =============================== Fixes ----- 1. Problem: "ext_phy_fw version" command for BCM8705 shows invalid number Cause: BCM8705 has no microcode Change: Set BCM8705 version to 0 Impact: None 2. Problem: Potential problem in BCM8726 bit stretching work-around Cause: When module detection option is disabled, module should be transmitting regardless of invalid read from EEPROM Change: Ignore error code when setting limiting mode Impact: None 3. Problem: (CQ38925, CQ38975) "Wait Ramrod" error while running load/unload stress w/ traffic Cause: Tx wasn't properly disabled in the 'close' flow Change: Properly disable Tx during 'close' flow Impact: None Enhancements ------------ 1. Request: Use DMAE to zero the FW internal memory before loading the FW Change: As Requested Impact: None 2. Request: Remove "budgeting" in bnx2x_tx_int Change: As Requested Impact: None 3. Request: By default, multi_mode is disabled for old NAPI kernels (up to 2.6.24) Change: As Requested Impact: None Version 1.48.102 (Feb 12, 2009) =============================== -- Upstream Version -- Fixes ----- 1. Problem: FW stats counters might not be updated when running heavy stress test Cause: Sending FW stats ramrod query depends on stats_pending flag. This flag might not be cleared by sp_task() under heavy stress. Thus, next FW stats ramrod query will not be send Change: Clear stats_pending flag at the end of storm_stats_update() Impact: None Version 1.48.101 (Feb 09, 2009) =============================== Fixes ----- 1. Problem: Compilation is broken on kernels >= 2.6.24 Cause: FW constant rename was not updated in latest drop Change: Fix constant name Impact: None Version 1.48.100 (Feb 09, 2009) =============================== Fixes ----- 1. Problem: "ext_phy_fw version" command for BCM8706 sometimes shows invalid version number Cause: The version number is read during init phase. Reading the BCM8706 version during init phase is done premature Change: During init phase of the BCM8706, wait until the firmware is loaded completely before reading the version number Impact: None 2. Problem: When setting pre-emphasis values for external phys, the XGXS is also set Cause: In external-phy boards, when pre-emphasis values were set in the nvram, both the external phy and the XGXS pre-emphasis values were set, while the values fit the external phy only Change: Set pre-emphasis values in XGXS only for direct type boards Impact: None 3. Problem: (CQ37809) loopback test failure Cause: The link was initialized for real work mode and then re-init to loopback mode. During that time, incoming packets might be queued in the rx ring in front of the loopback packet Change: Always initialize the link to loopback mode if load_mode is LOAD_DIAG Impact: None 4. Problem: Possible false error in the idle check section of the self test regarding the CFC_REG_ACTIVITY_COUNTER register Cause: The test was designed to check halted system (after fatal error) and thus assumed that the chip is idle Change: Change the test to "info" debug print Impact: None 5. Problem: (CQ39439) mf_cfg function disabled error message displayed Cause: Putting the driver into disabled mode was considered an error Change: Change the printed message from error to a notification Impact: None 6. Problem: (CQ38925, CQ37645) ifconfig ethX down up may cause a wrong MSI configuration, which will prevent MSI interrupts to arrive Cause: Chip reset function cleared "MSI reconfigure enable" bit Change: Don't clear the "MSI reconfigure enable" bit Impact: None 7. Problem: Uninitialized HW blocks Cause: XCM and BRB1 port init part were missing Change: Add XCM and BRB1 port init part Impact: None 8. Problem: Constant pause is sent to the network if pause is enabled and TPA is disabled Cause: Wrong thresholds were configured Change: Set the thresholds to 0 if TPA is disabled Impact: None 9. Problem: Unloading UNDI by the driver in E1HMF mode might disable interrupts of the wrong function Cause: HC regs are splited by 4 Change: Pritend to write as function 0 when writing to HC regs Impact: None 10. Problem: BCM8726 MDIO access is not locked as it should be Cause: MDC/MDIO access to BCM8726 is done via single EMAC, hence all MDC/MDIO access to this phy needs to be locked, like BCM8072 and BCM8073 Change: Lock the hardware using MDIO_RESOURCE when accessing the BCM8726 phy via MDIO Impact: None Enhancements ------------ 1. Request: Set default WoL state according to nvram settings Change: As Requested Impact: None 2. Request: WRR between different COS queues at TX side Change: Added in driver and in FW 4.8.53 Impact: None 3. Request: Add ability to change BCM8726 TX PreEmphasis using nvram configuration Change: When nvram config "Override pre-emphasis configuration" (75) is set, use Tx pre-emphasis nvram configuration (47), lane0 value to set the Main Tap and lane1 to enable TX-PreEmphasis in BCM8726 Impact: None 4. Request: Add basic support for BCM8481 Change: As Requested Impact: None 5. Request: Limit Tx queue number to one for kernels 2.6.24 - 2.6.26 (non-TSS kernels with new NAPI) Change: As Requested Impact: None 6. Request: Add RSS support for old NAPI kernels (up to 2.6.24) that support MSI-X Change: As Requested Impact: multi_mode = 1 is now the default for all kernels Version 1.48.51 (Jan 26, 2009) ============================== Fixes ----- 1. Problem: Load balancing didn't work Cause: Driver assumed that there was Tx work as long as driver packets producer and consumer were not equal Change: Changed driver's Tx work amount evaluation logic Impact: None Version 1.48.50 (Jan 22, 2009) ============================== Fixes ----- 1. Problem: (CQ38862) modprobe fails to load driver on SuSE 11 Cause: SuSE 11 does not allow 3rd party modules to be loaded without toggling a flag in /etc/modprobe.d/unsupported-modules Change: Toggle the bit during make install Impact: None 2. Problem: Accessing nvram while the driver is down caused PCI error Cause: The driver attempted to access the nvram while the device was in D3 since it was disabled Change: Prevent nvram access when the device is down Impact: None 3. Problem: FW assert while running multi_mode=2 with tx MULTI_QUEUE enabled Cause: start_xmit() selected different tx queue than the tx_lock was taken Change: Implement dev->select_queue() callback so start_xmit() selects the correct tx queue Impact: None 4. Problem: Compilation problem with kernel 2.6.29 Cause: netif_rx_schedule and netif_rx_complete do not require the device parameter anymore Change: Do not pass the device paramter for those functions for kernels above 2.6.29 Impact: None 5. Problem: Invalid presentation of BCM8726 fw version Cause: The register that holds the fw version is used for other functionality as well, and it is run over after firmware is loaded Change: Save the firmware version of all external phys in shared memory, after firmware is loaded Impact: None 6. Problem: BCM8726 may start tx laser before module detection occurs Cause: Module detection used to be done during link update, which probably would be after tx was enabled Change: From now on use interrupt driven event using GPIO3, to detect module plugged in/out, and execute module detection then Impact: None 7. Problem: 1G switch configuration (using the 5th lane) doesn't work Cause: Support for Serdes (5th lane) was not maintained since no production design used it and when switching to CL45 it stopped working Change: In order for control the Serdes over Clause45, (and not Clause22), it requires first one time register setting in Clause22 Impact: None 8. Problem: Softlock during remove_one() Cause: NAPI context was not released before unloading Change: Release NAPI context before unloading Impact: None 9. Problem: False self-test failures due to MC_ASSERT Cause: iSCSI FW sometimes report run-time warnings which are acceptable and do not cause any harm Change: Do not check for MC_ASSERT. A real FW error will cause the interrupt test to fail Impact: None 10. Problem: Possible miss of FW response on unload Cause: Missing memory barrier while waiting for FW response Change: Add read memory barrier Impact: None 11. Problem: (CQ37809) loopback test failure Cause: A link change interrupt might be queued and activated after the loopback was set Change: Lock all PHY activities while running loopback test Impact: None 12. Problem: (CQ39057) Everest, 57710 Error message: bnx2x_start_xmit: BUG Tx ring full when queue awake Cause: In kernels 2.6.24 - 2.6.26 (non-TSS kernels with new NAPI) there can be a possibility that NAPI instance (fp instance) other than the one moved Tx to XOFF state will wake the Tx So, this is highly possible that start_xmit is called while the ring is still full In any other kernel this state is an obvious bug Change: Remove an error message in the code for the mentioned kernels Impact: None Enhancements ------------ 1. Request: Use FW 4.8.50 Change: As Requested Impact: None 2. Request: BCM8726 should be able to link up at 1G Change: Add support for 1G for BCM8726 Impact: When requested speed is 1G force, it will try to link in 1G force. When the speed requested is autoneg, and the speed mask capabilities contain 1G, it will try to autoneg in 1G as well as in 10G 3. Request: (CQ39048) Add ability to change 8706 XAUI RX Equalizer using nvram configuration Change: When nvram config "Override pre-emphasis configuration" (75) is set, use the 3LSB bits of RX_equalizer nvram configuration (48) to set the BCM8706 XAUI RX Equalizer registers for each lane Impact: None 4. Request: Verify external phy image before ROM upgrade Change: New headers will be added to the images of external phys to be upgraded. Currently this list includes BCM8073, BCM8726 and SFX7101. The headers will be checked against fixed magic number and specific phy type Impact: From now on, external phy images MUST include image header Version 1.48.11 (Jan 13, 2009) ============================== Fixes ----- 1. Problem: Possible memory overrun on platforms with page size more than 8K Cause: "linearization" should take into an account system page size and run or not run accordingly Change: Fixed the compilation condition Impact: None 2. Problem: Compilation problem with kernel 2.6.28 Cause: struct net_device_ops was postponed to next release Change: Remove struct net_device_ops from compilation Impact: None Enhancements ------------ 1. Request: Limit multi_mode to support only regular mode Change: As requested Impact: None Version 1.48.10 (Jan 07, 2009) ============================== Fixes ----- 1. Problem: (CQ39129) driver assert while logging out during iSCSI max sessions test Cause: QM initialization was wrong Change: Fix QM initialization Impact: None Version 1.48.9 (Jan 05, 2009) ============================= Fixes ----- 1. Problem: (CQ38909) on IA-64 with TPA enabled, kernel memory was sometimes smeared (depending on the MTU size) Cause: The max TPA fragments assumed 4KB pages and that system had 16KB pages Change: Fix the SGE (TPA fragment) size to be system page size Impact: Improved performance on systems with page size > 4KB like PPC and IA-64 Version 1.48.8 (Dec 31, 2008) ============================= Fixes ----- 1. Problem: (CQ38992) on IA-64 Driver crash when transmitting on all 8 functions in chariot IPv6 with tx checksum disabled scenario Cause: FW read the buffer descriptor (BD) producer and after that the BD itself before the BD content was updated. This is possible on IA-64 due to weak ordered memory module Change: Add write barrier after updating the BD data and before updating the BD producer Impact: None Version 1.48.7 (Dec 30, 2008) ============================= Fixes ----- 1. Problem: (CQ38985) Port swap is not working for BCM8726 Cause: BCM8726 is driven by MDC/MDIO through single EMAC. In case of port swap, the EMAC access was left with EMAC0 Change: In case port-swap is enabled in the NIG, access MDC/MDIO via EMAC1 Impact: None 2. Problem: BCM8726 was not reset when driver was unloaded Cause: This phy hardware reset affects both ports and thus wasn't used Change: When link needs to be reset, reboot the micro-controller of the BCM8726 Impact: None 3. Problem: BCM8726 was not reset during init Cause: This phy is connected using static port-swap, hence the reset should have been triggered through the opposite port from the spec Change: Set gpio1 during common init from port1 instead of port0 Impact: None 4. Problem: (CQ38991) In E1HMF mode some interfaces occasionally misreport link speed Cause: Races between interfaces during init cause an interrupt event to be ignored Change: Flag the device as "ready for interrupts" prior to enabling the interrupts Impact: None 5. Problem: (CQ39057) Everest, 57710 Error message : bnx2x_start_xmit: BUG Tx ring full when queue awake. Cause: Tx BD producer update may not be "seen" by bnx2x_tx_int function running on different CPU, thereby bnx2x_tx_int may erroneously conclude that it may wake Tx. Change: Add smp_mb() after update of Tx producer before putting Tx to XOFF state. Impact: None 6. Problem: In E1HMF mode with multi queue, functions 2..7 cannot receive data Cause: Incorrect initialization of indirection table Change: Initialize correctly the indirection table Impact: None 7. Problem: The driver debug crash dump does not handle cyclic rings correctly Cause: The debug prints were simply from start to end and did not print anything in case start < end (cyclic rings) Change: Enhance the debug prints with cyclic logic Impact: None 8. Problem: Packets dropped due to lack of host buffers were counted twice - in good and bad statistics Cause: Firmware does not maintain separate counters for unicast/broadcast/multicast drops, therefore driver cannot subtract these values from the good packet/byte counters Change: Fixed in FW 4.8.9 Impact: None 9. Problem: iSCSI FW: High non-paged host memory consumption Cause: Unnecessary optimization of chipset<->memory bandwidth in expense of memory consumption Change: Fixed in FW 4.8.9 Impact: None Version 1.48.6 (Dec 18, 2008) ============================= Fixes ----- 1. Problem: System hangs when running ifconfig on an 8 CPUs system Cause: A loop variable was used again in an inner loop. That caused an endless loop Change: Use another variable for the inner loop Impact: None 2. Problem: Some stats names are not displayed but their values were displayed in other stats Cause: Incorrect condition caused to skip stats names but not their values Change: Correct the condition Impact: None 3. Problem: iSCSI FW: During connection establishment on-chip (option2), in case we receive SYN/ACK with incorrect dst_mac the chip gets stuck Cause: This scenario led to accessing invalid PRAM address which made the chip halt Change: Fixed in FW 4.8.8 Impact: None 4. Problem: NAPI poll mode was stopped (netif_rx_complete called) and HW interrupts reenabled even if the whole device quota had been consumed. Cause: There was a bug in NAPI poll-mode canceling logic. Change: Fix the logic in NAPI poll method. Impact: None Version 1.48.5 (Dec 11, 2008) ============================= Fixes ----- 1. Problem: TCP packets with VLAN weren't handled properly, when received in non-accelerated VLAN traffic mode (when VLAN tag is not stripped by the FW) Cause: Driver didn't support receiving VLAN packets in non-accelerated mode. for TPA packets, there was a wrong IP header offset calculation and, as a result, writing IP checksum to the wrong offset. Non-TPA packets weren't handled right as well: driver always used vlan_hwaccel_receive_skb to pass an skb with VLAN to the stack, while it should use netif_receive_skb in non-accelerated case Change: Fixed IP header offset calculation for TPA packets. Fixed VLAN skb handling logic. Impact: None 2. Problem: (CQ38698, CQ37931) No link when using direct attached copper cable with BRCM8726 PHY Cause: Passive copper cables should always operate in LRM mode rather than in Limiting mode Change: In case of passive copper cables, link up in LRM mode Impact: None 3. Problem: (CQ38815) iSCSI failure during hotplug Cause: Not everything is setup before calling register_netdev(). pci_set_drvdata() and bnx2x_init_bp() were called after register_netdev(). This potentially can also affect L2 because bnx2x_open() can potentially be called before those 2 calls have successfully completed Change: Call register_netdev only at the end of successful setup Impact: None 4. Problem: (CQ38862) modprobe fails to load driver on SUSE11 Cause: SuSE does not allow 3rd party modules to be loaded without toggling a flag in /etc/modprobe.d/unsupported-modules Change: Toggle the bit through the packaging script Impact: None 5. Problem: iSCSI FW: In non-aligned PDUs with data-digest enabled, the data-digest is calculated to a wrong value Cause: The CRC machine was not reset correctly in non-aligned PDUs Change: Fixed in FW 4.8.6 Impact: None 6. Problem: iSCSI FW: Connection wasn't initialized with the right parameters for the TX in E1HMF mode Cause: Initialization was done using SF mode Change: Fixed in FW 4.8.6 Impact: None 7. Problem: (CQ38886, CQ38888) iSCSI FW: Double-vlan was not supported for iSCSI. The packet was transmitted with bogus IP length and no inner-vlan Cause: The vlan flag and the header builder command size weren't set correctly Change: Fixed in FW 4.8.6 Impact: None 8. Problem: Byte counters statistics did not count the 4 FCS bytes Cause: The FCS bytes were not counted Change: Fixed in FW 4.8.7 Impact: None Enhancements ------------ 1. Request: SFP+ optical module (MSA) vendor verification should be optional when using BCM8726 PHY Change: Verify the optical module vendor according to nvram configuration option #81: "Optic Module Vendor Enforcement" Impact: The new nvram bit is visible using ediag version 4.8.3 or later 2. Request: In multi queue mode, separate FW stats per queue Change: As requested Impact: None 3. Request: Change some stats names: pause_frames_received is now rx_pause_frames pause_frames_sent is now tx_pause_frames timer_max_events is now rx_constant_pause_events Change: As requested Impact: None 4. Request: Align with RMON MIB (rfc 1757): net_device_stats.rx_bytes is total_bytes_received net_device_stats.multicast is total_multicast_packets_received Change: As requested Impact: None 5. Request: Use static singlethread_workqueue shared for all bnx2x interfaces Change: As requested Impact: None Version 1.48.4 (Nov 26, 2008) ============================= Fixes ----- 1. Problem: CNIC driver is failing on higher functions of 57711E Cause: The status block ID for the CNIC was not assigned correctly for higher functions Change: Assign the status block ID according to the function ID Impact: None Version 1.48.3 (Nov 20, 2008) ============================= Fixes ----- 1. Problem: Intermittent MDC/MDIO failures on 8726 PHY Cause: MDIO register access is sometimes broken since PHY is not hard reset Change: Pull GPIO1 low for 1 ms after power-on. Note that the hard reset is a shared resource on the PHY Impact: None 2. Problem: gso_type indication was not set for TPA packets Cause: gso_type wasn not set Change: Set gso_type accordingly Impact: None 3. Problem: Possible false parity indication Cause: When using 5 tuple hash (not used today) the searcher might falsely indicate parity error Change: Mask bit 6 of the searcher parity errors Impact: None 4. Problem: (CQ37809) Intermittent failures in ethtool diagnostic (CQ36771) Calltrace and interface locks up when up/down interface Cause: If sp_task() is queued in the shared work queue after the linkwatch, it will be starved and will not update the link status until ethtool diagnostic ends and frees rtnl that linkwatch is waiting for Change: Create private workqueue Impact: None 5. Problem: (CQ38139) iSCSI FW: Performance < 40% of Peak Advertised Cause: Inefficient implementation of ring management in firmware Change: Fixed in FW 4.8.4 Impact: None 6. Problem: (CQ38424) SAFC iperf drop result is 5 times higher than previous build Cause: Mis-configuration of the SAFC timeout Change: The new SAFC timeout will be 200usec Impact: None Version 1.48.2 (Nov 10, 2008) ============================= Fixes ----- 1. Problem: SAFC packets were not generated periodically by NIG Cause: A HW architecture bug Change: Fixed in FW 4.8.3 Impact: None Enhancements ------------ 1. Request: Support iSCSI MAC and VLAN per function in 57711E Change: Added in FW 4.8.3 Impact: None Version 1.48.1 (Nov 06, 2008) ============================= Fixes ----- 1. Problem: Possible race between init_one() and open() with calling to netif_carrier_off() Cause: After register_netdev(), open() can be called at any time and the interrupt handler can be called after that. If you get a link change interrupt, the netif_carrier_* call from IRQ or NAPI poll can race with netif_carrier_off() call in probe. Change: Move netif_carrier_off() to open() Impact: None 2. Problem: Possible access to illegal addresses inside the chip during self test Cause: Loop size was given in bytes and not in number of entries Change: Fix the loop size Impact: None Enhancements ------------ 1. Request: Fewer dropped packets when flow control is enabled on 57711/57711E Change: As requested Impact: None Version 1.48.0 (Nov 03, 2008) ============================= Fixes ----- 1. Problem: Failures on RH5 when using enabling and disabling the functions one by one on 57711E Cause: Unloaded driver tries to access the PHY to get its FW version since RH calls "ethtool -i" periodically Change: Clear the PMF indication when the driver is unloaded Impact: The PHY FW is inaccessible when the driver is unloaded 2. Problem: Searcher block initialization for 57711E is wrong Cause: The searcher registers are split (same address for all functions) Change: Use the port offset and not the function offset Impact: None 3. Problem: Kernel panic when failing to load the driver Cause: netif_carrier_off was called before making sure that the driver can be loaded Change: Call netif_carrier_off as last action in the probe Impact: None Enhancements ------------ 1. Request: Add iSCSI for 57711E Change: FW 4.8.2 supports iSCSI for 57711E Impact: None 2. Request: Add transmit multi queue support Change: As requested Impact: This fetaure is available on 2.6.27 kernel when using MSI-X Version 1.46.12 (Oct 29, 2008) ============================== Fixes ----- 1. Problem: (CQ37832) System crash when running TCP connections on 57711 Cause: Access to unsupported address in FW PRAM due to increased FW size Change: Fixed in FW 4.6.21: Moved all operational FW code to legal PRAM addresses Impact: None 2. Problem: After some cases of driver failure, driver cannot be re-loaded Cause: The driver took the HW out of reset without making sure that it was indeed in reset state Change: Reset the HW before taking it out of reset Impact: None 3. Problem: (CQ37893) Driver failure when installed on RHEL4.5 from PXE Server Cause: MSI-X fails due to memory allocation failure and though MSI registration succeeded interrupts are not received in MSI mode Change: Use INTx mode when MSI-X fails due to memory allocation failure Impact: None Enhancements ------------ 1. Request: Add debug module parameter to force MRRS value Change: As requested Impact: None Version 1.46.11 (Oct 23, 2008) ============================== Fixes ----- 1. Problem: (CQ37915) On 57710, if self-test is run on port 1, port 0 stops transmitting/receiving traffic unless in promiscuous mode Cause: Primary MAC address of port 0 is lost after the self-test on port 1 Change: Changed self-test to fix the problem Impact: None 2. Problem: (CQ37087) iSCSI FW: Data digest error event found in event viewer Cause: Wrong UPB command in non-aligned data that is adjacent to iSCSI header in the TCP segment from the target Change: Fixed in FW 4.6.17 Impact: None 3. Problem: (CQ38061) iSCSI FW: Invalid iSCSI PDU seen while running OEM diagnostic to Equallogic target Cause: Misinterpretation of the 3720 RFC regarding data-in sequences definition Change: Fixed in FW 4.6.17 Impact: None 4. Problem: (CQ37861) iSCSI FW: BSOD occurred while running iLab's TOE automated tests and iSCSI traffic Cause: Failed to identify task cleanup during processing of a data-in PDU that belong to the same task Change: Fixed in FW 4.6.17 Impact: None 5. Problem: (CQ38088) iSCSI FW: FW assert occurred while passing CNIC traffic Cause: Race in iSCSI FW between writing task context entry using the data path and writing R2TQE using the control path Change: Fixed in FW 4.6.18: Eliminate race, by using R2TQE write through the data path Impact: None 6. Problem: When enabling a lot of debug prints on a system with many (more than 6) interfaces, timeout can occur on driver load Cause: Since printk is busy, it can take longer for operations to complete Change: Increase the timeout value Impact: None 7. Problem: After load failure, the driver cannot be re-loaded Cause: The FW was not informed that the driver was unloaded Change: On load failure, send "unload" notification to the FW Impact: None Enhancements ------------ 1. Request: (CQ38040) Do not use crc32c_le symbol Change: Copied the function into the driver Impact: None Version 1.46.10 (Oct 20, 2008) ============================== Fixes ----- 1. Problem: System panic under stress traffic Cause: The alignment to the machine cache size was not calculated correctly for the Rx buffer and so a buffer overrun occurred Change: Allocate the right amount of memory considering the cache alignment Impact: None Version 1.46.9 (Oct 16, 2008) ============================= Fixes ----- 1. Problem: (CQ37772) iSCSI FW: Bad data digest is transmitted Cause: Missing initialization in FW when going out of slow start Change: Fixed in FW 4.6.16: Add rxmit parameters init to normal TX flow Impact: None 2. Problem: (CQ37809) Intermittent Failures in Ethtool Diagnostic Cause: When setting PHY loopback, it required some time before configuration is actually take place. Change: Add 200ms after setting the PHY loopback Impact: None 3. Problem: Unable to receive packets on the iSCSI MAC address Cause: Promiscuous in rx mode was ran over by resetting the rx mode Change: Reset the rx mode before setting promiscuous mode Impact: None Enhancements ------------ 1. Request: Add the licensing structure to the bnx2x_hsi.h Change: As requested Impact: None 2. Request: Set FW to machine cache alignment (up to 256B) for Rx packets L2 data Change: As requested Impact: None Version 1.46.8 (Oct 07, 2008) ============================= Fixes ----- 1. Problem: A potential firmware bug when L2 packet is duplicated to more than one L2 client when TPA is enabled Cause: Buffer could have been released before it was read by all L2 clients Change: Fixed in FW 4.6.15 Impact: None 2. Problem: (CQ37471) iSCSI FW: (iLab test 5.12) TCP CLOSE timeout issue Cause: Chip halted since handler apparently stuck in the queue Change: Fixed in FW 4.6.15 Impact: None 3. Problem: (CQ37244) iSCSI FW: (iLab test 5.10) Chip hangs when receiving SYN+RST+ACK after SYN sent Cause: SYN retransmission with invalid sequence number caused by not rewinding the sequence number after retransmission Change: Fixed in FW 4.6.15 Impact: None 4. Problem: iSCSI FW: Chip halts after few unanswered connections attempts Cause: After retransmits were done, the chip didn't return the credits it should have Change: Fixed in FW 4.6.15 Impact: None 5. Problem: (CQ37668) iSCSI FW: Chip hangs when trying to connect to iSCSI target with no licenses present Cause: When licensing of new connection fails, there's a credit leak which caused an invalid handler to wake up Change: Fixed in FW 4.6.15 Impact: None 6. Problem: (CQ37610) A potential problem if call to register_cnic during MTU change Cause: CNIC and the bnx2x drivers can be trying to setup the chip at the same time Change: Check for intr_sem in register_cnic to prevent this problem Impact: None Enhancements ------------ 1. Request: Allow better response time to SAFC packets Change: Configure max-byte-credit as required for SAFC mode Impact: None 2. Request: Add priority mapping table to map SAFC priority to HW queue Change: As Requested Impact: None Version 1.46.7 (Sep 28, 2008) ============================= Fixes ----- 1. Problem: (CQ37161) Running ifconfig down up on one interface can cause other interface to fail Cause: Overriding internal memory that belongs to the other interface Change: Writing only memory of the correct interface Impact: None 2. Problem: (CQ37288) iSCSI FW: iSCSI offload with Everest is extremely slow Cause: PSH flag was not set in last PDU TCP packet Change: Fixed in FW 4.6.13 Impact: None 3. Problem: Possible overriding the internal memory and possible failure to work with MSI-X when RSS and CNIC enabled Cause: Allocate 16 queues for RSS + 1 queue for CNIC Change: Allocate only 15 queues for RSS Impact: None 4. Problem: Lower performance on Big-Endian machines Cause: Failure to read correctly the PCI_EXP_DEVCTL on Big-Endian systems. Read PCI_EXP_DEVCTL to u32 variable instaed of u16 variable Change: Read PCI_EXP_DEVCTL to u16 variable Impact: None Version 1.46.6 (Sep 25, 2008) ============================= Fixes ----- 1. Problem: (CQ37398) Issuing ifdown command on one port causes the other port not to respond either Cause: Clearing all entries in the CAM Change: Clear only the appropriate entries in the CAM Impact: None 2. Problem: (CQ37407, CQ37508, CQ37509) Compilation fails on RH 4.5, 4.6, 4.7 Cause: A compiler bug Change: Workaround in the code Impact: None 3. Problem: (CQ36673) iSCSI FW: Hardware attention on MaxLuns Cause: Activity count leak in Ustorm microprocessor Change: Fixed in FW 4.6.12 Impact: None 4. Problem: (CQ37224) iSCSI FW: (iLab test 5.10) Hardware attention (Microcode assert) Cause: iSCSI FW: SYN+RST drop after SYN sent caused AC leak in TStorm microprocessor in option2 Change: Fixed in FW 4.6.12 Impact: None 5. Problem: iSCSI FW: (iLab test 6.1) Hardware attention (Microcode assert) Cause: Missing update of R2T buffer offset Change: Fixed in FW 4.6.12 Impact: None 6. Problem: Possible false warning (not a failure) in the idle check section of the self test regarding the BRB1_PRTY_STS register Cause: The condition was not masked properly Change: Fixed the condition check for that register Impact: None Enhancements ------------ 1. Request: Add support for BCM8726 (Dual port phy SFP+ ) including MSA module recognition and verification Change: As Requested Impact: None Version 1.46.5 (Sep 17, 2008) ============================= Fixes ----- 1. Problem: (CQ36478) MSI fails on Big-Endian systems Cause: The IGU was configured to swap the data over the PCI Change: Config IGU not to swap the data and add swap in the driver where it is necessary Impact: None 2. Problem: (CQ37309) Can not compile on some old kernels Cause: Call to pci_disable_msi() was not under appropriate #ifdef Change: Add the appropriate #ifdef Impact: None 3. Problem: Self test sometimes indicates on a failure Cause: A test result was declared as an error instead of a warning Change: Declare the test result as a warning Impact: None Version 1.46.4 (Sep 16, 2008) ============================= Enhancements ------------ 1. Request: CNIC enabled in default compilation Change: As Requested Impact: None Version 1.46.3 (Sep 11, 2008) ============================= Fixes ----- 1. Problem: (CQ34165) High number of pause frames Cause: The thresholds in the receive buffer needed some tuning Change: Tuned the thresholds in the receive buffer Impact: None 2. Problem: (CQ36559, CQ36989) System crash when working on PPC with 64KB page Cause: The allocated buffer was bigger than the PCI mapped buffer, and in the 64KB configuration the buffer is aligned only to 128 bytes and so the packet can overstep the PCI mapped area and cause a fatal error Change: Map the same size as the allocated buffer size Impact: None 3. Problem: (CQ36479) EEH recovery causes system crash Cause: When EEH detects an i/o error it resets the device thus it cannot be accessed. In this case the driver needs to unload its interface only with OS, kernel and network stack but not with the device. Change: Add a special unload function for EEH recovery that does not access the device Impact: None 4. Problem: Option2 RST did not complete Cause: Missing context initialization in FW Change: Fixed in FW 4.6.10 Impact: None 5. Problem: (CQ37090) Placement of RQ data to wrong address Cause: ASM problem Change: Fixed in FW 4.6.10 Impact: None 6. Problem: (CQ36912) BSOD when destroying erroneous connections Cause: Activity count leak Change: Fixed in FW 4.6.10 Impact: None 7. Problem: (CQ 36987) Unable to perform media changer/tape functions Cause: Bad padding calculation in long PDUs Change: Fixed in FW 4.6.10 Impact: None Enhancements ------------ 1. Request: Incorporate latest firmware 4.6.10 Change: As Requested Impact: None 2. Request: Add stats counter for NIG timer max events Change: As Requested Impact: None 3. Request: Enable timer scan for CNIC Change: As Requested Impact: None 4. Request: Add support for using MSI interrupt mode Change: As Requested Impact: None 5. Request: (CQ36758) Firmware now enforces iSCSI licensing and fails the offload if no iSCSI initiator license exists Change: Added in FW 4.6.10 Impact: None Version 1.46.2 (Aug 25, 2008) ============================= Fixes ----- 1. Problem: (CQ36510, CQ36583) Link LED does not turn off when 1G link is lost when external PHY is present Cause: The current code manually turned off the 10G LED but did not handle other speeds which are controlled by HW. Since the HW detect link with the external PHY, the link LED stayed on Change: Turn off the LED for all speeds manually when link goes down Impact: None 2. Problem: Packets with bad TCP/UDP checksum error are dropped Cause: Actively dropping packets with bad TCP/UDP checksum in the driver Change: Do not drop packets with bad TCP/UDP checksum - let the stack decide what to do with them Impact: None 3. Problem: Some packets are dropped without showing on any statistics counter Cause: The driver assumed that packets which were identified as bad are counted by the FW, but the FW does not count those when configured to pass them Change: Add counters in the driver Impact: None 4. Problem: (CQ36153) Flow control doesn't work against non KR switches Cause: Missing support for clause-37 auto negotiation Change: Add support for clause-37 auto negotiation Impact: 0.5 seconds delay during autoneg 5. Problem: Link dangling during init Cause: no delay after initial link change interrupt Change: Add 30ms before allowing link update indications Impact: Additional 30ms during init phase 6. Problem: Unable to load driver after iSCSI boot under incoming traffic Causes: The reset function after iSCSI boot did not handle closing incoming traffic Change: Close the port to prevent Rx traffic and clear all buffers Impact: None 7. Problem: (CQ36408) Failed driver disk installation with SuSE10 and RH4 Cause: The CRC module is not part of the Kernel in those distributions Change: Special driver disk compilation mode to include the CRC routine in the driver though it is an external module in normal installation with those distributions Impact: The driver in the driver disk is less efficient due to the CRC algorithmic implementation and not static tables as in the CRC module which is used when loading the driver normally under SuSE10 and RH4 8. Problem: (CQ34921) Possible memory leak Cause: rx_page_ring was not freed Change: free rx_page_ring Impact: None 9. Problem: (CQ36242) brb_truncate statistics increments to very high numbers Cause: brb_truncate_discard is a 4 bytes variable but 8 bytes were copied to ethtool Change: use brb_truncate from NIG and extend it to 8 bytes Impact: None 10. Problem: Tx Pause were not send on 1G link Cause: Missing initialization to the EMAC TX_MODE Change: Set FLOW_EN bit in the TX_MODE in addition to the EXT_PAUSE_EN Impact: None 11. Problem: (CQ36361) Changing speed to 1G on KR switch side results in no link in OS Cause: When Serdes is configured to 1G, it should remove setting MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL bit in MDIO_REG_BANK_SERDES_DIGITAL Change: Unset MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL bit for every link change Impact: None 12. Problem: Possible loss of attentions Cause: Attention mask register was manipulated without a proper lock Change: Protect attention mask register using hw lock, use read modify write on this register Impact: None 13. Problem: HW lock was sometimes not taken Cause: HW lock was not taken per function Change: use lock control per function Impact: None 14. Problem: (CQ36089) RX counter on all functions are incorrect Cause: tstorm_client.statistics_counter_id was 0 for all functions Change: set tstorm_client.statistics_counter_id to the cl_id of the function Impact: None 15. Problem: (CQ36090) down/up of the interface during traffic on the other interface caused traffic to stop Cause: Aggregation context must be initialized only at COMMON init block Change: Change initialization code and init-tool output Impact: None 16. Problem: (CQ35672) Doorbell was arriving after halt and before start ramrod Cause: XON/XOFF flow control should be disabled in NIC close flow Change: Fixed XON/XOFF code Impact: None 17. Problem: (CQ34555) MSI-x PCI spec aberration Cause: PBA table starts from the middle of a page Change: Use GRC access instead of BAR access Impact: None 18. Problem: Lost link indication in BCM8073. Cause: During link establishment LASI latched signal wasn't reset and stopped link change indication Change: Fixed flow to clean latched LASI signal Impact: None 19. Problem: Declaring bootcode timeout too soon Cause: The bootcode can take a while to set a link when a link is needed (for example, WoL is enabled). The driver should allow adaptive scheme to wait for the bootcode Change: Waiting up to 2 seconds in 10ms intervals Impact: In some cases, the driver unload process will take up to 2 seconds 20. Problem: Wrong WoL capability report Cause: The WoL capability was read from the nvram which was not always updated Change: Determine the WoL capability from the PCI configuration space Impact: None 21. Problem: (CQ36644, CQ366697, CQ36928, CQ36983) On some cases with low traffic, the computer was irresponsive up to the point of soft-lockup and even hard lockup. Ping-pong latency tests always hit this problem and so get very low result Cause: If the FW was at the end of the Rx page, the driver will already be at the beginning of the next page. In this case the condition of having the driver and the FW on the same pointer was never true and so the driver kept polling until timeout or another packet came in. On driver unload (including intermediate driver unload like in MTU change or self-test) the lockup was fatal Change: Change the check for "now work" to handle end of page as well Impact: None 22. Problem: (CQ36697 CQ36771) Interface locks up when up/down interface Cause: In nic_unload(), call to netif_poll_disable() cause to set __LINK_STATE_RX_SCHED flag that is checked in dev_close() in a loop forever. This flag is cleared by netif_rx_complete() called by bnx2x_poll() which is not called if !netif_running() Change: Reorder nic_unload() - first close interrupts, then only if netif_running() call netif_poll_disable() Impact: None 23. Problem: (CQ36795) driver fails to load after iSCSI boot Cause: Unloading UNDI by the driver is protected by a HW lock. With a KR (8073) interface, unloading the UNDI takes more than 1 sec. Taking the lock by another driver times out after 1 sec then the driver tries also to unload UNDI. Change: Clear UNDI signature and release the lock. Only the driver who saw UNDI signature will continue to unload UNDI. Impact: None 24. Problem: Allocate skbs for unused aggregation queues in 57710 Cause: Allocate skbs for 64 aggregation queues but 57710 has only 32 Change: Allocate skbs for max_agg_queues according to chip id Impact: None 25. Problem: Wrong cleanup on exit from nic_load() in case of a failure Cause: Upon some failure nic_load() exits without disabling and freeing the interrupts Change: Fix to disable and free the interrupts in that case Impact: None 26. Problem: Potential link problem when loading two ports with 8073 PHY Cause: Initializing the 8073 PHY takes more than 1 seconds and the HW lock might expire since it is only trying for 1 second Change: Increase the HW lock timeout to 5 seconds Impact: None 27. Problem: XAUI link on port0 goes down and then up, when the link on port1 is changed Cause: When master port (port1) is down, it will also cause the blade side down. In turn, PLL will change speed from 10G to 1G. It will cause XAUI clock to both ports down and then up again Change: Set bit in the BCM8073 that enables the fix Impact: None 28. Problem: (CQ36772) KR with 8073 PHY sometimes does not establish link Cause: A missing delay between initializing the PHY SPI ROM and inserting the PHY back to low power mode Change: Add 15ms delay after loading the SPI PHY ROM which is before entering low power mode Impact: None 29. Problem: Sometimes when unloading the driver a message will appear: "sp_running (j 1)" Cause: Wrong condition, the message should appear only if the counter (j) is greater than 1000. This is a false alarm Change: Fix the print condition Impact: None 30. Problem: When upgrading 8073 SPI ROM PHY to version 0103 the link will not come up Cause: Register 0x8370 is no longer required in the new version and writing to it cause the link not to come up Change: Remove the write to address 0x8370 Impact: None 31. Problem: On some KR boards when loading driver on port0, and port1 is not loaded, sometimes the XAUI link is not coming up Cause: The 8073 PHY has two ports that share a single clock. This clock is routed to a port deemed to be the master (port 1), and then a PLL at the master sets the clock frequency and routes the buffered clock to both the master XAUI interface as well as the slave (port 0) XAUI interface. If port 0 is loaded while the 8073 PHY SPI ROM is not loaded, the PLL for port 0 is not guaranteed to lock Change: First driver to be loaded reset and download SPI ROM on both ports of the 8073 PHY during one-time initialization Impact: The 8073 PHY is only reset when both ports are brought down 32. Problem: On some KR boards when unloading driver on port1 port 0 might loose link Cause: The 8073 PHY has two ports that share a single clock. This clock is routed to a port deemed to be the master (port 1), and then a PLL at the master sets the clock frequency and routes the buffered clock to both the master XAUI interface as well as the slave (port 0) XAUI interface. If port 1 is unloaded while port 0 is in use, the port 0 PLL might loose lock Change: Do not reset the PHY if either driver is still up Impact: The 8073 PHY is only reset when both ports are brought down 33. Problem: When loading driver after it was loaded before, packets are getting into the chip before the MAC addresses are configured (but not into the host) Cause: The HW filters are not cleared when the driver is unloaded so previous driver configuration is still present Change: Clear HW filters so no packet will come in when driver is unloaded Impact: None 34. Problem: Driver does not pass the last version of checkpatch.pl Cause: Some updates to the script found some coding standard violations in the code Change: Fixed all reported errors and spelling mistakes Impact: None 35. Problem: (CQ36492) rx_csum_offload_errors increments for any none TCP/UDP packet Cause: Parsing CQE flags incorrectly Change: Parse CQE flags according to CQE status bits Impact: None 36. Problem: Packets with IP checksum error are dropped Cause: Dropping packets with IP checksum error Change: Pass packets with IP checksum error to the stack. Drop only packets with L2 errors Impact: None 37. Problem: (CQ46480) The nomcp module parameter is causing kernel panic Cause: This debug parameter was not needed and not maintained Change: Remove this debug parameter. The driver can detect if the FW is missing and act accordingly Impact: None 38. Problem: Per function statistics are not cleared on driver load unload Cause: The FW statistics area was not cleared on driver load Change: Clear FW statistics area when loading the driver Impact: None 39. Problem: (CQ36204, CQ36423) Self-test memory failures reported intermediately Cause: Did not apply the right mask on the HW report caused some false positives Change: Use mask to check only the memory errors report Impact: None 40. Problem: (CQ36497) Self-test idle_check part is failing Cause: Did not apply the right mask on the HW report caused some false positives Change: Use mask to check only the memory errors report Impact: None 41. Problem: (CQ36514) Failed to load the driver after iSCSI boot on SuSE10 SP2 Cause: The built-in driver from the SuSE10 SP2 (1.42.3) was loaded after the iSCSI-boot Change: Added update.post file to SuSE10 SP2 dd.iso Impact: None 42. Problem: (CQ36382) Low 1G UDP performance with one connection with flow control disabled Cause: The credits in the transmitter HW caused too much gap between UDP packets in case the flow control was disabled Change: Use the same HW credit as if the flow-control is enabled when the line speed is 2.5G or less Impact: None 43. Problem: (CQ35662) NVRAM pre-emphasis support does not take effect Cause: Current nvm values didn't actually affect the phy Change: To keep backward compatibility, only in case the "Override pre-emphasis configuration" nvm option is enables, it sets the the tx preemphasis and rx equalizer values for the 4 lanes according to the "XGXS backplane Tx pre-emphasis matrix coef." and "XGXS backplane Rx equalizer matrix coef." respectively Impact: None 44. Problem: Prevent possible glitch due to speed change without link down in the middle Cause: Currently the NIG goes into drain mode only after link down. If the only the speed was changed from 1G to 100Mb, for example, without link-down indication then the FIFO isn't cleaned and glitch due to clk change may occur Change: On speed change set the NIG into drain mode Impact: Several packets may be dropped, but it's ok, since we assume that anyhow several packets were dropped due to the link down 45. Problem: Fix EMAC initialization setting Change: Currently it is configured inside the enable emac before configuring the EMAC mode. Changed to be after that and should be disabled (with the drain mode setting) at the entrance of the link_update function. In addition, in link down, after putting the nig into drain mode this register should also be disabled. After configuring the mode and before opening the nig_emac#_en, reset the EMAC_REG_EMAC_RX_MODE and EMAC_REG_EMAC_TX_MODE Impact: None Enhancements ------------ 1. Request: Error messages might be displayed in unload Change: Check work only on the tx fast path and call bnx2x_tx_int() to handle it. Rx work is handled during halt ramrod Impact: None 2. Request: Indicate that there is no WoL support for functions higher than 1 (only 0 and 1 should support WoL) Change: As Requested Impact: None 3. Request: Pause in 57711E mode always advertise both Rx and Tx regardless of frame size Change: As Requested Impact: None 4. Request: Skb's marked as CHECKSUM_UNNECESSARY (TPA'ed) were passed to the net stack even if user disabled checksum offloading. Change: Disable TPA if Rx checksum offloading is disabled. Impact: There is no way to enabling TPA in kernels older than 2.6.26 except unloading and loading the driver 5. Request: Do not display internal FW version and enhance readability of the bootcode version Change: As requested Impact: None 6. Request: Optimize link setup and support 2.5G Change: Link will be configured on the external PHY before setting up the internal PHY. When needed, only the external PHY will be configured to autoneg. The internal PHY will be set to the obtained speed Impact: None 7. Request: Skb's marked as CHECKSUM_UNNECESSARY (TPA'ed) were passed to the net stack even if user disabled checksum offloading. Change: Disable TPA if Rx checksum offloading is disabled. Impact: None 8. Request: Incorporated latest firmware 4.6.7 - Add support for priority-based ETH TX queues and enable SAFC pausing per queue Change: As requested Impact: None Version 1.46.1 (June 25, 2008) ============================== Enhancements ------------ 1. Request: Use FW version 4.6.2 Change: As Requested Impact: None Version 1.45.6 (June 23, 2008) ============================== Fixes ----- 1. Problem: (CQ35672, CQ35818) Changing MTU under traffic causes driver hang Cause: A rare case of LSO packet alignment, relatively to MSS, caused a HW debug checking for end of packet to fail Change: In computing the end of packet flag, the calculation of the total packet length was modified Impact: None 2. Problem: Possible memory corruption on kernels with 64K page size Cause: Inconsistency in using page macros Change: Use only BCM page macros Impact: None Enhancements ------------ 1. Request: Add support for TPA (LRO) setting via ethtool Change: As Requested Impact: Kernels after 2.6.26 use this interface to turn off TPA when forwarding enabled due to the limitation of no forwarding (bridging) and TPA together Version 1.45.5 (June 17, 2008) ============================== Fixes ----- 1. Problem: (CQ35691) Undefined symbol __udivdi3 when compiled on 32-bit platforms. Cause: There was 64-bit division Change: Reordered the arithmetic expression in order to eliminate the 64-bit division Impact: None. 2. Problem: (CQ35644) Tx mulicast counter does not increment Cause: start_xmit sets the unicast flag for all packet types Change: Remove the broadcast and mulicast counters Impact: None 3. Problem: (CQ35836) Ethtool reports wrong speed when set via CLP Cause: get_settings returns always the max BW set via CLP without considering the actual link speed Change: Return the min between the max BW set via CLP and the actual link speed Impact: None 4. Problem: (CQ35859) Ethtool -S reports many jumbo tx packets with MTU set to 1500 Cause: There is a different in tx histogram statistics between EMAC and BigMAC Change: Use NIG stats counters instead Impact: None 5. Problem: (CQ35114) Self test failure on some systems Cause: pcie_rst_b test can be set and should not be categorized as ERROR Change: Change pcie_rst_b test priority from ERROR to WARNING Impact: None Enhancements ------------ 1. Request: Remove non-coherent stats in 57711E Change: As Requested Impact: None 2. Request: Remove xSEM_REG_INT_TABLE from memory test Change: As Requested Impact: None Version 1.45.4 (June 10, 2008) ============================== Fixes ----- 1. Problem: (CQ34905) load/unload causes link detect failure Cause: Handling of link events during load wasn't protected Change: Add synchronization in handling of link events during driver load Impact: None 2. Problem: (CQ35114) ethtool -t displays idle_check errors Cause: Some idle_check tests were not adopted to support 57711 Change: Adopt the idle_check Impact: None 3. Problem: (CQ35188) ethtool -t displays mc_assert Cause: The mc_assert was checked at incorrect address Change: Fix mc_assert to use different offsets per MC processor Impact: None 4. Problem: (CQ35611) CLP min throttling disables throttled functions Cause: Credit delta must be less than two times the threshold Change: credit delta must never be less than two times threshold Impact: None 5. Problem: (CQ35184, CQ35364, CQ35575) Compilation problems on SuSE9/10 Cause: Some changes for the upstream kernel were not backwards compatible Change: Added backwards compatibility code Impact: None 6. Problem: (CQ35571) When running dozens of connections on both ports, receiver freezes Cause: A race between the aggregation timer and the swapping of aggregated connections Change: The timers are saved to RAM at each possible swap of handlers in the FW, to avoid the race Impact: None Enhancements ------------ 1. Request: Activate SNR over 8073A1, version 102 Change: As Requested Impact: None 2. Request: Support CLP speed configuration to establish link up to the requested speed (allow 1G when 10G is requested) Change: As Requested Impact: None 3. Request: Do not set XAUI low power on 8073A0 Change: As Requested Impact: None 4. Request: Set flow-control for 8073 Change: As Requested Impact: None Version 1.45.2 (May 29, 2008) ============================= Fixes ----- 1. Problem: Style changes for open source submission Cause: Making sure we pass SPARS and checkpatch.pl Change: Whitespace changes Impact: None Enhancements ------------ 1. Request: Add PCI-E EEH handlers Change: As Requested Impact: None Version 1.45.1 (May 26, 2008) ============================= Fixes ----- 1. Problem: (CQ34964) ethtool -a/A is broken Cause: The autoneg define changed to value of zero and broke the code Change: Use comparison instead of bit-wise logical and Impact: None 2. Problem: (CQ35123) Support for 32bit Kernels is broken Cause: The TPA code had a 64 bit address that broke the 32bits support Change: Fixed the upper 32bits of the address to zero in 32bit Kernel Impact: None 3. Problem: (CQ35123) Support for Big-endian is broken Cause: The TPA and SGE code was not big-endian compliant Change: The necessary le_to_cpu were added Impact: None 4. Problem: Failed to work on emulation with MCP Cause: The time interval between the pulses towards the MCP was the same for ASIC and emulation Change: Increased the time interval between MCP pulses for emulation/FPGA Impact: None 5. Problem: (CQ34313) Compilation error on SuSE Cause: Broken in last drops Change: Fix the errors Impact: None 6. Problem: (CQ35124) Kernel panic when unloading NIC with shared INTA Cause: The interrupts were masked when unloading, but the handler was still present. In case of shared INTA line, the handler was called after freeing the resources due to other device interrupt Change: Free the interrupt handler when masking all interrupts on unload. Clear old interrupt before registering the IRQ on load. Impact: None 7. Problem: Failed to re-load the driver (after unload) on the upstream kernel Cause: The fast path structures which are used by NAPI where released on unload and re-allocated on load Change: Use static allocation for the fast-path structures Impact: None Enhancements ------------ 1. Request: (CQ34895) Change Linux Driver Disk Images from Floppy to ISO Format Change: As Requested Impact: None 2. Request: (CQ34931, CQ34976) Replace RH4.5 binaries with RH4.6 Change: As Requested Impact: None 3. Request: Link down indication should be at error level and not information Change: As Requested Impact: None 4. Request: BCM57711E Support MIN/MAX bandwidth control Change: As Requested Impact: None 5. Request: Support BCM8073A1 external PHY Change: As Requested Impact: None 6. Request: Support Transparent Packet Aggregation (TPA) for 57711E Change: As Requested Impact: None 7. Request: Support WoL Change: As Requested. This feature requires bootcode 4.4.7 or later Impact: None 8. Request: Not allowing any ethtool link change (speed and flow control) in 57711E Change: As Requested Impact: None 9. Request: Reporting the function max speed as the current speed (and not the port speed) for 57711E Change: As Requested Impact: None 10. Request: Only the port master driver can run the link test (part of the self-test) Change: As Requested Impact: None Version 1.46.0 (May 01, 2008) ============================= **** This version should have been named 1.45.0 (and not 1.46.0) **** Fixes ----- 1. Problem: Possible bug on DMAE reads (write from the chip to the host) Cause: HW limitation that was not obeyed Change: DMAE reads (write from the chip to the host) is limited to 128 DWORDS Impact: None Enhancements ------------ 1. Request: Support approximate match for multicast MACs Change: As Requested Impact: New module dependency for bnx2x driver Run 'modprobe crc32c' before 'insmode bnx2x.ko' 2. Request: Support statistics on 57711 Change: As Requested Impact: None Version 1.44.12 (April 21, 2008) ================================ Fixes ----- 1. Problem: (CQ34845) Autoneg flow-control is broken Cause: Broken in last drops - wrong check of the autoneg result Change: Fixed the autoneg result check Impact: None 2. Problem: (CQ34313) Compilation error on SuSE10 Cause: Broken in last drops Change: Fix the errors Impact: None Version 1.44.11 (April 16, 2008) ================================ Fixes ----- 1. Problem: PHY loopback was not performed as part of the self-test Cause: The PHY loopback did not wait for the link to be established Change: Wait for loopback to establish link before starting the test Impact: None 2. Problem: (CQ34313) Compilation error on SuSE9 SP3 Cause: Broken in last drops Change: Fix the errors Impact: None Version 1.44.10 (April 15, 2008) ================================ Fixes ----- 1. Problem: Occasional failures in the self-test Cause: Few registers should not have been included in the registers test. The PHY loopback test fails on some systems Change: Removed some of the registers that should not have been included in the first place from the registers test. Removed the PHY loopback test - only the MAC loopback test is executed Impact: None Version 1.44.9 (April 14, 2008) =============================== Fixes ----- 1. Problem: Kernel panic after stressing bi-directional data over night Cause: A bug in the none-TSO fragmented Tx packets Change: Fix the Aggregation rule of none-TSO packets Impact: None 2. Problem: Possible bug when unloading and reloading the driver: we are not guarantee to allocate all IRQs Cause: The allocation is not guaranteed Change: Force every nic_unload to release the IRQs Impact: None 3. Problem: Possible bug on low memory systems Cause: Number of BDs must be at least equal to number of CQEs Change: Force the rule on init Impact: None 4. Problem: Failures on rmmod Cause: Sleep in timer context Change: No sleep on timer context - simply wait for next tick Impact: None 5. Problem: DMAE timeout problem on 57711 Cause: DMAE needs to be configured differently Change: Reduce the MPS of the DMAE client Impact: None 6. Problem: No link on some functions on 57711 Cause: A link report call was missing after link update Change: Added link report after link update Impact: None Enhancements ------------ 1. Request: Adding internal PHY and MAC loopback tests to ethtool -t (no external PHY and no cable PHY loopback) Change: As Requested Impact: None 2. Request: Update idle_check in self test Change: As Requested Impact: None Version 1.44.8 (April 09, 2008) =============================== **** Starting from this version, there are 2 C files **** Fixes ----- 1. Problem: (CQ34604) Kernel panic after stressing Tx Data over night Cause: The driver did not handle fragmented Tx packets Change: Aggregating packets which are too fragmented for the FW Impact: None 2. Problem: (CQ34586) Warning message after configuring eth port Cause: Did not synchronized the DMAE of the statistics with load/unload operations Change: Changed the statistics mechanism to a state machine which is aware of the device state and DMAE state Impact: None 3. Problem: (CQ34313) Compilation error on SuSE9 SP3 x86-64 Cause: Compatibility issue Change: Fixed Impact: None 4. Problem: (CQ34067) Debug prints are displayed when using the use_multi compilation flag Cause: The debug level of the prints was high Change: Reduced the prints debug level so they will not be displayed by default Impact: None Enhancements ------------ 1. Request: (CQ33897) Support BCM8073 PHY Change: As Requested Impact: This is still an initial HW revision of the BCM8073 PHY so changes might be needed as the PHY HW or FW evolve 2. Request: (CQ33845) Turn off link LED when link is not active Change: As Requested Impact: None 3. Request: Displaying PHY FW (when applicable) at ethtool -i Change: As Requested Impact: None 4. Request: Upgrading the SFG10 FW from ethtool -E Change: As Requested Impact: None 5. Request: Adding Registers test to ethtool -t Change: As Requested Impact: None 6. Request: Adding Memory test to ethtool -t Change: As Requested Impact: None Version 1.44.7 (March 31, 2008) =============================== Fixes ----- 1. Problem: (CQ34445) Interface got stuck when stress with UDP and TCP simultaneously Cause: Wrong CQE size initialization Change: Fixed CQE ring initialization Impact: None 2. Problem: No traffic on higher functions on 57711 Cause: Need to send the client ID in messages to FW Change: Add client ID to the required messages Impact: None 3. Problem: Wrong link indication on 57711 Cause: The link was not updated correctly on 57711 Change: Update the link indication mechanism in 57711 Impact: None 4. Problem: Update coalescing is not working Cause: Wrong parameter was used Change: Changed to the required parameter Impact: None Version 1.44.6 (March 26, 2008) =============================== Fixes ----- 1. Problem: (CQ34445) Interface got stuck when stress with UDP and TCP simultaneously Cause: The BD producer that was passed to the FW was wrapped according to the size of the BD ring and not 16 bits range as expected Change: Wrap the BD producer according to 16 bits range Impact: None Enhancements ------------ 1. Request: full TPA support Change: TPA is now fully supported with the expected performance Impact: None Version 1.44.5 (March 24, 2008) =============================== Enhancements ------------ 1. Request: Initial support for TPA Change: TPA is now supported, but the throughput is still lower than in the DEMO_TPA version - a new version with enhanced throughput is being constructed Impact: None 2. Request: (CQ34011) Add module parameter to disable TPA Change: As requested. For now, TPA is always disabled on 57711 Impact: None 3. Request: CNIC Support Change: As requested. By default, CNIC support is not part of the bnx2x - BCM_CNIC should be defined to enable it. Impact: None Version 1.44.4 (March 20, 2008) =============================== Fixes ----- 1. Problem: DEMO_TPA was broken on 0.44.3 Cause: Compilation problem due to MACRO rename Change: Rename the MACRO for DEMO_TPA as well Impact: None 2. Problem: (CQ43424) Cannot link SFP module at 1G with Dell PowerConnect 6224 Cause: The Dell switch supports only autoneg and not forced 1G Change: Changed the 1G implementation to autoneg with only 1G advertisement Impact: When choosing 1G speed, the speed is achieved via autoneg and not forced Enhancements ------------ 1. Request: Support Emulation, FPGA and ASIC in a single module file Change: Changed the init values and the init routine to support all the compilation of 57710/57711 ASIC/CHIP/EMUL Impact: The size of the binary and the source code is bigger mainly due to having two ASM images 2. Request: Add link update support for 57711 Change: Added Impact: None 3. Request: Add HW statistics for 57711 Change: Added Impact: Only HW (errors) statistics will be displayed since the feature is not yet supported by FW 4. Request: Add nvram test Change: Added Impact: None 5. Request: Add link test Change: Added Impact: None 6. Request: Add interrupt test Change: Added Impact: None Version 0.44.3 (March 12, 2008) =============================== *** TPA is not functional on this release *** Fixes ----- 1. Problem: (CQ #34103) DKMS driver diskette update.tar.gz do not have smp directory Cause: DKMS driver diskette was created only for the default SuSE kernels Change: Add all supported SUSE kernels into the DKMS driver diskette Note: The size of the DKMS driver diskette for the SUSE distributions is 14400 kb. This size is appropriate for USB or CD devices Impact: None Enhancements ------------ 1. Request: Add support for 57711 Change: Added preliminary support Impact: None 2. Request: Remove module param 57711E Change: Move to bp and initialized from analyzing CLP information Impact: None 3. Request: Add fw_dump() to panic_dump() Change: Call fw_dump() before idle_chk() Impact: None 4. Request: Separate bp information to fast-path/common/port/ function Change: Divide bp structure into common/port/function structures Divide get_hwinfo() into common/port/ function. Initialize outer VLAN and MAC from CLP information in 57711E mode Note: CLP FUNC_DISABLED is not handled correctly Impact: None 5. Request: Set link_status according to link_up status Change: link_status was set according to phy_link_up status Impact: None 6. Request: Add is_pmf flag Change: is_pmf flag is initialized from MCP load_code and by general attention from MCP Impact: None 7. Request: Fix attentions in 57711 Change: Init MISC_REG_AEU_MASK_ATTN according to 57711E status Handle attention bits in IGU per function Impact: None 8. Request: Clear HW blocks attentions Change: Clear HW blocks attentions and call panic() Impact: None 9. Request: Call fw_dump() on MCP assert Change: Call fw_dump() instaed of mc_assert() on MCP assert Impact: None 10. Request: Do not send STAT_QUERY ramrod if previous stat ramrod didn't return Change: Do not send STAT_QUERY ramrod if previous stat ramrod didn't return Call panic() if stats didn't updated for 3 times Impact: None 11. Request: Separate init_board() into init_dev() and init_bp() Change: Divide init_board() into init_dev() and init_bp() Impact: None 12. Request: Fix directory name for SuSE Change: Add sles9 and sles10 to the names Impact: None Version 1.42.3 (February 28, 2008) ================================== Fixes ----- 1. Problem: Changing the link speed to "autoneg on" the A1022G will cause driver failure Cause: This board is using TP for the 10G interface, but the command was interpreted as a request to move to the 1G interface which is inactive on this board Change: Do not support switching interfaces since no production board has this feature Impact: A user will not be able to switch between the two valid interfaces of the T1001 test board without changing the nvram configuration Version 1.42.2 (February 20, 2008) ================================== Fixes ----- 1. Problem: TSO is not working against some none Linux clients Cause: TCP flags were not transmitted correctly on TSO packets Change: Corrected bit extraction in tcp_flag_word() Impact: None Version 0.42.1 (February 14, 2008) ================================== Fixes ----- 1. Problem: (CQ #33344) Remove warnings from ethtool -t Cause: The warnings were just debug prints Change: Print is depended on msglevel. Set msglevel in bnx2x_panic_dump() before calling bnx2x_idle_chk() Impact: None 2. Problem: (CQ #33638) Remove warnings when failing to enable MSI-X Cause: The warnings was just a debug print Change: Print is depended on msglevel. Change the printed message from error/failure to a notification Impact: None 3. Problem: (CQ #33547) Flow control does not work on A1022G board Cause: The flow control was not configured/read at the PHY Change: Implemented the flow control code at the PHY Impact: flow control is now working via autoneg. Please force it if the link partner does not support flow control autoneg Enhancements ------------ 1. Request: (CQ #33425) RPM installation fails on some machines Change: Fix installation - copy bnx2x.ko from extra to kernel/drivers/net Impact: None Version 0.42.0 (February 04, 2008) ================================== *** This version requires bootcode 4.2.0 or later *** Fixes ----- 1. Problem: (CQ #33344) Remove warnings from ethtool -t Cause: The warnings were just debug prints Change: Changed the debug level so by default nothing will be printed Impact: None 2. Problem: (CQ #33638) Remove warnings when failing to enable MSI-X Cause: The warnings was just a debug print Change: Changed the debug level so by default nothing will be printed Impact: None 3. Problem: (CQ #33533) Failed to install A1022G on 32bits machines Cause: The board is requesting 128MB for BAR2 and the memory allocation fails Change: Allocate only the required amount of memory and not the entire BAR Impact: None Enhancements ------------ 1. Request: (CQ33571) new 'shared memory' layout for T4.0E/T4.2 that will be compatible with T4.4 new features Change: As requested Impact: Requires bootcode 4.2.0 or later 2. Request: (CQ #33214) Add placeholder to be compatible with the BMPI Change: Added placeholders - the full implementation is scheduled for T4.4 Impact: None 3. Request: Update the KR code Change: Added placeholders - the full implementation is scheduled for T4.4 Impact: None Version 0.40.19 (January 14, 2008) ================================== Fixes ----- 1. Problem: (CQ #31090) Rx pause remains ON after autoneg is retuned back to ON even if MTU > 4500. Cause: Autoneg flow control flag was not considered for advertisement and resolve of the pause mode. Change: Fix the advertisement and the resolve of the pause mode to consider user requests and system constraints. Impact: None 2. Problem: Autoneg flow control is ON for XFP cards. Cause: Autoneg flow control from NVRAM is considered without check if autoneg is supported. Change: Autoneg flow control from NVRAM is considered only if autoneg is supported. Impact: None 3. Problem: ethtool shows 'Port: FIBRE' for the 10GbaseT interface. Cause: Resolve the port type according to XGXS flag. Change: get settings resolves the XGXS port type in use according to external phy config. Impact: None 4. Problem: (CQ #33092, #33215) Unload/load sequence under UDP traffic (receiver) hanged slow path Cause: Wrong flow in resetting HW blocks Change: HW blocks reset flow has been changed Impact: None 5. Problem: (CQ #33305) Changing MTU to 9000 was jamming TCP traffic Cause: LSO wasn't properly enabled on some Kernels Change: Fixed LSO enabling code for all kernels Impact: None Enhancements ------------ 1. Feature: Wait for completion for ramrods sent during nic unload was only by polling and not by an interrupt. Change: stop multi and stop leading are using poll if netif is not running and interrupt otherwise. Impact: None 2. Request: Add workaround for bug in PXP that causes PXP attention on stress scenarios due to under run situation between PXP and USDM Change: The workaround was added Impact: None Version 0.40.18 (January 03, 2008) ================================== Fixes ----- 1. Problem: (CQ #33148) After "make install" command 'modprobe bnx2x' displays "Module bnx2x not found". Cause: Linux Makefile runs depmod automatically only if System.map exists. Change: Run depmod after modules_install. Impact: None 2. Problem: (CQ #33054) Link is not detected after configuring BCM57710 port with Suse 10Sp1. Cause: HW fails to use INTA after using MSI-X. Change: Set MSI_MSIX_INT_EN bit in HC_CONFIG REG to use INTA after MSI-X. Impact: None 3. Problem: (CQ #33190) ifconfig command showed errors received. But ethtool -S ethx did not show any errors. Cause: Some error counters did not have a bin to be printed by ethtool -S command. Change: Add appropriate bins for the missed counters. Impact: None 4. Problem: BSOD on T1002 boards. Cause: A new code was added that manipulate GPIO 1 for external phy reset. On T1002 board this GPIO control the PERST_L_BYPASS. Change: Do not manipulate GPIO 1 on T1002 boards Impact: None Enhancements ------------ 1. Feature: Add support for IPv6 checksum and IPv6 TSO. Change: The support was added Impact: None 2. Feature: Add fan failure detection and external PHY power down for the A1022G Change: When a fan failure is detected (indicated by SPIO5) on the A1022G, the driver will shutdown the PHY (reset and low power mode, using GPIO1+2) and issue a warning message Impact: When fan failure occurs the link will go down until server reset Version 0.40.17 (December 17, 2007) =================================== Fixes ----- 1. Problem: (CQ #33023) Pause RX is on when driver is loaded with MTU > 4500. Cause: Pause mode was computed from the requested flow control parameter in NVRAM without considering the MTU size. Change: Resolve the pause mode only before advertising the flow control. Impact: None 2. Problem: Pause autoneg can be set on for XFP cards. Cause: Pause autoneg mode was always accepted from user. Change: Pause autoneg is not supported if speed autoneg is not supported (e.g. XFP cards). Impact: None 3. Problem: (CQ #33044) make install fail. Cause: No make install target in Makefile. Change: Add make install target to Makefile. Impact: None 4. Problem: (CQ #33057) No README.TXT in driver release folder. Cause: No README.TXT in driver project. Change: Add README.TXT in driver release folder. Impact: None 5. Problem: (CQ #32541) No README.TXT in driver tarball. Cause: No README.TXT in driver project. Change: Add README.TXT to driver tarball and change the directory name. Impact: None Enhancements ------------ 1. Request: Add parity and assert regs for idle check. Change: The check was added Impact: None 2. Request: Add workaround for threshold mechanism for usdm-dp Change: The workaround was added Impact: None 3. Request: Add workaround for full Tetris buffer bug. Change: The workaround was added Impact: None 4. Request: Add support for the SFG10 PHY Change: The support was added Impact: None 5. Request: Add support for the BCM8072 PHY Change: The support was added. The code is still not 100% functional Impact: None 6. Request: Change the MDC/MDIO CL45 scheme Change: The functions are more generic: - Supports different MDC/MDIO controller - Reduce the clock to 2.5MHz - Less PIO writes (writing all the required information at one attempt) Impact: All external PHY access are using a slower (standard) MDC/MDIO clock 7. Request: Hard reset external PHYs Change: The external PHYs are now reset via GPIO. Before working with an external PHY, a reset pulse of 1ms is generated, and when the driver is down, the external PHY is kept in reset Impact: Link partner should always see link down when the link is down Version 0.40.16 (November 29, 2007) ================================== Fixes ----- 1. Problem: (CQ #32296) VLAN broken on older Kernels. Cause: vlan_kill_vid() removed in newer versions is needed by older kernels to allow loading. Change: Re added function. Impact: None 2. Problem: (CQ #29543) System panicked if receiving UDP data while load and unload Cause: sp_task work was not synchronized with int_disable_sync() Change: move sp_task to work_queue element Impact: None 3. Problem: (CQ #32430) XFP port showed link lights on and link detected = yes when configured port up with no cable attached Cause: Link_up was declared by local phy (XGXS) link up without the external phy (8705) link status Change: Link up is now the combination of local phy (XGXS) link up and external phy (8705) link up Impact: None Enhancements ------------ 1. Request: Print PCI link properties upon load. Change: The print was added Impact: None Version 0.40.15 (November 15, 2007) ================================== Fixes ----- 1. Problem: On heavy traffic scenarios, the machine halted due to PCI problem Cause: A HW change in A1 boards requires some registers that controls the PCI credit to be changed as well Change: Updating the PXP credit registers Impact: None 2. Problem: (CQ #31120) The traffic LED was not active for lower speeds Cause: A new bootcode is required to set the traffic LED when the speed is less then 10G (using the emac and not the bmac) Change: The set LED routine was updated and bootcode 4.0.10 or above is required to have the LED functional Impact: None 3. Problem: Found a bug when doing ifconfig down/up during traffic. In this case FW can assert Cause: A packet that was received before unloading driver stayed in Pbuff, and was processed after loading the driver again Change: Added the reordering mechanism to slow path handlers Impact: Implementation of all L2 slow-path commands was modified 4. Problem: (CQ #30160) Removed false positives from the self test (ethtool -t) Cause: Many tests in the self test were designed to check halted system (after fatal error) and the test assumed that the chip is idle Change: Any test that can happen while the chip is operational was changed to "info" debug print and is not counted as warning or error Impact: The self test is more reliable Enhancements ------------ 1. Request: Forward preparation in the code for 57711 Change: Using only two DMAE clients per port. Using "port" instead of "function". Impact: Not visible to the user 2. Request: Block RX Pause if Auto-pause was selected and the MTU > 4500 to prevent performance retrogression when using PAUSE with big packets Change: The auto-pause resolution will be only TX pause if the MTU is larger than 4500. Force pause mode will be obeyed as requested Impact: Jumbo frames with auto-pause will achieve higher throughput 3. Request: Report HW errors Change: Parity and blocks errors attentions code was added to the driver. Not all indications are enabled. Impact: In case of an assert in the chip, the user will get an error notification 4. Request: Added the ability to support multi interrupt queues from kernel 2.6.24 and above Change: Allow ISR and NAPI (the stack processing) to run on several CPUs. The new feature is disabled by default Impact: Can reduce latency in some cases 5. Request: Move slow-path to work-queue to allow sleeps Change: The slow-path is now implemented as work queue Impact: Better fairness to other host drivers 6. Request: Changes with statistics requirements due to performance enhancement and preparation for next features. Change: a. Removed rcv_error_bytes b. Replaced errors_discard stat by: mac_discard stat, checksum_discard stat and packet_too_big_discard stat c. Removed statistics histogram Impact: The displayed statistics format was changed 7. Request Remove FW interrupts that are not needed Change: FW no longer interrupts the driver for reading a new slow-path element (it updates driver only when completing processing it) Impact: None 8. Request: Support easier SuSE compilation Change: In previous version, a flag in bnx2x.c was required in order to compile under SUSE. In the new implementation the make file can be used in the following way: SLES9 command: make EXTRA_CFLAGS+=-DBNX2X_SLES_9 SLES10 command: make EXTRA_CFLAGS+=-DBNX2X_SLES_10 Impact: SLES compilation procedure is different now Version 0.40.14 (November 06, 2007) ================================== Enhancements ------------ 1. Naming the TCP performance improvement feature TPA (still for demos only) Version 0.40.13 (November 05, 2007) ================================== Enhancements ------------ 1. Added support for L2 Rx TCP performance improvements in a special mode (implementation for demos only). This support is disabled by default and requires a change of compilation flag to enable. 2. Added support for vanilla kernel 2.6.18.5, SLES9, and RHES4 Version 0.40.12 (October 29, 2007) ================================== Fixes ----- 1. Problem: A fragmented Tcp/Udp packet might have been wrongly dropped Cause: parser doesn't checks tcp/udp checksum for fragmented packets Change: FW will report to driver the tcp/udp checksum wasn't Validated if the packet was fragmented 2. Problem: ethtool -S|r|t eth[x] on un-configured port causes errors/panic Cause: When port is un-configured memory is not allocated and blocks in chip can be in reset Change: Check driver state in nway_reset() and self_test() and check memory pointer in get_ethtool_stats() Enhancements ------------ 1. Supporting the upstream Kernel including new NAPI approach 2. Open source coding standard modifications throughout the code, including new init code, new HSI header files, new registers definitions, SPARSE fixes and checkpatch.pl fixes 3. Replaced patches mechanism with #ifdefs 4. Supporting big-endian machines 5. Supporting nVidia chipsets with MCP55 6. Support checksum offload for A1 boards (modification with some flag in PBF command) Version 0.40.10 (August 27, 2007) ================================= Bug fix version, no new features Version 4.0.9 (August 10, 2007) =============================== New features: ------------- 1. Updated to firmware version 4.0.7. 2. Added support for ethtool EEPROM options. Version 4.0.7 (July 23, 2007) ============================= New features: ------------- 1. Added support for flow control. 2. Added patch for Kernel 2.6.22.x. Version 4.0.6 (July 11, 2007) ============================= New features: ------------- 1. Added support for new bootcode 4.0.2. Version 4.0.5 (June 29, 2007) ============================= Fixes: ------ 1. Problem: Linux stack rechecked the RX checksum. Cause: In most cases, the indication of RX checksum was wrong causing the Linux stack to recheck. Fix: Indication mistake was fixed. 2. Problem: NFS UDP test failed writing to server. Cause: Incorrect HW init values. Fix: HW init values were corrected in the driver. 3. Problem: MTU change cause system to assert. Cause: Memory leak in the ifconfig up/down sequence. Fix: Memory leak fixed in driver. Version 4.0.1 (June 15, 2007) ============================= New features: ------------- 1. Added Power management is support. 2. Added WoL is support. 3. Auto-negotiation and speed & duplex is supported. 4. Updated firmware version to v4.0.2. 5. Support for Ethtool. 6. Changing MTU can be done when link is up. Version 0.30.1 (June 4, 2007) ============================ New features: ------------- 1. Updated firmware version to v0.30.0. Version 0.29.1 (May 21, 2007) ============================ New features: ------------- 1. Updated firmware version to v0.29.0. Version 0.27.5 (May 7, 2007) ============================ New features: ------------- 1. Interrupt coalescing values have been optimized. 2. Updated to Linux Kernel 2.6.20.7. Fixes: ------ 1. Problem: High performance scenarios involving many threads could have caused tx ring overrun. Cause: SNP concurrency driver bug. Fix: Driver related code was fixed. Version 0.27.1 (Apr 23, 2007) ============================ New features: ------------- 1. Added speed and activity support for LEDs. Fixes: ------ 1. Problem: Low performance when running Netperf TCP_RR. Cause: Driver bug caused a the driver to enter a busy loop in certain cases when there was no RX processing queued. Fix: The logic used to decide if there is pending RX work was corrected. 2. Problem: XFP link detection problem - intermittent issue. Cause: Driver would not get link change interrupt. Fix: Corrected the setting of the link change interrupt.
Lenovo Data Center Group Linux OS Support Home Page |
linux.lenovo.com |
© 2018-2019 Lenovo. All rights reserved |