============================ R E L E A S E N O T E S ============================ Broadcom BCM57710/BCM57711/BCM57711E/BCM57712 10 GigE VBD Broadcom BCM57800/BCM57810/BCM57840 20 GigE VBD For Windows Server 2000, 2003 2008 and 2012 Copyright (c) 2000-2013 Broadcom Corporation All rights reserved. Version 7.6.59 (February 28, 2013) ================================== Internal FW 7.6.57 Fixes: ------ 1. 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: Firmware fix to iSCSI retransmit flow. Introduced: Day 1. Relevance: iSCSI. Version 7.6.58 (February 27, 2013) ================================== Internal FW 7.6.56 Fixes: ------ 1. Problem: CQ67976 - Can not run heavy Tx or Rx + Tx L2 I/O in the AFEX environment. Change: Fix typo in the code that caused max bw to be incorrect for vnics that loads after first vnic on port. Introduced: Part of fix in eVBD 7.6.57. Relevance: 57712/57810/57840 AFEX only. Version 7.6.57 (February 26, 2013) ================================== Internal FW 7.6.56 Fixes: ------ 1. Problem: CQ67802 - Very low performance when running traffic in AFEX mode. Change: Driver is not able to configure max bandwidth for a VNIC on the fly. Introduced: Day 1 of AFEX. Relevance: 57712/57810/57840 AFEX only. Probability of the issue to happen depends on timing of commands sent from switch to the driver. Issue was first seen after change in switch firmware. Version 7.6.56 (February 18, 2013) ================================== Internal FW 7.6.55 Fixes: ------ 1. Problem: CQ67640 - BSOD when running VF load/unload while running Chariot. Change: Register containing VF ID should be read from bar instead pci configuration space, to avoid race condition that leads to a wrong value being read. Introduced: 7.4.0. Relevance: SRIOV. 2. Problem: CQ67427 - Running Quad/Dual port converged traffic (FCoE + iSCSI) when all ports are configured with targets results in system breaking into the debugger. Change: Driver will initialize FW ISCSI OOO consumer when ISCSI OOO loads. Introduced: Day 1 of ISCSI OOO - T6.0. Relevance: ISCSI OOO. Version 7.6.55 (January 31, 2013) ================================= Internal FW 7.6.53 Fixes: ------ 1. 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 - T7.6. Relevance: 578xx, 4-port mode. Enhancements: ------------- 1. Request: CQ67078 - Control SFP+ tap values through nvm configuration. Version 7.6.54 (January 30, 2013) ================================= Internal FW 7.6.52 Fixes: ------ 1. Problem: CQ67469 - Unable to boot into Windows 2012 OS using iSCSI boot and 57711E OEM adapter. Change: Remove driver code that read from non-initialized memory. Introduced: 7.6.0. Relevance: BCM57710/57711. 2. Problem: CQ67539 - In Windows 2012, OS configured iSCSI priority takes precedence even when host in "Willing" mode. Change: Fix relevant driver flow. Introduced: T7.4 (Day 1 of QoS). Relevance: QOS. 3. Problem: (FW iSCSI) CQ67427 - Receiving heavy iSCSI OOO traffic might cause system crash. Change: Fix relevant firmware flow. Introduced: Firmware version 6.0.0. Relevance: iSCSI traffic. Version 7.6.53 (January 28, 2013) ================================= Internal FW 7.6.51 Fixes: ------ 1. Problem: (FW FCOE) CQ67253 - Chip gets stuck during heavy FCoE traffic in 4-port mode while working vs. 3PAR targets. Change: Fix relevant firmware flow. Introduced: Day 1. Relevance: FCoE. 2. Problem: (FW FCOE) CQ67011 - False error reporting while working vs. 3PAR targets. Change: Fix relevant firmware flow. Introduced: Day 1. Relevance: FCoE. Enhancements: ------------- 1. Request: CQ67474 - Add 4-part IDs for OEM design. 2. Request: CQ67483 - Product version string should be 17.6.0. Version 7.6.52 (January 21, 2013) ================================= Internal FW 7.6.8 Fixes: ------ 1. 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: 7.4.20. Relevance: 578xx - SFP+. Enhancements: ------------- 1. Request: CQ67145 - Remove 4-part IDs for OEM design. 2. Request: CQ67146 - Add 4-part IDs for OEM design. 3. Request: CQ67230 - Add 4-part IDs for OEM design. Version 7.6.51 (January 03, 2013) ================================= Internal FW 7.6.8 Fixes: ------ 1. 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. 2. Problem: (FW ETH) CQ66558 - Total loss of network traffic and system crash (BSOD) error might occur when a TCP no payload packet arrives during aggregation of payload packets on a different TOS. Change: Fix the relevant RSC firmware flow. Introduced: Firmware version 6.4.0 actually T7.4 when RSC first introduced. Relevance: L2 traffic with RSC enabled. 3. Problem: CQ66402 - EEE is not fully enabled for BCM84834. Change: Resolve EEE AN for BCM84834 as well. Introduced: Day 1. Relevance: EEE in BCM84834. 4. Problem: (FW iSCSI) CQ66564 - Chip might crash when receiving data packet carrying TCP FIN flag during heavy iSCSI traffic. Change: Race condition between data placement command, and receive buffer release command during connection termination. Introduced: Day 1. Relevance: BCM57710/57711/57712/57810/57840, iSCSI traffic. Enhancements: ------------- 1. Request: CQ66742 - Change INF settings for pdo enumeration. 2. Request: CQ66689 - Add support for RJ45 SFP module. 3. Request: CQ64735 - Control SFP+ tap values through nvm configuration. Version 7.6.50 (December 06, 2012) ================================== Internal FW 7.6.6 Fixes: ------ 1. Problem: CQ66788 - Assert (chk) or link loss occurred while disabling or NPAR enabling NPAR or any access to NVRAM from user mode application, simultaneously with a change in link state. Change: There is a rare race condition that might occur in the described flow that will eventually lead to link loss. The chances such thing happen are very low and observed only once. Introduced: T7.0. Relevance: NVRAM access simultaneously with link changes. Version 7.6.5 (November 22, 2012) ================================= Internal FW 7.6.6 Fixes: ------ 1. Problem: CQ66360 - System asserted while running Driver load/unload. Change: Fixed low probability race that occurred when calling the toe initialization function (as part of binding NDIS miniport) at the exact time that an iSCSI connection was being offloaded. The fix is to move a shared structure between TOE and iSCSI to a common location so that it is not nullified by the toe initialization flow. Introduced: Day 1. Relevance: iSCSI and TOE. 2. Problem: CQ66127 - FCoE statistics acquired by switch with AFEX mode are larger than expected. Change: Fixed LSB/MSB counters calculation. Introduced: eVBD 7.6.4 (as part of original fix of this issue). Relevance: AFEX mode only. Enhancements: ------------- 1. Request: CQ65673 - Change INF Flow Control for SFP+ adapters to default as 'tx/rx enable' for additional OEM devices. 2. Request: CQ66625 - Add 4-part IDs for OEM design. 3. Request: CQ66534 - INF file changes for OEM designs. Version 7.6.4 (November 06, 2012) ================================= Internal FW 7.6.6 Fixes: ------ 1. Problem: CQ65890 - BSOD in eVBD while running iscsi boot. Change: Changed iscsi connection terminate flow to handle timeout for ramrod completion correctly during OS shutdown. Introduced: T6.0 (Day 1 iSCSI OOO). Relevance: iSCSI. 2. Problem: CQ655981 - 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. 3. Problem: (FW) CQ66105 - In SWITCH DEPENDENT mode, outer vlan is incorrect after function update. Change: Fix the relevant firmware flow. Introduced: 7.2.0. Relevance: All. 4. Problem: (FW FCOE) CQ65423 - FCP RSP overflow/underflow error was wrongly reported. Change: Fix the relevant firmware flow. Introduced: Day 1. Relevance: FCoE. 5. Problem: (FW iSCSI) CQ66305 - Offloading ISCSI connection with COS>0 caused HW assert. Change: Fix the relevant firmware flow. Introduced: eVBD 7.6.3. Relevance: iSCSI running on 57712/578xx. 6. Problem: CQ66127 - FCoE statistics acquired by switch with AFEX mode are smaller than expected. Change: Add missing counters to the FCoE statistics sent by driver to MFW. Introduced: Day 1 of AFEX. Relevance: AFEX mode only. Enhancements: ------------- 1. Request: CQ66197 - Remove INF profiles for OEM designs. 2. Request: Add flag for loopback testing in driver. Version 7.6.3 (October 31, 2012) ================================ Internal FW 7.6.5 Fixes: ------ 1. Problem: (FW ETH) CQ66042 CQ65950 CQ66088 - Problem with classifying FCoE frames in 4-port NPAR systems. Change: FW fix to assign correct function ID for each port in path. Introduced: Day 1. Relevance: BCM57712/BCM578xx, only on 4-port NPAR systems. 2. Problem: CQ65846 - Delayed-ACK was always enabled regardless settings in iSCSI miniport. Change: eVBD now honor parameter it gets from miniport. Introduced: Day 1. Relevance: iSCSI offload. Version 7.6.2 (October 25, 2012) ================================ Internal FW 7.6.4 Fixes: ------ 1. Problem: CQ65570 - BSOD after 200 Error Recovery cycles. Change: Additional fix for preventing ER from trying to complete TOE upload already completed on either Rx or Tx path. (7.4.13). Introduced: Day 1 of Error recovery flow: eVBD version 6.4.19. Relevance: Checked versions, only during error recovery flow under TOE stress. 2. 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. 3. 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. 4. Problem: CQ65784 - No link against 1G switch in KR2 mode. Change: Check 1G link as well in KR2 mode. Introduced: 7.6.0. Relevance: 57840. 5. 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: 7.4.4. Relevance: 57840 - KR/KR2. 6. 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: 7.6.1. Relevance: KR2. 7. 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: 7.4.4. Relevance: 57712. 8. Problem: CQ66103 - WHCK ChkINF verification failure. Change: Remove duplicated entries. Introduced: 7.6.0. Relevance: All. 9. Problem: Issues with FCOE interfaces when in 4-port NPAR mode due incorrect separation between 2 ports of path. Change: FW fix for separation between the 2 ports of path. Introduced: Day 1. Relevance: BCM578xx, only on 4-port NPAR systems. 10. Problem: CQ65951 - Chip 57840 hangs when offloading iSCSI connection. Change: (FW iSCSI) Firmware implementation fixed. Introduced: Day 1 of 4 port. Relevance: All OS on 57840. 11. Problem: CQ65884 - TCP retransmission timeout value was much longer (16 to 19 sec) than expected. Change: TCP FW fix. Do not re-calculate rtt and RTO during retransmit state, even if timestamp option is set. Introduced: Day 1. Relevance: iSCSI and TOE on BCM57710/BCM57711/BCM57712/BCM578xx. Enhancements: ------------- 1. Request: CQ66120 - Changes to INF for OEM specific design. 2. Request: CQ66121 - Changes to INF for OEM specific design. 3. Request: CQ66197 - Changes to INF parameter names. Version 7.6.1b (October 16, 2012) ================================= Internal FW 7.6.3 Enhancements: ------------- 1. Request: CQ65675 - Change INF profiles for OEM designs added in 7.6.0. Version 7.6.1a (October 11, 2012) ================================= Internal FW 7.6.3 Enhancements: ------------- 1. Request: CQ65943 - Add 4-part-ID for Partner Program. 2. Request: CQ65944 - Add 4-part-ID for Partner Program. 3. Request: CQ65673 - Change INF Flow Control for SFP+ adapters to default as 'tx/rx enable'. 4. Request: CQ65740 - Add 4-part IDs for OEM design. Version 7.6.1 (October 04, 2012) ================================ Internal FW 7.6.3 Fixes: ------ 1. Problem: CQ65711 - Win7 client StandardizedKeywords fails for Chimney keyword support. Change: Chimney not supported for win7 client. Changed capabilities. Enhancements: ------------- 1. Request: CQ65831 - Change INF profiles for OEM design. Version 7.6.0 (October 02, 2012) ================================ Internal FW 7.6.3 Fixes: ------ 1. 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. 2. 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. 3. 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. 4. 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: T7.5. Relevance: 57840-KR2. 5. Problem: CQ65406 - BSOD in VM w/ driver load/unload. Change: Fix to firmware FLR flow in Initial Cleanup Ramrod. Introduced: Version 6.4.0 (FW 6.4.0). Relevance: BCM57712/57810/57840, SRIOV Only, FLR on VF0 on MF system can cause system crash. 6. Problem: (FW COMMON) DCB is not functional on 4-port device when using 4X10G configuration. Change: Firmware fix in DCB update flow - wrong credit counters were used. Introduced: Day 1. Relevance: 57840, 4-port mode with DCB enabled. Enhancements: ------------- 1. Request: CQ63665 - Add OEM specific 4 part ID. 2. Request: CQ63857 - Add 4-part IDs for OEM devices. 3. Request: CQ65675 - Add INF profiles for OEM designs. 4. Request: Read wwnn and wwpn from the shmem in switch dependent mode. 5. Request: Reflect Tx LPI status when EEE active in IOCTL. Relevance: BACS tool when EEE is active. 6. Request: CQ63733/CQ63815 - Support new DIDs for 57840 device. 7. Request: Add PHY FW upgrade for BCM84834. 8. Request: Add support for 20G-KR2. 9. Request: CQ65726 - INF file changes for OEM designs. 10. Request: CQ65588 - Add OEM 57810 NICs to Windows INF File. Version 7.4.28 (September 11, 2012) =================================== Internal FW 7.4.12 Fixes: ------ 1. 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: 7.4.20. Relevance: 578xx, EEE. 2. Problem: CQ65532 - BSOD while running reboot test with npar enabled. Change: Assert in checked build only, checked that a certain pointer was NULL before accessing it. The pointer was not defined as volatile, thus causing the value read not to be the latest under certain conditions. Changed the pointer to be volatile. Introduced: T6.2. Relevance: Checked build. 3. Problem: CQ65449 - BACS4: Bacs does not display the current setting for EEE Control Policies correctly. Change: Values weren't configured correctly in the mode parameter. Introduced: 7.4.17. Relevance: 578xx, EEE. 4. Problem: CQ65510 - EEE NPAR: EEE does not become enabled in NPAR mode. Change: Certain required flags weren't set for elink. Introduced: 7.4.17. Relevance: 578xx, EEE, NPAR. 5. Problem: CQ65535 - The flow Control default setting are set to "Rx & Tx Enabled" instead of "Auto". Change: Changed eVBD default flow control settings to "Auto". Introduced: 7.4.23. Relevance: BCM57711 and BCM57712. Version 7.4.27 (September 06, 2012) =================================== Internal FW 7.4.12 Fixes: ------ 1. 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: 7.4.0. Relevance: 578xx. 2. Problem: CQ65449 - Bacs does not display the current setting for EEE Control Policies correctly (re-fix). Change: Fix IOCTL in eVBD. Relevance: EEE & BACS. Introduced: eVBD 7.4.17. Enhancements: ------------- 1. Request: CQ65483 - Add OEM specific 4 Part ID. Version 7.4.26 (September 05, 2012) =================================== Internal FW 7.4.12 Fixes: ------ 1. Problem: CQ65451 - System hit BSOD while booting into OS after changing EEE control policies. Change: Remove redundant ASSERT in code. Relevance: EEE, checked builds. Introduced: eVBD 7.4.17. Version 7.4.25 (September 04, 2012) =================================== Internal FW 7.4.12 Fixes: ------ 1. Problem: CQ65415 - WHCK: Chkinf errors - Section [params_flow_rx_tx_no_enum] not defined. Change: Modify section to params_flow_auto_no_enum. Introduced: 7.4.23. 2. Problem: CQ64890 - BSOD during testing Error Recovery flow. Change: The flow waited for delayed tasks to complete while new tasks were still added. Waiting for these tasks to complete was done too early in the flow. Introduced: Day 1 of Error recovery flow: eVBD version 6.4.19. Relevance: Checked versions, only during error recovery flow. 3. 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. Relevance: 578xx-SFP. Introduced: 7.4.1. 4. 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: 7.4.20. Relevance: 578xx, EEE. Enhancements: ------------- 1. Request: reflect Tx LPI status when EEE active in IOCTL. Relevance: BACS tool when EEE is active. 2. Request: CQ65397 - Add SRIOV virtual function devices into OEM INFs. 3. Request: Removed unsupported SRIOV virtual function device. 4. Request: CQ65418 - Remove 'hw default' as an option in Windows EEE Control Policy. Version 7.4.24 (August 30, 2012) ================================ Internal FW 7.4.12 Fixes: ------ 1. Problem: (FW ETH) CQ65322 - BSOD as a result of packets that were not completed on the forward channel. Change: Fix a bug in ETH firmware flow regarding forward channel consumer updates. Introduced: Firmware version 6.4.0. Relevance: BCM57712/57810/57840, TOE/iSCSI with high rate offloads and uploads. Version 7.4.23 (August 27, 2012) ================================ Internal FW 7.4.11 Fixes: ------ 1. Problem: CQ65280 - Parity error might occur during specific flows. 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: 7.4.6. Relevance: 57710, 57711. 2. Problem: Link sometimes continuously flapped when EEE was configured. Change: Remove EEE support for 84833 phys with fw version 0x1f81. Introduced: 7.4.4. Relevance: 578xx, EEE. 3. 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: 7.4.4. Relevance: 578xx, EEE. Enhancements: ------------- 1. Request: Add "Auto" flow control option. Changed default flow control settings to "Auto". Version 7.4.22a (August 24, 2012) ================================= Internal FW 7.4.11 Enhancements: ------------- 1. Request: CQ65326 - Add EEE support for 1G devices in INF. Version 7.4.22 (August 23, 2012) ================================ Internal FW 7.4.11 Fixes: ------ 1. Problem: CQ65324 - Driver not emitting PFC pause frames aganist switch. Change: Corrected HW configuration. Relevance: PFC. Introduced: eVBD 7.4.21. Enhancements: ------------- 1. Request: CQ65306 - Change EEE wording in advanced property page. Version 7.4.21 (August 22, 2012) ================================ Internal FW 7.4.10 Fixes: ------ 1. 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. Relevance: BCM578xx. Introduced: Day 1. 2. 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. Relevance: BCM57810. Introduced: T7.2. 3. Problem: (FW iSCSI) CQ62937 - Chip hangs when RST packet is sent from pure-ack queue causing credit-return overflow. Change: Firmware implementation fixed to send RST packet only from regular transmit queue. Relevance: All. Introduced: Version 7.0.14 (FW 7.0.16). Version 7.4.20 (August 21, 2012) ================================ Internal FW 7.4.8 Fixes: ------ 1. Problem: VF eVBD mistakenly creates excessive Error Recovery thread. Change: Only PF eVBD may process Error Recovery. Relevance: VF eVBD. Introduced: T7.4. 2. Problem: CQ63874 - BSOD when upgrading from inbox driver. Change: Under asymmetric sriov configuration on functions, there could be an inconsistency between HW/Driver page size. This was fixed in version 7.4.12, however, upgrading to the fixed driver is not enough, as the previous driver may leave HW in a non-functional state. Another change is added that recognizes that previous driver is inbox, with sriov enabled on OS and configured asymmetrically between the functions, in this case installation fails and requires a reboot to complete. Relevance: SRIOV win8. Introduced: Win8 inbox. Enhancements: ------------- 1. Request: CQ64686 - boards with 54618se external phys now use native eee instead of auto-grEEEn. 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 X is not compliant with 10G Ethernet". Version 7.4.19 (August 16, 2012) ================================ Internal FW 7.4.8 Fixes: ------ 1. Problem: CQ65175 - BSOD when rebooting driver in AFEX mode. Change: Driver accessed resources of connections that were not ethernet when updating client info. Changed driver to loop only over ethernet connections. Relevance: AFEX. Introduced: 7.4.16. 2. Problem: CQ61895 - Win8: SRIOV: PF and VF frames on the wire when running "No Transmit Leakage" test case. Change: PF driver now initializes VF FW object (client) to prevent packets leakage between client creation and setting Rx mask. Relevance: SRIOV, VF eVBD. 3. 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: 7.4.4. Relevance: 57712 + 8073/8727/848x3. 578xx + 54618se/848x3. Enhancements: ------------- 1. Request: Add EEE to LFA conditions. Version 7.4.18 (August 13, 2012) ================================ Internal FW 7.4.8 Fixes: ------ 1. Problem: CQ63904 - Win8 SRIOV, VF RSS/RSC: Update VF RSC timeout and VM OS BSOD. Change: VF eVBD interrupt mechanism is fixed to not miss first and single interrupt on VF chain. Relevance: VF RSC and VF RSS coexistence. Introduced: 7.4.0 / Windows Server 2012. 2. Problem: CQ64645 - Duplex state is always shown as full even if actual duplex is half. Change: Display the correct duplex value. Relevance: 57712. Introduced: T7.0. 3. Problem: CQ64945 - Win8 SRIOV: When adding Max number of SRIOV VF's per VM (8), several VF's are unable to obtain a DHCP address. Change: PF forces clean up some HW blocks dedicated to VF. Relevance: VF eVBD. Introduced: 7.4.0 / Windows Server 2012. 4. Problem: CQ64942 - DCC doesn't converge becuase 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: 7.4.4. Relevance: MF allowed mode. 5. 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. Enhancements: ------------- 1. Request: CQ64924, CQ65098 - Remove devices from OEM INF. Version 7.4.17 (August 06, 2012) ================================ Internal FW 7.4.8 Fixes: ------ 1. Problem: CQ64716 - SRIOV: BSOD during Host reboot test. Change: Fixed bug in statistic timer scheduling. Under some circumstances, driver would set the timer to a very large value. Introduced: 5.0.0, but exposed due to VF shutdown flow. 2. Problem: CQ64999 - Error Recovery: The error recovery failed on Windows 2008 R2 host. Change: Error recovery was disabled in driver for retail version. Introduced: 7.4.0. Relevance: Error recovery in Retail version. 3. Problem: CQ64959 - OEM Windows event viewer: ebdrv error after enabling driver. Change: Limit the handling and checking for specific MSI-X vector affinity assignment work around to W2K8. Introduced: 7.4.9. 4. Problem: CQ64780 - Surprise removal: bug check during WHCK plug and play driver test. Change: Adding a check if surprise removal was started at functions called from the miniport. indicate to the miniport that the rx is done when surprise removal starts. Introduced: 5.3.0 New WHCK for Win8 expose this issue which was theoretical until now. Relevance: Windows 7 and above. Enhancements: ------------- 1. Request: Changed EOM friendly names. 2. Request: CQ63435 - Remove unsupported enums in standardized keyword parameters. Version 7.4.16 (August 02, 2012) ================================ Internal FW 7.4.8 Fixes: ------ 1. Problem: CQ64908 - Win2012: SRIOV: 57800: only able to create 32 VFs when max is 64 VFs. Change: SW clients implicitly occupy a FW client, which is not required for L2 Tx only connections. Modified the code so that L2 Tx only connections do not require a sw client anymore. This frees up resources for the remaining VFs. Introduced: By support of L2MP. Relevance: 57800, SRIOV. Version 7.4.15 (August 01, 2012) ================================ Internal FW 7.4.8 Fixes: ------ 1. Problem: In case NDIS PDO isn't enumerated, eVBD is lacking flow control "registry" default settings and use default hard coded settings (disabled). Change: Added default flow control setting for eVBD. Introduced: Day 1. Relevance: When device is in SF mode and DCBX is disabled. 2. Problem: CQ64686 - Bugcheck 0xBE during Windows 8/Windows Server 2012 OS install if '\' character is present in previously used memory page. Change: Fix the string manipulation routine of the registry path. Introduced: eVBD Win8 inbox version. Relevance: Windows 8/Windows Server 2012 OS Installation only. 3. Problem: B10_IOC_GET_L2_CHIP_STATISTICS IfInErrorsOctets not set by driver. Change: Assign 0 to IfInErrorsOctets field. Introduced: Day 1. Relevance: Internal debugging tools. 4. Problem: CQ64845 - Win2012: SRIOV: VM asserts at evbda!lm_recv_set_pkt_len+0x13d while running chariot traffic. Change: Fixed assert condition. 5. Problem: CQ64886 - Win2012: SRIOV: unable to create max VFs. Change: Fix SRIOV resource consumption in SF mode. Introduced: By support of L2MP. Relevance: PF SRIOV/L2MP/2 Ports. 6. Problem: Win2012: SRIOV-BACS: eVBD mistakenly decrease length of reported information. Change: Fix corresponding flow. Introduced: T7.4. Relevance: PF SRIOV/BACS. 7. Problem: Possible memory leak in mcast configuration flow. Change: Properly release memory. Introduced: T6.4. Relevance: All. Enhancements: ------------- 1. Request: Include static debug information in crash dump . 2. Request: Use different bit to mark to MFW not to take link ownership upon other driver unload flow (due to MFW logics change). Relevance: MFW version 7.4.9. 3. Request: CQ64206 - INF file change for OEM designs. 4. Request: Comply dual media INF speed and duplex settings with WHCK. 5. Request: CQ64819 - Remove SR-IOV support for specific OEM devices (INF Change). 6. Request: Internal code changes to reduce compilation warnings. 7. Request: Added event log message to indicate possible malicious virtual function behavior, resulting in VF reset. 8. Request: In QOS, skip (instead of an assert) APP TLV entries with priority bit map of zero. Relevance: eVBD checked version only. Version 7.4.14 (July 17, 2012) ============================== Internal FW 7.4.8 Fixes: ------ 1. Problem: BSOD during Power test. Change: There is a timer DPC that handles some internal lookaside lists. Due to a race between this DPC and the flow that cancels the associated timer, it's possible that the DPC re-armed the timer after it was cancelled. The fix is that before re-arming the timer an additional flag, that indicates the timer should not be re-armed, is checked. Introduced: Day 1. 2. Problem: CQ64659 - BSOD during driver load. Change: Stop deriver dereferencing released pointer. Introduced: 7.4.13 (CQ61966 fix). Version 7.4.13 (July 16, 2012) ============================== Internal FW 7.4.8 Fixes: ------ 1. Problem: CQ61966 - Error Recovery may cause BSOD under TOE traffic. Change: Prevent ER from trying to complete TOE upload already completed on either Rx or Tx path. Introduced: eVBD 7.0.3 (Error recovery support integrated from T6.4). Relevance: Error Recovery under TOE traffic. 2. Problem: CQ64603/CQ54609 - Driver causes BSOD when queried by BACS for chip statistics. Change: Driver is prevented from exceeding amount of data requested. Introduced: eVBD 7.4.9. Relevance: BACS. 3. Problem: EEE statistics provided is mixed between ports. Change: Properly identify EEE statistics source for port. Introduced: eVBD 7.4.4. Relevance: EEE. 4. Problem: CQ64469 - Due to race between AFEX and normal link status modification flows, link failure is sometimes not indicated to OS in AFEX mode. Change: In AFEX mode verify that the link is up before reporting it as active to the OS. Introduced: eVBD 7.0.5. Relevance: AFEX. Enhancements: ------------- 1. Request: CQ57766 - Support "Pause on Exhausted Ring" from CCM configuration rather than device manager\registry for Multi function. Relevance: Multi Function mode with CCM version 7.4.6 ,MFW version 7.4.6, Boot Agent 7.4.8. 2. Request: CQ63495 - Win2012: eVBD should act on interrupt moderation level setting. Relevance: SRIOV: PF. Version 7.4.12 (July 11, 2012) ============================== Internal FW 7.4.8 Fixes: ------ 1. Problem: CQ64355 - SRIOV: Hyper-V VLAN ID tags fail when using SRIOV VF. Change: On moving MAC+VLAN filter to VF group PF eVBD configures FW to add VLAN tag to outgoing packet and remove VLAN tag from incoming packet. Relevance: Window Server 2012 SRIOV. 2. Problem: CQ59420 - NPAR: VMQ: BSOD when trying to create a hyper-v nic with NPAR ports. CQ64443 - CNIC-HyperV: BSOD when adding device as a VNIC. Change: With VMQ switch TOE will work via default Q group but not via dedicated resources set. Relevance: VMQ+TOE coexistance. 3. Problem: CQ63874/CQ63875 - BSOD when loading 7.4.x driver on 57800. Change: With a certain configuration, different functions computed a different HW page size, resulting in an inconsistent HW configuration, which lead to requests getting stuck in the PXP. The change has to do with the way the functions compute the page size. Introduced: Windows8 day 1. Relevance: 57800 on Windows8 with SRIOV enabled. 4. Problem: CQ64063 - Win2012: Device fails to start when no license on board AND SRIOV is enabled. Change: Code didn't take into account this configuration and there was a parameter comparison check that failed when it shouldn't. Fixed comparison. Introduced: Windows8 day 1. Relevance: Windows8 with SRIOV enabled. 5. Problem: CQ64168 - Error recovery fails "randomly" with certian IOCs involved. Change: Fix outstanding IOCs counting. Introduced: eVBD 7.0.3 (Error recovery support integrated from T6.4). Relevance: Error recovery. Enhancements: ------------- 1. Request: CQ64437 - Add OEM specific 4 Part ID. 2. Request: Prevent link-flaps during driver unload on UNDI flow. Version 7.4.11 (July 05, 2012) ============================== Internal FW 7.4.8 Fixes: ------ 1. Problem: CQ63820 - VM BSOD on VF eVBD loading. Change: Excessive for VF/VM MSI-X check. Introduced: eVBD 7.4.10. Relevance: VF eVBD. 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. Enhancements: ------------- 1. Request: CQ64248 - INF file changes for OEM designs. Version 7.4.10 (July 02, 2012) ============================== Internal FW 7.4.8 Fixes: ------ 1. Problem: CQ63891 - BSOD when stress load / unload NDIS and eVBD driver. Change: Remove relevant initialization from firmware. Introduced: eVBD 7.4.5. Relevance: BCM57710/BCM57711/BCM57712/BCM578xx. 2. Problem: Wrong fairness between traffic-classes. Change: Fix ETS default settings. Introduced: eVBD 7.4.9. Relevance: BCM57710/BCM57711/BCM57712/BCM578xx. 3. Problem: CQ64305, CQ64308 - BSOD Assert is seen when starting traffic. Change: Adding initialization to the parse nbd field. Introduced: eVBD 7.4.9. Relevance: Windows running on BCM57710/BCM57711/BCM57712/BCM578xx. Enhancements: ------------- 1. Request: CQ62549 - Win8: Add MFW version check for Win8 features. 2. Request: CQ63226 - Remove "Auto" flow control option. 3. Request: CQ63225 - Changed default flow control settings to "Rx & Tx Enabled". 4. Request: CQ64269,CQ63695 - INF file changes for OEM designs. Version 7.4.9 (June 28, 2012) ============================= Internal FW 7.4.6 Fixes: ------ 1. Problem: CQ64022,CQ63968 - Win2012: BSOD when enabling QOS/SRIOV on a port with VMQ switch. Change: VFs resource allocation is fixed. Introduced: eVBD 7.4.5. Relevance: PF SRIOV with active L2MP flows. 2. Problem: CQ60418 - AFEX iSCSI: The iSCSI throughput reaches 0 within few seconds when the AFEX is enabled on the adapter. Change: Driver FW HSI change. Driver will instruct FW not add VLANs for ISCSI OOO chain. Introduced: AFEX day 1. Relevance: ISCSI OOO in AFEX mode when a VLAN is set. 3. Problem: CQ64239 - Win8 EEE: driver properties for EEE settings are not getting reported to BACS. Change: Update EEE parameters during client bind. Introduced: eVBD 7.4.4. Relevance: EEE supporting boards (BCM84833 phy). 4. Problem: CQ63253 - Incorrect RSS chain affinity with more than 16 SPUs. Change: Allow for W2K8 SP1 specific MSI-X vector affinity assignment. Introduced: eVBD 5.2.9. Relevance: W2K8 SP1 only. Enhancements: ------------- 1. Request: CQ63725 - EVBD provides to BACS interface reflecting SRIOV and RSC activity. 2. Request: CQ63718 - Add OEM specific 4 Part ID. 3. Request: CQ64184,CQ64206 - INF file change for OEM designs. Version 7.4.8 (June 20, 2012) ============================= Internal FW 7.4.6 Fixes: ------ 1. Problem: CQ64015 - BSOD on driver load with ETS DCB traffic. Change: Back out FW 7.4.7 to 7.4.6. Introduced: eVBD 7.4.6. Relevance: DCB/ETS flows. Version 7.4.7 (June 19, 2012) ============================= Internal FW 7.4.7 Fixes: ------ 1. Problem: In a theoretical case driver can BSOD, if no queue group can be allocated because of interrupt resources. Change: Driver will gracefully yellow band and won't BSOD. Introduced: Theoretically Day 1. Relevance: All. 2. Problem: CQ64015 - Win2012: BSOD when loading eVBD 7.4.6 driver. Change: Fix init values. Introduced: eVBD 7.4.6. Relevance: BCM578x0. Enhancements: ------------- 1. Request: CQ62549 - Added MFW version check for QOS features. Version 7.4.6 (June 18, 2012) ============================= Internal FW 7.4.7 Fixes: ------ 1. Problem: cq63366 and CQ63899 Win8: Updating driver results in the removal of SRIOV support. Change: New Win8 advanced properties: SR-IOV, QOS, RSC(v4/v6) missing from some boards. 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: 7.4.4. 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: 7.4.4. Enhancements: ------------- 1. Request: CQ63605 - Undo "CQ62335 - Obsolete older chips for Windows 8". Relevance: BCM57710 on Windows 8 (Windows Server 2012). 2. Request: Added 802.3az EEE INF support. 3. Request: CQ63028 - Added SRIOV INF support for OEM. Version 7.4.5 (June 11, 2012) ============================= Internal FW 7.4.6 Fixes: ------ 1. Problem: EEE configuration registry parameter is ignored. Change: Prevent driver from handling EEE registry parameter as NDIS Miniport EEE parameter. Introduced: 7.4.4. 2. Problem: CQ63660 CQ63671 - BSOD Assert is seen while loading eVBD. Change: Don't ASSERT in case of incompatible FCoE/eVBD HSI versions. Introduced: 7.4.4. (CQ63548 fix). Relevance: eVBD checked version only. 3. Problem: CQ63288 - VF RSS works even though IovQueuePairRequested=1. Change: PF eVBD accepts priority of IovQueuePairRequested allocating needed resources on VF creation. Relevance: PF eVBD. 4. Problem: CQ63656 - BSOD during iBOOT. CQ63828 - FCoE: OS installation is not completing successfully. CQ63789 - FCOE Certs: 57712 - BSOD when running CHAOS test. CQ63693 - FCOE Boot with SRIOV Enabled BSOD. 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: 7.4.4. Enhancements: ------------- 1. Request: CQ63605 - Product version string should be 17.4.0. 2. Request: CQ63058 - INF file change for OEM designs. 3. Request: Remove BCM57840 devices from INF. 4. Request: Add 4-part ID for OEM. 5. Request: CQ63068 - Implement VF resource allocation scheme. Version 7.4.4 (June 4, 2012) ============================ Internal FW 7.4.6 Fixes: ------ 1. Problem: CQ63568 - BSOD Assert is seen while booting into OS, Win2k8-SP2 x86 and x64. Change: Don't try to read PCI extended capabilities if OS < Win8. Introduced: 7.4.0. 2. Problem: (FW iSCSI) CQ61938 - When running iSCSI heavy traffic and TCP out-of-order conditions occur, the firmware might send out NOP-OUT commands with zero-length TCP window. This will eventually cause the connection to close and be recovered. Change: Firmware fix in TCP out-of-order mechanism. Introduced: Firmware version 6.2.0. Relevance: BCM57710/BCM57711/BCM57712/BCM578xx. 3. Problem: CQ63548 - When mixing and matching driver components from different SW releases, it is possible that for FCoE an IO data comparison problem may surface at sizes < 4k. It should be noted that BRCM does not support the manual driver installation model and device drivers should only be installed via the appropriate "driver installer". Using the "driver installer" prevents the mix and match of incompatible driver revisions from different SW releases. Change: eVBD enforces HSI version verification for FCoE. Introduced: 7.0.0. Relevance: Only relevant for incompatible FCoE miniport and VBD taken from different SW releases, like eVBD 7.0.x mixing and matching it with miniport 7.2.x. Enhancements: ------------- 1. 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. 2. Request: CQ63321 - enable parity attention for 578xx. Relevance: 578xx. 3. Request: Implement EEE. Add NVRAM field to define EEE configuration. Added VBD registry support. Modified statistics and link configuration as appropriate. Relevance: BCM578x0 boards with 848333 PHY, Supported with MFW 7.4.2. Version 7.4.3 (May 29, 2012) ============================ Internal FW 7.4.4 Fixes: ------ 1. Problem: CQWin8: NDISTest: BSOD diring VlanSendRecv test. Change: Fix setting VLAN only filter. Introduced: 7.4.0. 2. Problem: CQ63302 - BSOD when booting into Windows. Change: Don't access non existing register in specific BCM5771x chips. Introduced: eVBD 7.2.51 and eVBD 7.4.1. Relevance: BCM57710/BCM57711/BCM57711E. 3. Problem: CQ63463 - BSOD during continuous reboot (Seen after dozens of iterations). Change: Before driver reset the nig, verify that there are no more pending packets to prevent MFW from hang. Introduced: Day 1. Fixed in eVBD 7.2.53. Relevance: All. Probability is higher when management/AFEX/LLDP traffic is running. 4. Problem: This is a dependency problem between T7.2 eVBD and MFW prior to T7.2. When 7.2.x eVBD is combined with MFW of a version earlier than 7.2.1 (e.g. 7.0) the (on-chip) scratchpad will get overwritten in specific places that may cause the MFW to halt, what in return may cause the network link to drop unexpectedly, or NCSI traffic to stop. The scratchpad overwrite is triggered by the eVBD writing statistical information into the scratchpad. From a recovery point of view, it is sufficient to reboot the system, but the problem will reoccur until the MFW is brought up to T7.2 levels in conjunction with T7.2 eVBD, or this T7.4 eVBD is used. Change: eVBD check MFW version and in case it is <= 7.2.1 it will not write to this area of the scratchpad. Introduced: eVBD 7.2.x. Relevance: BCM57712/BCM578x0 only when working with MFW <= 7.2.1. This is not a problem for 'legacy boot code'. 5. Problem: CQ62997 - unable to load evbdx.sys in win2k8-sp2-x86. Change: Replace missing exports. Introduced: eVBD 7.4.0. Relevance: win2k8-sp2-x86. Version 7.4.2 (May 16, 2012) ============================ Internal FW 7.4.4 Fixes: ------ 1. Problem: CQ63153:The eVBD "Speed & Duplex" settings differ from that of the Ndis driver. Change: Changed eVBD "Speed & Duplex" setting to match NDIS miniport settings. Introduced: 7.4.0. 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: Idle check failures seen after error recovery. Change: Refrain from accessing interrupt generation unit when disabled. Introduced: 7.0.21 or earlier. Relevance: BCM57712/BCM578x0 - error recovery. 4. Problem: CQ63250 - eVBD incorrectly assumes a Unicode string of registry key is null terminated. in rare cases might cause a BSOD at driver load. Change: Don't assume the string is NULL terminated. Relevance: Observed only on Windows Server 2012. Might be related to CDDB removal in Windows Server 2012. Introduced: Day 1. 5. Problem: Debug prints show errors - access to wrong gpio. Change: Test for Tx Fault only when using SFI. Introduced: 7.4.1. Relevance: 578xx non-SFI. Enhancements: ------------- 1. Request: CQ62335 - Obsolete older chips for Windows 8 (Windows Server 2012). Driver fails start device in case old chip is loaded. Relevance: BCM57710 on Windows 8 (Windows Server 2012). Version 7.4.1 (May 8, 2012) =========================== Internal FW 7.4.4 Fixes: ------ 1. Problem: CQ62777 - BSOD when upgrade phy firmware on specific board when WoL and NC-SI are disabled in nvm cfg. (MFW doesn't own the link). Change: Fail phy firmware upgrade IOCTL in case sent by BMAPI when driver is in diag mode. In case IOCTL will be sent on diag mode the IOCTL will fail (that will be the case with old BMAPI). Introduced: Day 1. Relevance: WoL and NC-SI are disabled in nvm cfg (MFW doesn't own the link). 2. Problem: Drive may hang during load after UNDI SAN boot (BFS). Change: Clear DMA error indication upon chip init. This is caused due to eVBD taking over the chip from UNDI driver (Change is compatible with Linux cq62216). Introduced: Day 1. Relevance: All. 3. Problem: CQ63028 - inf missing SRIOV entries. Change: Add missing entries. Introduced: eVBD 7.4.0. Relevance: Win8 SRIOV. 4. Problem: evbd.inf missing board entries, existing duplicate entries. Change: Add missing entries, remove duplicate entries. Introduced: eVBD 7.4.0. Enhancements: ------------- 1. Request: TX_Fault support for SFP+ Modules on 578xx boards. Version 7.4.0 (May 1, 2012) =========================== Internal FW 7.4.4 Fixes: ------ 1. 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 7.2.15 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. Enhancements: ------------- 1. Request: CQ62637 - When SFP (1G) optic module is plugged in, adjust the link speed accordingly. 2. Request: Involve Windows 8 enhanced features: RSC, QoS, SRIOV, more than 64 CPUs. Version 7.2.53 (May 24, 2012) ============================= Internal FW 7.2.51 Fixes: ------ 1. Problem: CQ63463 - BSOD during continuous reboot (Seen after dozens of iterations). Change: Before driver reset the nig, verify that there are no more pending packets to prevent MFW from hang. Introduced: Day 1. Relevance: All. Probability is higher when management/AFEX/LLDP traffic is running. 2. Problem: If 7.2.x eVBD works with MFW version earlier than 7.2.1 (e.g. 7.0), a corruption to the scratchpad might occur, our analysis points it will cause link issues when owned by MFW but more unexpected issues might occur. Change: eVBD check MFW version and in case it is <= 7.2.1 it will not write to this area. Introduced: eVBD 7.2.x. Relevance: BCM57712/BCM578x0 only when working with MFW <= 7.2.1. Enhancements: ------------- 1. Request: CQ63245 - Remove devices from OEM INF. Version 7.2.52b (May 21, 2012) ============================== Enhancements: ------------- 1. Request: CQ63245 - Add devices to OEM INF. Version 7.2.52a (May 21, 2012) ============================== Enhancements: ------------- 1. Request: CQ63245 - Remove devices from OEM INF. Version 7.2.52 (May 21, 2012) ============================= Internal FW 7.2.51 Fixes: ------ 1. Problem: CQ63388 - Unable to successfully boot into iSCSI boot image on OEM platform. Change: Don't access non existing register in specific BCM5771x chips. Introduced: eVBD 7.2.51. Relevance: BCM57710/BCM57711/BCM57711E. Version 7.2.51b (May 15, 2012) ============================== Enhancements: ------------- 1. Request: CQ63245 - Add devices to OEM INF. Version 7.2.51a (May 15, 2012) ============================== Enhancements: ------------- 1. Request: CQ63245 - Remove devices from OEM INF. Version 7.2.51 (May 03, 2012) ============================= Internal FW 7.2.51 Fixes: ------ 1. 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 7.2.15 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. 2. Problem: Drive may hang during load after UNDI SAN boot (BFS). Change: Clear DMA error indication upon chip init. This is caused due to eVBD taking over the chip from UNDI driver (Change is compatible with Linux cq62216). Introduced: Day 1. Relevance: All. 3. Problem: CQ62777 - BSOD when upgrade phy firmware on specific board when WoL and NC-SI are disabled in nvm cfg. (MFW doesn't own the link). Change: Fail phy firmware upgrade IOCTL in case sent by BMAPI when driver is in diag mode. In case IOCTL will be sent on diag mode the IOCTL will fail (that will be the case with old BMAPI). Introduced: Day 1. Relevance: WoL and NC-SI are disabled in nvm cfg (MFW doesn't own the link). Version 7.2.50 (April 03, 2012) =============================== Internal FW 7.2.51 Fixes: ------ 1. Problem: (FW ETH) CQ61551 - AFEX VMQ: eVBD queue does not report any rx_con_idx traffic. Change: Fix the packet classification flow to consider AFEX default vlan as untagged packet. Introduced: AFEX day 1. Relevance: Windows VMQ on AFEX devices. 2. 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: 7.0.11. Relevance: All. 3. Problem: slowpath completion code may run simultanously on multiple processors during error-recovery. Change: Check and re-invoke slowpath completion under lock. Change invocation logic as approprite. Introduced: Initial error-recovery implementation. Relevance: BCM57712/BCM578x0. 4. Problem: Code invoked when VBD enters D0 and OMGR is still bounded is invoked at incorrect IRQL, casing kernel BSOD. Change: Raise IQRL before invoking related code. Introduced: 6.4.33 T6.4: CQ54032 fix. Relevance: All BCM577xx devices with iSCSI offload enabled. 5. Problem: CQ61832, CQ62308 - Warnings seen in kernel log when running cnic test. Change: Removed warning as it was logged in a legitimate flow. Introduced: 7.0.12. Relevance: All. 6. 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. 7. Problem: CQ62337 - Fan Failure test fails when stop the fan while passing traffic. Change: Remove redundant assert. Introduced: Day one. Relevance: Checked builds driver running on boards with a fan that fails while traffic is running. 8. Problem: CQ62405 - Remove incorrect speed from a board. Change: Remove the speed in INF. Introduced: T7.0. Relevance: Only for test boards. not real impact. 9. Problem: CQ62066 - AFEX: Incorrect network segmentation between functions when both MAX_BW and BW_Weight are configured. Change: Re-read MAX_BW and apply both min and max B/W. Eliminate redundent MCP B/W update. Introduced: AFEX day one (MCP B/W update since 7.0.3). Relevance: Devices in AFEX mode. 10. Problem: (FW ETH) CQ62279 - Bandwidth Weight not working properly. Change: Fix cmng init code - wrong parenthesis in fairness configuration. Introduced: eVBD 7.2.17, fixed in 7.2.18 and in this version. Relevance: All. 11. Problem: (FW TOE) CQ62151 - Low performance in TX only scenarios with NAGLE algorithm disabled and drops in the network. Change: Fix the relevant firmware flow. Introduced: eVBD 7.0.26. Relevance: All. Enhancements: ------------- 1. Request: CQ62212 - Add support to single port device 57811. 2. Request: Remove redundant devices from INF. Version 7.2.18 (March 26, 2012) =============================== Internal FW 7.2.21 Fixes: ------ 1. Problem: CQ62279 - Bandwidth Weight does not working properly. Change: Fix cmng init code - wrong parenthesis in fairness configuration. Introduced: eVBD 7.2.16 (Firmware version 7.2.19). Relevance: All. Version 7.2.17 (March 15, 2012) =============================== Internal FW 7.2.20 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, those the GPIO control has no affect de facto. 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: CQ61983 - Page Fault (BSOD) when running "FCOE Certs Common Scenario Stress with Disk IO Test". Change: Wait in the code intended to be milliseconds was actually running more than 10 seconds. this caused a page fault in BFS. Now the implementation changed to take really milliseconds. Introduced: Fix #7 in eVBD 7.2.13 exposed this. Relevance: BFS flows with stress. 3. Problem: CQ61863 - Error recovery fails with BSOD 0x1E. Issue is timing related, and correlates with latest MFW versions and specific test setups. Change: Disable PXP2 initialization following error-recovery chip reset. Introduced: MFW 7.0.45. Relevance: BCM57712/BCM578x0. 4. Problem: CQ62151 - Low performance in TX only scenarios with NAGLE algorithm disabled and drops in the network. Change: Fix the relevant firmware flow. Introduced: Firmware version 7.0.25. Relevance: All. Version 7.2.16 (March 13, 2012) =============================== Internal FW 7.2.19 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. 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: T6.2. Relevance: BCM8727 designs with GPIO controlling the TX laser. 2. 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: T7.0. Relevance: 57711+84823. 3. Problem: CQ62088 - Miniport used RSS hashing when not expected. Change: Fix enablement/disablement of RSS mode. Introduced: 7.2.15. Relevance: All. 4. Problem: Link may remain down due to unhandled remote fault clear handling. Change: Enable the interrupt for remote-fault change attentions. Introduced: 7.2.8. Relevance: 57711+8727. Version 7.2.15 (March 06, 2012) =============================== Internal FW 7.2.18 Fixes: ------ 1. 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. 2. 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). Fix requires MBA to be disabled. Introduced: MFW 7.0.51 /MFW 7.2.0. Relevance: 578xx boards with fan. 3. 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. CQ61983 - BSOD 0x7a when Running FCOE Certs Common Scenario Stress with Disk IO Test. Change: Make sure that the IGU ack command is completed before restoring the NIG interrupt mask. Introduced: Day 1. Relevance: BCM57712/BCM578x0. 4. Problem: CQ61418 - system warning event log when deleting teaming on BCM57710/BCM57711. Change: Remove redundant event log message. No other functional effect. Introduced: eVBD T7.0. Relevance: BCM57710/BCM57711 with teaming. 5. 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. 6. Problem: CQ61525 - E3, 57800 B0 - When in S5, no link on ports in random order. Change: Save and restore nig registers before after chip reset. Introduced: Theoretically Day 1, practically more exposed since changes made in eVBD 7.2.12 for CQ61570 CQ61366. Relevance: All. Enhancements: ------------- 1. Request: CQ61934 – Update default Tx Equalization settings for SFP+ mode after analysis at all PVT corners. Relevance: 578xx SFP+. Version 7.2.14 (February 29, 2012) ================================== Internal FW 7.2.18 Fixes: ------ 1. 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: 7.0.0. Relevance: 57810-KR when connected to 1G only link partner. 2. Problem: CQ61827 - bugcheck seen on 320 processors system. Change: Do not enumerate Storage PDO's if processors count > 256. Introduced: Day 1 of 256+ CPU's with storage drivers. Relevance: processors count > 256. 3. Problem: CQ61532 - System will not reboot after fan failure lasting more than 10 seconds. Change: Fail driver initialization upon fan failure lasting more than 10 seconds. Fix requires MFW version 7.2.15 (and above), and will not be effective otherwise. Introduced: MFW 7.0.51 / MFW 7.2.0. Relevance: 578xx boards with fan. 4. 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: 7.0.0. Relevance: Multi-function(7.0.0) or SFP+ devices (7.2.8). 5. Problem: (FW TOE/iSCSI) 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: Fix the relevant firmware flow. Introduced: Exists for TOE (offloaded connections) T6.2 for iSCSI. Relevance: All BCM577xx devices with TOE and/or iSCSI offload enabled. This firmware issue does not exist for FCoE. Version 7.2.13 (February 23, 2012) ================================== Internal FW 7.2.17 Fixes: ------ 1. 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: 7.2.8. 2. 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: T7.0. Relevance: 578xx. 3. 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: 7.2.8. Relevance: LED manipulation for 54616/18 and 8727 PHYs. 4. Problem: CQ61678 - evbd 7.2.12: evbda!lm_eq_handle_niv_vif_lists_eqe assert seen during reboot test. Change: Don't check NIV ramrod state in case function is moving to D3. Introduced: T7.2. Relevance: NIV mode. 5. Problem: CQ56716/CQ61090 - OEM product version and FCoE capabilities endianity is incorrect in shmem. Change: Fix endianity. Introduced: T7.2. 6. Problem: CQ61030 - System loses network connectivity in extremely rare cases when error recovery flow is running for a long period. This happened only on massive testing environment and slim chances can happen in real world. Change: Fail TOE offload requests while error recovery is in progress. Introduced: eVBD 6.4 (When Error Recovery introduced). Relevance: Error recovery is running while TOE connections exists. 7. Problem: CQ61570 CQ61366 CQ61727 CQ61726- Machine BSOD after BFS or reboot test. Change: While cleaning up after iSCSI boot and before loading the eVBD, Or while machine shutdown/hibernate, the NIG block was reset while the MFW was looking into a packet. This caused the MFW to hang and as a result caused the eVBD to hit a fatal error. The fix is to halt MFW traffic before resetting the NIG block. The is follow up of earlier change in eVBD 7.2.12 which was not completely correct. Introduced: Day 1. Relevance: BFS flow and NC-SI existence. More likely to happen with MFW rather than legacy boot code. Enhancements: ------------- 1. Request: CQ60701 - Add suppot for separate tx/rx interrupt affinity. Relevance: All. 2. Request: Prevent excessive assertion/windows log message in TOE zero byte Rx request processing. Relevance: TOE. Version 7.2.12 (February 15, 2012) ================================== Internal FW 7.2.15 Fixes: ------ 1. Problem: CQ61408 - SOL/CKVM connectivity is lost after a BSOD. Change: Disable pause frame while BSOD happen. Introduced: Day 1 of BCM5778x0. Relevance: BCM5778x0. 2. Problem: CQ61090 - Can't see OEM product version as defined in registry in shmem. Change: Fix bug in non x86 (I386) machines. Introduced: With this feature (eVBD 7.2.8). Relevance: T7.2. 3. Problem: (FW ETH) Theoretical bug introduced by GRO acceleration changes where the bytes on place on SGE was still calculated from the SGE Buffer Size. Change: Firmware fix to placement of data of SGEs. Introduced: Firmware version 7.2.14. Relevance: BCM57711/BCM57712/BCM578xx. 4. 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: 7.2.4. Relevance: 84833 PHY. 5. Problem: CQ61583 - When default priority (admin_default_priority) is greater than iSCSI or FCoE negotiated priority, iSCSI or FCoE tagged with default priority. Change: ISCSI or FCoE is tagged with default PRI only when there isn't a negotiated priority for the suitable protocol. Introduced: T7.0. Relevance: DCBX. 6. Problem: CQ61570 CQ61366 - Machine BSOD after iSCSI boot or reboot test. Change: While cleaning up after iSCSI boot and before loading the eVBD, Or while machine shutdown/hibernate, the NIG block was reset while the MFW was looking into a packet. This caused the MFW to hang and as a result caused the eVBD to hit a fatal error. The fix is to halt MFW traffic before resetting the NIG block. Introduced: Theoretically Day 1, practically more exposed in T7.0. Relevance: All. Enhancements: ------------- 1. Request: CQ61484 - In NIV mode ,chimney should be disabled. Relevance: NIV mode. Version 7.2.11 (February 09, 2012) ================================== Internal FW 7.2.14 Fixes: ------ 1. Problem: CQ61262 - NIV default vlan is not stripped if priority or CIF is different than 0. Change: Change the decision to strip the NIV default vlan, to be based only on VLAN ID(The priority and CIF fields are ignored). Introduced: eVBD 7.2.0. Relevance: NIV mode. 2. Problem: CQ61229 - During continuous reboot on NIV mode, get BSOD. Change: Remove redundant call to the FW. Introduced: eVBD 7.2.9. Relevance: NIV mode, eVBD checked builds. 3. Problem: CQ61441 - BCM57810 Function shows link down in NPAR-SD. Change: Re-read DCC link state (as well as MF configuration) upon chip init. Introduced: eVBD 5.0.7 (link state/BW DCC Implementation). Relevance: NPAR-SD, DCC. 4. Problem: CQ61378 (related) - Storage miniports will try to enumerate although there is no valid license burned on chip. Change: Save and restore shmem license while BACS sends license IOCTL. Introduced: "Day 1". Relevance: Boards with invalid licenses and or nvm cfg 187 is set. Enhancements: ------------- 1. 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. 2. Request: CQ61395 - Add 4-part ID for OEM. 3. Request: link read_status updates link partner's capabilities (fc, speed) whenever autoneg was used. Relevance: All boards with phys that support autoneg. 4. Request: CQ60726 - INT3 on panic (for specific OEM) with SMI handler. Version 7.2.10 (February 02, 2012) ================================== Internal FW 7.2.14 Fixes: ------ 1. Problem: NIV mode loopback MAC test didn't configure default vlan and allowed priorities appropriately. Change: Assign constant default vlan for loopback tests (1) and allowed priorities (0xff - all allowed). Introduced: 7.2.9. Relevance: NIV mode. 2. 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. 3. Problem: CQ61281 - Crash dump testing: New eVBD v7.2.9 causes no dump file generated after crash. Change: Fixed driver pulse code after GRC dump. Introduced: 7.2.9. Enhancements: ------------- 1. Request: Internal change in congestion management implementation. 2. Request: CQ61090 - Write OEM product version as defined in registry into shmem. Version 7.2.9 (January 26, 2012) ================================ Internal FW 7.2.12 Fixes: ------ 1. Problem: CQ61088 - Fix device id friendly name in INF. Introduced: T7.2. Relevance: Specific device id's. 2. Problem: Possible BSOD during mac configuration. Change: Release lock in error handling flow. Introduced: 7.2.7. Relevance: All. 3. Problem: CQ56722 - drv capabilities (Virtual Link) report for NCSI management only for first function on port. Change: Move the assignment from common part to function part. Introduced: T7.2 (New feature). Relevance: All but SF. 4. Problem: CQ60579 - NIV mode first iteration of loopback MAC test fails in BACS Diagnostics. Change: Added a flag to FW indicating we are in NIV mode. Introduced: T7.2 (New feature). Relevance: NIV mode. 5. Problem: CQ60431 - NIV mode window may report link up status in network properties when AUT port is plugged to mismatching switch port. Change: Report link only through VIF command. Introduced: T7.2 (New feature). Relevance: NIV mode. Enhancements: ------------- 1. Request: PDA: Involve MCP timeout for retail version. Relevance: PDA only. 2. Request: PDA: Involve FW validation to prevent FW/HSI conflict with functions loaded in other VMs. Relevance: PDA only. 3. Request: PDA: During HW information collection on BSOD prevent access to some HW blocks potentially troubling other active functions in other VMs. Relevance: PDA only. 4. Request: Support split registers in GRC DUMP extracted from Windows memory dump. Relevance: All. Version 7.2.8 (January 19, 2012) ================================ Internal FW 7.2.12 Fixes: ------ 1. Problem: CQ61028 (revised) - No LED at 1G on 57712+8727 designs. Change: Removed a logic error checking for a different PHY. Introduced: T7.0. Relevance: LED manipulation for 54616/18 and 8727 PHYs. 2. 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: T7.0. Relevance: BCM84833. 3. Problem: CQ61053 - Error recovery timeout. Change: In host only (non PDA) mode prevent using HW synchronization mechanism. Introduced: eVBD 7.2.7. 4. Problem: CQ60953 - BACS diagnostics break when functions MAX Bandwidth > 0 (Refix). CQ60988 - Specific BW Configuration Settings Fails to Pass Traffic (Refix). Change: Modified congestion management parameters initialization to include min. bandwidth value from NVRAM. Introduced: eVBD 7.2.5. Relevance: Multi vnic, congestion management enabled. Enhancements: ------------- 1. 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. Version 7.2.7 (January 18, 2012) ================================ Internal FW 7.2.12 Fixes: ------ 1. Problem: DBUS stops upon error recovery, no more DBUS info collected. Change: DBUS now re-starts after error recovery. 2. Problem: CQ60944 - BSOD while running error recovery flows. Change: Don't force HW lock taken before unlock after error recovery occurred. Relevance: All, eVBD checked driver version only AND error recovery enabled (default in checeked is disabled). Introduced: eVBD 6.4 (When Error Recovery introduced), before that, (different) BSOD would happen anyway. 3. Problem: Existing evbd's error recovery mechanism does not cover PDA environment. Change: In PDA environment functions involved in error recovery flow synchronize their execution via HW register. Relevance: PDA (Windows VM): BCM57712/BCM5778x. 4. 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. 5. Problem: CQ60838 - Occasionally the KR link does not come up. Change: Invoke auto-neg restart at the end of the KR link configuration. Introduced: T7.2. Relevance: 578xx KR. 6. Problem: CQ61028 - No LED at 1G on 57712+8727 designs. Change: Drive the 1G LED on link up at 1G. Introduced: Day 1. Relevance: 57712 + 8727 designs. 7. Problem: CQ60953 - BACS diagnostics break when functions MAX Bandwidth > 0. CQ60988 - Specific BW Configuration Settings Fails to Pass Traffic. Change: Fix overwrite of internal ram registers while initializing congestion management. Introduced: eVBD 7.2.5 . Relevance: Multi vnic, congestion management enabled. 8. Problem: ChkInf failed due to duplicated oem device id's. Change: Remove duplicate id's. Introduced: eVBD 7.2.5 (as part of CQ60717). Relevance: All. Enhancements: ------------- 1. Request: CQ59808 - Product version string should be 17.2.0. 2. 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: Chips: BCM57712, BCM57800, BCM57810. Phys: BCM8727, BCM8726, BCM84833. 3. Request: CQ60699 - Disable auto-grEEEn for 84833 PHY. Relevance: 84833 PHY only. 4. Request: VBD<->Clients(NDIS/FCoE/iSCSI) interface enhancement (internal): - Add more information. - Function number report is now absolute and not relative. 5. Request: CQ59363 - Display the link partner FC capabilities when FC is not autoneg. Relevance: All. 6. Request: Add FCoE capabilities report for NCSI management. Relevance: BCM57712/BCM578x0. 7. Request: CQ61005 - Add 4-part ID for OEM. 8. Request: CQ60996 - Add 4-part ID for OEM. 9. Request: CQ60997 - Add 4-part ID for OEM. Version 7.2.6 (Jan 10, 2012) ============================ Internal FW 7.2.12 Fixes: ------ 1. Problem: CQ60714 - FCoE client enumerated, although no license key is burned. Change: Prevent FCOE client enumeration, if no license key is burned. Relevance: BCM57712/BCM5778x without any licenses burned. Introduced: eVBD 6.4 (When FCoE introduced). Enhancements: ------------- 1. Request: CQ60775 - Add 4-part ID for OEM. 2. Request: CQ60784 - Add 4-part ID for OEM. 3. Request: Initial implementation of PDA (Physical Device Assignment). Version 7.2.5 (January 05, 2012) ================================ Internal FW 7.2.12 Fixes: ------ 1. Problem: CQ60417 - DCBX: device ignored missing TLVs. Change: Tread missing TLVs as an error - do not configure the feature. Relevance: DCBX supported devices. 2. Problem: CQ60155 - eVBD BSOD is observed while changing number of RSS queues to 16. Change: Firmware fix to relevant flow. Relevance: BCM57711/BCM57712/BCM578xx. Introduced: eVBD 7.2.0. Enhancements: ------------- 1. Request: CQ56159 - Add AutoGrEEEn Advanced Driver option for BCM578x0-1G and BCM578x0 10gbaseT ports. 2. Request: CQ60717 - Remove 100Mb Force for BCM84833 design. 3. Request: (Internal) congestion management implementation is by firmware and not by driver. Version 7.2.4 (December 29, 2011) ================================= Internal FW 7.2.11 Fixes: ------ 1. Problem: CQ60276: NPAR SD: Cannot see IET target in Device manager with Tagged Vlan for iscsi device. Change: Fixed wrong FW initialization. Relevance: NPAR SD. Introduced: NPAR SD (7.2). 2. Problem: CQ60503 - NPAR SD evbda BSOD when changing min bw weight settings to non-zero value on NPAR SD function. Change: Remove redundant ASSERT in checked build evbd driver. Relevance: NPAR SD checked builds. Introduced: NPAR SD (7.2). 3. Problem: CQ60223 - NPAR SD see system event log every 5 seconds indicating that "The SAN link is up". Change: Remove redundant link indication. Relevance: All, mainly NPAR SD with periodic OEM commands events. Introduced: Day 1 of OEM MFW-->driver commands. 4. Problem: CQ60377 (FCOE FW) - Task was corrupted when working with CONF REQ. Change: Firmware fix to relevant RX flows. Relevance: BCM57712/BCM578xx. Introduced: eVBD 7.2.0. 5. Problem: The common PHY init function for 84833 got "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. Enhancements: ------------- 1. Request: CQ60291 - Add 4-part ID for OEM. 2. Request: CQ60293 - Add 4-part ID for OEM. Version 7.2.3 (December 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: CQ60491 - BCM57710/BCM57711 BSOD on driver load. Change: Fixed a regression introduced by the new enhancement: "Add Support Ethernet/iSCSI/FCoE statistics request from MFW". Relevance: BCM57710/BCM57711 devices. Introduced: eVBD 7.2.2. 3. Problem: CQ60315 - The 100Mbps "Speed&Duplex" strings settings between the NDIS miniport and VBD does not match. Change: Fixed the strings to be the same. Relevance: All boards that enumerates the 100Mbps Half/Full speeds. Introduced: Day 1. 4. Problem: CQ60400 - NPAR-SD mode evbda BSOD when clicking on NIC partition configuration in BACS while traffic is running. Change: Access to MFW command mailbox was not protected in license interface. Relevance: When frequent commands from MFW to driver are sent together with BACS querying the device while CPU's are loaded. The issue can happen since beginning of OEM commands request from/to driver but is more commonly exposed when these commands are frequent. Introduced: Day 1 when OEM MFW-->Driver commands were enabled. 5. Problem: Setting NPAR min/max bandwidth allocation might cause a BSOD in case working with a boot code which doesn't support this command. Change: Fix the boot code version checking. Relevance: Only to boot code version smaller than 6.2 that supports this feature. Since there is no such version, this is theoretical bug only. Introduced: Day 1 of NPAR min/max bandwidth allocation feature. Enhancements: ------------- 1. Request: Support Basic Physical Device Assignment. Modified wide-bus accesses during init to use indirect interface when DMAE is not ready only in E1 (as it is only needed in E1 as a workaround for BIOS initiated ZLR, which is handled in later chips by the Root Complex). This allows driver to init chip even if indirect interface is unavailable as in PDA. 2. Request: Add dynamic statistics IOCTL to be used by winedebug (similar to qstats TCL script for ediag). 3. Request: Add PFC tx/rx frames counters to port statistics exposed to management tools. Version 7.2.2 (December 12, 2011) ================================== Internal FW 7.2.10 Fixes: ------ 1. 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. 2. Problem: CQ60065 - Error Recovery: After manually inducing HW Error with NPAR enabled running converged IO, SUT generates PFC pause storm. Change: VBD did not fill in fields correctly in completion sent to FCOE miniport during error recovery flow. Introduced: T7.0. Relevance: Error recovery flow under NPAR with fcoe/iscsi connections on functions 2 and above. 3. Problem: CQ59823 - Driver hang when FCoE IO starts. Change: Firmware fix to data transmission flow. Introduced: eVBD 7.2.0 (Firmware version 7.2.0). Relevance: All. Enhancements: ------------- 1. 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. 2. Request: CQ56732 CQ56727 CQ56722 CQ56716 Add Support Ethernet/iSCSI/FCoE statistics request from MFW. Relevance: BCM578x0 devices. Version 7.2.1 (December 7, 2011) ================================= Internal FW 7.2.9 Fixes: ------ 1. Problem: CQ59812 - BACS showing 'Loopback PHY' test failure for BCM5711/BCM57710 devices. Change: Fix set loopback mode flow. Introduced: eVBD 7.0.23 Relevance: BCM5711/BCM57710 devices. 2. Problem: CQ59828/CQ59875 - 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. 3. Problem: CQ59750 - Enabling or Disabling DCB parameters via NDIS miniport "Advanced Properties" results in system breaking into debugger. Change: Each port resets its own DCB common bits. Introduced: 7.0.35.87. Relevance: 578xx 4 port devices. 4. Problem: CQ41760/CQ59905 - Fan failure of device with generic ssid displays specific oem information in event viewer. Change: Change the string from OEM specific name to "OEM". Introduced: 6.0.0 Relevance: BCM5771x devices with fan - event log wording only. 5. Problem: CQ59448 - Chip hangs when target sends FIN out-of-order or with isles open at the initiator side. Change: Firmware implementation corrected to drop FIN received out-of-order or with isles still open. Introduced: Firmware version 6.0.0. Relevance: All. Enhancements: ------------- 1. Request: CQ59918/CQ59882 - Add 4-part ID for OEM. 2. Request: CQ59194 - Add 4-part ID for OEM. 3. Request: CQ59195 - Add 4-part ID for OEM. 4. Request: CQ54414 - Add 4-part ID for OEM. 5. Request: CQ59827 - Change SSID for OEM. 6. Request: Enhanced memory pool tag assignment. 7. Request: Prevent attention interrupt in evbd on HW timer expiration. 8. Request: CQ58195 - Add 4-part ID for OEM. 9. Request: CQ59066 - Add 4-part ID for OEM. Version 7.2.0 (November 15, 2011) ================================= Internal FW 7.2.7 1. Problem: CQ58945 : When a PG is created with 0% BW, the ETS is not conforming. Change: Driver support a ETS PG with BW of 0. Introduced: T7.0. Relevance: DCBX. 2. Problem: CQ58238, CQ58854, CQ58562 Link issues when storage miniports are loaded prior to NDIS miniport this is because default speed is used and not the speed configured by NDIS. Change: VBD reads link preference from NDIS registry when NDIS miniport is absence. Introduced: Day 1. 3. Problem: CQ59412 : Fan Failure Mechanism test fails in SF. Change: HW failure (for cases VBD asks to disable device) assumed no offloaded connections exist when we receive the surprise removal request. But this is not always the case. The change is that at hw failure event the VBD requests the OS to upload all connection, to assure this. Introduced: T7.0. Relevance: Fan failure flows. 4. 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. 5. Problem: CQ58179 - BSOD while running Super Stress with Error Injection script. Change: Waiting for TOE to upload all connections during error recovery flow took too long, the reason was the change that TOE no longer uses OS work items, but instead a dedicated thread. The change was to increase the priority of the dedicated TOE thread. Introduced: 7.0.25. Relevance: Error recovery flow under TOE stress. Enhancements: ------------- 1. Request: Use 578xx-B0 built-in MDIO access work-around instead of 578xx-A0 work-around 2. Request: CQ59665 - Add FCoE data to NPAR-SD statistics Relevance: FCoE + NPAR-SD. Version 7.0.200 (November 2, 2011) ============================== Internal FW 7.2.7 Fixes ----- 1. Problem: A deadlock may occur if offloading a TOE connection fails. Change: Release a lock if such an error occurs. Introduced: 7.0.32.74/7.0.26 Relevance: TOE. 2. Problem: CQ58853 - OS shows link speed as 10Gbps on 1Gb port when port is disconnected Change: Report max speed correctly. Introduced: Day one. Exposed by support for 1G ports. Relevance: 57800. 3. Problem: CQ58753 - iSCSI boot: 57800 - systems hangs at Windows splash screen when boot up via 4th port (1G port) Change: Access correct MFW MB on driver initialization. Introduced: eVBD 7.0.32 Relevance: All 4. Problem: CQ58962 - Hibernate failed in iSCSI Boot environment with NPAR enabled. Change: When restoring mac addresses on returning from hibernate, the macs also need to be restored in the NIG LLH. Introduced: Day one. Relevance: 57712, 57800, Hibernate of iSCSI with NPAR enabled. 5. Problem: CQ58992 - Bugcheck running Plug and Play Driver Test on 57710 Change: Don't attempt to report client bind/unbind on chips that don't support this feature. Introduced: 7.0.36 Relevance: 57710. 6. Problem: 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. 7. Problem: Traffic blink rate LED is too fast. Change: Adjust the blink rate to 578xx clock. Introduced: T7.0 Relevance: 578xx. 8. Problem: CQ58992 (does not verify): Bugcheck running Plug and Play Driver Test on 57712 Change: Clear list of packets after moving to other list. Don't attempt to report client bind/unbind after bar has already been unmapped (during surprise removal). Introduced: T7.0 Relevance: All. 9. Problem: CQ59105 BSOD when trying to run CNIC stress in GOS in NPAR mode. Change: VMQ Dpc shouldn't try handling status blocks that don't belong to VMQs. Introduced: T6.0. Relevance: VMQ running with iscsi/fcoe. 10. 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 11. 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 12. Problem: CQ58705 (does not verify) - Flow control does not function on fibre connections when alternative reporting mode is used. Change: Include case related to fibre link, where connection is not auto-negotiated. Introduced: 7.0.39 Relevance: Flow control reporting mode. 13. Problem: CQ58884 - possible link issues after unload/load of 1G copper ports. Change: Close RX NIG in delay time after resetting the MAC. Introduced: T7.0. Relevance: 578xx. 14. 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 capbility advertisement. Re-enable it after configiuration is done. Introduced: Day One Relevance: 578xx blade designs. 15. Problem: CQ59387 - OEM branded 57810s Has Incorrect Friendly Name under Evbd Instances. Change: Changed friendly name in inf. Introduced: T7.0. Relevance: OEM specific device. 16. 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: v7.0.50. Relevance: 84833 PHY. 17. Problem: CQ58705 – Implementation of OEM specific enhancement on how flow control is reported to upper models did not take into account some code architectural restrictions. Change: Modify the code to adhere to the code architectural restrictions. Introduced: 7.0.39. Relevance: Flow control reporting mode. 18. Problem: CQ59394 - Intermittent disconnections using Windows 2008 R2 Hyper V cluster. Change: Criterion of coalescing buffer mechanism involving is fixed. Introduced: Day one. Relevance: All. 19. Problem: CQ58889 - Trying to enable "Quality of Service" under Network adapter properties applet results in BSOD. Change: Firmware fix to relevant flow. Introduced: Firmware version 7.2.0. Relevance: BCM57712/BCM578xx. 20. Problem: (FCOE) CQ58774 - Arrival of packets beyond task IO size can lead to crash. Change: Fix firmware data-in flow. Introduced: Day 1. Relevance: All. 21. Problem: (iSCSI) CQ57927 - Chip hangs when in case of retransmission not aligned to 4-bytes from the beginning of iSCSI PDU. Change: Firmware implementation corrected to support arbitrary aligned retransmissions. Introduced: Firmware version 7.0.16. Relevance: All 22. Problem: Wrong configuration of TX HW input buffer size may cause theoretical performance effect. Change: Configuration fix to relevant values. Introduced: Day 1. Relevance: BCM57712/BCM578xx. 23. Problem: (FCOE) VLAN priority is not taken from DCB results in SD-NPAR mode. Change: Always take VLAN from DCB result in SD-NPAR mode. Introduced: Day 1. Relevance: All. Enhancements: ------------- 1. Request: CQ58666 - Update eVBD inf to change Speed&Duplex display name from Auto to Auto Negotiation. 2. Request: CQ58705 – OEM specific enhancement on how the results of the auto negotiation flow control settings are being reported to the upper layers Relevance: Everest based devices 3. Request: Add LED functionality to 54618SE PHY based boards. 4. 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. 5. Request: CQ59337 - Add new devices to INF. 6. Request: CQ59442 - OEM friendly name change. 7. Request: prevents FCOE PDO enumeration on VISTA and W7 client version. Version 7.0.51 (September 22, 2011) ============================== Internal FW 7.2.4 Fixes ----- 1. Problem: CQ58318 - BSOD pointing to bxois while running Ultimate Stress with Error Injection script. Change: VBD did not fill in all required fields in kcqe during internal completion flow (done only in error recovery flow). Introduced: VBD version 6.4.19. Relevance: Only under error recovery flow. 2. Problem: MCP scratchpad parity attention was cleared for 57712/578xx, causing inconsistent behavior between checked build (in which parity was simply cleared and ignored) to retail (in which error recovery was initiated). Change: Removed clearing of mcp scratchpad parity attention, so that now checked build and retail have consistent behaviour (assert in checked build and recover in retail). Introduced: Day one of 57712. Relevance: 57712/578xx checked build only. 3. Problem: CQ58322 - Wrong link speeds in NPAR mode. Change: Fix iteration on all functions in a port to adjust for 4-port MF mode. Introduced: Day 1. Exposed by support for 4-port devices in T7.0. Relevance: 57800 and 57840(4-port), NPAR mode only. 4. Problem: CQ58351 - BSOD caused by evbd 7.0.33 in NPAR mode on 57800 B0. Change: Rewrite vnics_per_port calculation. Introduced: Day 1, exposed by fix #3. Relevance: 57800 and 57840(4-port), NPAR mode only. 5. 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. 6. 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. 7. Problem: In extreme rare cases and hardware faults, BSOD pointing to the driver might occur. Change: Prevent BSOD. Introduced: Day 1. Relevance: All. 8. Problem: CQ55875 - Incorrect port-level statistics reported in BACS. Change: Fix incorrect configuration of HW statistics DMA transaction for 10GB link. Introduced: Day 1 of T7.0. Relevance: All. 9. Problem: Theoratical bug: in BFS environment, if we have a recoverable error we may not be able to start the vbd_reset thread that handles the error. Change: Start the thread at init-driver (if error recovery is enabled), when error occurs simply wake up the thread. Introduced: 6.4.19. Relevance: When error recovery is enabled (Retail/Checked + registry key). 10. Problem: VBD file size and memory footprint increased significantly. Change: Remove redundant static arrays. Introduced: 7.0.32. Relevance: All. 11. Problem: CQ58474 - BSOD while running Ultimate Stress. Change: Corner case in TOE flow didn't handle memory allocation failure, added proper handling. Introduced: VBD release 4.8. Relevance: TOE. 12. Problem: BSOD while running Ultimate Stress with Error Inject script. Change: Under error recovery flow, a certain sanity check that all completions for toe rx were received is not valid. Check only if we're not during recovery. Introduced: VBD version 6.4.19. Relevance: Checked versions, only during error recovery flow. 13. Problem: CQ58582 - 57800 assert at evbda!lm_get_packets_sent when in NPAR mode and using image w/ latest EFI 7.0.23 Change: Fix FW resource allocation for mixed SF+MF mode. Introduced: With support for 4-port devices. Exposed by EFI v7.0.23. Relevance: 57800 NPAR mode only. 14. Problem: Firmware may assert upon function update ramrod when changing the CoS mode. Change: (FW Common) Firmware fix to relevant flow. Introduced: eVBD 7.0.50 Relevance: BCM57712/BCM578xx. 15. Problem: CQ57933 - iSCSI does not support CoS 2. Change: (FW iSCSI) Firmware fix to support CoS 2. Introduced: eVBD 7.0.50 Relevance: All platforms running DCB enabled with COS 2 and higher. 16. Problem: TOE IP octets statistics wrongly included the ETH CRC bytes. Change: (FW TOE) Firmware fix to exclude ETH CRC bytes from relevant statistics. Introduced: T7.0 Relevance: All. Enhancements: ------------- 1. Request: CQ58307 - Add 4-part ID for new OEM platform. 2. Request: Add IOCTL to enable reading PCI configuration space (for use by internal tools) 3. Request: CQ58188 CQ58186 - OEM New (additional) 4 part ID match for BCM57712 and 8727C designs. (Already fixed in version 6.2.21a & applying to 7.0 as well). 4. Request: CQ58415 - Remove Windows Advanced Properties of AutoGrEEEn for specific OEM designs. Relevance: 578xx specific design. 5. Request: CQ57952 - unload the eVBD on fan failure detection Relevance: Board designs that support fan failure detection. 6. Request: CQ58461 - INF changes for specific OEM designs. Relevance: 578xx specific design. 7. Request: CQ53679 - Implement New OEM Command: Get Virtual Link Relevance: Requires MFW 7.0.52 or later. 8. Request: CQ58654 - Add new 4-part ID for OEM. Version 7.0.50 (September 1, 2011) ============================== Internal FW 7.2.1 Fixes ----- 1. 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. 2. 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. 3. 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. 4. 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. 5. 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. 6. Problem: CQ58086 - on 578xx B0 ETS BW 0% is not allowed by driver. Change: Provide alternative HW configuration for this case. Introduced: T7.0. Relevance: 578xx with DCB support. 7. Problem: CQ57969 - The iSCSI traffic completely stops when dual port FCoE & iSCSI Rx/Tx is run. Change: Fix wrong HW Configuration. HW was configured to per mac guarantee mode instead of per class guarantee mode. Introduced: T7.0. 8. Problem: FCoE FIP packets are sent with wrong PRI field in NPAR-SD mode Change: Force using the correct PRI value for FCoE packets in NPAR-SD mode Introduced: With NPAR-SD support. Relevance: FCoE in NPAR-SD mode. 9. Problem: BSOD on driver load on 57710 and 57711 chips Change: Don't write to invalid internal RAM offset on these chips. Introduced: eVBD 7.0.12, exposed by FW 7.2.1. Relevance: 57710 and 57711 only. 10. Problem: CQ56758 - Offloaded connection will not allow disable of nagle after data was sent. Change: (FW TOE) Firmware fix to relevant flow. Introduced: Firmware version 6.0.0. Relevance: All 11. Problem: CQ56960 - Arrival of un-solicited ASYNC message causes firmware to abort the connection with RST. Change: (FW iSCSI) Firmware fix to relevant flow. Introduced: Firmware version 4.6. Relevance: All 12. 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: (FW Common) Firmware fix to relevant flow. Introduced: Firmware version 6.0.8. Relevance: BCM57711/BCM57712/BCM578xx. 13. Problem: Arrival of target-initiated NOP-IN during intense ISCSI traffic might lead to crash. Change: (FW iSCSI) Firmware fix to relevant flow. Introduced: Firmware version 6.0.0. Relevance: All Enhancements: ------------- 1. Request: Support NPAR-SD vlan trunk mode. Relevance: NPAR-SD mode only. 2. Request: Remove Timer 4 (id 3) sanity check because it is being used by temperature statistic reporting now. Version 7.0.45 (December 20, 2011) ================================== Internal FW 7.0.29. Fixes: ------ 1. Problem: CQ41760/CQ59905/CQ60397 - Fan failure of device with generic ssid displays specific OEM information in event viewer. Change: Change the string from OEM specific name to "OEM". Introduced: Fixed in T5.2 but appeared again in 6.0.0. Relevance: BCM5771x devices with fan - event log wording only. Version 7.0.44c (November 29, 2011) =================================== Enhancements: ------------- 1. Request: CQ59918/CQ59882 - Add 4-part ID for OEM. Version 7.0.44b (November 23, 2011) =================================== Fixes: ------ 1. Problem: CQ59876 - EVBD 7.0.44 fails chkinf in DTM. Change: Fix missing parameter in INF. Introduced: eVBD 7.0.44 Relevance: All. Enhancements: ------------- 1. Request: CQ59829 - Add 4-part ID for OEM. Version 7.0.44a (November 22, 2011) =================================== Enhancements: ------------- 1. Request: CQ59829 - Add 4-part ID for OEM. Version 7.0.44 (November 22, 2011) ================================== Fixes: ------ 1. Problem: CQ59812 - BACS showing 'Loopback PHY' test failure for BCM5711/BCM57710 devices. Change: Fix set loopback mode flow. Introduced: eVBD 7.0.23 Relevance: BCM5711/BCM57710 devices. Enhancements: ------------- 1. Request: CQ59194 - Add 4-part ID for OEM. 2. Request: CQ59195 - Add 4-part ID for OEM. 3. Request: CQ54414 - Add 4-part ID for OEM. Version 7.0.43b (November 20, 2011) =================================== Enhancements: ------------- 1. Request: CQ59829 - Add 4-part ID for OEM. Version 7.0.43a (November 20, 2011) =================================== Enhancements: ------------- 1. Request: CQ59829 - Remove 4-part ID for OEM. Version 7.0.43 (November 3, 2011) ================================= Internal FW: 7.0.29 Fixes: ------ 1. 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. 2. Problem: CQ58705 – Implementation of OEM specific enhancement on how flow control is reported to upper models did not take into account some code architectural restrictions. Change: Modify the code to adhere to the code architectural restrictions. Introduced: 7.0.39. Relevance: Flow control reporting mode. 3. Problem: CQ59394 - Intermittent disconnections using Windows 2008 R2 Hyper V cluster. Change: Criterion of coalescing buffer mechanism involving is fixed. Introduced: Day one. Relevance: All. Enhancements: ------------- 1. Request: CQ59442 - OEM friendly name change. 2. Request: prevents FCOE PDO enumeration on VISTA and W7 client version. Version 7.0.42 (October 24, 2011) ================================= Internal FW: 7.0.29 1. Problem: CQ58705 (does not verify) - Flow control does not function on fibre connections when alternative reporting mode is used. Change: Include case related to fibre link, where connection is not auto-negotiated. Introduced: 7.0.39 Relevance: Flow control reporting mode. 2. Problem: CQ58884 - possible link issues after unload/load of 1G copper ports. Change: Close RX NIG in delay time after resetting the MAC. Introduced: T7.0. Relevance: 578xx. 3. 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 capbility advertisement. Re-enable it after configiuration is done. Introduced: Day One Relevance: 578xx blade designs. 4. Problem: CQ59387 - OEM branded 57810s Has Incorrect Friendly Name under Evbd Instances. Change: Changed friendly name in inf. Introduced: T7.0. Relevance: OEM specific device. Enhancements: ------------- 1. Request: CQ59337 - added OEM specific 4-part ID. Version 7.0.41 (October 17, 2011) ================================= Internal FW: 7.0.29 1. 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 2. Problem: CQ58992 (does not verify): Bugcheck running Plug and Play Driver Test on 57712. Change: Don't attempt to report client bind/unbind after bar has already been unmapped (during surprise removal). Introduced: T7.0 Relevance: All. 3. Problem: CQ58912: Port identification not working on 54618SE PHY when link is not present. Change: Add ON functionality to the 54618SE PHY link LED. Introduced: T7.0 Relevance: 54618SE PHY based boards. Version 7.0.40 (October 11, 2011) ================================= Internal FW: 7.0.29 Fixes ----- 1. Problem: CQ58992 (does not verify): Bugcheck running Plug and Play Driver Test on 57712 Change: Clear list of packets after moving to other list. Introduced: T7.0 Relevance: All. 2. Problem: CQ59105 BSOD when trying to run CNIC stress in GOS in NPAR mode. Change: VMQ Dpc shouldn't try handling status blocks that don't belong to VMQs. Introduced: T6.0. Relevance: VMQ running with iscsi/fcoe. Version 7.0.39 (October 10, 2011) ================================= Internal FW: 7.0.29 Fixes ----- 1. Problem: A deadlock may occur if offloading a TOE connection fails. Change: Release a lock if such an error occurs. Introduced: 7.0.32.74/7.0.26 Relevance: TOE. 2. Problem: CQ58992 - Bugcheck running Plug and Play Driver Test on 57710 Change: Don't attempt to report client bind/unbind on chips that don't support this feature. Introduced: 7.0.36 Relevance: 57710. 3. Problem: CQ58306 and 58507 Intermittent link failure after link enable. Change: Reset rx and tx path if link is not up. Introduced: Day one Relevance: 57810. 4. Problem: CQ58962 - Hibernate failed in iSCSI Boot environment with NPAR enabled. Change: When restoring mac addresses on returning from hibernate, the macs also need to be restored in the NIG LLH. Introduced: Day one. Relevance: 57712, 57800, Hibernate of iSCSI with NPAR enabled. 5. Problem: 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. 6. Problem: Traffic blink rate LED is too fast. Change: Adjust the blink rate to 578xx clock. Introduced: T7.0 Relevance: 578xx. 7. Problem: CQ58774 - Arrival of packets beyond task IO size can lead to crash. Change: Fix firmware data-in flow. Introduced: Day 1. Relevance: All. Enhancements: ------------- 1. Request: CQ58705 – OEM specific enhancement on how the results of the auto negotiation flow control settings are being reported to the upper layers Relevance: BCM577xx based devices. Version 7.0.38 (September 28, 2011) ================================ Internal FW: 7.0.28 Fixes ----- 1. Problem: CQ58753 - iSCSI boot: 57800 - systems hangs at Windows splash screen when boot up via 4th port (1G port) Change: Access correct MFW MB on driver initialization. Introduced: eVBD 7.0.32 Relevance: All 2. Problem: CQ58853 - OS shows link speed as 10Gbps on 1Gb port when port is disconnected Change: Report max speed correctly. Introduced: Day one. Exposed by support for 1G ports. Relevance: 57800. Version 7.0.37 (September 27, 2011) ================================ Internal FW: 7.0.28 Fixes ----- 1. Problem: CQ57927 - Chip hangs when in case of retransmission not aligned to 4-bytes from the beginning of iSCSI PDU. Change: Firmware implementation corrected to support arbitrary aligned retransmissions. Introduced: Firmware version 7.0.16. Relevance: All Enhancements: ------------- 1. Request: CQ58666 - Update eVBD inf to change Speed&Duplex display name from Auto to Auto Negotiation. 2. Request: CQ58688 - Remove redundant CAM TM initializations from E3. Relevance: 578xx designs. Version 7.0.36 (September 19, 2011) ================================ Internal FW: 7.0.27 Fixes: ------ 1. Problem: CQ58474 - BSOD while running Ultimate Stress. Change: Corner case in TOE flow didn't handle memory allocation failure, added proper handling. Introduced: VBD release 4.8. Relevance: TOE. 2. Problem: BSOD while running Ultimate Stress with Error Inject script. Change: Under error recovery flow, a certain sanity check that all completions for toe rx were received is not valid. Check only if we're not during recovery. Introduced: VBD version 6.4.19. Relevance: Checked versions, only during error recovery flow. 3. Problem: CQ58582 - 57800 assert at evbda!lm_get_packets_sent when in NPAR mode and using image w/ latest EFI 7.0.23 Change: Fix FW resource allocation for mixed SF+MF mode. Introduced: With support for 4-port devices. Exposed by EFI v7.0.23. Relevance: 57800 NPAR mode only. Enhancements: ------------- 1. Request: CQ58461 - INF changes for specific OEM designs. Relevance: 578xx specific design. 2. Request: CQ53679 - Implement New OEM Command: Get Virtual Link Relevance: Requires recent-enough MFW. Version 7.0.35 (September 12, 2011) ================================ Internal FW: 7.0.27 Fixes: ------ 1. Problem: In extreme rare cases and hardware faults, BSOD pointing to the driver might occur. Change: Prevent BSOD. Introduced: Day 1. Relevance: All. 2. Problem: CQ55875 - Incorrect port-level statistics reported in BACS. Change: Fix incorrect configuration of HW statistics DMA transaction for 10GB link. Introduced: Day 1 of T7.0. Relevance: All. 3. Problem: Theoratical bug: in BFS environment, if we have a recoverable error we may not be able to start the vbd_reset thread that handles the error. Change: Start the thread at init-driver (if error recovery is enabled), when error occurs simply wake up the thread. Introduced: 6.4.19. Relevance: When error recovery is enabled (Retail/Checked + registry key). 4. Problem: BSOD in surprise removal and fan failure scenarios. Change: Revert a part of the change in enhancement #3 of eVBD 7.0.34 Introduced: 7.0.34. Relevance: All. 5. Problem: VBD file size and memory footprint increased significantly. Change: Remove redundant static arrays. Introduced: 7.0.32. Relevance: All. Enhancements: ------------- 1. Request: CQ58415 - Remove Windows Advanced Properties of AutoGrEEEn for specific OEM designs. Relevance: 578xx specific design. Version 7.0.34 (September 8, 2011) ================================ Internal FW: 7.0.27 Fixes: ------ 1. Problem: CQ58351 - BSOD caused by evbd 7.0.33 in NPAR mode on 57800 B0. Change: Rewrite vnics_per_port calculation. Introduced: Day 1, exposed by eVBD 7.0.33. Relevance: 57800 and 57840(4-port), NPAR mode only. Enhancements: ------------- 1. Request: Add IOCTL to enable reading PCI configuration space (for use by internal tools) 2. Request: CQ58188 CQ58186 - OEM New (additional) 4 part ID match for BCM57712 and 8727C designs. (Already fixed in version 6.2.21a applying to 7.0 as well). 3. Request: CQ57952 - unload the eVBD on fan failure detection Relevance: Board designs that support fan failure detection. Version 7.0.33 (September 5, 2011) ================================ Internal FW: 7.0.27 Fixes: ------ 1. Problem: possible BSOD on driver load on 57710 and 57711 chips. Change: Don't write to invalid internal RAM offset on these chips. Introduced: eVBD 7.0.12. Relevance: 57710 and 57711 only. 2. Problem: CQ58318 - BSOD pointing to bxois while running Ultimate Stress with Error Injection script. Change: VBD did not fill in all required fields in kcqe during internal completion flow (done only in error recovery flow). Introduced: VBD version 6.4.19. Relevance: Only under error recovery flow. 3. Problem: MCP scratchpad parity attention was cleared for 57712/578xx, causing inconsistent behavior between checked build (in which parity was simply cleared and ignored) to retail (in which error recovery was initiated). Change: Removed clearing of mcp scratchpad parity attention, so that now checked build and retail have consistent behaviour (assert in checked build and recover in retail). Introduced: Day one of 57712. Relevance: 57712/578xx checked build only. 4. Problem: Arrival of target-initiated NOP-IN during intense ISCSI traffic might lead to crash. Change: Firmware fix to relevant flow. Introduced: VBD Version 6.0.0 (Firmware version 6.0.0). Relevance: All 5. Problem: CQ58322 - Wrong link speeds in NPAR mode. Change: Fix iteration on all functions in a port to adjust for 4-port MF mode. Introduced: Day 1. Exposed by support for 4-port devices in T7.0. Relevance: 57800 and 57840(4-port), NPAR mode only. Enhancements: ------------- 1. Request: CQ58307 - Add 4-part ID for new OEM platform. Version 7.0.32 (August 29, 2011) ================================ Internal FW: 7.0.26 Fixes: ------ 1. Problem: CQ58086 - on 578xx B0 ETS BW 0% is not allowed by driver. Change: Provide alternative HW configuration for this case. Introduced: T7.0. Relevance: 578xx with DCB support. 2. Problem: CQ57990 - OIS CERTS: 57711 - BSOD when running Sleep Stress with IO test (iSCSI Boot Environment), refix. Change: Make the decision whether to do undi reset to happen exclusively and prevent condition race. Introduced: Day 1, exposed only on BFS flows. Relevance: iSCSI boot Environment. 3. Problem: Bandwidth allocation produces invalid results on 4 port devices. Change: Add support for 4-port mode devices to BW allocation code. Introduced: day one. Relevance: 57800 and 57840(in 4-port mode), NPAR only. Enhancements: ------------- 1. Request: Enable FEC (Forward Error Correction) on 57810-KR 2. Request: CQ57662 - disable DCB for all 578xx boards. Relevance: 578xx. 3. Request: CQ57204 - Prevent enumeration of FCoE for 578xx boards. Relevance: 578xx. 4. Request: Include VFC and IGU data in the internal data saved in a Windows memory dump. Relevance: 57712 and later. Version 7.0.31 (August 22, 2011) ================================ Internal FW: 7.0.26 Fixes ----- 1. Problem: CQ57879 - BSOD while running Super Stress with Error Injection script. Change: Redundant assert in the driver can occur under error recovery flow, however the assert is not required in the first place, removed assert. Introduced: VBD version 6.4.19. Relevance: Only under error recovery flow. 2. Problem: Setting NPAR max bandwidth or NPAR bandwidth weight fails for 578xx boards Change: Allow bandwidth allocation changes for all chips newer then 57711 Introduced: T6.4 Relevance: 578xx only 3. Problem: Paged code could theoretically be called in iscsi/fcoe boot environment. Change: Remove all pragmas setting code as paged from VBD. Introduced: Day one. 4. Problem: CQ57841 - NIG timer error and connection loss after driver is loaded. Change: Apply NIG drain when remote fault is detected. Introduced: T7.0. Relevance: Fiber ports. 5. 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. 6. Problem: CQ57271 - PCI MPS violation in PF0 when resuming from Hibernate Change: Enforce valid MPS value for PF0 by other PFs' load flow. Introduced: Third Party (OS issue). Relevance: Only under a specific Windows version (Windows Server 2008 R2 SP1. Issue does not occur in Windows Server 2008 SP2). 7. Problem: CQ57990 - OIS CERTS: 57711 - BSOD when running Sleep Stress with IO test (iSCSI Boot Environment). Change: Make the undi reset to happen exclusively and prevent condition race. Introduced: Day 1, exposed only on BFS flows. Relevance: iSCSI boot Environment. 8. Problem: Failure to validate manufacturing/upgrade license on 57800 and 57840. Change: Fix licensing code for 4 port devices. Introduced: day one. Relevance: 57800 and 57840 only. Version 7.0.30 (August 15, 2011) =============================== Internal FW: 7.0.26 Fixes ----- 1. Problem: CQ57564 - BSOD in iscsi flow is seen while changing Flow Control on port 0. Change: Moving toe offload from system workitem to run in VBD worker thread caused a case of starvation to iscsi work items that were schedule in same thread. To handle starvation two worker threads are now created upon init, one for TOE and one for the rest. Introduced: VBD version 7.0.25. Relevance: Multi Client setup. 2. Problem: CQ57240 - NDISTest: assertion during LSO packet processing when running MPE_Ethernet test script. Change: Remove legacy sanity check. Introduced: Day one. Relevance: CHKed evbd version. 3. 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. 4. Problem: CQ56820 - Assert is seen while running bacs diag. XMAC loopback test may fail due to timing issue related to the CORE loopback type used. Change: Change XMAC loopback to local line loopback. Introduced: T7.0. Relevance: 578xx. 5. Problem: CQ57464 - OIS CERTS: BSOD when running Common Scenario Stress with IO (iscsi boot environment). Change: BSOD occured due to an attempt to allocate resources before boot connection was established. Changed iscsi resource allocation scheme. Introduced: Day one. Relevance: Hibernation in BFS environment. Version 7.0.29 (August 9, 2011) =============================== Internal FW: 7.0.26 Fixes ----- 1. Problem: PMF migration during remote fault result in invalid link state. Change: Sync link attributes during remote fault periodic check. Introduced: 7.0.14 Relevance: Fiber ports. 2. Problem: CQ57599 - BSOD while running Super Stress with Error injection script. Change: New assert was added in driver flow of releasing omgr resources that didn't take into account error recovery flow. Introduced: 7.0.27. Relevance: Only during error recovery flow. 3. Problem: CQ57357 - Data transfer stalled while running TOE stress tests. Change: Moving toe offload from system workitem to run in VBD worker thread lowered the priority of the offload work, creating a large amount of pending offloads and uploads which caused the stall. Improved the offload allocation scheme to use pool of memory blocks instead of allocating/freeing (which is an expensive OS operation) per offload/upload. Introduced: VBD version 7.0.25. Relevance: TOE. Version 7.0.28 (August 2, 2011) =============================== Internal FW: 7.0.26 Fixes ----- 1. Problem: CQ56820 - XMAC loopback test occasionally fails. This test is run over XMAC loopback mode, and once the test failed, XMAC appears to be in a bad state such that it cannot pull packets from the NIG, a thing which triggers a NIG drain event from the MFW side. Change: Unreset the appropriate Warpcore lane to provide the clock for the XMAC. This issue was once seen with 20G, and was not supposed to affect 10G link, yet it clearly solve this problem. See related CQ52735. Introduced: T7.0. Relevance: 578xx. 2. Problem: CQ57422 - Assert is seen while upgrading to 7.0.26/27 with NPAR enabled. Change: VBD flow didn't change rss chain count accordingly when disabling rss due to NPAR, while there was a registry key l4_enable_rss set in the VBD section. Introduced: Day one. Relevance: NPAR checked build, if l4_enable_rss is set in VBD registry. 3. Problem: CQ55165,CQ56518 - DCBX READ IOCTL reports DCBX "In Sync" even after link is disconnected for several minutes. Change: MFW updates driver if no DCBX frame was received from the peer, if DCBX was previously enabled. Introduced: T7.0. Enhancements: ------------- 1. Request: DCB is enable if there is a configuration from BACS, regardless of if DCBX was received from the peer. 2. Request: Default priority(instead of zero) is used for FCoE and iSCSI priorities when there are no corresponding application priority entries. Version 7.0.27 (July 28, 2011) ============================== Internal FW: 7.0.26 Fixes ----- 1. 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. 2. Problem: Assert during error recovery flow: null pointer referenced. Change: Pointer wasn't initialized properly in mac completion flow during error recovery. Introduced: 7.0.12. Relevance: Only during error recovery flow. 3. Problem: CQ56294 - system hangs at shutdown when 7 or more iscsi sessions are present. Change: Race in ISCSI shutdown flow. Introduced: First in version T6.0. Already fixed in version 6.4.33 (CQ54032) applying to 7.0 as well. 4. Problem: 578xx devices won't pass traffic with VLAN in NPAR mode. Change: Wrong initialization of parser register. Introduced: Not applicable. Relevance: 578xx B0, NPAR. 5. 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. 6. Problem: There is a probability that truncated FCoE packet on RX path won't get detected which might lead to crash. Change: Verify the length of the FCOE packet. Introduced: VBD version 6.4.0 (Firmware version 6.4.0). Relevance: All. 7. Problem: CQ56017 - 57712 Could do S5 WoL via Interesting Packet if S4 WoL is Performed Before That. Change: NIG ACPI pattern related registers weren't brought back to init value upon initialization. Introduced: Day one. Relevance: All. 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: CQ57299 - Remove Windows Advanced Properties of AutoGrEEEn for a specific OEM design. Relevance: 578xx specific design. Version 7.0.26 (July 25, 2011) ============================== Internal FW: 7.0.25 Fixes ----- 1. 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. 2. 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 3. Problem: CQ56960 - Arrival of un-solicited ASYNC message causes firmware to abort the connection with RST. Change: Firmware fix to relevant flow. Introduced: VBD Version 6.4.0 (Firmware version 6.4.0). Relevance: All. 4. Problem: CQ56758 - Offloaded connection will not allow disable of nagle after data was sent. Change: Firmware fix to relevant flow. Introduced: VBD Version 6.0.0 (Firmware version 6.0.0). Relevance: All. Enhancements ------------ 1. Request: CQ57202 - Prevent enumeration of OIS in W2K3. Relevance: All. Version 7.0.25 (July 18, 2011) ============================== Internal FW: 7.0.24 Fixes ----- 1. Problem: BSOD 0x7b on 57712 when running iSCSI reboot test. Change: Ensure that PHY_TX_ERROR_CHECK_FLAG is asserted before error checking. Introduced: 7.0.8 Relevance: 57712 and 578xx. 2. Problem: CQ57068 - Flow Control Tx/Rx setting inconsistency between NDIS and eVBD. Change: The miniport setting was changed recently to reflect Microsoft’s definition. Changed the VBD inf setting to be consistent with the miniports. Introduced: When VBD is installed with NDIS Miniport 7.0.5 and higher. Relevance: All. 3. Problem: CQ56995 - OIS CERTS: Common Scenario Stress Test Fails - deadlock. Change: Don't use system workitems at all in VBD, use VBD worker thread instead. Introduced: Day one. Relevance: Hibernation in BFS environment. 4. Problem: CQ56784 - LED doesn't flash during LED test. Change: Add the missing configuration. Introduced: Day one. Relevance: 578xx. Enhancements ------------ 1. Request: CQ56737 - Disable TX_DIS Signal when SFP+ module is plugged out to prevent current leakage. Relevance: 578xx. 2. Request: CQ57077 - Disable iSCSI and FCoE PDO enumeration for all BCM578xx boards on w2k3. Relevance: BCM578xx. 3. Request: CQ57078 - provide max_link_speed imnformation to the BMAPI API 1Gb port on BCM57800. Relevance: BCM57800. 4. Request: CQ57114 - Change "Disable" "Enable" to "Disabled" "Enabled" on driver properties to be consistent with other driver properties. Relevance: All. 5. Request: Add driver register dump support, for 578xx-B0. Relevance: 578xx-B0. Version 7.0.24 (July 14, 2011) ============================== Internal FW: 7.0.24 Fixes ----- 1. 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 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. 3. Problem: Application priority mismatch may cause driver to falsely break. Change: Fix flow in order not to falsely break. Introduced: 6.0.0. 4. Problem: CQ56907 - Win8: static variable initialization race condition. Change: Each static variable is initialized separately. Introduced: T5.0.22. Relevance: All. 5. Problem: CQ56950 CQ56914 - 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: 7.0.18 Relevance: 57712+8727 and 57711+87x6 Enhancements ------------ 1. Request: CQ56937 - Expose Advanced Properties AutogrEEEn support to specific BCM57800 devices. Relevance: BCM57800 inf. 2. Request: CQ56964 - Hide wol_cap configuration. WOL capabilities are now configured in the Ndis miniport's property page via *WakeOnMagicPacket and *WakeOnPattern keywords.. Relevance: Devices supporting WoL. Version 7.0.23 (July 11, 2011) ============================== Internal FW: 7.0.24 Fixes ----- 1. 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. 2. Problem: CQ56462 - Unable to get link on both ports on several systems. Change: Initialize warpcore twice in succession. Introduced: 7.0.9 Relevance: 578xx 3. 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. 4. Problem: CQ56822 - BSOD 0x3B Occurs when Launching BACS4 Application. Change: Remove redundant assert when link is down. Introduced: eVBD 7.0.22 Relevance: BACS4. 5. Problem: CQ56812 57800: BSOD during shutdown in Npar mode. Change: Added support for 57800 NPAR mode during nig reset. Introduced: VBD version 7.0.0. Relevance: 57800 Npar mode. 6. Problem: CQ56526 - eVBD BACS4 BCM57810 Loopback test failed on both 1Gb ports. Change: Moved loopback logics from bxdiag driver to eVBD. Introduced: BCM578xx. Relevance: BCM578xx 1G ports. 7. Problem: Low performance in TOE TX traffic with small IOs due to wrong update of TOE dynamic host coalescing values. Change: Firmware fix to update values correctly. Introduced: VBD version 7.0.20 (Firmware version 7.0.21). Relevance: All. 8. Problem: CQ54951 - Error Recovery VMQ: BSOD during system bootup (after error recovery attempt failed). Change: On driver load clear attention used by error recovery. Introduced: VBD version 7.0.3. Relevance: Soft reset after error recovery attempt failed. Enhancements ------------ 1. Request: CQ56777 - Add 4part-ID Support in INF for OEM specific designs. Change: As requested. Version 7.0.22 (July 07, 2011) ============================== Internal FW: 7.0.23 Fixes ----- 1. Problem: CQ56780 BSOD when install/upgrade driver. Change: Fix new flow in iscsi resource allocation on offload. Introduced: VBD version 7.0.21. Relevance: iSCSI. Version 7.0.21 (July 06, 2011) ============================== Internal FW: 7.0.23 Fixes ----- 1. Problem: CQ56493 - BCM57800 adapter in Windows 2008 R2 has FCoE and iSCSI functions enumerated under 1GigE port. Change: Change INF not to enumerate iSCSI and FCoE. Introduced: All versions. Relevance: BCM57800 1GigE ports evaluation boards. 2. Problem: CQ56565 - eVBD fails ChkINF test. Change: Fix 20gb speed string. Introduced: All versions. Relevance: BCM57840 devices. 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: Basic FCoE over NIV is not working when there is inner VLAN on packet. Change: Fixed the flow in NIV mode to change a zero inner VLAN vid to the NIV default VLAN. Introduced: VBD version 7.0.20 (Firmware version 7.0.21). Relevance: BCM57712 and BCM578xx, only with NIV and packets with inner VLAN. 5. Problem: (iSCSI) CQ54938 - BSOD when running stress test against an Equalogic target, while issuing RESET_LUN commands. Change: Change of activity counter management in firmware cleanup flow. Introduced: VBD version 7.0.0 (Firmware version 7.0.0). Relevance: All. 6. Problem: CQ56470 - 57810 BSOD while running error recovery script. Change: Support error recovery flow for 578xx. Introduced: VBD version 7.0.0 (Firmware version 7.0.0). Relevance: 578xx during error recovery flow. 7. Problem: BSOD while running error recovery script during FCOE traffic. Change: VBD now aborts tx packets before requesting FCOE miniport to stop chip access. Introduced: VBD version 7.0.3. Relevance: Error recovery flow during FCOE traffic. 8. Problem: CQ56582 - BCM57810 may exhibit link down when connected to KR switch. Change: Don't overwrite the value for other reg. Introduced: 7.0.20. 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: CQ54446 - Boot from SAN: EVBD driver crashed when system was being resumed from S4 (paging deadlock). Change: Driver now uses pre-allocated physical memory during connection offload instead of allocating memory in the offload operation. Introduced: Day one. Relevance: Hibernation in BFS environment. 11. 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 12. Problem: CQ56736- inf of evbd Driver Does Not contain 4-part Support for Broadcom 57810s Device in NPAR Mode. Change: Added missing NPAR device ids. Relevance: 578xx. 13. Problem: Setting WOL patterns in NPAR-SD mode may enable function in nig too soon. Change: Delay function enable until after nig is reset. Introduced: Day one. Relevance: WOL in NPAR-SD mode. 14. Problem: ETS may not work as expected when only one PG exists and there are both pause-able and non-pause-able priorities. Change: Split the pause-able and non-pause-able priorities to two different COS. Introduced: VBD version 7.0.5. 15. Problem: Error recovery state changed during error recovery flow causing unpredictable behavior. Change: If another recoverable error occured during the error recovery process don't handle it, go to regular flow. Introduced: Version 7.0.3. Relevance: Only during error recovery flows. 16. Problem: Multiple priorities features does not coexist with DCB due to a wrong TX queue allocation scheme. Change: Fix TX queue allocation scheme and DCB related firmware flows. Introduced: VBD Version 7.0.20 (Firmware version 7.0.19). Relevance: 57712/57810A0/57840A0, when multiple-priorities is activated together with DCB. 17. Problem: CQ56189 - Link speed does not change in task manager when max bandwidth is changed in BACS for a specific PF. Change: Make PMF indicate the link speed change to OS when its max bandwidth is changed. Introduced: eVBD 7.0.0 Relevance: NPAR mode only. 18. 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. 19. Problem: CQ56605 VMQ: BSOD while running traffic and running reboot stress on VMs. Change: Changed dpc to be affined to cpu so that when a dpc is scheduled from change-affinity flow it will run on the same cpu as if it is scheduled from an interrupt - which will assure that a DPC does not run in parallel on two different cpus. Introduced: VBD version 6.0. Relevance: VMQ. Enhancements ------------ 1. Request: Add AutogrEEEn support to 84833 and 54618SE (CQ56174) PHY. Relevance: 578xx. 2. Request: Support sharing of PFC configuration between functions on the same port. Relevance: MF devices with DCB support. 3. Request: CQ56532 - Enable DCB on all 578xx 4 port devices. 4. Request: Add driver support to disaply in BACS for Line Speed in NPAR mode. Version 7.0.20 (June 22, 2011) ============================== Internal FW: 7.0.21 Fixes ----- 1. Problem: NC-SI traffic is not received by driver in promiscuous mode. Change: Configure HW to send traffic to driver even if it should also be directed to MCP. Introduced: All versions. Relevance: NC-SI + promiscuous mode only. 2. Problem: CQ56092 - W2k3-x64 F6 kit disk1 total file size is larger than a single floppy disk. Change: Compress the .inf file to make it fit. Introduced: T7.0 Relevance: Windows F6 install procedure. 3. 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. 4. Problem: Need to update T0000G to enable AutogrEEEn by default. Change: Updated T0000G to enable AutogrEEEn by default. Introduced: Day one. Relevance: T0000G boards. 5. 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 FUNC_MAILBOX_ID_PARAM to be: port_id + vnic_id*2. Introduced: Day one. Relevance: 4 port device (578xx) with active MF mode. 6. Problem: CQ55499 - Modify eVBD to allow Windows Affinity Policy functionality. Change: Remove the hard code "AffinityPolicy" to "IrqPolicyAllProcessorsInMachine" for non RSS vectors. Introduced: Day one. 7. Problem: CQ56078 - VBD asserts on NPAR-SD VIF delete. Change: Change parsing of SHMEM field when determining what VIF-SET operation occured. Introduced: T7.0. Relevance: NPAR-SD mode only. 8. Problem: Storm clocks were not initialized properly in 578xx. Change: Remove wrong clock initialization from init tool and move it to MCP. Introduced: VBD version 7.0.19 (Firmware version 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: Fix the flow by sending host-coalescing index update only after the completion of the event-ring writing. Introduced: VBD version 7.0.17 (Firmware version 7.0.18). Relevance: All. 10. Problem: Basic FCoE over NIV was not working. Change: Fixed the flow in NIV mode to add default vlan also when there is vlan with vid=0 on packet. Introduced: In all versions supporting NIV. Relevance: BCM57712 and BCM578xx, only with NIV. 11. Problem: CQ56031 - BSOD while running TOE TX traffic due to race in hardware blocks. Change: Firmware workaround to avoid potential race. Introduced: VBD version 7.0.17 (Firmware version 7.0.18). Relevance: All. 12. Problem: Debug bus data was not collected properly on second engine. Change: Disable close the gates before extracting grc dump. Introduced: 6.0.28. Relevance: 57712, 578xx. 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. 3. Request: CQ54244 - Add operational DCB state to DCBX IOCTL read. Impact: MFW 7.0.10 or newer is required. 4. Request: If PFC mismatch is detected PFC is disables . 5. Request: If Priority tagging mismatch is detected Priority tagging is disables. 6. Request: Honor BAM on KR NVRAM config for 578xx. Relevance: 578xx KR only. 7. Request: Added PFC statistic support for 578xx. 8. Request: CQ55991 (modified) - Change 57810S based customer friendly names in Windows 2k8 drivers. 9. Request: Add fan failure detection for 578xx-SFI Relevance: 578xx with fan mounted. 10. Request: CQ56159 - Add AutoGrEEEn Advanced Driver option for BCM578x0-1G and BCM578x0 10gbaseT ports. 11. Request: Support sending tx-only ramrod in slowpath Version 7.0.19a (June 15, 2011) ============================== Enhancements ------------ 1. Request: CQ55991 - Change 57810S based customer friendly names in Windows 2k8 drivers. 2. Request: CQ56090 - Add 57810S based customer friendly names to Windows 2k8 drivers Version 7.0.19 (June 13, 2011) ============================== Internal FW: 7.0.20 Fixes ----- 1. Problem: CQ55928 - Tx traffic stop in DCB update flow. Change: (FW) Fix wrong address calculation in DCB update ramrod. Introduced: Version 7.0.14 (FW 7.0.16). Relevance: BCM57712 and BCM578xx, only when DCB is enabled and FCOE is running. 2. Problem: No TX in Firmware WRR mode. Change: (FW ETH) Fix CoS mapping to VOQs. Introduced: Version 6.4.0 (FW 6.4.0) 3. Problem: Possible firmware assert due to race in "fast-retransmit" and "slow-start" flows. Change: Firmware workaround to avoid potential race. Introduced: Version 7.0.0 (FW 7.0.0). Relevance: Toe. 4. 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 7.0.14 (FW 7.0.16). Relevance: iSCSI. 5. Problem: Chip may stop transmission after DCB update in NPAR-SD mode. Change: (FW FCoE) Fix firmware calculation of transmission credit. Introduced: Version 7.0.0 (FW 7.0.0). Relevance: FCoE, NPAR-SD mode. 6. Problem: CQ55321 (does not verify) missing 100MB speed capability. Change: Add 100MB speed capability to inf. Introduced: Version 7.0.15. Relevance: 57840 ssid 1008. 7. Problem: CQ56186 NPAR pci_IDs for the 57800 are not present. Change: Add pci ids to inf. Relevance: 57800 NPAR mode. Enhancements ------------ 1. Request: Extend the ECORE_SPIN_LOCK_INIT() macro to accept a pdev. This is required for Solaris where spin_lock priority is adaptive and a driver handle contains the information needed for the spin_lock initialization. 2. Request: CQ56101 - Prevent FCoE client from enumerating in Win2k3. Impact: Windows 2003 and earlier OS. 3. Request: Add elink_84833_hw_reset_phy function. Impact: 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 7.0.18 (June 1, 2011) ============================== Fixes ----- 1. Problem: Possible deadlock in error recovery flow. Change: Use a dedicated system thread for error recovery flow. Introduced: Version 7.0.3. Relevance: Only during error recovery attempt. 2. Problem: An assert may occur in DMAE module in error-recovery tests. Change: Clean-up DMAE context if a transaction is aborted due to a HW reset. Introduced: Version 7.0.13. Relevance: All. 3. Problem: NPAR-SD traffic is always transmitted with priority 0. Change: Read default COS and allowed priorities from SHMEM. Introduced: Version 7.0.0. Relevance: NPAR-SD mode only. Enhancements ------------ 1. Request: Update PMD settings for 578xx SFI/XFI/DXGXS according to the new recommended values. Version 7.0.17 (May 25, 2011) ============================== Fixes ----- 1. Problem: CQ55690 NPAR: iscsi / fcoe devices show Zero mac address in Npar mode. Cause: Driver looked at wrong parameter when determing where to read mac addresses from. Fix: Fixed driver code to look at correct parameter. Impact: Introduced in version 7.0.16, affect iscsi/fcoe devices in multifunction mode. 2. Problem: BSOD may occur when loading the first function on a port. Cause: BMAC was reset after the NIG-to-BRB channel was open and before the FW was initialized. This caused a parity error in TCM. Fix: Reset BMAC before opening NIG-to-BRB channel. Impact: Exists in all T7.0 versions. 3. Problem: CQ55127 BSOD when unloading a miniport in NPAR/NPAR-SD mode during traffic Cause: Driver unload flow in NPAR/NPAR-SD mode left the HW in a state that allowed packets to be directed to the unloaded PF. Fix: Clear the appropriate register so that packets to the unloaded PF will be marked as "classification failed" by HW. Impact: Exists in all T7.0 versions. NPAR/NPAR-SD mode only. 4. 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 read from I2C failed. Impact: 578xx SFI 5. Problem: BSOD when loading a driver on PF > 6 in NPAR-SD mode. Cause: Driver did not initialize vnics_per_port in NPAR-SD mode. Fix: Initialize vnics_per_port in NPAR-SD mode. Impact: exists in all T7.0 versions, NPAR-SD mode only. 6. Problem: Driver may load in NPAR-SD mode even if SHMEM config is only partially valid for NPAR-SD mode (e.g because of missing NVRAM images etc...). Cause: Driver did not fully validate SHMEM info. Fix: Validate SHMEM info and fall back to SF mode if needed. Impact: NPAR-SD mode only, exposed by invalid NVRAM configuration. 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 OOO related code on the compilation level in the ecore_sp. Change: As requested. 3. Request: Performance enhancement - Reduce number of pcie transactions in high PPS rate scenarios. Change: 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. Impact: None. 4. Request: Support dcb disabled ramrod. Change: Changing start dcb ramrod to accept dcb disabled flag. Changing all offloaded protocols to restore priority and cos when dcb is disabled. Impact: None. 5. Request: Add a global per-port statistics counter for RX drops, which should be used for debugging purposes. Change: Add packet_drop field to tstorm_per_port_stats. Impact: None. 6. Request: Insure that the connection not in the CFC after terminate ramrod. Change: Add CDU request to remove the connection in the terminate ramrod. Impact: None. Version 7.0.16 (May 18, 2011) ============================== Fixes ----- 1. Problem: Incorrect mac addresses set when mf mode is set to MF Allowed in nvram configuration, but multi function configuration hasn't been set. Cause: Mac address was read before we fully determined which mf mode we are in. Fix: Fix flow so that mac address is read only after we determine which mode we are in. Impact: Mf mode set to MF Allowed (nvm cfg 73=0) with no multi function configuration set. 2. Problem: CQ55577: 57800 - BSOD when passing traffic from shared drives (FCOE). Cause: Driver allocated too many pages for eq chain. More than fw limit. This caused an array overflow in the FCOE FW causing the FW to write a completion to an address of a different function. Fix: Make sure number of pages allocated is less than FW limit. Impact: 57800 only when all ports are loaded. Enhancements ------------ 1. Request: CQ55306 Add 4part-ID Support in INF for OEM specific designs. Change: As requested. Version 7.0.15 (May 12, 2011) ============================== Fixes ----- 1. Problem: CQ54420 - Driver BSOD while running zone re-config test. Cause: Using a memory after it was already freed. Fix: Keep memory value before freed. Impact: FCoE flows only (while terminate a connection) T6.4. fixed in eVBD 6.4.35 2. Problem: Wrong link LED when speed lower than 10G on 578xx devices Cause: Incorrect LED mode setting Change: Set correct LED mode setting 3. 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. Fix: Added the missing bits handling to the parity recovery code. Impact: Introduced in version 7.0.13. 4. Problem: Hardware attention occurs after 256 DCBX updates. Cause: Firmware doesn't read DCBX info because of DCB version wraparound. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 7.0.0. 5. Problem: Packets are transmitted with wrong NIV header. Cause: Firmware doesn't read NIV info because of NIV version wraparound. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 7.0.0. 7. Problem: Chip may crush during firmware statistics collection. Cause: Firmware may assert due to erroneous condition. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 7.0.16. 8. Problem: FCoE packets are transmitted with wrong NIV header. Cause: Firmware updated NIV configuration only in DCBX mode. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 7.0.0. Enhancements ------------ 1. Request: Don't use atomic operations in ecore_sp unless needed. Change: As requested. Impact: None. 2. Request: Don't add vlan tag 0 and priority 0 to outgoing packets with no vlan when DCB is enabled. Change: As requested. Impact: None. 3. Request: CQ55321 Add 4part-ID Support in INF for OEM specific designs Change: As requested. Version 7.0.14 (May 4, 2011) ============================== Fixes ----- 1. 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. Fix: 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. 2. Problem: (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. Fix: 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: CQ54625 - BSOD during FCOE boot with VMQ enabled on system with 64 cpus. Cause: Bug in driver flow that configures affinity for a VMQ. Fix: Fixed driver flow. Impact: Introduced in version T6.0 Affects only systems with 64 cpus or more. 4. Problem: Possible hardware deadlock may cause crush under traffic stress (theoretical bug). Cause: Deadlock in hardware buffer allocation mechanism (FW). Fix: Change hardware block configuration. Impact: Exists in all previous versions. 5. Problem: In case of VLAN removal of a first small packet in RSC aggregation, driver may access uninitialized address. Cause: Firmware places a corrupted RX completion element in this case. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0. 6. Problem: (FCOE) CQ54302 Task SP-RAM address is not updated during task evacuation to host (with sleep). Cause: Task SP-RAM address is not updated and the thread uses wrong SP-RAM address. Fix: Update SP-RAM address when evacuating a task during FP and MP. Impact: Introduced in firmware 6.4.0. 7. Problem: (FCOE) CQ53330 - BSOD on graceful shut down. Cause: The firmware doesn't read appropriately from the driver the PBEs of KCQEs. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0. Affects 57810/57840 on 4-port mode only. Does not affect 57710/57711/57712. 8. Problem: (TOE) Loss of traffic while transmitting large number of packets with very small mss. Cause: Wrong calculation of bytes sent. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 7.0.0. 9. 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. Fix: Initialize this flag during synchronization Impact: Exists since day 1 10. Problem: Over-current message displays with port0 instead of port1 on 57712 SFP+ devices. Cause: 57712 port enumeration is per path Fix: Set the correct port number of the over-current display message according to the device type. Impact: 57712 with SFP+ boards. 11. Problem Internal information saved by the driver to a Windows memory dump on BSOD contains a meaningless MCP trace. Cause: MCP trace contained trace of operations that occurred while saving the memory dump instead of what happened at the time of the crash. Fix: Save MCP trace before starting the memory dump. Impact: Exists in all versions that support saving driver information on BSOD. 12. Problem: FCoE and iSCSI miniports not enumerated in NPAR-SD mode Cause: driver reads the protocols to enumerate from wrong SHMEM offset Fix: read the protocols to enumerate from the correct SHMEM offset in NPAR-SD mode Impact: NPAR-SD mode only, exists in all previous versions. 13. Problem: Memory leak when running with driver verifier during VBD disable. Cause: Driver didn't delete all resources properly. Fix: Fixed flow. Impact: Introduced in 7.0.12. 14. Problem: CQ55219 - Running Continuous evbd Driver Load/Unload Test Scenario Results in BSOD. Cause: Driver didn't use locking in some places that it should have. Fix: Add locking of critical sections. Impact: Introduced in 7.0.12. Enhancements ------------ 1. Request: CQ54793 - Add BACS/BMAPI interface for Virtual FCoE WWPN/WWNN Change: As requested. Impact: None. 2. 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. 3. Request: When driver is loaded, write LM version string to appropriate offset in the scratchpad (according to value written in ncsi_oem_data_addr field in shmem2). Change: If driver loaded is first one in the chip (according to response from MCP) then copy version string as required. 4. Request: Remove zeroing of FW internal memories as it is done by init tool. Change: As requested. 5. Request: Add over-current check for 578xx Change: As requested Impact: 578xx Version 7.0.13 (April 13, 2011) ============================== Fixes ----- 1. Problem: CQ54270 - DRIVER_POWER_STATE_FAILURE (9f) on coming out of hibernation. Cause: Pageable code was called in the FCOE miniport powerup path. Fix: The pageable code was moved to the FCOE miniport bind stage. Impact: Introduced in eVBD 6.0.24. 2. 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 3. Request: Remove initial DCBX configuration. Change: As requested. Impact: Only DCBX auto detected is supported. MFW 7.0.7 or newer is required. 4. Problem: Error recovery process caused a interrupt status in PXP2. Cause: Read only register PXP2_REG_RQ_CFG_DONE was written to. Fix: Don't write to read only register (writing to PXP2_REG_RQ_RBC_DONE is enough). Impact: Only during error recovery attempt. 5. Problem: CQ54250, CQ54294, CQ54298, 54396: BSOD During forced HW attention. 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. Fix: Change reset order of PXP and QM blocks so that PXP is reset before QM. Impact: During error recovery flow of QM attention 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: CQ54433 Error recovery: BSOD during forced HW attention. Cause: TX packets were sent before recovery completed and FW was ready to accept new packets. Fix: Block tx packets until recovery has fully completed. Impact: Only during error recovery attempt. 8. 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. Fix: Fixed relevant firmware rate shaping bytes calculation for duplicated TX packets. Impact: Introduced in firmware 6.4.0. 9. 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. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 7.0.0. 10. Problem: When RSC 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. Fix: Added the required verification. Impact: Introduced in firmware 6.4.0. 11. Problem: BSOD while installing FCoE device on physical port 1. Cause: Wrong cos allocation. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 7.0.0. Affects 57810/57840. Does not affect 57710/57711/57712. 12. Problem: Chip hangs upon arrival of iSCSI packet with split digest. Cause: Firmware sends erroneous hardware read command. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 7.0.0. 13. Problem: CQ54471,CQ54250 Error Recovery: BSOD after generating timely HW attention. Cause: Bug in internal slowpath completion flow. Fix: Fix bug in completion flow. Impact: During error recovery attempt only. Enhancements ------------ 1. Request: Rewrite DMA Engine handling. Change: As requested. Impact: As requested. 2. Request: Add 1G support for XFI serdes network interface type of Warpcore Change: As requested Impact: 578xx - XFI 3. 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. Impact: As requested. Version 7.0.12 (March 31, 2011) ================================= Fixes ----- 1. Problem: CQ51905 VMQ: System BSODs when running load/unload eVBD while running traffic on VM. Cause: Changing VMQ affinity scheduled the wrong dpc with the wrong message, causing the DPC of a different queue not to run if it tried scheduling the DPC at the same time and then not handle the interrupts for that queue. Fix: Schedule the correct DPC. Impact: Introduced in version T6.0. 2. 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 GPIO3 was not set as input to enable receiving module plug-in/out interrupt Change: Initialize AEU before collecting the group of signals in charge for generating interrupts. In addition, set GPIO3 to input to allow receiving module plug-in/out interrupts Impact: BCM8726 based boards Introduced in 5.2.50 3. Problem: Changing bandwidth allocation parameters through BACS may fail even for valid values. Cause: Invalid validation of bandwidth allocation parameters by VBD. Fix: Fix parameter validation. Impact: Introduced in VBD 6.4.13, NPAR mode only. 4. Problem: CQ54085 - EVBD breaks with checked version on 57711 in Win2k3 Cause: A bug in RSS update flow with RSS version 1 ,when spreading the processors between the different function. Fix: Fixed the bug. Impact: Introduced in VBD 6.4.0. 5. Problem: CQ53853 - NDIStest 6.0 2c_offloadchecksum fails Cause: FW fixed a problem that caused checksum to be reported as OK for certain packets even when it wasn't validated. Fix: Imitate previous FW behavior until checksum calculation is implemented in VBD for packets that FW did not validate Impact: Introduced in FW 6.4.15 6. Problem: (CQ52000 & CQ51697 Cont.) XAUI short detection mechanism only applies to 10G. Fix: Remove 1G XAUI short detection. Impact: 8727 and 8706 PHYs. 7. Problem: Fairness issue between functions 0, 1 and functions 2,3 on 57840 4x10G. Cause: BRB threshold registers weren't initialized properly. Fix: Use reset values of BRB threshold registers. Impact: 57840 4P only. 8. Problem: CQ53333 - Hyper-V: TX switching does not work in NPAR setting. Cause: Filtering rules were not set properly for non enlightened VMs. Fix: Flows fixed to support all types of hyper-V traffic flows. Impact: NPAR Tx switching of non enlightened VMs. 9. Problem: CQ53347 - Data does not validate reported while running Chariot. Cause: In case of VLAN removal of a first packet in RSC aggregation, firmware may add padding bytes in the middle of the packet. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.25. 10. 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. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.1.0. Enhancements ------------ 1. 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. 2. Request: Support added for E3 + 84833B0 PHY firmware upgrade. Change: As requested. Impact: E3 + 84833B0 PHY combinations. 3. Request: CQ53761 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. 4. Request: Enable CL37 1G parallel detect Change: As requested. Impact: 578xx KR. 5. Request: Add MOD_ABS support for 578xx SFP+ modules Change: As requested. Impact: 578xx 6. Request: Invert OPTRXLOS signal on SFP/XFP interface for 578xx Change: As requested. Version 7.0.11 (March 15, 2011) ================================= Fixes ----- 1. Problem: Setting multiple MAC addresses may cause a memory leak Cause: Failure to release some data if no set-MAC ramrod is sent Fix: Release the ramrod data if there is no need to send it Impact: Introduced in 6.4.26. Exposed by driver verifier only. 2. Problem: CQ53338 - BACS3's MAC LoopBack diagnostic test fails intermittently Cause: PFC flow cleared the loopback mode unconditionally on 57712 boards Fix: Make PFC code take into account current loopback mode on 57712 boards Impact: Introduced with 57712 support in T6.2 3. Problem: CQ53256 - VMQ: system breaks when trying to create a hyper-v virtual nic. Cause: eVBD mistakenly provides VMQ capability in non MSI-X environment. Change: Driver prevents reporting VMQ capability in non MSI-X environment. Impact: Introduced in version eVBD T6.x. 4. Problem: CQ53444 - OIS Certs iSCSI Ping Test Fails. Cause: Mac filtering was overridden by last client loaded. Fix: Every client considers previous clients loaded. Impact: Introduced in T6.4 relevant for BCM57710/BCM57711. 5. Problem: When machine goes to D3 and WoL is enabled, "Close the gate" error might happen and cause inconsistent behavior to the chip. Cause: Driver writes to a register which is less than 32 bits a value which has "ones" on unimplemented bits. Fix: Write "ones" only to the implemented bits. Impact: Introduced in eVBD 6.4.18 6. Problem: CQ52772 - BCM NPAR specific configuration of bandwidth weight/maximum bandwidth 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. Fix: Increase MAX algorithm timeout from 100usec to 400usec. Impact: Introduced in eVBD 6.2.6. 7. Problem: CQ50381 - BCM57712 WOL S5 does not work. CQ49175 - BCM57712 WOL S4 AUT fails to wake up from S4 via Interesting Packet (Magic Packet works). Cause: Implementation in driver and boot code was incorrect. Change: Fix the Implementation, including PF higher than 1. Impact: Introduced in version eVBD T6.2 8. Problem: CQ51297 - BCM57712 WOL S5 System Unexpectedly Wakes Up from S5 State via Interesting Packets. Cause: Implementation in driver was incorrect. Change: Fix the Implementation. Impact: Introduced in version eVBD T6.2 9. 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). 10. Problem: CQ53454 - eVBD: VMQ with NPAR: driver assertion for packet smaller then 64B. Cause: Firmware was not padding packets placed on SGEs. Fix: Add packet padding to packets on SGEs. Impact: Only in VMQ on NPAR systems. 11. Problem: CQ52245 (after "Does Not Verified") - E3 57810: NDISTest 6.0 2c_mini6rsssendrecv test fails. Cause: IPv6 addresses in hash string were built in a wrong register-order. Fix: Fixed relevant firmware flow. Impact: Introduced in 6.4.1. Affects 57712/57810/57840. Does not affect 57710/57711. 12. Problem: Statistics of tx dropped packets may be incorrect (only in malicious VF flow). Cause: Firmware was not counting the dropped packets correctly in case there were no credits for the packet. Fix: Fixed relevant firmware flow. Impact: Introduced in 6.2.0. Affects 57712/57810/57840. Does not affect 57710/57711. 13. Problem: CQ53303 and CQ52600 - Firmware doesn't support FLR on both ports in the same path simultaneously in 578xx. Cause: The Flr flow hold some variables only for the last port treated. Fix: Added an array to hold separate variables for each port. Impact: Introduced in 6.1.0, but should only affect 578xx. 14. Problem: Fcoe doesn't identify function in NIV mode. Cause: FW use MAC classification. Fix: Classify function according to VIF ID. Impact: Introduced in 7.0.1. 15. Problem: Everest hangs upon arrival of iSCSI packet with FIN flag set. Cause: Tstorm signals Ustorm to release same BRB block twice. Fix: Fixed relevant firmware flow. Impact: Introduced in 6.4.0. 16. Problem: (iSCSI) on-chip TCP handshake transmitted TCP options with missing MSS and window-scale. Cause: timestamp padded with EOL instead of NOPs. Fix: Fixed relevant firmware flow. Impact: Introduced in 6.4.0. Enhancements ------------ 1. Request: Enhance EVBD to read FCOE FIP, WWPN and WWNN mac addresses from their updated location in shared memory, and report them to FCOE Miniport driver. Change: As requested. Ipmact: For FCoE, MFW 6.4.7 or newer is required. 2. Request: EVBD doesn't change the application ID read from MFW. Change: As requested. Ipmact: For DCBX, MFW 7.0.3 or newer is required. 3. Request: CQ50841 Add 4part-ID Support in INF for OEM specific designs. Change: As requested. Impact: As requested. 4. Request: Add Support in INF for 57800 evaluation boards two have different advanced setting capabilities per port. Change: As requested. Impact: Requires updated nvm configuration for 57800 board included in lediag/ediag 7.0.3. 5. Request: Add Support in INF for 57840 evaluation boards two have different advanced setting capabilities per flavor (2P or 4P). Change: As requested. Impact: Requires updated nvm configuration for 57840 board included in lediag/ediag 7.0.3. 6. Request: Honor GPIO configuration values on Tx laser control, on top of existing EPIOs. Change: As requested. Impact: 578x0 SFP+ designs. 7. Request: Link support for Everest 57810 + 84833B0PHY. Change: As requested. Impact: Everest 57810 + 84833B0PHY combination can pass traffic for testing. 8. Request: CQ53632 - Add 1Gbps speed option to BCM57712 PNP ID. Change: As requested. Impact: iBoot for BCM957712A1213G. 9. Request: CQ53450 - Add new BCM57712 device id's to the driver INF file. CQ53451 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. 10. Request: CQ53604 Add new 57810S based device id's to the driver INF file. Change: As requested. Impact: None. 11. 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. 12. Request: CQ53138 - NPAR BW Weight should be disabled if ETS is enabled. Change: As requested. Impact: None. Version 7.0.10 (March 3, 2011) ================================= Fixes ----- 1. Problem: CQ52828 - bxnd60a!check_for_reset_done+e1; Assert is seen while deleting team Cause: eVBD does not send to FW existing MAC address but does not allow upper level recognize this state. Change: eVBD on set MAC address returns code allowing to process setting already existing MAC address. Impact: Introduced in version eVBD T6.4. 2. Problem: CQ52894: System BSOD during shutdown. Cause: Delegated paramaters weren't read under reset. Fix: Read delegated paramaters just don't run sanity under reset. Impact: Introduced in version 6.4.19. (7.0.3) . 3. Problem: Potential bug in MF mode when running load unload test on all the function and forcing link changes, PFC doesn't work. Cause: PFC state isn't passed between function when PMF migration occurs. If link changes the function that became PMF knows the PFC settings only if also DCBX settings has changed. Fix: Each function that becomes PMF will read the DCBX setting from chip regardless if the DCBX settings has changed. Impact: Introduced in release 6.4.0. 4. Problem: Potential bug that can cause TX traffic to stop when running TOE disable enable stress test. Cause: A race in ramrod handling that involves DCBX ramrod. Fix: Solved the race in VBD. Impact: Introduced in release 6.4.0. 5. 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 6. Problem: CQ53322 and CQ53368 - assert while running load/unload with driver verifier enabled. Cause: Bug in setting DPC affinity (corner case). Fix: Solved the bug. Impact: Introduced in version eVBD T6.4.26 , only when MSIX is disabled. 7. Problem: (FW ETH)CQ52245 - NDISTest 6.0 2c_mini6rsssendrecv test fails. Cause: For first IP fragment of a TCP packet, the firmware was calculating 4-tuple RSS instead of 2-tuple RSS. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.1. BCM57712/57810/57840 only. 8. Problem: (FW ETH)Coalesced packets might arrived after TPA disable, and might cause system crash. In addition, RSS connections might receive coalesced packets before TPA enable ramrod is completed. Cause: Firmware didn't refreshed the configuration after TPA disable for packets which arrived while the ramrod took place. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.7. 9. Problem: (FW ETH)Coalesced packets might arrived after client deactivate and in some cases the system might crash. Cause: Firmware didn't closed aggregation after client deactivate. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 5.3.20. 10. Problem: (FW ISCSI)CQ52834 - iSCSI connection/login issues in DCBX environment. Cause: Erroneous context override by firmware. Fix: Fixed relevant firmware flow. Impact: Exist in all previous versions that supports DCBX. Enhancements ------------ 1. Request: CQ50501 - Add new BCM57711 device id's to the driver INF file. CQ52559 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. 2. Request: Update lm_idle_chk(): some errors were changed to error_no_traffic (error incase of no traffic only). Change: As requested. 3. Request: CQ50840 - (part of CQ) Add new BCM57810 device id's to the driver INF file. Change: As requested. Impact: None. 4. Request: Support multiple TX connections for each TSS, each on different CoS. Change: As requested. Impact: Supported only at BCM587xx B0. 5. Request: Add initial support for 1G over fiber Change: As requested. Impact: 578xx fiber 6. Request: CQ#50798 - Add support for BCM8722 Change: As requested. Version 7.0.9 (February 24, 2011) ================================= Fixes ----- 1. Problem: Theoretical bug eVBD low performance. Cause: Theoretical race that can lead to a situation where a RSS chain is work on wrong processor. Fix: Fix Theoretical race. Impact: Introduced in release 6.4.0, only when MSIX is disabled. 2. Problem: CQ52984 - evbda!l2_send_packets+3f0 break during network stress test. Cause: eVBD RSS state was not initialized. Fix: Initialized eVBD RSS state to RSS disabled. Impact: Introduced in release 7.0.0. 3. Problem: CQ53180 - 57710: BSOD during driver unload. Cause: Missing initializations to CM. Fix: Added missing initializations. Impact: Introduced in release 6.4.0 affects 57710 only. 4. Problem: VBD assert on driver unload when multiple MAC addresses are set Cause: wrong error code returned when deleting more than a single MAC address Fix: return the correct error code Impact: introduced in T6.4 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 7.0.8 (Feb 21, 2011) ================================= Fixes ----- 1. 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 2. 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 3. Problem: CQ52023 - Chip hangs due to hardware attention. Cause: Traffic type to priority/COS table was reset after link down by driver causing transmission on the wrong COS. Fix: Removing the table in RAM from HSI section. Impact: Introduced in firmware version 6.4.0. 4. 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. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.15, BCM57710/57711/57711E only. 5. Problem: System crash under TCP traffic when driver is toggling TPA. Cause: Firmware bug. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.7. 6. Problem: Firmware aggregated packets with wrong checksum. Cause: Firmware didn't check checksum as a requirement for aggregation. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 7. Problem: (TOE) CQ51832 - Hardware attention when working in NPAR mode and there is COS modifications by DCBX. Cause: DCBX update got lost due to firmware bug when working in NPAR mode. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.12. 8. 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 7.0.6 9. 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. Fix: Set value to 0 in that register if link is disabled. Impact: 578xx boards. 10. Problem: BCM57712 intermittently fails to link up after resuming from S4 power state. Cause: Locking mechanism for link initialization timed out. Fix: Increased the timeout of the phy lock. Impact: BCM57712 related. Already fixed in versoin 6.2.7 & 6.4.25 applying to 7.0 as well. 11. 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. Fix: Changed to determine the 4-port mode by reading the override register. Impact: BCM578xx only. 12. 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. 13. Problem: CQ52927 - BSOD while running DVD install 2k8-SP2 AMD64 via L2 path. CQ52909 - BSOD while running 57712 benchmarks. CQ52855 - BSOD while running the NDISTest mpe_ethernet. CQ52796 - BSOD while running CNIC Stress in NPAR mode. CQ52967 - BSOD while running chariot ipv4/ipv6 and offload stress on both ports in Cause: Firmware lose packets synchronization during transmission (Xstorm Assert). Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.15, BCM57712 only. 14. 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 RSC is enabled. Cause: Firmware wrongly places padding bytes on RX SGEs. Fix: Fixed relevant firmware flow. Impact: Exist 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. 15. Problem: RSC disable ramrod could cause the chip to halt. Cause: Firmware bug. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.7, BCM57710/57711/57711E only. 16. Problem: (TOE) CQ52721 - Driver assert on connection upload during context validation, in case a packet with timestamp was received, and the option was not negotiated during connection establishment. Cause: Firmware updated timestamp data, although it is disabled. Fix: Fixed relevant firmware flow. Impact: Exist in all previous versions. Enhancements ------------ 1. Request: Add to INF PNP Device ID's (synced with 6.2.16). Remove from INF BCM578xx devices. Change: As requested. Impact: As requested. 2. Request: Added performance improvements to Ethernet transmit flows in BCM57711. Change: Firmware design and implementation optimizations. Impact: None. 3. 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. Impact: 8727 PHY based boards. 4. Request: Support duplicating CQEs to both VF and PF rings in RSC Update Ramrod. Change: As requested. Impact: None. 5. Request: Support multiple concurrent classes of service in toe including 3-cos-per-port mode and 6-cos-per-port bring up mode. Change: Per-connection configuration of Class of Service. Impact: Cannot work together with Tx-switching. 6. Request: Support 4 port mode in TOE. Change: As requested. Impact: None. Version 7.0.7 (Febuary 7, 2011) ================================= Fixes ----- 1. Problem: Memory Leak under Error recovery flow. Cause: Buffers used for error recovery flow weren't released properly. Fix: Release all allocated buffers. Impact: Introduced in VBD version 6.4.19 retail version. Occurs only if error recovery flow is initiated. 2. Problem: CQ52366 - System BSODs when rebooted with FCoE client binded. Cause: FCoE FW reads from uninitialized UPB address which causes parity error. Parity error in checked version causes BSOD. Fix: Mask UPB parity error, which now won't cause BSOD until next FW release which will take care of accessing uninitialized memory. Impact: Introduced in 6.4.20. 3. Problem: Incorrect autoneg flow control resolution when using KR with autoneg speed. Cause: flow control resolution was ignored since autoneg was not considered to be completed. Change: Indicate autoneg to be completed Impact: BCM578xx Introduced in 7.0.5 4. Problem: CQ52473 - Assert is seen while running BacsCLI automation on advanced driver properties. Cause: DMA engine access was not protected and caused multiple use from different flows. Change: Removed DMA engine use in the relevant flow. Impact: T6.2 BCM57712 mode load/unload flows when link is up. 5. Problem: Potential wrong PHY initialization when loading the first function on a port, after another function from this port was unloaded. (CQ51091/CQ52178 Link loss on stress). Cause: In this case, the driver won't lock PHY access, which may cause MDC/MDIO collision. Change: Initialize the lock flag on the init driver stage, instead of the common and port init stage. Impact: T5.2a in MF mode (NPAR/Switch dependant) 8726 and 8727 (on top of the 8073) and any other MDC_MDIO design. Fixed in eVBD 6.2.14 6. Problem: CQ#52051, CQ#52066, CQ#52291 Several 20G speed related issues. Cause: Speed capabilites weren't configured properly for 578xx devices in inf file. Fix: Configure speed capabilities properly. Impact: 578xx only. Enhancements ------------ 1. Request: Enhance error recovery flow to handle more parity errors and HW attentions (QM). Change: As requested Impact: None. 2. Request: Restore basic VF test environment with current HSI. Change: As requested Impact: None. Version 7.0.6 (January 31, 2011) ================================= Fixes ----- 1. Problem: CQ 52180 and 52192:The FCoE priority value for Tx traffic is not being configured correctly when adapter has non-default values configured via registry/GUI and "willing" bit set fo all TLV. Cause: The eVBD wrote a wrong FCOE application ID to FW. Fix: The eVBD writes the right FCOE application ID to FW. Impact: Introduced in eVBD 6.4.15. Enhancements ------------ 1. Request: Add device ids for 57810/57840 B0 EMUL/FPGA. Change: As requested. Impact: 578xx EMUL / FPGA Version 7.0.5 (January 26, 2011) ================================= Fixes ----- 1. Problem: Link is sometimes not indicated to OS in NPAR-SD mode. Cause: Race between NPAR-SD and normal link status modification flows. Fix: Only change link status in NPAR-SD mode via NPAR-SD specific flow. Impact: Introduced in eVBD 6.4.15. NPAR-SD mode only. 2. Problem: CQ52212 8073PHY intermittently exhibits signs of disconnected devices upon loading/unloading. Cause: Microcontroller and Driver both controlling Xaui Low Power Mode. Fix: Remove Driver control of Xaui Low Power Mode. Impact: 8073 PHY 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. Fix: Set TXONOFF_PWRDN_DIS accordingly. Impact: 8727PHY and 8706PHY based boards with TX laser controlled by GPIO_0. 4. 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 5. 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. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware release T4.4. 6. Problem: Crash in TOE scenarios when RSS is enabled and working on physical port 1. Cause: Firmware bug in TOE RSS update flow. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 7.0.5. 7. Problem: Chip hangs when running iSCSI IOs bigger than 32KBs. Cause: Firmware bug. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. Enhancements ------------ 1. 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 2. Request: Add autoneg parallel detect and pause support for 578xx KR Change: As requested Impact: 578xx-KR 3. Request: Added DCBX support in 578xx B0 boards. Change: As requested Impact: None. Version 7.0.4 (January 18, 2011) ================================= Fixes ----- 1. Problem: 578xx unable to link after unload-load sequence. Cause: Incomplete reset sequence Change: Fix reset sequence Impact: 578xx 2. Problem: CQ 57810: bxnd60a!set_nice_mac_addr+24f break during team deletion. Cause: Driver failed request to set the same mac twice. Fix: Driver recognizes that mac is set and returns success. Impact: Introduced in release T6.4. 3. Problem: Chip halts when a packet with VLAN arrives, while working in NPAR-SD mode and the OS is in VMQ mode (BCM57712 only). Cause: Illegal command is sent by the firmware in such case. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.15. 4. Problem: 10G is blocked on boards that sets the KR enabler check even if the relevant GPIO is not set. Cause: Wrongly parsing the need to check if 10G should be blocked as blocked. Fix: 10G is blocked only if the test is enabled and failing according to the relevant GPIO value. Impact: Introduced in 7.0.3. Enhancements ------------ 1. Request: Support multi-function and DCBX in 4 ports mode (BCM578xx). Change: As requested. Impact: None. Version 7.0.3 (January 12, 2011) ================================= Fixes ----- 1. Problem: FLR after DCBX causes hardware attention. Cause: Firmware didn't update the physical queue info table at start. Fix: Fixed relevant firmware flow. Impact: Exists in all previous releases that support DCBX. 2. Problem: (ETH) L4 TX checksum offload for packets with IP header greater than 64 bytes was written to wrong place on the packet. Cause: Firmware passed the wrong offset to hardware when IP header size is bigger than 64. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 3. Problem: Firmware might wrongly declare a VF as malicious. Cause: Firmware used a invalid buffer descriptor in security enforcement. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 4. Problem: Tx packets, in NPAR-SD mode, are sent with destination VIF value which is different than zero. Cause: Firmware set the destination VIF to be the same as the source VIF. Fix: Firmware now sets the destination VIF to 0 on each egress packet. Impact: Introduced in firmware version 6.4.15. 5. Problem: In combined scenarios of L2 and Toe/iSCSI the chip might hang. Cause: The chip reached a deadlock when there is loopback traffic to both the L2 and Toe/iSCSI connections while there is also traffic from the network port. Fix: Separate the reordering mechanism between the loopback and the network port. Impact: Exist in all previous versions. 6. Problem: Firmware doesn't support FLR on both ports in the same path simultaneously at BCM578xx. Cause: FLR flow hold some variables for the last port treated. Fix: Added an array to hold separate variables for each port. Impact: Exist in all previous versions that supports BCM578xx. 7. Problem: Firmware send DMA command with wrong PCI entity. Cause: Firmware calculated the PCI entity wrongly at Halt and TPA update ramrods. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 8. Problem: (FCoE) Firmware drop SRR accept packets. Cause: Middle path flow support only FCP_RSP and ELS packets. Fix: Fixed the relevant firmware flow. Impact: Exist in all previous versions. 9. Problem: (FCoE) REC_TOV timer doesn't expire after sequence cleanup. Cause: Firmware doesn't rearm REC_TOV timer after sequence cleanup. Fix: Fixed the relevant firmware flow. Impact: Exist in all previous versions. 10. Problem: (iSCSI) CQ50380 - iSCSI offload - Event viewer shows NOP events. Cause: TCP window was closed due to out-of-order state, and initiator failed to send a window update when exiting out-of-order state. Fix: Fixed relevant firmware flow. Impact: Introduced in release T6.0. 11. Problem: Multi Function broken on Emulation/FPGA. Cause: Changes introduced to support more mf modes didn't take into account no MCP mode, which is what we have on emulation/FPGA. Fix: Initialize mf_mode in NO-MCP-Mode correctly. Impact: Emulation/FPGA only. Introduced in VBD 6.4.15. 12. Problem: (iSCSI) Miscalculation of MSS during TCP handshake when timestamp exists. Cause: Firmware bug. Fix: Fixed relevant firmware flow. Impact: Exists in all previous releases. 13. Problem: (iSCSI) Valid NPAR-SD packets dropped in the iSCSI offloaded receive path. Cause: Firmware bug. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.14. 14. Problem: (FCOE) Wrong data offset is being used during error recovery. Cause: The firmware reported the offset of the corrupted packet, instead of the last good packet. Fix: Fixed relevant firmware flow. Impact: Exists in all previous releases that support error recovery. Enhancements ------------ 1. Request: Support rate limiting updates in NPAR-SD MF mode Change: As requested Impact: NPAR-SD mode only. 2. Request: Update the format of NPAR-SD statistics to match the new structure in SHMEM Change: As requested Impact: NPAR-SD mode only. 3. Request: Add count for coalesced aborts in the firmware. Change: As requested. Impact: None. 4. Request: Support Error recovery for parity errors and device faults (Hw / Fw assertions) Change: Initial implementation for error recovery flows (process-kill) that can recognize and recover from certain HW / FW assertions, which until now resulted in BSOD. Impact: Enabled in retail version only. Enabled only for 57712. Assertions that until now caused a BSOD will in most cases be recoverable and result in a short connectivity loss. 5. Request: Support SGMII with 54618SE GPHY for 57800. Change: As requested Impact: Devices 3 and 4 of 57800 and small Warpcore changes only. 6. Request: Support 4-port mode in E3A0 and E3B0 with new QM configuration. Change: As requested. Impact: Multi-Function and DCBX are not functional when working in 4-port mode. 7. Request: (FCOE) Re-arm REC_TOV timer after REC_TOV expiration. Change: As requested. Impact: None. Version 7.0.2 (December 27, 2010) ================================= Fixes ----- 1. Problem: CQ51050 After disabling DCB, the standard flow control(pause) is not working. Cause: A HW block is not reset between bus driver unload and load, this block contains some PFC register configuration. Change: In bus driver load, initialize this register to pause configuration. Impact: Introduced in release T6.4, affects all chips. 2. Problem: CQ51569 : iSCSI instances are not enumerating. Cause: missing pdo_flag in .inf file. Fix: added pdo_flag in .inf. Impact: 57800, 57840 only. 3. Problem: CQ51342: BSOD unloading vbd driver with verifier on. Cause: Memory leak: some new rt allocations were not freed. Fix: Make sure all rt allocations are freed. Impact: Introduced in release T6.4. 4. Problem: BCM8727 Link LED not funtioning properly during BACS LED test. Cause: Not blinking correct link light. Impact: BCM57712 + BCM8727 based boards. 5. Problem: CQ51134 - NCSI 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 and above to resolve this problem PHY firmware upgrade will require reboot from now on 6. 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. 7. Problem: Same MAC address is used for for iSCSI, FCoE and NDIS in NPAR-SD mode. Cause: FCoE and iSCSI MAC addresses were not read from SHMEM Fix: Read FCoE and iSCSI MAC addresses correctly also in NPAR-SD mode Enhancements ------------ 1. Request: Report various MF modes and FCoE MAC address in device info IOCTL. Change: As requested. Impact: None. 2. 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 3. 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. Version 7.0.1 (December 12, 2010) ================================= Enhancements ------------ 1. Request: Support 578xx B0 boards in driver initialization. Change: As requested. Impact: 578xx B0 boards. 2. Request: In the existence of DCBX, MinBW algorithm will be disabled. Change: As requested. Impact: None. 3. Request: Bus driver enforces FCoE license. Change: As requested. Impact: FCoE PDO is enumerate only if the BCM57710/11/12 includes a FCoE license . Version 7.0.0.2 (December 6, 2010) ================================== Fixes ----- 1. Problem: Driver load/unload failed in 4-port mode. Cause: Driver used incorrect fw client scheme. Fix: Allocate fw client correctly in 4-port mode. Impact: 578xx only in 4-port-mode. Version 7.0.0.1 (November 22, 2010) ================================== Fixes ----- 1. Problem: Multi function not working on 578xx. Cause: Driver code didn't take into account 578xx chip id in reading mf configuration. Fix: Take into account 578xx chip ids when reading mf configuration. Impact: 578xx only. 2. Problem: CQ51218 RSS Completion deadlock caused UM_reset in miniport to be called. Cause: L4 RCQ processing was suspended until all ramrod completions arrived including L2, but L2 ramrod was starved since L4 didn't handle other L4 ramrod completions. Fix: Driver fix: suspend l4 rcq processing only while L4 RSS ramrod hasn't completed. Impact: Introduced in T6.4, affects all chips. 3. 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 Requires bootcode 7.0.0.0 /6.4.3 and above. Version 6.4.40 (May 1, 2011) =============================== Fixes ----- 1. Problem: 57712 device initialization may cause parity error (CQ54539 related). Cause: Initialization size defines were not correct. Fix: Corrected the values of the defines. Impact: BCM57710 and BCM57712, less likely to happen. 2. Problem: Internal information saved by the driver to a Windows memory dump on BSOD contains a meaningless MCP trace. Cause: MCP trace contained trace of operations that occurred while saving the memory dump instead of what happened at the time of the crash. Fix: Save MCP trace before starting the memory dump. Impact: Exists in all versions that support saving driver information on BSOD. Exposed in T6.4 versions. 3. 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. Fix: Initialize this flag during synchronization Impact: Exists since day 1 4. Problem: Over-current message displays with port0 instead of port1 on 57712 SFP+ devices. Cause: 57712 port enumeration is per path Fix: Set the correct port number of the over-current display message according to the device type. Impact: 57712 with SFP+ boards. 5. Problem: On setups with NCSI, some packets are not received by the host (CQ55114). Cause: Unicast packets explicitly requested by the BMC such as ARP or specific VLAN are not forward to the host due to wrong filtering register value. Fix: Use correct filtering value to receive unicast packets both at the BMC and host. Impact: The problem is exposed when using NCSI 6.2.8 or MFW 6.4.10 or later with all VBD versions. Version 6.4.39 (April 21, 2011) =============================== Fixes ----- 1. Problem: CQ54539 - Port does not start LLDP negotiation on reinsertion after a hot unplug. Cause: Driver accessed shared memory/registers set by mfw before mfw is ready. Fix: Fixed driver to verify mfw is ready before accessing shared memory/registers set by mfw Impact: Introduced in version T5.0, affects only hot plug scenarios. 2. Problem: CQ54682 - BSOD when trying to access shared folder on network CQ54751 - BSOD when rebooting SUT after error recovery feature testing Cause: Default QG MSI-X affinity is in an inconsistent state which may lead to it being handled by 2 DPCs. Fix: Fix default QG affinity initialization Impact: Introduced in 6.4.37. VMQ mode only. Version 6.4.38 (April 17, 2011) =============================== Enhancements ------------ 1. Request: CQ54793 - Add BACS/BMAPI interface for Virtual FCoE WWPN/WWNN Change: As requested. Impact: None. 2. Request: CQ54794 - Don't Enumerate FCoE PDO for specific device id (Undo CQ53268). Change: As requested. Impact: None. 3. Request: Don't add vlan tag 0 and priority 0 to outgoing packets with no vlan when DCB is enabled. Change: As requested. Impact: None. Version 6.4.37 (April 13, 2011) =============================== Fixes ----- 1. Problem: CQ54625 - BSOD during FCOE boot with VMQ enabled on system with 64 cpus. Cause: Bug in driver flow that configures affinity for a VMQ. Fix: Fixed driver flow. Impact: Introduced in version T6.0 Affects only systems with 64 cpus or more. 2. Problem: CQ54648 - Opening BACS cause an eVBD BSOD. Cause: VBD asserts when a non-PMF function tries to check if DCBX completion is received on a port as part of the GET_DCBX_PARAMS IOCTL. Fix: Fail the IOCTL for non-PMF devices. Impact: Introduced in eVBD 6.4.36 Version 6.4.36 (April 12, 2011) =============================== Fixes ----- 1. Problem: BSOD During forced HW attention. Cause: During error recovery OID_802_3_MULTICAST_LIST wasn't handled properly. Fix: Handle OID properly. Impact: Introduced in version 6.4.34, only during error recovery attempt. 2. Problem: CQ54433 - Error recovery: BSOD during forced HW attention. Cause: TX packets were sent before recovery completed and FW was ready to accept new packets. Fix: Block tx packets until recovery has fully completed. Impact: Only during error recovery attempt. 3. Problem: CQ54471, CQ54250 Error Recovery: BSOD after generating timely HW attention. Cause: Bug in internal slowpath completion flow. Fix: Fix bug in completion flow. Impact: During error recovery attempt only. 4. Problem: CQ54495 - BSOD is observed while running reboot test on 57712. Cause: Synchronization issue in clear-multicast vs. add-multicast flow. Fix: Revert fix #6 from 6.4.34. Impact: Introduced in 6.4.34. 5. Problem: CQ54302- Task SP-RAM address is not updated during task evacuation to host (with sleep). (FW FCOE) Cause: Task SP-RAM address is not updated and the thread uses wrong SP-RAM address. Fix: Update SP-RAM address when evacuating a task during FP and MP. Impact: Introduced in firmware 6.4.0. 6. Problem: Possible hardware deadlock may cause crush (BSOD) under traffic stress (theoretical bug). Cause: Deadlock in hardware buffer allocation mechanism. Fix: Change hardware block configuration. Impact: Exists in all previous versions. Enhancements ------------ 1. Request: Firmware now support configuration in which the firmware doesn't add vlan 0 when DCB is enabled (FW internal - not used by VBD). Change: As requested. Impact: None. 2. Request: Improved silent vlan removal by firmware - now supporting removal according to value and mask comparison (FW internal - not used by VBD). Change: As requested. Impact: None. 3. Request: Firmware now allows sending a packet without vlan, even if the global configuration force vlan (like DCB, NIV and so) (FW internal - not used by VBD). Change: As requested. Impact: None. 4. Request: CQ54244 - Add operational DCB state to DCBX IOCTL read. Change: As requested. Impact: MFW 6.4.9 or newer is required. 5. Request: If PFC mismatch is detected PFC is disables . Change: As requested. Impact: None. 6. Request: If Priority tagging mismatch is detected Priority tagging is disables . Change: As requested. Impact: None. Version 6.4.35 (April 5, 2011) ============================== Fixes ----- 1. Problem: CQ54250, CQ54294, CQ54298, 54396: BSOD During forced HW attention. 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. Fix: Change reset order of PXP and QM blocks so that PXP is reset before QM. Impact: During error recovery flow of QM attention only (T6.4 feature) 2. 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. Impact: Exists in all versions. 3. Problem: CQ54420 - Driver BSOD while running zone re-config test. Cause: Using a memory after it was already freed. Fix: Keep memory value before freed. Impact: FCoE flows only (while terminate a connection) T6.4 Version 6.4.34 (April 4, 2011) ============================== Fixes ----- 1. Problem: Error recovery process caused a interrupt status in PXP2. Cause: Read only register PXP2_REG_RQ_CFG_DONE was written to. Fix: Don't write to read only register (writing to PXP2_REG_RQ_RBC_DONE is enough). Impact: Only during error recovery attempt. 2. Problem: When RSC is enabled, tcp packets with erroneous length might add wrong bytes to packet (FW ETH). Cause: Firmware didn't verify the packet length is equal Ethernet header + IP total length. Fix: Added the required verification. Impact: Introduced in firmware 6.4.0. 3. Problem: CQ54004 - Chip hangs upon arrival of iSCSI packet with split digest or padding (FW iSCSI). Cause: Firmware sends erroneous BRB read command. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0. 4. Problem: CQ54292/CQ54330 - BSOD while adding iSCSI target (FW iSCSI). Cause: Wrong DCBX parameters were used for iSCSI connections. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.31 (eVBD 6.4.32). 5. Problem: CQ54270 - DRIVER_POWER_STATE_FAILURE (9f) BSOD on coming out of hibernation. Cause: Pageable code was called in the FCOE miniport powerup path. Fix: The pageable code was moved to the FCOE miniport bind stage. Impact: Exists in all previous T6.4 versions. 6. Problem: VBD didn't clear previous multicast addresses when handling OID_802_3_MULTICAST_LIST. Cause: Missing implementation. Fix: Clear current multicast addresses before setting new ones. Impact: Exists in all previous T6.4 versions. Version 6.4.33 (March 31, 2011) =============================== Fixes ----- 1. Problem: CQ54116 - BSOD during error recovery test. Cause: Error recovery flow didn't succeed since notification to second engine wasn't done properly. Fix: Fix flow in notifying second engine. Impact: Only during error recovery attempt. 2. Problem: CQ54250 - Error Recovery: Generating Parity Error with error recovery enabled causes system crash (BSOD). Cause: Bug in counting outstanding ioctls caused error recovery flow to fail. Fix: Fix flow of counting outstanding ioctls. Impact: Only during error recovery attempt. 3. Problem: Error recovery flow timed out. Cause: Wrong synchronization mechanism was used during recovery which caused starvation to the worker thread. Fix: Change flow to use the correct synchronization mechanism. Impact: Only during error recovery attempt. 4. Problem: CQ54032 - System hangs at machne shutdown when 7 or more iSCSI sessions are present. Cause: Race in ISCSI shutdown flow. Fix: Fixed the race. Impact: Introduced in version T6.0. Version 6.4.32 (March 28, 2011) =============================== Fixes ----- 1. Problem: (CQ52000 Cont.) 1G link is broken on 8706 PHY. Cause: Mechanism for detecting 10G fault does not apply to 1G. Fix: Only check 10G link for XAUI fault. Impact: 8706PHY based boards. 2. Problem: CQ51905 VMQ: System BSODs when running load/unload eVBD while running traffic on VM. Cause: Changing VMQ affinity scheduled the wrong dpc with the wrong message, causing the DPC of a different queue not to run if it tried scheduling the DPC at the same time and then not handle the interrupts for that queue. Fix: Schedule the correct DPC. Impact: Introduced in version T6.0. 3. 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 GPIO3 was not set as input to enable receiving module plug-in/out interrupt Change: Initialize AEU before collecting the group of signals in charge for generating interrupts. In addition, set GPIO3 to input to allow receiving module plug-in/out interrupts Impact: BCM8726 based boards Introduced in 5.2.50 4. Problem: Changing bandwidth allocation parameters through BACS may fail even for valid values. Cause: Invalid validation of bandwidth allocation parameters by VBD. Fix: Fix parameter validation. Impact: Introduced in VBD 6.4.13, NPAR mode only. 5. Problem: CQ54085 - EVBD breaks with checked version on 57711 in Win2k3 Cause: A bug in RSS update flow with RSS version 1 ,when spreading the processors between the different function. Fix: Fixed the bug. Impact: Introduced in VBD 6.4.0. 6. Problem: CQ53853 - NDIStest 6.0 2c_offloadchecksum fails Cause: FW fixed a problem that caused checksum to be reported as OK for certain packets even when it wasn't validated. Fix: Imitate previous FW behavior until checksum calculation is implemented in VBD for packets that FW did not validate Impact: Introduced in FW 6.4.15 7. Problem: (FW)Hardware attention occurs after 256 DCBX updates. Cause: Firmware doesn't read DCBX info because of dcb version wraparound. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0. Enhancements ------------ 1. Request: Disable NPAR Tx switching. Change: Both matched and unmatched Tx switching is disabled in NPAR. Impact: None. Version 6.4.31 (March 21, 2011) =============================== Fixes ----- 1. Problem: CQ52000 & CQ51134 Cont - XAUI lane short may have false alarm. In addition, 1G link is broken. Cause: The Tx fault read from PHY could be stale. Also mechanism for detecting 10G fault does not apply to 1G. Fix: Read the Tx fault bit from the PHY once more to clear stale value. Also, only check 10G link for XAUI fault. Impact: 8727PHY based boards. 2. Problem: HW attention occurs when TX traffic is duplicated to the physical and loopback ports (FW ETH). Cause: Firmware doesn't manage connection's activity correctly. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0 3. Problem: CQ53347 - Data does not validate reported while running RH6.0 on x64 machine (FW ETH). Cause: In case of VLAN removal of a first packet in RSC aggregation, firmware may add padding bytes in the middle of the packet. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.25. 4. Problem: CQ53523 - system stuck during load/unload under traffic (FW ETH). Cause: RX processor can get stuck in infinite loop when a set mac configuration is done during traffic. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0. 5. Problem: Wrong FCoE statistics\CMNG calculation. Cause: Firmware doesn't count Ethernet preamble and inter-frame gap, and count outer vlan (FW FCoE). Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0. 6. Problem: Transmission of inaccurate frame size in case MTU is too small (FW FCoE). Cause: Firmware doesn't count FC CRC size into the frame size in case MTU smaller than TX FC payload length (FW FCoE). Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0. Enhancements ------------ 1. Request: CQ51697 - Short on XAUI lines on MAC side of 8706 PHY 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: 8076 PHY. 2. Request: CQ53761 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. 3. Request: Remove initial DCBX configuration. Change: As requested. Impact: Only DCBX auto detected is supported. MFW 6.4.9 or newer is required. 4. Request: CQ53268 - Enumerate FCoE PDO for specific device id. Change: As requested. Impact: As requested. Version 6.4.30a (March 17, 2011) ================================ Enhancements ------------ 1. Request: CQ53761 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. Version 6.4.30 (March 14, 2011) =============================== Fixes ----- 1. Problem: CQ53609 - BCM57712 Assert is seen while running ACPI S1 S3 sleep stress test. Cause: Mac filtering ramrod data was overridden when parallel run of clients occurred. Fix: Split the ramrod data per client in BCM57712 and use same ramrod data in BCM57710/BCM57711. Impact: Introduced in 6.4.29 relevant for BCM57712. 2. 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). 3. Problem: CQ53260 - Unsupported FCoE pcie request (FW FCoE). Cause: Firmware doesn't support Tx cache mechanism with more than 1 xfer ready packet. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0 4. Problem: Inaccurate FCoE TX/RX statistics (FW FCoE). Cause: Firmware doesn't include ETH CRC and did not accumulate properly FCP_CONF frames. Fix: Fixed relevant firmware flow. Impact: Exist in all versions running FCoE (T6.4). 5. Problem: Everest hangs upon arrival of iSCSI packet with FIN flag set (iSCSI FW). Cause: Tstorm signals Ustorm to release same BRB block twice. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0 6. Problem: On-chip TCP handshake transmitted TCP options with missing MSS and window-scale (iSCSI FW). Cause: Timestamp padded with EOL instead of NOPs. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.0. Enhancements ------------ 1. Request: CQ53632 - Add 1Gbps speed option to BCM57712 PNP ID. Change: As requested. Impact: iBoot for BCM957712A1213G. 2. Request: CQ53450 - Add new BCM57712 device id's to the driver INF file. CQ53451 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. 3. Request: CQ53138 - NPAR BW Weight should be disabled if ETS is enabled. Change: As requested. Impact: None. Version 6.4.29 (March 8, 2011) ============================== Fixes ----- 1. Problem: CQ53338 - BACS3's MAC LoopBack diagnostic test fails intermittently. Cause: PFC flow cleared the loopback mode unconditionally on 57712 boards. Fix: Make PFC code take into account current loopback mode on 57712 boards. Impact: Introduced with 57712 support in T6.2 2. Problem: CQ52245 - NDISTest 6.0 2c_mini6rsssendrecv test fails (FW ETH). Cause: IPv6 addresses in hash string were built in a wrong order. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.1. BCM57712/57810/57840 only. 3. Problem: CQ53454 - VMQ with NPAR - Driver assertion for packets smaller then 64B (FW ETH). Cause: Firmware was not padding packets placed on SGEs. Fix: Add packet padding to packets on SGEs. Impact: Exist in all versions that support VMQ and NPAR systems. 4. Problem: CQ52000 - Error with previous fix for XAUI short detection caused false link down event. Cause: Need to check MDIO_PMA_REG_TX_ALARM for errors. Impact: 8727PHY based boards. 5. Problem: CQ53333 - Hyper-V: TX switching does not work in NPAR setting. Cause: Filtering rules were not set properly for non enlightened VMs. Fix: Flows fixed to support all types of hyper-V traffic flows. Impact: NPAR Tx switching of non enlightened VMs. 6. Problem: When machine goes to D3 and WoL is enabled, "Close the gate" error might happen and cause inconsistent behavior to the chip. Cause: Driver writes to a register which is less than 32 bits a value which has "ones" on unimplemented bits. Fix: Write "ones" only to the implemented bits. Impact: Introduced in eVBD 6.4.18 7. Problem: CQ53256 - VMQ system breaks when trying to create a hyper-v virtual nic. Cause: eVBD mistakenly provides VMQ capability in non MSI-X environment. Fix: Driver prevents reporting VMQ capability in non MSI-X environment. Impact: Introduced in version eVBD T6.x. 8. Problem: CQ53444 - OIS Certs iSCSI Ping Test Fails. Cause: Mac filtering was overridden by last client loaded. Fix: Every client considers previous clients loaded. Impact: Introduced in T6.4 relevant for BCM57710/BCM57711. Enhancements ------------ 1. Request: Enhance EVBD to read FCOE FIP, WWPN and WWNN mac addresses from their updated location in shared memory, and report them to FCOE Miniport driver. Change: As requested. Impact: For FCoE, MFW 6.4.7 or newer is required. Version 6.4.28 (March 3rd, 2011) ================================ Fixes ----- 1. Problem: CQ50381 - BCM57712 WOL S5 does not work. CQ49175 - BCM57712 WOL S4 AUT fails to wake up from S4 via Interesting Packet (Magic Packet works). Cause: Implementation in driver and boot code was incorrect. Change: Fix the Implementation, including PF higher than 1. Impact: Introduced in version eVBD T6.2 2. Problem: CQ51297 - BCM57712 WOL S5 System Unexpectedly Wakes Up from S5 State via Interesting Packets. Cause: Implementation in driver was incorrect. Change: Fix the Implementation. Impact: Introduced in version eVBD T6.2 3. Problem: Setting multiple MAC addresses may cause a memory leak. Cause: Failure to release some data if no set-MAC ramrod is sent. Fix: Release the ramrod data if there is no need to send it. Impact: Introduced in 6.4.26. Exposed by driver verifier only. 4. Problem: CQ52772 - BCM NPAR specific configuration of bandwidth weight/maximum bandwidth 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. Fix: Increase MAX algorithm timeout from 100usec to 400usec. Impact: Introduced in eVBD 6.2.6. Enhancements ------------ 1. Request: CQ50798 - Add support for BCM8722 Change: As requested. Version 6.4.27 (March 1st, 2011) ================================ Fixes ----- 1. Problem: CQ52894 - System BSOD during shutdown. Cause: Delegated parameters weren't read under reset. Fix: Read delegated parameters just don't run sanity under reset. Impact: Introduced in version 6.4.19. 2. Problem: Potential bug in MF mode when running load unload test on all the function and forcing link changes, PFC doesn't work. Cause: PFC state isn't passed between function when PMF migration occurs. If link changes the function that became PMF knows the PFC settings only if also DCBX settings has changed. Fix: Each function that becomes PMF will read the DCBX setting from chip regardless if the DCBX settings has changed. Impact: Introduced in release 6.4.0. 3. Problem: Potential bug that can cause TX traffic to stop when running TOE disable enable stress test. Cause: A race in ramrod handling that involves DCBX ramrod. Fix: Solved the race in VBD. Impact: Introduced in release 6.4.0. 4. 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. 5. Problem: CQ52245 - NDISTest 6.0 2c_mini6rsssendrecv test fails (FW ETH). Cause: For first IP fragment of a TCP packet, the firmware was calculating 4-tuple RSS instead of 2-tuple RSS. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware 6.4.1. BCM57712/57810/57840 only. 6. Problem: Firmware could find task context valid although it is not (FW FCoE). Cause: TX/RX valid bits are initialized to zero by driver. Fix: Driver should not set values to RX/RX valid bits and firmware should always toggle their values. Impact: Exist in all previous versions (FcoE). 7. Problem: CQ53322 and CQ53368 - assert while running load/unload with driver verifier enabled. Cause: Bug in setting DPC affinity (corner case). Fix: Solved the bug. Impact: Introduced in version eVBD T6.4.26 , only when MSIX is disabled. Enhancements ------------ 1. Request: CQ50501 - Add new BCM57711 device id's to the driver INF file. CQ52559 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. 2. Request: CQ#50798 - Add support for BCM8722 Change: As requested. Version 6.4.26 (February 24, 2011) ================================== Fixes ----- 1. Problem: Theoretical bug eVBD low performance. Cause: Theoretical race that can lead to a situation where a RSS chain is work on wrong processor. Fix: Fix Theoretical race. Impact: Introduced in release 6.4.0, only when MSIX is disabled. 2. Problem: VBD assert on driver unload when multiple MAC addresses are set Cause: wrong error code returned when deleting more than a single MAC address Fix: return the correct error code Impact: introduced in T6.4 3. Problem: CQ52828 - bxnd60a BSOD is seen while deleting team. Cause: eVBD does not send to FW existing MAC address but does not allow upper level recognize this state. Change: eVBD on set MAC address returns code allowing to process setting already existing MAC address. Impact: Introduced in version eVBD T6.4. Version 6.4.25 (February 22, 2011) ================================== Fixes ----- 1. Problem: BCM57712 intermittently fails to link up after resuming from S4 power state. Cause: Locking mechanism for link initialization timed out. Fix: Increased the timeout of the phy lock. Impact: BCM57712 related. Already fixed in version 6.2.7. applying to 6.4 as well. 2. Problem: CQ53180 - 57710: BSOD during driver unload. Cause: Missing initializations to CM. Fix: Added missing initializations. Impact: Introduced in release 6.4.0 affects 57710 only. 3. Problem: CQ52984 - BSOD during network stress test. Cause: eVBD RSS state was not initialized. Fix: Initialized eVBD RSS state to RSS disabled. Impact: Introduced in release 6.4.0. 4. Problem: Coalesced packets might arrived after TPA disable and in some cases the system might crash (FW ETH). Cause: Firmware didn't refreshed the configuration after RSC disable for packets which arrived while the ramrod took place. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.7. 5. Problem: No indication on error in case FCP bidirectional flags are set (FW FCoE). Cause: Firmware did not handle the verification properly. Fix: Fixed the relevant firmware flow. Impact: Exist in all previous FCoE versions (T6.4). 6. Problem: CQ52834 - iSCSI connection/login issues in DCB environment (FW iSCSI). Cause: Erroneous context override by firmware. Fix: Fixed relevant firmware flow. Impact: Exist in all previous versions with DCB support (BCM57712 only). 7. Problem: Retransmit in TCP layer of data digest, resulted with iSCSI connection being rejected by target (FW iSCSI). Cause: Firmware transmitted data digest with wrong TCP sequence. Fix: Fixed relevant firmware flow. Impact: Exist in all previous versions. Version 6.4.24 (February 14, 2011) ================================== Fixes ----- 1. Problem: CQ52927 - BSOD while running DVD install 2k8-SP2 AMD64 via L2 path. CQ52909 - BSOD while running 57712 benchmarks. CQ52855 - BSOD while running the NDISTest mpe_ethernet. CQ52796 - BSOD while running CNIC Stress in NPAR mode. CQ52967 - CQ52967 - BSOD while running chariot ipv4/ipv6 and offload stress on both ports in Win2k3-64. (FW ETH). Cause: Firmware lose packets synchronization during transmission. (XSTORM assert). Fix: Fixed relevant firmware flow. Impact: Introduced in eVBD version 6.4.15, BCM57712 only. 2. 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 RSC is enabled (FW ETH). Cause: Firmware wrongly places padding bytes on RX SGEs. Fix: Fixed relevant firmware flow. Impact: Exist 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. 3. Problem: RSC disable ramrod could cause the chip to halt (FW ETH). Cause: Firmware bug. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0, BCM57710/57711/57711E only. 4. Problem: Chip doesn't detect two REC_TOV expirations (FW FCoE). Cause: Firmware ignore REC_TOV expiration if task is in warning state. Fix: Fixed the relevant firmware flow. Impact: Exist in all previous versions (FCoE). 5. Problem: CQ52925 - Driver aborts exchanges if the RO bit in the F_CTL field is set in a FCP_RSP packet (FW FCoE). Cause: Firmware detecting an error in case RO bit is set in FCP_RSP packet. Fix: Remove the verification of this bit in FCP_RSP frame. Impact: Exist in all previous versions (FCoE). 6. Problem: CQ52721 - Driver assert on connection upload during context validation, in case a packet with timestamp was received, and the option was not negotiated during connection establishment (FW TOE). Cause: Firmware updated timestamp data, although it is disabled. Fix: Fixed relevant firmware flow. Impact: Exist in all previous versions. Enhancements ------------ 1. Request: Add to INF PNP Device ID's (synced with 6.2.16). Remove from INF BCM578xx devices. Change: As requested. Impact: As requested. 2. 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. Version 6.4.23 (February 7, 2011) ================================== Fixes ----- 1. Problem: CQ57810 - BSOD (ASSERT) during team deletion. Cause: Driver failed request to set the same mac twice. Fix: Driver recognizes that mac is set and returns success. Impact: Introduced in release T6.4. 2. Problem: CQ52473 - Assert is seen while running BacsCLI automation on advanced driver properties. Cause: DMA engine access was not protected and caused multiple use from different flows. Change: Removed DMA engine use in the relevant flow. Impact: T6.2 BCM57712 mode load/unload flows when link is up. 3. Problem: Potential wrong PHY initialization when loading the first function on a port, after another function from this port was unloaded. (CQ51091/CQ52178 Link loss on stress). Cause: In this case, the driver won't lock PHY access, which may cause MDC/MDIO collision. Change: Initialize the lock flag on the init driver stage, instead of the common and port init stage. Impact: T5.2a in MF mode (NPAR/Switch dependant) 8726 and 8727 (on top of the 8073) and any other MDC_MDIO design. Fixed in eVBD 6.2.14 4. Problem: (FW ETH)System may crash when configuring some RX rings with RSC enabled and some with RSC disabled. Cause: Firmware tries to do RSC also for the non-RSC clients. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.15, BCM57710/57711/57711E only. 5. Problem: (FW ETH)System crash under TCP traffic when driver is toggling RSC. Cause: Firmware bug. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.7. 6. Problem: (FW ETH)Firmware aggregated packets with wrong checksum. Cause: Firmware didn't check checksum as a requirement for aggregation. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 7. Problem: (FW FCoE)Redundant event writing to the driver. Cause: Race between driver and hardware caused false detection of CQ doorbell. Fix: Fixed the relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 8. Problem: (FW FCoE)CQ52023 - Chip hangs due to hardware attention. Cause: Traffic type to priority/COS table was reset after link down by driver causing transmission on the wrong COS. Fix: Removing the table in RAM from HSI section. Impact: Introduced in firmware version 6.4.0. 9. Problem: CQ51832 - Hardware attention when working in NPAR mode and there is COS modifications by DCBX. Cause: DCBX update got lost due to firmware bug when working in NPAR mode. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.12. Enhancements ------------ 1. Request: Add an IOCTL for manipulating contiguous physical memory buffers. Change: As requested. Impact: Checked build only, used by winedebug. 2. Request: (FW ETH)Added performance improvements to Ethernet transmit flows in BCM57711. Change: Firmware design and implementation optimizations. Impact: None. Version 6.4.22 (January 24, 2011) ================================= Fixes ----- 1. Problem: Link is sometimes not indicated to OS in NPAR-SD mode. Cause: Race between NPAR-SD and normal link status modification flows. Fix: Only change link status in NPAR-SD mode via specific flow. Impact: Introduced in eVBD 6.4.15. NPAR-SD mode only. 2. Problem: (FW ETH)Chip halts when a packet with VLAN arrives, while working in NPAR-SD mode and the OS is in VMQ mode (BCM57712 only). Cause: Illegal command is sent by the firmware in such case. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.15. 3. Problem: (FW FCoE)When receiving out of order packet\timeout, chip requests from target to retransmit the entire data. Cause: Firmware request re-transmitting from beginning of the sequence instead of from the last good packet. Fix: Fixed the relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 4. Problem: (FW FCoE)Treating ABTS reply incoming frame improperly. Cause: Firmware could accept incoming ABTS reply frame (instead of dropping it) during abort procedure even if it did not transmit the ABTS request packet. Fix: Fixed the relevant firmware flow. Impact: Introduced in firmware version 6.4.13. 5. Problem: (FW FCoE)(CQ52187) Chip issue sequence recovery request after timeout, even if task continued normally. Cause: Firmware always accepts sequence recovery requests from the driver. Fix: Fixed the relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 6. Problem: (FW FCoE)Chip hangs after detecting unmasked hardware attention. Cause: Firmware loads from a memory space which was not initialized during placement procedure. Fix: Fixed the relevant firmware flow. Impact: Exists in all previous releases. 7. Problem: (FW iSCSI)Miscalculation of MSS during TCP handshake when timestamp exists. Cause: Firmware bug. Fix: Fixed relevant firmware flow. Impact: Exists in all previous releases. 8. Problem: (FW iSCSI)Chip hangs when running iSCSI IOs bigger than 32KBs. Cause: Firmware bug. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. Version 6.4.21 (January 18, 2011) ================================= Fixes ----- 1. Problem: CQ52366 - System BSODs when rebooted with FCoE client binded. Cause: FCoE FW reads from uninitialized UPB address which causes parity error. Parity error in checked version causes BSOD. Fix: Mask UPB parity error, which now won't cause BSOD until next FW release which will take care of accessing uninitialized memory. Impact: Introduced in 6.4.20. 2. Problem: CQ52212 8073PHY intermittently exhibits signs of disconnected devices upon loading/unloading. Cause: Microcontroller and Driver both controlling Xaui Low Power Mode. Fix: 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. Fix: Set TXONOFF_PWRDN_DIS accordingly. Impact: 8727PHY and 8706PHY based boards with TX laser controlled by GPIO_0. Version 6.4.20 (January 17, 2011) ================================= Fixes ----- 1. Problem: CQ52180 and CQ52192: The FCoE priority value for Tx traffic is not being configured correctly when adapter has non-default values configured via registry/GUI and "willing" bit set fo all TLV. Cause: The eVBD wrote a wrong FCOE application ID to FW. Fix: The eVBD writes the right FCOE application ID to FW. Impact: Introduced in eVBD 6.4.15. 2. Problem: (FW ETH) Unexpected packet arrives after client update ramrod with BCM57712 at NPAR mode. Cause: Client update turned on the accept all unicast. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 3. Problem: (FW FCoE) Wrong data offset is being used during error recovery. Cause: The firmware reported the offset of the corrupted packet, instead of the last good packet. Fix: Fixed relevant firmware flow. Impact: Exists in all previous releases that support error recovery (6.4.19) 4. Problem: (FW FCoE) - Chip get stuck when initiating abort procedure. Cause: Firmware did not handle properly the case when abort is being initiated on a task that was already closed. Fix: Fixed the relevant firmware flow. Impact: Introduced in firmware version 6.4.13. 5. Problem: Memory Leak under Error recovery flow. Cause: Buffers used for error recovery flow weren't released properly. Fix: Release all allocated buffers. Impact: Introduced in VBD version 6.4.19 retail version. Occurs only if error recovery flow is initiated. Enhancements ------------ 1. Request: (FW ETH) Add count for coalesced aborts in the firmware. Change: As requested. Impact: None. 2. Request: (FW FCoE) Added performance improvements in BCM57711 Ethernet transmit flows. Change: Perform firmware optimizations. Impact: None. 3. Request: Adding HSI version (major and minor fields) to FCoE constants and FCOE_INIT KWQE in order to allow HSI verification. Change: As requested. Impact: None. 4. Request: Enhance error recovery flow to handle more parity errors and HW attentions (QM). Change: As requested. Impact: None. Version 6.4.19 (January 10, 2011) ================================= Fixes ----- 1. Problem: Multi Function broken on Emulation/FPGA. Cause: Changes introduced to support more mf modes didn't take into account no MCP mode, which is what we have on emulation/FPGA. Fix: Initialize mf_mode in NO-MCP-Mode correctly. Impact: Emulation/FPGA only. Introduced in VBD 6.4.15. 2. Problem: XSTORM assert due to wrong values in XSTORM RAM, occuring 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 init 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). Impact: Introduced in eVBD 6.4 Enhancements ------------ 1. Request: Support Error recovery for parity errors and device faults (Hw / Fw assertions) Change: Initial implementation for error recovery flows (process-kill) that can recognize and recover from certain HW / FW assertions, which until now resulted in BSOD. Impact: Enabled in retail version only. Enabled only for 57712. Assertions that until now caused a BSOD will in most cases be recoverable and result in a short connectivity loss. Version 6.4.18 (December 30, 2010) ================================== 1. Problem: (FW ETH)In combined scenarios of L2 and Toe/iSCSI the chip might hang. Cause: The chip reached a deadlock when there is loopback traffic to both the L2 and Toe/iSCSI connections while there is also traffic from the network port. Fix: Separate the reordering mechanism between the loopback and the network port. Impact: Exist in all previous versions. 2. Problem: (FW FCoE)CQ51752 - Second FCoE function does not stay logged in to the target in NPAR mode. Cause: Second function FCoE offload traffic treated like non offload traffic in NPAR mode. Fix: Add support for two functions in NPAR mode. Impact: Exist in all previous versions. 3. Problem: (FW FCoE)Firmware drop SRR accept packets. Cause: Middle path flow support only FCP_RSP and ELS packets. Fix: Fixed the relevant firmware flow. Impact: Exist in all previous versions. 4. Problem: (FW FCoE)REC_TOV timer doesn't expire after sequence cleanup. Cause: Firmware doesn't rearm REC_TOV timer after sequence cleanup. Fix: Fixed the relevant firmware flow. Impact: Exist in all previous versions. Enhancements ------------ 1. 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. 2. Request: Support rate limiting updates in NPAR-SD mode Change: As requested Impact: NPAR-SD mode only. 3. Request: Update the format of NPAR-SD statistics to match the new structure in SHMEM Change: As requested Impact: NPAR-SD mode only. Version 6.4.17 (December 22 2010) ================================ 1. Problem: CQ51342 - BSOD unloading vbd driver with verifier on. Cause: Memory leak: some new rt allocations were not freed. Fix: Make sure all rt allocations are freed. Impact: Introduced in release T6.4. 2. Problem: BCM8727 Link LED not funtioning properly during BACS LED test. Cause: Not blinking correct link light. Impact: BCM57712 + BCM8727 based boards. 3. Problem: CQ51134 - NCSI 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 and above to resolve this problem PHY firmware upgrade will require reboot from now on 4. 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. 5. Problem: Same MAC address is used for for iSCSI, FCoE and NDIS in NPAR-SD mode. Cause: FCoE and iSCSI MAC addresses were not read from SHMEM Fix: Read FCoE and iSCSI MAC addresses correctly also in NPAR-SD mode 6. Problem: (FW)FLR after DCBX causes hardware attention. Cause: Firmware didn’t update the physical queue info table at start. Fix: Fixed relevant firmware flow. Impact: Exists in all previous releases that support DCBX. 7. Problem: (FW ETH)L4 TX checksum offload for packets with IP header greater than 64 bytes was written to wrong place on the packet. Cause: Firmware passed the wrong offset to hardware when IP header size is bigger than 64. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 8. Problem: (FW ETH)Firmware might wrongly declare a VF as malicious. Cause: Firmware used a invalid buffer descriptor in security enforcement. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. Enhancements ------------ 1. Request: Report various MF modes and FCoE MAC address in device info IOCTL. Change: As requested. Impact: None. 2. 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 Version 6.4.16 (December 14 2010) ================================ Fixes ----- 1. Problem: CQ51050 After disabling DCB, the standard flow control(pause) is not working. Cause: A HW block is not reset between bus driver unload and load, this block contains some PFC register configuration. Change: In bus driver load, initialize this register to pause configuration. Impact: Introduced in release T6.4, affects all chips. 2. Problem: (FW FCoE)CQ51584 - When the NIC PAR is enabled, initiator does not login to the target. Cause: Offload connection traffic was dropped due to classification failure. Fix: Fixed relevant firmware flow. Impact: Exists in all previous FCoE releases. 3. Problem: (FW TOE)Possible hardware attention during TOE stress scenarios with COS modifications by DCBX. Cause: Rare race condition could cause credit depletion in hardware block. Fix: Return credit according to DCBX class of service. Impact: Introduced in firmware version 6.0.24. 4. Problem: (FW TOE)Possible hardware attention when performing TOE Tx-switching with COS modifications by DCBX. Cause: Firmware disregarded the DCBX info upon Tx-switching. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.12. Enhancements ------------ 1. Request: In the existence of DCBX, MinBW algorithm will be disabled. Change: As requested. Impact: None. 2. Request: Bus driver enforces FCoE license. Change: As requested. Impact: FCoE PDO is enumerate only if the BCM57710/11/12 includes a FCoE license . Version 6.4.15 (December 2 2010) ================================ Fixes ----- 1. Problem: eVBD break while running ISCSI offload data. Cause: The FW completion element type isn't parsed correctly for ISCSI OOO. Change: Fixed the parsing of the FW completion element type. Impact: Introduced in version eVBD 6.4.10. 2. Problem: BSOD on load/unload flows. Cause: Wrong parameter was sent to firmware statistics ramrod. the parameter caused illegal write to the chip. Change: Send the correct parameter to the firmware. Impact: Introduced in version eVBD 6.4.0 3. Problem: Single connection performance is much lower than expected in BCM57712. Cause: The firmware uses a malfunctioning bit in the HW for single connection optimization. Fix: The firmware uses a different bit with similar functionality. Impact: Introduced in firmware 6.1.0 when the optimization was implemented (doesn't cause any penalty compare to older versions). 4. 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. Fix: Fixed relevant firmware flow. Impact: Exist in all previous FCoE releases. Enhancements ------------ 1. Request: Enable by default TOE Tx Dynamic Host-Coalescing (DHC) possibility, set corrected TOE TX DHC timeouts. Change: As requested. Impact: None. 2. Request: Support RSC for IPv6 packets in firmware (doesn't activated in driver code). Change: Modify RSC code to support coalescing and modification of IPv6 packets. Impact: IPv6 RSC is supported in BCM57712 only. Trying to activate it on BCM57710/11 will cause a firmware assert. 3. Request: Support for forward connection traffic in NPAR-SD mode. Change: TX packets are sent with destination field, on NPAR-SD header, which is equal to the source VIF value. Impact: NPAR-SD mode is supported in BCM57712 only. Forward connection traffic is relevant only for TOE and iSCSI traffic. 4. Request: Support for offloaded traffic over TCP (TOE/iSCSI) in NPAR-SD mode. Change: In NPAR-SD mode All offloaded packets are sent with NPAR-SD tag info. Rx path validates NPAR-SD tag info of received packets. Impact: NPAR-SD mode is supported in 57712 only. 5. Request : Support NPAR-SD NIC-partitioning (static VIF ID) Change: As requested Impact: 57712 with appropriate bootcode only. Version 6.4.14 (November 23 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: CQ51094,CQ50736 and CQ50611- eVBD doesn't enumerate OIS/FCOE driver during DVD installation using second port. Cause: eVBD read ISCSI/FCOE boot signature from a wrong register offset. Change: eVBD reads ISCSI/FCOE boot signature from a right register offset. Impact: 57712 only issue for all function except function 0 on path 0. 3. Problem: (FW L2)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. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.10. 4. Problem: (FW TOE)CQ50753 - Possible crash during terminate offload flow. Cause: Timer was not always cleared due to race in the firmware flow. Fix: Fixed relevant firmware flow. Impact: Introduced in release T5.2. Enhancements ------------ 1. Request: Remove WDM power code from KMDF compilation. Change: As requested. Impact: None. 2. Request: CQ51065 - In NPAR Max BW has changed from units of "intervals of [100Mbps]" to units of "% of physical link speed". Change: As requested. Impact: None. Version 6.4.13 (November 17, 2010) ================================== Fixes ----- 1. Problem: (FW L2)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. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.0. 2. Problem: (FW L2)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. Fix: Fixed relevant firmware flow. Impact: Introduced in firmware version 6.4.7, BCM57711 only. 3. Problem: (FW L2)RSC does not aggregate packet when RSS disable. Cause: Wrong initialization by firmware. Fix: Fixed firmware initialization. Impact: Introduced in firmware version 6.4.9. 4. Problem: (FW 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. Fix: Fixed relevant firmware flow. Impact: Introduced in release T6.0, BCM57710 only. 5. Problem: CQ51218 RSS Completion deadlock caused UM_reset in miniport to be called. Cause: L4 RCQ processing was suspended until all ramrod completions arrived including L2, but L2 ramrod was starved since L4 didn't handle other L4 ramrod completions. Fix: Driver fix: suspend l4 rcq processing only while L4 RSS ramrod hasn't completed. Impact: Introduced in release T6.4, affects all chips. Enhancements ------------ 1. Request: (FW Common)Support Tx-switching in TCP. Change: Toe and iSCSI can now use internal loopback for physical function to physical function communication within the same path. Impact: 57712 multi function switch independent mode. 2. Request: (FW TOE)Improve TOE performance to meet bi-directional line-rate traffic (BCM57800). Change: Reduce firmware cycle count in Rx path. Impact: None. 3. Request: (FW FCoE)Synchronize all storms with ABTS operation before the transmission of ABTS packet, in order to avoid potential races. Change: As requested. Impact: None. 4. Request: For L2 traffic when DCBX is enabled, the bus driver stops overwriting the priority of the "side band" VLAN if exist or adding a zero "side band" VLAN if a "side band" VLAN is missing. Change: The exact job is done from now on by L2 FW. Impact: None. Version 6.4.12 (November 8, 2010) ================================== 1. Problem: L2 TX traffic stopped. Cause: Tx firmware didn't synchronize TX packet completions. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.10 (VBD release 6.4.10) Rolled out in VBD 6.4.11, now all features/bug fixes of FW 6.4.10 are back in. Version 6.4.11 (November 4, 2010) ================================== Fixes ----- 1. Problem: CQ50680 - System BIOS reports fatal error upon resume from system hibernate. Cause: A DCBX eVBD variable was not cleared before use coming back from D3. Fix: Initialize the variable before using it when coming back from D3. Impact: Introduced in release 6.4.0 57710 Only. 2. Problem: TOE test fails on emulation. Cause: Mistaken activation of host-coalesing mechanism Fix: Prevent activation of host-coalesing mechanism for emulation Impact: Introduced in release 6.4.10 Emulation Only. Enhancements ------------ 1. Request: Revert Firmware to 6.4.9 Change: As Requested. Fixes marked as (FW) in 6.4.10 were reverted. Version 6.4.10 (November 2, 2010) ================================== Fixes ----- 1. Problem: CQ50428 - NPART: Can not get DHCP assigned IPV4 address. Cause: NIG was not configured properly in nic partition mode. Fix: Configure NIG correctly when in nic partition mode. Impact: BCM57712 in NIC partitioning mode only. 2. Problem: 57710 driver load asserted. Cause: New classification flows didn't consider E1H properly. Fix: Fixed flows to support 57710. Impact: Introduced in release 6.4.0 57710 Only. 3. Problem: BSOD when driver loads on 1G/100M/10M link speed Cause: Statistics DMAE context was not initialized properly in that case Fix: Initialize statistics DMAE context properly for 1G/100M/10M link speed Impact: Introduced in release 6.4.9 4. Problem: RSS didn't function properly. Cause: Indirection table params weren't sent properly to FW. Fix: Update indirection table params properly. Impact: Introduced in T6.4. 5. Problem: (FW L2)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. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.2.0. 6. Problem: (FW L2)Firmware doesn't work correctly for 2 TCP connections with the same toeplitz hash result, when RSC is enabled. Cause: The firmware wrongly invalidated the aggregation for the first connection, when a packet from the second connection arrived. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.7. 7. Problem: (FW L2)When more than 16 RSC aggregations are open, aggregations might not close properly. Cause: The firmware miscalculated the RSC timer address. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.7. 8. Problem: (FW iSCSI)CQ50380 - iSCSI offload - Event viewer shows NOP events. Cause: TCP window is closed and initiator cannot properly process incoming in-order packets. Fix: Fixed firmware flow. Impact: Introduced in release T6.0. Enhancements ------------ 1. Request: Support TOE Tx Dynamic Host-Coalescing possibility Change: As Requested. Version 6.4.9 (October 27, 2010) ================================== Fixes ----- 1. Problem: CQ49515 & CQ50024 - Occasionally losing link on force 10/100 connections on boards with BCM84823 PHY. Cause: Not waiting for GPHY to complete reset. Fix: Add 50ms delay after 84823 PHY comes out of reset. Impact: BCM84823 based boards 2. Problem: 57711/57710: RSS Broken. Cause: HSI change wasn't done correctly by driver. Fix: Fixed HSI change. Impact: Introduced in release 6.4.6. 3. Problem: CQ50538 - Reading hardware statistics causes a BSoD Cause: Driver initiated a DMAE transaction to an invalid address Fix: Fix DMAE destination address when reading NIC statistics Impact: Introduced in release 6.4.8 4. Problem: (FW) When in MF mode, Hardware may get PCI error in case of TOE or iSCSI out-of-order flows. Cause: Firmware set the wrong PCI function ID. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.6, BCM57712 only. 5. Problem: (FW)CQ50483: Chip got stuck during combined scenarios of Toe and L2. Cause: Context was not initialized correctly by the Firmware. Fix: Fix the initialization. Impact: Introduced in firmware version 6.4.6, BCM57710/11/11E only. 6. Problem: (FW FCoE)Trying to transmit from invalid host memory address. Cause: Receiving incorrect FCP_XFR_RDY second packet. Fix: Rejecting the second FCP_XFR_RDY packet for the specific task. Impact: Introduced in firmware version 6.4.0. 7. Problem: (FW FCoE)False timer REC_TOV expiration. Cause: Inappropriate advance of timer counter. Fix: Fixed firmware flow. Impact: Exists in all previous FCoE releases. 8. Problem: (FW FCoE)Transmitting FCP_DATA frames with wrong OX_ID. Cause: Changing OX_ID once REC_TOV expiration is detected. Fix: Fixed firmware flow. Impact: Exists in all previous FCoE releases. Enhancements ------------ 1. Request: Apply the T6.0 workaround for CQ50032, as permanent solution for T6.2 and forward: Block user configuration of number of iSCSI pending tasks. Use driver's binary default. Change: As Requested. Version 6.4.8 (October 19, 2010) ================================ Fixes ----- 1. Problem: 57710: broadcast packets can be received on the wrong L2 client. Cause: Classification flow was using "unmatched unicast" flag also for broadcast packets. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.7. 2. Problem: DCBX configuration of 802.1q pri may override VIC 802.1q pri configuration in NPAR-SD mode. Cause: Firmware override 802.1q pri field with DCBX configuration in case both DCBX and NPAR-SD are configured. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.4. 3. Problem: Multicast NPAR-SD Rx packets are dropped in case they are received with NIV list which wasn't configured by the switch. Cause: Firmware discarded the packets in this case instead of flooding them to all active functions. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.4. 4. Problem: When more than 16 RSC aggregations are open, aggregations are not closed properly. Cause: Firmware miscalculated the address for the RSC timers. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.7. 5. Problem: (FCOE) RRQ frame was not sent after abort operation. Cause: Corrupted ABTS ACC frame reported to the driver. Fix: Firmware updates the correct R_CTL field in task context. Impact: Introduced in firmware version 6.4.0. Enhancements ------------ 1. Request: Make sure starttype is 0 (SERVICE_BOOT_START), loadordergroup is System Bus Extender, and removed bootflags. Change: As Requested. 2. Request: Support for E3 (57810, 57840). Change: As Requested. Version 6.4.7 (October 13, 2010) ================================ Fixes ----- 1. Problem: (FW)Rx packet are dropped in NPAR-SD mode. Cause: Firmware was using the wrong data of NPAR-SD tag parsing info. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.4. 2. Problem: (FW L2)No Tx completions on forward connection. Cause: Firmware didn’t update the required internal counter for generating Tx completions. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.6. 3. Problem: (FW L2)Malicious VF detection flow may cause memory corruption on TX processor. Cause: Bug in relevant firmware flow. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.0. 4. Problem: (FW FCoE)CQ50211 - InvalidCrcCount value after collecting statistics. Cause: Wrong statistics collection in firmware. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.0. 5. Problem: (FW FCoE)CQ50267 - ABTS sent with incorrect RX_ID value. Cause: Firmware reported incorrect task information when detecting the error. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.0. Enhancements ------------ 1. Request: (FW L2)Add support for RSC (receive side coalescing) in windows 8. Change: New features: a. RSC enable/disable can now be control with ramrod. b. When closing a RSC aggregation, the firmware will also report the driver the num of packet coalesced into the aggregation and the timestamp difference between the first and last packet in the aggregation. c. New statistics were added (as mention in HSI changes). d. Adapt aggregation rules to fit MSFT RSC spec. Impact: None. Version 6.4.6 (October 04, 2010) ================================ Fixes ----- 1. Problem: (FW) Occasional HW attention in iSCSI out of order and TOE offload/upload scenarios. Cause: When multiple consecutive packets are sent on L2 forward connection, firmware might manage internal transmission credit incorrectly. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.2.0. 2. Problem: (FW L2) LSO packets with large contiguous buffers may not be sent to network properly. Cause: Firmware didn’t calculate correctly the number of segments to be sent to network for LSO packet with large contiguous buffers. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.5. 3. Problem: (FW FCoE) FCP_XFR_RDY verification failed leads to abort the task. Cause: Error in verification procedure in second FCP_XFR_RDY packet on single task. Fix: Fixed firmware flow. Impact: Introduced in firmware version 6.4.0. Enhancements ------------ 1. Request: (FW L2) Support overriding TX packet priority field in NPAR-SD mode in case it doesn't match one of the allowed configured priorities. Change: As requested. Impact: None. Version 6.4.5 (September 27, 2010) ================================== Fixes ----- 1. Problem: (FW L2) Wrong statistic counter might be updated. Cause: In client init the queue statistic address might be calculated wrongly. Fix: Fixed the calculation in client init. Impact: Introduced in firmware version 6.2.1. 2. Problem: (FW L2) Congestion management doesn't work properly in case of single L2 connection scenario at 57712. Cause: In case of single connection L2 firmware didn't allow pausing transmission which is needed for the congestion management functionality. Fix: Firmware now considers congestion management decision to pause transmission. Impact: Introduced in firmware version 6.2.1. 3. Problem: (FW L2) The firmware returned the wrong error state for Ethernet ramrods. Cause: The code in Xstorm didn't save error state correctly. Fix: Fixed the relevant flow. Impact: Introduced in firmware version 6.2.0. 4. Problem: (FW L2) PF FLR could hangs the chip. Cause: The firmware didn't return activity counter to CFC correctly. Fix: Fixed the relevant flow. Impact: Introduced in firmware version 6.2.0. 5. Problem: (FW L2) CQ49299 - Customer reported bug: HW stuck after 8 hours of heavy LSO traffic. Idle check shows PBF/QM credit underflow. Cause: When driver send an LSO packet which BDs are larger than 64K, the firmware calculate the total SGL length in a uint16 variable which overlaps and causing an erroneous PBF command. Fix: Change the counter to be uint32. Impact: Exists in all previous releases. 6. Problem: (FW L2) 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. Fix: Fixed the relevant flow. Impact: Exists in all previous releases that support dcb updates. Enhancements ------------ 1. Request: CQ50006 - Add OEM specific 4-part ID Change: As requested. Impact: None. Version 6.4.4 (September 21, 2010) ================================== Fixes ----- 1. Problem: FCOE miniport fails to load. Cause: VBD driver gave the FW a wrong EQ base address at startup. Fix: VBD driver gives FW the correct EQ base address at startup. Impact: Introduced in release T6.4.3. Version 6.4.3 (September 20, 2010) ================================== Fixes ----- 1. 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. Fix: Clear NIG latched attention during driver unload Impact: BCM84823 based boards 2. Problem: CQ49760 - Slow F6 installation on boards with BCM84823 PHY. Cause: Not waiting until PHY has come out of reset. Fix: Poll on reset bit. Timeout after 1 second. Impact: BCM84823 based boards 3. Problem: CQ49803 - On systems that are PCIe hotplug capable, the bus driver child devices are displayed as removable devices in the "Safely remove hardware" dialog. These devices should not be listed in this dialog Cause: Bus driver did not clear the 'Removable' pci capabilty of its child devices. Fix: Clear the 'Removable' pci capabilty of bus driver's child devices. Impact: All previous versions Enhancements ------------ 1. Request: Remove workaround added in T6.0 evbd for 57712, to move from IGU BC mode to IGU BCM57712 mode. (Since boot driver was enhanced to support BCM57712 mode) Change: As requested. Impact: Introduced in release T6.0. 57712 only. 2. Request: DCB: Set traffic type of iSCSI ethernet ring to use iSCSI traffic type rather than network traffic type. Change: As requested. Impact: 57712 with DCB only. 3. Request: Increase drop threshold for receiver lossy COS, from 10 to 90, when PFC is enabled. Change: As Requested. Impact: None. Version 6.4.2 (August 31, 2010) =============================== 1. Problem: Several Whql VMQ tests failues. Cause: Two causes: (1) bug in configuring mac-vlan pair. (2) Size of header was set incorrectly. Fix: Configure mac-vlan pair correcly, and set header size correctly according to new HSI Impact: Introduced in release T6.4. 2. Problem: configuring more than 16 multicast addresses caused BSOD. Cause: Not implemented correctly with new HSI. Fix: Implement correctly with new HSI. Impact: Introduced in release T6.4. 3. Problem: Mac addresses weren't cleared on driver unload if miniport didn't delete them one by one before. Cause: Not implemented. Fix: Implement flow. Impact: Introduced in release T6.4. 4. Problem: Driver offload statistics were inconsistant Cause: iSCSI and TOE offload statistics were stored in the same counters, but iSCSI only updates some of the statistics counters. Fix: Seperate iSCSI and TOE statistics. Impact: The fields 'num_offloads' and 'num_uploads' that are returned by the IOC code B10_IOC_GET_OFFLOAD_STATS now contain only the number of TOE offloaded connections (in all previous versions the number of iSCSI connections was included as well). 5. Problem: Packets sent on forward channel on BCM57712 were discarded by L2 firmware. Cause: Packets were erroneously discarded due to wrong meta information. Fix: Mark Packets sent on forward connection so they won’t be discarded by firmware Impact: Introduced in firmware version 6.2.0. 6. Problem: The driver couldn't change RSS mode during runtime. Cause: RSS update ramrod didn't include control over RSS mode. Fix: Added control over RSS mode to RSS update ramrod. Impact: Introduced in firmware version 6.2.0. 7. Problem: The chip didn't support offload checksum and RSS for IPv6 packets. Cause: The firmware didn't identify IPv6 packet correctly. Fix: Adjust firmware IPv6 identification flow. Impact: Introduced in firmware version 6.2.0. 8. Problem: inactivated client with pair classification rule, might receives packets. Cause: The firmware didn't check activation state in case of pair match. Fix: Add the relevant check. Impact: Introduced in firmware version 6.2.0. 9. Problem: CQ49244 - ABTS BA_ACC dropped due to F_CTL (LAST_SEQ bit) verification mismatch. Cause: Detecting a protocol violation in ABTS BA_ACC frame from target (target protocol violation). Fix: No need to verify LAST_SEQ bit in F_CTL field. Impact: Exists in all previous releases. 10.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. Enhancements ------------ 1. Request: Re-arrange congestion management, and remove redundant support for: a. Software PFC. b. Protocol-level fairness. c. CMNG demo code. Change: Code was removed and re-written in stormC. Impact: None. 2. Request: FW Support for NPAR-SD tag in RX and TX paths. Change: As requested. Impact: None. 3. Request: Move all FCoE slow path operations in function level to be from none connection type. Change: As requested. Impact: None. 4. Request: Use two cached SGEs instead SGL that contains two SGEs. Change: Use two cached SGEs in task context while placing data. Impact: None. Version 6.4.1 (August 18, 2010) ============================== 1. Problem: Transmit statistics weren't updated correctly. Cause: Request contained the same address for TOE + ETH statistics. Fix: Assign different physical addresses for Toe + Eth. Impact: Introduced in release T6.4. 2. Problem: 57711 driver load failed. Cause: Changes in 57710/57711 set-mac implentation broke 57711 functionality. Change: Fix changes. Impact: Introduced in release T6.4. 3. Problem: L2 / L4 RSS was broken. Cause: New FW HSI was not implemented completely. Change: Completed implementation. Impact: Introduced in release T6.4. 4. 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 COS. Fix: L2 firmware now considers DCB updates and may stop a single connection run to allow DCB configuration update. Impact: Introduced in firmware version 6.0.15. 5. Problem: The error field in ramrod CQE always sent as 0. Cause: Wrong initialization of the CQE. Fix: Sending the correct value. Impact: Introduced in firmware version 6.2.0. 6. Problem: Firmware entered to infinity loop in same case in Cstorm Common VfZone handler. Cause: Wrong calculation of VF. Fix: Fix the calculation. Impact: Introduced in firmware version 6.2.0. Enhancements ------------- 1. Request: Support any DQ configuration of VF CIDs allocation. Change: Firmware is not aware of VF-ID location inside the CID. The driver supplies VF-ID in ETE client init ramrod instead. Impact: None. 2. Request: Omit the need to add broadcast mac to the cam in 57710 by the driver. Change: As requested. Impact: None. 3. Request: Support multiple RSS indirection tables per function in Everest2. Change: Introduce notation of "RSS engine ID". The driver can allocate several RSS engines per function. Every "leading connection" should point to its associated engine ID. Impact: None. 4. Request: Support multiple approximate multicast tables per function in Everest2.. Change: Introduce notation of "approximate multicast engine ID". The driver can allocate several multicast engines per function. Every engine should point to a client which accepts its packets upon match. Impact: None. 5. Request: Add the ability for firmware to record all ETH/COMMON ramrods on RAM. Change: Throw a warning-level assert for each ramrod on all storms upon configuration. Impact: None. Version 6.4.1 (August 3, 2010) ============================== Enhancements ------------ 1. Request: Add DCBX MF. Change: As requested. Impact: None. Version 6.2.16 (February 1st, 2011) =================================== Fixes: ------ 1. Problem: In some rare circumstances, a problem (stop of traffic, incorrect statistics) might occur. Cause: Possibility of collision on Wide bus writing/reading (fail writing/incorrect reading). This because not using DMA engine for WB access. Change: Use DMA engine for WB access as before eVBD 6.2.15 but this time, use spin lock to protect the engine. Impact: This type of problem was introduced in eVBD 6.2.15 as part of the fix CQ52473. Version 6.2.15 (January 25, 2011) ================================= Fixes: ------ 1. Problem: CQ52473 - Assert is seen while running BacsCLI automation on advanced driver properties. Cause: DMA engine access was not protected and caused multiple use from different flows. Change: Removed DMA engine use in the relevant flow. Impact: T6.2 BCM57712 mode load/unload flows when link is up. Version 6.2.14 (January 24, 2011) ================================= Fixes: ------ 1. 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. 2. 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. 3. Problem: Potential wrong PHY initialization when loading the first function on a port, after another function from this port was unloaded. (CQ51091/CQ52178 Link loss on stress). Cause: In this case, the driver won't lock PHY access, which may cause MDC/MDIO collision. Change: Initialize the lock flag on the init driver stage, instead of the common and port init stage. Impact: T5.2a in MF mode (NPAR/Switch dependant) 8726 and 8727 (on top of the 8073) and any other MDC_MDIO design. Enhancements ------------ 1. Request: Reduce memory consumption for specific OEM BCM57712 devices (CQ50656/CQ50654) Change: As requested (INF). Impact: Specific BCM57712 OEM devices. Version 6.2.13 (January 10, 2011) ================================= Enhancements ------------ 1. 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. Version 6.2.12 (December 22, 2010) ================================== Fixes: ------ 1. Problem: CQ51134 - NCSI 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.8 to resolve this problem PHY firmware upgrade will require reboot from now on. 2. Problem: BCM8727 Link LED not functioning properly during BACS LED test. Cause: Not blinking correct link light. Impact: BCM57712 + BCM8727 based boards. 3. 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. 4. Problem: CQ51694 - 57712 A1 EVBD/NDIS/FCOE/iSCSI device instance numbers are inconsistent. Cause: Bug in string manipulation. Change: Fix wrong string handling. Impact: Feature complete of CQ50608 (Introduced eVBD 6.2.4). 5. Problem: CQ51867 - Speed and flow control options appear in drivers properties advance tab for NPAR devices. Cause: Redundant entries in INF Change: Remove the redundant parameters from INF. Impact: 57712 Introduced in T6.2 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: DCBX default settings were changed in eVBD from enable to disabled. Change: As requested Impact: 57712 device. Version 6.2.11 (December 15, 2010) ================================== Fixes: ------ 1. Problem: CQ51685 - Some BCM8073 based boards fail during driver initialization Cause: BCM8073 microcode wasn't loaded correctly. Fix: Fix BCM8073 microcode load Impact: Introduced in release 6.2.10 Version 6.2.10 (December 14, 2010) ================================== Fixes: ------ 1. Problem: CQ50380 - iSCSI offload - Event viewer shows NOP events. Cause: TCP window was closed due to out-of-order state, and initiator failed to send a window update when exiting out-of-order state. Fix: Fixed relevant firmware flow. Impact: Introduced in release T6.0. 2. Problem: CQ51171 - One CX4 blade design does not autoneg to link up at 10G with a particular switch. Cause: The autoneg was not enabled due to incorrect setting at the XGXS AER. Change: Update the XGXS AER to devad 7 to allow proper configuration of autoneg. Impact: 57712 device. 3. Problem: CQ49175 - AUT fails to wake up from S4 via Interesting Packet. with a particular switch. Cause: Wrong configuration (missing register specific for 57712). Change: Write to the relevant register. Impact: 57712 device. Enhancements ------------ 1. Request: CQ48296, CQ51540 - Add support for new BCM8727 boards Change: As requested Impact: BCM8727 based boards 2. Request: CQ51640 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. Version 6.2.9 (December 2, 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: 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 PHYs. Version 6.2.8 (November 23, 2010) ================================= Fixes: ------ 1. Problem: CQ51094,CQ50736 and CQ50611- eVBD doesn't enumerate OIS/FCOE driver during DVD installation using second port. Cause: eVBD read ISCSI/FCOE boot signature from a wrong register offset. Change: eVBD reads ISCSI/FCOE boot signature from a right register offset. Impact: BCM57712 only issue for all functions except function 0 on path 0. 2. Problem: CQ50753 - Possible crash during terminate offload flow. Cause: Timer was not always cleared due to race in the firmware flow. Fix: Fixed relevant firmware flow. Impact: Introduced in release T5.2. 3. Problem: Possible crash when FIN is received during out-of-order scenario. Cause: Illegal context load by firmware in a rare corner case of the above scenario. Fix: Fixed relevant firmware flow. Impact: Exist in all previous releases. Enhancements ------------ 1. Request: Removed DCBX BCM57711 only code. Change: As requested. Impact: None. 2. Request: Remove WDM power code from KMDF compilation. Change: As requested. Impact: None. 3. Request: CQ51065 - In NPAR Max BW has changed from units of "intervals of [100Mbps]" to units of "% of physical link speed". Change: As requested. Impact: None. Version 6.2.7 (November 18, 2010) ================================= Fixes: ------ 1. Problem: CQ48350, CQ49175, CQ49176, CQ51078 - BCM57712 intermittently fails to link up after resuming from S4 power state. Cause: Locking mechanism for link initialization timed out. Fix: Increased the timeout of the phy lock. Impact: BCM57712 related. Enhancements ------------ 1. Request: CQ51034 CQ5114 - Add new BCM57712 device id's to the driver INF file (Updated). Change: As requested. Impact: None. Version 6.2.6 (November 15, 2010) ================================= Fixes: ------ 1. Problem: CQ50988 - Windows 2003 F6 installation: Windows BSOD at final boot-to-desktop phase. Cause: Different loading order of services in Windows 2003. Fix: Wdfldr and wdf01000 services are set to load group "Boot Bus Extender". Impact: Newly introduced in eVBD 6.2.3 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. Fix: 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: Duplex status may be displayed incorrect Cause: Missing duplex configuration in some external PHYs when link goes up. Change: Set duplex to FULL when 10G link comes up 4. Problem: CQ50610 - On systems with 6 CPU cores, when RSS chain count is set to 'auto', bus driver will set it to 3 instead of 4 Cause: Bus driver doesn't make sure the number of RSS chain count is a power of 2. Fix: Bus driver makes sure the number of RSS chain count is a power of 2. Impact: Exist in all previous versions. 5. Problem: CQ48350, CQ49175, CQ49176, CQ50911 - BCM57712 intermittently fails to link up after resuming from S4/S5 power states. Cause: BCM57712 missed locking mechanism for link initialization in specific phys. Fix: Add lock to the phy initialization. Impact: BCM57712 related. 6. Problem: (FW)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. Fix: Fixed firmware flow. Impact: Introduced in release T6.0, BCM57710 only. Enhancements ------------ 1. Request: CQ50291 - Include 1G speed option for specific boards so that it will support dual rate optic modules. Change: As requested. Impact: As requested. 2. Request: CQ51034 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. Version 6.2.5 (November 8, 2010) ================================ Fixes ----- 1. Problem: CQ50380 - iSCSI offload - Event viewer shows NOP events. Cause: TCP window is closed and initiator cannot properly process Incoming in-order packets. Fix: Fixed firmware flow. Impact: Introduced in release T6.0. Enhancements ------------ 1. Request: CQ49959 - Add Windows event log in case the PHY does not come out of reset after 1 sec. Change: As requested + log in case of MDIO access timeout. Impact: Enhanced implementation of existing events. 2. Request: Init values change for BCM57712 A1 Change: As requested. Impact: BCM57712 A1. Version 6.2.4 (November 1, 2010) ================================ Fixes ----- 1. Problem: CQ49515 & CQ50024 - Occasionally losing link on force 10/100 connections on boards with BCM84823 PHY. Cause: Not waiting for GPHY to complete reset. Fix: Add 50ms delay after 84823 PHY comes out of reset. Impact: BCM84823 based boards 2. Problem: CQ50428 - NPART: Cannot get DHCP assigned IPV4 address. Cause: NIG was not configured properly in nic partition mode. Fix: Configure NIG correctly when in nic partition mode. Impact: BCM57712 in NIC partitioning mode only. 3. Problem: CQ48203 Occasional assert is seen while traffic and load/unload on both ports together. Cause: Driver asserted on a valid condition. Fix: Removed assert. Impact: 57710/57711 checked versions only (all versions). Enhancements ------------ 1. Request: Apply the T6.0 workaround for CQ50032, as permanent solution for T6.2 and forward: Block user configuration of number of iSCSI pending tasks. Use driver's binary default. Change: As Requested. 2. Request: CQ50609 - DMAE timeout should be 200ms for all request types (following the email thread about CQ49968). Change: As requested (in one of the flows it was 100ms). Impact: Only for emulation chips and future chip types. 3. Request: CQ50608 - Append the SAME instance number to the end of the bus driver's and its client device's friendly names (Corresponding 570x CQ36066). Change: As requested. Impact: Client's devices friendly name will have now same suffix as bus driver for all miniports (iSCSI, NDSI, FCoE etc...). 4. Request: Introduce support MSI-X to msft brand's INF Change: As requested. Impact: Msft brand only Version 6.2.3 (October 18, 2010) ================================== Fixes ----- 1. Problem: CQ49775 - Zero network utilization observed during cool down stage in NTTTCP. Cause: Amount of TOE memory is insufficient for some special cases of traffic. Fix: Restore TOE memory allocation up to sufficient amount. Impact: Introduced in T6.0 Enhancements ------------ 1. Request: Make sure starttype is 0 (SERVICE_BOOT_START), loadordergroup is System Bus Extender, and removed bootflags. Change: As Requested. 2. Request: Implement bandwidth allocation for NPAR feature in BACS. Change: Add driver support for setting bandwidth allocation at runtime. Add bandwidth_min and bandwidth_max registry parameters. Impact: BCM57712 in NIC partitioning mode only. Version 6.2.2 (September 27, 2010) =================================== Fixes ----- Enhancements ------------ 1. Request: CQ50006 - Add OEM specific 4-part ID. Change: As Requested. Impact: None. 2. Request: (CQ49904, CQ49905) Support external copper PHYs on 57712 for some OEM designs. Change: Tweaked GPIO control and PHY type lookup in shared memory to accommodate 57712 structure. Impact: None. Version 6.2.1 (September 20, 2010) ================================== Fixes ----- 1. 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. Fix: Clear NIG latched attention during driver unload Impact: BCM84823 based boards 2. Problem: CQ49760 - Slow F6 installation on BCM84823 Cause: Not waiting until PHY has come out of reset. Cause: Poll on reset bit. Timeout after 1 second. Impact: BCM84823 based boards 3. Problem: BCM8726 was not reset during common init Cause: GPIO assert should have been swap due to board design Change: Assert reset through the swapped GPIO port Impact: BCM8726 based boards 4. Problem: CQ49803 - On systems that are PCIe hotplug capable, the bus driver child devices are displayed as removable devices in the "Safely remove hardware" dialog. These devices should not be listed in this dialog Cause: Bus driver did not clear the 'Removable' pci capability of its child devices. Fix: Clear the 'Removable' pci capability of bus driver's child devices. Impact: All previous versions 5. Problem: CQ49750 - Traffic was dropped by TOE receive, causing connection termination. Cause: Erroneous management of generic buffers when there is lack of buffers could lead to deadlock and long period of Xoff. Fix: Driver posts enough generic buffers so firmware will exit from Xoff. Impact: None. 6. Problem: CQ49775 - Zero network utilization observed during cool down stage in NTTTCP. Cause: Driver erroneously initializes TOE DHC shift on early stage of loading. Fix: Driver initializes TOE DHC shift on advanced stage of loading having more information about TOE memory parameters. Impact: Introduced in T6.0. 7. Problem: CQ49737 - eVBD:57711 SFP+: BSOD is seen while running stress test to SLB-AFD team, while running load/unload. Cause: Race between query of status block index while processing interrupt, and destruction of the driver data structure associated with the same status block index, resulted null pointer access. Fix: Fix driver logic to avoid the race. Impact: All driver versions. 8. Problem: CQ49299 - (FW L2) HW stuck after 8 hours of heavy LSO traffic. Cause: Firmware miscalculated SGL length of LSO packet with BDs larger than 64K, leading to erroneous HW command. Fix: Fix calculation. Impact: Exist in all previous releases. Enhancements ------------ 1. Request: Remove workaround added in T6.0 evbd for 57712, to move from IGU BC mode to IGU BCM57712 mode. (Since boot driver was enhanced to support BCM57712 mode) Change: As requested. Impact: Introduced in release T6.0. 57712 only. Version 6.2.0 (September 1, 2010) ================================= Fixes ----- 1. 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: Add BCM57712 device id's to INF. Change: As Requested. Impact: None. Version 6.0.60 (October 24, 2010) ================================ Fixes ----- 1. Problem: CQ50560 - Issues upgrading 57711 from T5.2 Gold to T6.0 Gold. Cause: Wrong initialization of FW RAM caused invalid address read/write which made the chip hang. Fix: Fixed wrong initialization. Impact: Introduced in eVBD 6.0.43 for 57711/57711E only. Version 6.0.59 (October 7, 2010) ================================ Fixes ----- 1. Problem: CQ50032 - BSOD when passing traffic on several iSCSI functions in parallel, while each of the functions has a different configured number of pending tasks. Cause: FW does not support this configuration. Fix: Workaround - Block user configuration of number of pending tasks. Use driver's default. Impact: All previous versions. Version 6.0.58 (September 16, 2010) =================================== Fixes ----- 1. Problem: CQ49760 - Slow F6 installation on BCM84823 Cause: Not waiting until PHY has come out of reset. Cause: Poll on reset bit. Timeout after 1 second. Impact: BCM84823 based boards 2. Problem: BCM8726 was not reset during common init Cause: GPIO assert should have been swap due to board design Change: Assert reset through the swapped GPIO port Impact: BCM8726 based boards Version 6.0.57 (September 13, 2010) ================================== Fixes ----- 1. Problem: CQ49795 - Link loss on port after multiple iterations of load-unload Cause: When link changes occurs, 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. Fix: Clear NIG latched attention during driver unload Impact: BCM84823 based boards Version 6.0.56 (September 7, 2010) ================================== Fixes ----- 1. Problem: (FW L2) LSO packets with Large buffer size might not be sent correctly to network. Cause: Miscalculation of number of MSS existing within a LSO packet with large buffer sizes. Fix: Fix calculation. Impact: Introduced in firmware 6.0.32. Version 6.0.55 (September 6, 2010) ================================== Fixes ----- 1. Problem: CQ49750 - Traffic was dropped by TOE receive, causing connection termination. Cause: Erroneous management of generic buffers when there is lack of buffers could lead to deadlock and long period of Xoff. Fix: Driver posts enough generic buffers so firmware will exit from Xoff. Impact: None. 2. Problem: CQ49775 - Zero network utilization observed during cool down stage in NTTTCP. Cause: Driver erroneously initializes TOE DHC shift on early stage of loading. Fix: Driver initializes TOE DHC shift on advanced stage of loading having more information about TOE memory parameters. Impact: Introduced in T6.0. 3. Problem: CQ49737 - eVBD:57711 SFP+: BSOD is seen while running stress test to SLB-AFD team, while running load/unload. Cause: Race between query of status block index while processing interrupt, and destruction of the driver data structure associated with the same status block index, resulted null pointer access. Fix: Fix driver logic to avoid the race. Impact: All driver versions. 4. Problem: CQ49299 - (FW L2) HW stuck after 8 hours of heavy LSO traffic. Cause: Firmware miscalculated SGL length of LSO packet with BDs larger than 64K, leading to erroneous HW command. Fix: Fix calculation. Impact: Exist in all previous releases. Version 6.0.54 (September 1, 2010) ================================== Fixes ----- 1. 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 Version 6.0.53 (Aug 30, 2010) ============================= Fixes ----- 1. Problem: CQ49638 - 57711 SFP+: Link down is observed while running chariot HPT stress and load/unload on eVBD. Cause: MDIO lock was not taken for IOCTL's which caused link loss upon condition race (after 2-3 hours). Change: Take MDIO lock when relevant for PHY access. Impact: Specific PHY's, Only when BACS is open and load/unload is in background + Introduced eVBD 6.0.24 Version 6.0.52 (Aug 25, 2010) ============================= Fixes ----- 1. Problem: CQ48837 - SOL/CKVM connectivity is lost after a BSOD. Cause: Invalid register reads during debugging information collection upon BSOD, caused the MCP and the MGMT FW to hang due to parity errors. Change: Disabled the parity error check in MCP upon debugging information collection during BSOD. Impact: Re fix to a fix submitted in 6.0.48, in order to remove the restrictions of the Bootcode version and the reduce register read during BSOD. 2. Problem: CQ49611 - Assert is seen while re-enabling NDIS in bacsCLI under resource reservations. Cause: Race between "CFC Delete Ramrod" of iSCSI connection and "Function Stop Ramrod", resulted the CFC DEL Ramrod to be erroneously executed after the Function Stop Ramrod and causing the FW to hang. Change: Fix driver logic to avoid the race. Impact: Introduced in release T6.0 3. Problem: (Theoretical bug only) when testing ISCSI with heavy traffic on all the ISCSI connections and also sending ISCSI packets that contains errors, eVBD asserts. Cause: The FW doesn't have room to write the error notification into the "event queue", because driver doesn't take it into account error notification events when allocating the "event queue". Change: When the driver allocates the event queue, the error notification events are taken into account. Impact: All driver versions (when iSCSI client active) Version 6.0.51 (Aug 24, 2010) ============================= Fixes ----- 1. Problem: CQ49516 CQ49493 - Revert back the S5 WOL functionality to always look at NVRAM magic packet WOL Setting (Refix) Cause: We changed to OOB state when WoL was disabled in NVRAM but in case WoL was enabled in NVRAM driver didn't configure the magic packet correctly. Change: In case WoL enabled in NVRAM, force driver to configure magic packet. If LAA/VMAC address exists use it otherwise use NVRAM address. Impact: Refix to a fix submitted in 6.0.49 2. Problem: CQ49598, CQ49565 - Assert is seen while applying changes (remove vlans) to LACP team. Cause: When RSS enabled is called after RSS disabled and CPU0 is handled by a status block (SB) that is greater than SB_X(X>0). SB_X interrupts won't be handled because an eVBD parameter is run over in that state. Change: Removed the run over of the parameter in that state. Impact: Introduced in release 6.0.48 Version 6.0.50 (Aug 19, 2010) ============================= Fixes ----- 1. Problem: CQ49535 - VMQ: BSOD while running BACS diagnostic test with active VMQs. Cause: Driver failed the Diag's queue group creation in VMQ mode. Change: Allow the Diag's queue group creation in VMQ mode. Impact: Introduced in release T6.0. 2. Problem: CQ49549,CQ49548 - BSOD when unplug the cable while passing iSCSI traffic and some of the ports are disabled. Cause: Driver writes to ISCSI OOO FW internal memory a parameter that is correct only for function 0. Change: Driver writes to ISCSI OOO FW internal memory a parameter that is right for all functions. Impact: Introduced in release T6.0. 3. 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 6.0.29 Enhancements ------------ 1. Request: CQ49516 CQ49493 - Revert back the S5 WOL functionality to always look at NVRAM magic packet WOL Setting Change: Request to revert back the S5 WOL functionality to look at the NVRAM setting instead of Power management check-box for wake up capability. The device MAC address at the time of shutdown should be the device used to wake the system from magic packet. This mac address can be Physical, LAA, BOFM, MF and/or NP assigned MAC address. Impact: T6.0 Version 6.0.49 (Aug 17, 2010) ============================= Fixes ----- 1. Problem: False Magic Packet machine Wake up in multi vnic mode. Cause: Any function MAC would wake the machine in case at least one of the functions was configured by the user to wake up the machine. Change: Write an appropriate value to a register that will cause only required functions to wake up the system. Impact: eVBD 6.0.46 (part of "Advertise WoL capabilities to functions>1 also in switch dependent mode" enhancement) 2. Problem: CQ49329 - NDISTest 6.5 vmqscalability test fails on 32 proc system. Cause: Wrong CPU affinity settings for VMQ's DPCs. Change: Fix CPU affinity settings for VMQ's DPCs. Impact: Introduced in release T6.0. 3. Problem: In INTA and RSS disabled when all eVBD clients were disabled and then enabled, only one CPU shows traffic(instead of all processors). Cause: An Evbd internal parameter was not initialized when the first eVBD clients was enabled. Change: Initialize the Evbd internal parameter when the first eVBD client is enabled. Impact: All driver versions. 4. Problem: In MSIX when evbd start with RSS disabled we will always work on CPU 0. (Instead of all processors). Cause: Initial RSS settings were run over. Change: Fix the run over of initial RSS settings. Impact: Newly introduced in T6.0. Version 6.0.48 (Aug 12, 2010) ============================= Fixes ----- 1. 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. 2. 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. 3. Problem: CQ46985 - Total throughput on 57711 10G NIC is 35-45% lower when hyper-threading is enabled and RSS set to auto. Cause: The problem here is that eVBD gets only one MSIX vector, in this state eVBD depends on static DPC affinity and can only work on processors 0-3. In hyper-threading windows sends in the RSS indirection table when hyper-threading is enabled only even real processors(processors 0,2,4 and 6).(This problem also exists in RSS version 2.) Change: Added DPC dynamic affinity. Impact: All driver versions. 4. Problem: CQ48837 - SOL/CKVM connectivity is lost after a BSOD. Cause: Invalid register reads during debugging information collection upon BSOD, caused the MCP and the MGMT FW to hang. Change: Reduce register read during BSOD. Impact: T6.0 Bootcode version should be used. 5. Problem: CQ48817 CQ49197 - S5 WOL does not work after Windows shutdown. Cause: Due to slight enhancement change in WOL requirements for T6.0 Code change caused S5 WOL to change the way it is configured So OS configuration for "Wake up the machine" were mistakenly ignored. Change: Consider OS configuration for S5 state. Impact: Newly introduced in T6.0 Enhancements ------------ 1. Request: CQ49275 - Remove BCM57712 device id's from INF. Change: As Requested. Impact: None. Version 6.0.47 (Aug 10, 2010) ============================= Fixes ----- 1. Problem: CQ49243 - Hyper-V: BSOD when running sockdie stress client on VM and sockdie stress server on host. Cause: Excessive driver's assertion on well known race condition between rejection of driver's data indication and zero byte request posting. Change: Modify assertion's condition to reflect real problem but not known condition. Impact: T5.2 Checked versions only. 2. 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: 6.0.0 3. 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: 6.0.46 4. Problem: CQ49244 - ABTS BA_ACC dropped due to F_CTL (LAST_SEQ bit) verification mismatch. Cause: Detecting a protocol violation in ABTS BA_ACC frame from target (target protocol violation). Fix: No need to verify LAST_SEQ bit in F_CTL field. Impact: T6.0/FCoE. Enhancements ------------ 1. Request: Changed ETS behavior when 100%-0% bandwidth allocation is received, from no ETS configuration to 99%-1% bandwidth allocation. Change: As Requested. Impact: FCoE only. Version 6.0.46 (Aug 5, 2010) ============================ Fixes ----- 1. Problem: BACS Led test failed for some boards when running in "diag mode". Cause: When running in "diag mode" phy needs to be initialized before led is toggled. Change: start/stop chip in LED IOCTL in case IOCTL was received while eVBD is in diag mode. 2. Problem: BACS Led test failed in case MAC loopback test ran before. Cause: When running in "diag mode" need to cancel loopback mode. Change: Cancel loopback mode before LED test. 3. Problem: 84823 PHY not showing correct Link LED's. Introduced in 6.0.22. Cause: Incorrectly setting LED Masks. Change: Eliminated offending branch in code. Impact: 84823 boards. 4. Problem: CQ49001 - WHQL vmqpnptest fails if vmqsharedmemory test is executed before it. Cause: Some fields in l2 client data structure were not properly initialized in case of VMQ LAH size of 0. Change: properly initialize all fields. Impact: VMQ only. Introduced in T6.0 5. Problem: CQ49004 - Dual Media: Switch show link on both media simultaneously. Cause: Not disabling TX on non-active port. Change: Disable TX on non-active port. Impact: Dual-Media boards. 6. Problem: CQ49086 CQ48975 - 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. Enhancements ------------ 1. Request: Advertise WoL capabilities to functions>1 also in switch dependent mode. Change: In switch dependent mode WoL capabilities were set always to none. now it is as same as func 0/1. Impact: Systems with WoL capabilities in switch dependent mode in MF mode. Version 6.0.44 (Aug 02, 2010) ============================= Fixes ----- 1. 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 2. Problem: CQ49142 - 57712: Disabling persistent target caused BSOD Cause: Invalid memory access to the neighbor state of an uploaded connection in NIC partitioning multifunction mode. Fix: Access the memory before the neighbor state is discarded Impact: Introduced in eVBD 6.0.41 3. Problem: CQ48837 - SOL/ckvm "not ready" after a BSOD Cause: As part of the bugcheck procedure eVBD halt all the storms. The halt cause BRB to get full that causes xoff to be sent and no more packets are received and then traffic stops and that's the reason for the loss of cKVM/SOL. Fix: Disable xoff at bugcheck. Impact: All driver versions. 4. Problem: CQ48308 - In bacs diag test, the LED does not function as expected, LED does not flash during test in some of the boards Cause: LED operation is different between the boards. Fix: Add a new IOCTL to eVBD for LED support that will be generic for all boards. this IOCTL should replace existing IOCTL in bxdiag so BMAPI call eVBD new IOCTL instead Impact: In order to use the IOCTL, a new BMAPI is needed. Enhancements ------------ 1. Request: CQ48997 CQ47847 - PNP Device ID's for removal from INF's prior to T6.0 RC. Change: As Requested. Impact: None. Version 6.0.43 (July 27, 2010) ============================== Fixes ----- 1. Problem: CQ48974 - NDISTest 6.5 vlansendrecv test failure when VMQ is enabled. Cause: WHQL ndistest sets the default queue group's filter with "vlan present" flag and specific vlan, but expects the device to accept traffic with any vlan. Change: In VMQ enabled mode, the driver will set the default queue group's filter options to accept any vlan. Impact: Introduced in eVBD 6.0.24. 2. Problem: CQ48816 - BSOD is seen while passing chariot traffic to 2 teams and load/unload on 4 functions. Cause: Evbd wrote to a wrong FW RAM offset in BCM57711/2. Change: Removed the wrong write in BCM57711/2. Impact: Introduced in release T6.0.12. 3. Problem: CQ48990 - First iteration of MAC loopback test intermittently fails while running BACS diagnostics. Cause: Potential race when driver change from operational link mode to diagnostics mode (loop back) might cause link down event after link is already changed to loopback mode. In this case, "loopback" link up state will be overridden by link down (old) event. This will cause failure of the loopback test. Change: In case of "old" link event - check if relevant and ignore it if not. Impact: All versions. Seems to be more probable in Dual Media design. 4. Problem: CQ49028 - 57711: Dual media: Nic links and pass traffic using the copper as default link instead of fiber. Cause: Wrong driver initialization of multi PHY selection parameter. Change: Fix initialization of multi PHY selection parameter. Impact: Introduced in release T6.0 Dual Media boards. Version 6.0.42 (July 22, 2010) ============================== Fixes ----- 1. Problem: CQ48945 - Dual media BACS, system hangs at Loopback-mac test. Cause: The PHY initialization did not account for the loopback cases in these designs and driver hit an assertion check. Change: Added code to accept loopback as the request medium for this media. Impact: Introduced in release T6.0 Dual Media design. 2. Problem: 57712 - Driver doesn't load after boot driver, with b.c. 6.0.24 and forward. Cause: Current boot driver works in IGU BC mode while driver and boot code expect IGU BCM57712 mode. Fix: Add workaround in driver to move from IGU BC mode to IGU BCM57712 mode, until boot driver supports BCM57712 mode as well. Impact: Introduced in release T6.0. 57712 only. 3. Problem: CQ48794 CQ48877 CQ48350 CQ48815 - BSOD or machine hangs after coming back from hibernate/sleep states. Cause: Previous fix of CQ46800 exposed bugs that when machine come back from sleep it doesn't wait for the first few DMAE commands to complete and send new commands without waiting for response. This behavior caused various unexpected errors from driver or OS. Fix: Turn off ignore DMAE commands flag as soon as machine wakes up. Impact: Introduced in eVBD 6.0.39 4. Problem: CQ48812 - BSOD with jumbo frames enabled and running chariot random I/O and bi-dir sockdie stress Cause: Race condition on tx/rx completion processing Fix: Fix synchronization for actions required both Tx and Rx completion’s processing Impact: All driver versions. 5. Problem: DPC watchdog or other phenomena might happen when machine is set to D3 due to BRB interrupts. Cause: In eVBD 6.0.30 some of the BRB interrupts were unmasked but handling these interrupts was not considered. In addition, while machine is going to D3, the BRB interrupts are not disabled so we might get a BRB attention which is ignored. Fix: Handle the BRB attention in case happen. mask the attention when machine is in D3. Impact: Introduced in eVBD 6.0.30 6. Problem: Link LED not functioning on 84823 on Dual Media board. Cause: Magjack did not match schematic. Change: Remapped LED1 and LED2 mask. Impact: Dual Media boards only. Enhancements ------------ 1. Request: CQ48871 CQ48868 CQ48865 - Add additional 57712 devices to INF. Change: As Requested. Impact: None. Version 6.0.41 (July 19, 2010) ============================== Fixes ----- 1. Problem: Traffic wasn’t received on offloaded connections in Hyper-V guests when in MAC-partitioning mode… Cause: Guest’s packets are dropped since its MAC address is not found in the NIG Fix: In MAC partitioning mode, keep MAC address of VM with offloaded connections in the NIG. Impact: Introduced in release T6.0. Number of guests with offloaded connections is limited to 14. 2. Problem: CQ48772 - BSOD after approximately 5 days of stress test (Applied fix from eVBD 5.2.24). Cause: A race in the code of statistics collection mechanism caused a mismatch between driver and firmware. This mismatch caused a firmware ASSERT that leaded to the BSOD. Fix: Fix the code and the potential race so there will be no possibility to the mismatch scenario. Impact: Introduced in T4.6. Very unlikely to happen. 3. Problem: CQ48770 - When working with rate-limiting in BCM57711/2 with jumbo frames, the rate is half of what configured. Cause: Firmware miscalculated the amount of bytes transmitted. Fix: Fixed the calculation. Impact: Introduced in firmware version 6.0.20 (eVBD 6.0.23). 4. Problem: (Theoretical bug only) link changes events ignored by driver after function unload in Multi function mode. Cause: Race between PMF migration indication and DCC update caused function to not handle PMF migration and as an outcome ignore future link changes. Fix: Fixed the potential race. Impact: Introduced in T5.0 when DCC is active and chip is configured to work in multi function mode. Theoretical bug only, very unlikely to happen. 5. Problem: CQ47858 related - grc timeout when eVBD loads after UNDI driver was loaded. Cause: NIG is reset while MCP might access it so grc timeout might occur. Fix: eVBD takes ownership of the chip towards MCP so no collision will occur. Impact: iSCSI boot flows. Introduced with combination of eVBD and boot code 6.0 versions. Enhancements ------------ 1. Request: CQ48834 - Change BCM57712 NP friendly name. Change: As requested. Impact: None. 2. Request: CQ48721 - Add event log message when BCM57712 cannot support 10G. Change: As requested. Impact: None. 3. Request: Add iSCSI HSI version number to allow the iSCSI miniport to verify that the VBD uses the same HSI version. Change: As requested. Impact: OIS 6.0.11.0 (released in Jul 4th) and above is compatible with this change, otherwise, iSCSI miniport will yellow bang. Version 6.0.40 (July 12, 2010) ============================== Fixes ----- 1. Problem: CQ48703 - BCM57712: configuring FC through CCM driver failed to stick. Cause: The NVRAM Flow Control settings were overridden by registry parameters. Fix: In NIC partitioning mode, the driver will set Flow Control settings according to NVRAM configuration alone. Impact: Introduced in release T6.0 2. Problem: CQ48728 - BCM57711: Dual media: link gets swapped when MTU is changed on a specific OEM board. Cause: Wrong driver logic when PHY indices are swapped, led to wrong PHY selection. Fix: Fix driver logic when initializing the PHYs parameters. Impact: Introduced in release T6.0 3. Problem: CQ48771: Nic links at the copper for hardware default phy selection instead of Fiber. Cause: Incorrect multi phy selection assignment when PHY swap is enabled. Fix: Fix PHY selection assignment when PHYs are swapped. Impact: Dual media board. 4. Problem: CQ48668 - BCM57712 : Unable to connect to iSCSI target in SF Mode. MAC address showed all "FFF" in window, on a specific OEM board. Cause: eVBD read ISCSI MAC address from a wrong place in this configuration. Fix: Read ISCSI MAC address form right place in this configuration. Impact: Introduced in release T6.0 5. Problem: (FW L2) 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. Fix: Fixed statistics ramrod (Firmware). Impact: Introduced in firmware 6.0.5. Version 6.0.39 (July 06, 2010) ============================== Fixes ----- 1. Problem: CQ46800 - System breaks and point to wdf01000.sys during reboot stress tests. Cause: During shutdown there where flows that cause unnecessary long waits. Fix: The unnecessary long waits where removed from these flows. Impact: Introduced in release T6.0.9. 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 every time the link is brought up. Change: Instead of storing the PHY order, we calculate it fresh every time. Impact: Dual-media boards. Enhancements ------------ 1. Request: Enforcement of matching iSCSI HSI version between miniport and VBD. Change: As requested. Impact: None. Version 6.0.38 (June 30, 2010) ============================== Fixes ----- 1. Problem: CQ48588 CQ48594 - Various BSOD's might happen while driver loading/running. Cause: Driver made redundant connection allocation that was not consistent with existing connection on chip. Fix: Change to correct default connection number (0). Impact: BCM57712 together with latest boot codes (6.0.23 and above) and specific license configurations. Version 6.0.37 (June 29, 2010) ============================== Fixes ----- 1. Problem: CQ48562 - Upgrading to evbd 6.0.36 driver cause BSOD (checked) or yellow banged (retail). Cause: In order to prevent corner case of array bound violation in the code, added ASSERT. The ASSERT was immoderate. Fix: Removed the ASSERT and still protect from bound violation. Impact: Introduced in eVBD 6.0.36 multi function mode only. 2. Problem: CQ48565 - BSOD in case of grc timeout. Cause: Grc timeouts notifications, caused by boot code or other modules caused ASSERT (BSOD). Fix: Removed the ASSERT and call it only in case grc timeout is consistent. Impact: All versions. 3. Problem: CQ48496 - BSOD occurred when host is rebooted. Cause: A work-item scheduled by eVBD didn't get served. A function was waiting for this work-item to complete, but apparently it was queued to a system work-item thread blocked by MPIO (MPIO occupied all the Delayed Work-Queue threads). There, it never got a chance to run. Fix: Used internal work-item mechanism (PsCreateSystemThread). Impact: Exists in all previous releases. 4. Problem: Potential and theoretical race accessing phy registers on BACS Transceiver Data IOCTL. Cause: The phy access during IOCTL was not protected. Fix: Protect the IOCTL with spin lock. Impact: New feature since version 6.0.24 Version 6.0.36 (June 28, 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. Fix: On NOC (No-OverCurrent) flavor, configure the GPIOs to reflect LED behavior rather than unnecessary over-current indication. Impact: BCM8727 based boards. 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. 3. Request: Product version string should be 16.0.0 Change: As requested. Impact: None. Version 6.0.35 (June 23, 2010) ============================== Fixes ----- 1. Problem: CQ48040 - BCM57711: iSCSI Boot F6 Installation of W2K3 x64 Fails Cause: Interrupts were masked in INTA mode later to the iSCSI Boot operation. Fix: Clear the Interrupt Disable bit from the PCI config space during driver load, if OS was loaded by iSCSI boot. Impact: Introduced in release T6.0 2. Problem: CQ48473 - Disabling the FCOE miniport and then enabling the FCOE miniport causes a the system to crash. Cause: eVBD internal parameter wasn't cleaned when FCOE miniport was disabled. Fix: Cleaning the eVBD internal parameter when FCOE miniport is disabled. Impact: Introduced in release T6.0.34 Enhancements ------------ 1. Request: Enhance evbd to be able to run on system that has more than 256 cpus. Change: As requested. Impact: None. Version 6.0.34 (June 21, 2010) ============================== Fixes ----- 1. Problem: Wrong "friendly name" and no speed enumeration in BCM57712T1203 inf entry. Cause: A Typo in .inf Fix: Fixed the typo. Impact: Introduced in 6.0.33. 2. Problem: CQ48387 Loss of network connectivity while running load/unload with team present. Cause: eVBD took the parameter for NumberOfInterruptMessages from a wrong place. Fix: Fixed the initialization of NumberOfInterruptMessages. Impact: Introduced in T6.0. 3. Problem: Link down when using specific DACs (Direct Attached Cables). Cause: Some DAC's EEPROM do not respond at 400Khz speed. Fix: Set 2-wire transfer rate of SFP+ module EEPROM to 100Khz. Impact: BCM8727 based boards. 4. Problem: CQ47047 57712 BSOD Upon resuming from S4. Cause: Page-able code was called when device leave a low-power state and returned to its working (D0) state. Fix: Removed page-able code from the flow of device leave a low-power state and returned to its working (D0) state. Impact: Introduced in T6.0. 5. Problem: CQ46128: In MF mode, running chariot traffic resulted in CHR0245 error messages on Tx/Rx ends. Cause: When MSIX is enabled and a RSS version 1 update is received CPUs were not spread between different functions. Fix: Spread the CPUs between different functions in this mode. Impact: Introduced in T6.0. 6. Problem: CQ48021 (FCoE) RESET_LUN operation failed due to error detection. Cause: Detecting a protocol violation in response frame from target (target protocol violation). Fix: Mask the error reporting. Impact: Exists in all previous FCoE releases. 7. Problem: CQ47854 FCoE 10% performance degradation. Cause: Read queue used by firmware did not have enough credits. Fix: Change the read queue used by firmware. Impact: Introduced in firmware 6.0.27 8. Problem: CQ48403 (FCoE) Target does not handle incoming FCP_DATA. Cause: Increasing SEQ_CNT is not supported by target. Fix: Reset the SEQ_CNT back to zero when transmitting new FCP_DATA frame. Impact: Exists in all previous FCoE releases. Enhancements ------------ 1. Request: Suppress enumeration of iSCSI PDO in .inf for specific boards. Change: As requested. Impact: None. 2. Request: Add counters for iSCSI out-of-order events. Change: As requested (counters can be read from RAM through GRC). Impact: None. Version 6.0.33 (June 14, 2010) ============================== Fixes ----- 1. Problem: CQ48322 - ASSERT (BSOD on checked build) on driver load. Cause: A Typo in .inf caused *SpeedDuplex string in registry to be empty, the invalid conversion from empty string to a number caused justified ASSERT. Fix: Fixed the typo (redundant comma). Impact: Problem introduced in eVBD 6.0.32 and relevant only for specific .inf entries (where there is no *SpeedDuplex enumeration). 2. Problem: CQ47278 - Failed to wake up on NP MAC Address on 1G connection after S5 Shut Down. Cause: Incorrect settings for S5 in WOL. Fix: Changed S5 WOL settings to comply with the requirements (send different message to MCP). Impact: All. 3. Problem: MAC address in BACS was showing same value as Permanent MAC address regardless the user configuration. Cause: MAC address was not updated correctly. Fix: Update the MAC address correctly. Impact: T6.0. 4. Problem: Effective MAC address for WOL was always the one in the NVRAM. Cause: requirements change. Fix: Effective MAC address for WOL is now the one in NVRAM OR the one configured by user if overridden. Impact: All. Version 6.0.32 (June 10, 2010) ============================== Fixes ----- 1. Problem: CQ47853 - Incorrect flow control counters reported by BACS when 10Gb NIC running @ 1Gb. Cause: Driver reads corresponding statistics from ReadClear HW register banks causing reset the registers. Fix: Extract statistics from ReadOnly HW registers banks. Impact: This issue is exposed to all driver versions. 2. Problem: CQ45501 - L2ND System Event Log Error Message When Running Diagnostics on Everest. Cause: EvtDevicePrepareHardware was not implemented in eVBD for PDOs. In Diag mode eVBD didn't reject EvtDevicePrepareHardware for other PDOs except diag. Fix: Implemented EvtDevicePrepareHardware in eVBD for PDOs and in diag mode eVBD didn't reject EvtDevicePrepareHardware for other PDOs except diag. Impact: This issue is exposed to all driver versions. 3. Problem: Fixed a potential bug in case device failed to load due insufficient resources. Cause: Wrong rollback handling. Fix: Fixed the rollback. Impact: T6.0 only. 4. Problem: Changed default speed settings for some boards. Cause: Wrong settings. Fix: Fixed to the correct settings. Impact: None. Enhancements ------------ 1. Request: Add specific support for BCM57712 Nic partitioning mode in inf. Change: As requested. Impact: None. Version 6.0.31 (June 07, 2010) ============================== Fixes ----- 1. 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 Fix: Enable MDIX when autoneg is disabled Impact: BCM84823 based board 2. Problem: CQ48124 - 57712: BSOD is seen while running ACPI S4 stress Cause: Wrong assert. Fix: Fix the wrong assert. Impact: Introduced in driver version 6.0.30 3. Problem: 57710 - Load/unload stress test could potentially cause a BSOD. Cause: Disable of device in the middle of MSIX message can cause a deadlock in HC block. Fix: Use PCI configuration space to avoid the deadlock. Impact: 57710 only. 3. Problem: In Mac-Partition mode, promiscuous mode would pass traffic of all functions. Cause: Promiscuous mode was treated as "accept-all" instead of "accept-all-unmatched". Fix: If promiscuous mode is set accept all unmatched. Impact: 57712 - Mac-partitioning mode. Enhancements ------------ 1. Request: Align TCP advertised window in iSCSI (4b alignment). Change: As requested. Impact: None. 2. Request: Mask FCoE protocol violations error detected by chip on some specific OEM targets. Change: Masking the specific checks. Impact: None. 3. Request: Change PXP Write block initialization values in 57712 to help reduce latency. Change: As requested. Impact: 57712 only. Version 6.0.30 (June 01, 2010) ============================== Fixes ----- 1. Problem: ISCSI is broken in Mac Partitioning Mode (multi function based on mac classification) Toe low performance in Mac Partitioning Mode. Cause: Mac addresses weren't written properly to NIG LLH. Fix: Write mac addresses correctly. Impact: Introduced in 6.0.20. 2. Problem: All BRB interrupts are masked. Cause: BRB interrupt mask is not initialized so reset value is used. Fix: Initialize interrupt mask so only parser read length errors are masked. Impact: In scenarios where BRB interrupts occur, indicate appropriate error information. 3. Problem: CQ46033, CQ45750 - 57712: Driver load fails during iSCSI Boot (NDIS and HBA path) Cause: iSCSI boot support in the driver for BCM57712 was not complete. Fix: Complete iSCSI boot support for BCM57712. Impact: BCM57712. 4. Problem: CQ47924 - iBoot-Wn2008-R2: iSCSI Boot via NDIS path fails with BSOD. when tagged VLAN is enabled. Cause: Changes in eVBD<->NDIS interface have been changed. Fix: iSCSI Boot info populated during L2 client binding. Impact: iSCSI Boot T6.0 only. 5. Problem: CQ47378 - Assert is seen when running sockdie stress on one port and loading drivers on second port. Cause: Expired NDIS miniport internal timeout of group's creation. Fix: Implement synchronous creation of group in evbd. Impact: Introduced in T6.0 6. Problem: CQ48073 - Assert is seen when using DriverInstaller, v14.2.2.3 repair\uninstall option. Cause: Race between destruction of queue group and initialization of a new queue group, when iterating the queue group list, caused null pointer access. Fix: Fix the queue group destruction and initialization flows to avoid the race. Impact: Introduced in T6.0 7. Problem: CQ46918 - (iSCSI FW) Network bursts are larger than the configured connection on OEM board. Cause: Inaccurate bytes calculation at rate shaping mechanism. Fix: Calculation was fixed. Impact: None. 8. Problem: CQ47623, CQ46388, CQ47225, CQ47833 - (iSCSI FW) System hangs during iSCSI stress traffic. Cause: Incorrect packet trimming lead to HW internal error. Fix: Fixed packet trimming on LB port. Impact: Introduced in firmware 6.0.11. Enhancements ------------ 1. Request: Forward setup ramrod should complete on event ring and not as a Tx consumer increment. Change: As requested. Impact: None. Version 6.0.29c (May 26, 2010) ============================== Enhancements ------------ 1. Request: CQ46209 - Suppress enumeration of FCoE PDO. Change: As requested. Impact: None. Version 6.0.29 (May 24, 2010) ============================= Fixes ----- 1. Problem: CQ47786 - Assert is seen while running sockdie stress on 1 port and load/unload on 2nd port Cause: Wrong cleanups made by the driver during error path of iSCSI client load, resulted invalid data access. Fix: Fix driver logic for iSCSI client load error path. Impact: Introduced in T6.0. 2. Problem: CQ47808 - Assert is seen while running continuous driver reset test. Cause: Driver waits for completion of work items only for last client's unbind. Fix: Add waiting for completion of work items in flow of non last client's unbind. Impact: All versions. 3. Problem: CQ47849 - VMQ: Assert is seen while running load/unload and passing traffic to several GOS Cause: Multiple client miniports tried to set MAC addresses at the same time, causing common resource to be overwritten. Fix: Use per client resource to hold MAC settings. Impact: Exists in previous releases. 4. Problem: CQ47898 - When the L2 class is lossy, the adapter pauses when the Pause is received for the L2 priority. Cause: Priority mask was initialized to the priority bitmap of the COS regardless if it was lossless or lossy. Fix: Priority mask shall be initialized to the priority bitmap of lossless priorities or to 0 if it is considered as lossy COS. Impact: Introduced in 6.0.19. Enhancements ------------ 1. Request: CQ47837 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. Version 6.0.28 (May 18, 2010) ============================= Fixes ----- 1. Problem: CQ47782 - Windows iSCSI offload: System BSOD when logging in to target (X64_0xD1_evbda!_um_tcp_ofld_tcp). Cause: Using TOE only relevant data in common flow, resulted null pointer access. Fix: Using TOE data under corresponding constrains. Impact: Introduced in 6.0.27. Enhancements ------------ 1. Request: Enable PFC statistics in MAC Change: As requested. Impact: None. 2. Request: Added debug bus capability to driver. Change: As requested. Impact: None. Version 6.0.27 (May 17, 2010) =============================== Fixes ----- 1. Problem: Link change after PMF migration may halt the system. Cause: PHY attributes are provided to the initial PMF only. Fix: Load PHY attributes for every new function regardless of being PMF or not. Impact: Multi-function mode. 2. 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. Fix: 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. 3. 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. Fix: Enable CL37 BCM autoneg instead of working in force 1G. Impact: BCM8073 based boards. 4. Problem: CQ47694: Running latest version of DCBXInfo causes system crash. Cause: The assert was caused because the IOCTL B10_IOC_GET_DCBX_PARAMS was called and DCB wasn't enabled in NVRAM, so MCP didn't support DCB(DCB enabled). Fix: Driver implementation has changed to return STATUS_UNSUCCESSFUL in case DCBX IOCTL are called and the driver or MCP are not supporting DCB. Impact: Introduced in Release T6.0.24. 5. Problem: CQ47771 - Memory leak during driver unload when TOE is disabled. Cause: TOE related resources were allocated without consideration of TOE status, and were not freed if TOE was disabled. Fix: Allocate TOE related resources only if TOE is enabled. Impact: Introduced in version 6.0.9 6. Problem: CQ45860 - Hyper-V: evbda!lm_tcp_comp_abortive_disconnect_request seen when running load/unload of physical adapter while network stress test on GOS. Cause: Assertion (according to design) on abortive disconnect completion during indication Fix: Introduce mechanism pending completion of abortive disconnect. Impact: Introduced in version T5.0 7. Problem: CQ46715 - VMQ: BDOS during NDISTest6.5 VMQScalability (X64_0x0_VRF_evbda!um_create_q_group_common) CQ45882 - VMQ: BSOD during NDISTest6.5 vmqtestingoids (X64_0x0_VRF_evbda!um_create_q_group+a9b) Cause: Dynamic CPU affinity change for VM queues was not complete. Fix: Fix dynamic CPU affinity change flows for VM queues. Impact: Introduced in version T6.0 8. Problem: CQ47716 Load/unload break : evbda!mm_rt_free_phys_mem+0xbd Cause: Mistakenly releasing physical memory under lock (on DISPATCH level) Fix: Release memory on PASSIVE level Impact: Introduced in version T6.0 9. Problem: CQ47674 - (FCOE) Chip hangs during destroy FCoE connection flow. Cause: FCoE reordering mechanism was corrupted during disable connection flow. Fix: Assure not to overrun relevant context for reordering operation. Impact: Exists in all previous T6.0 releases. 10. Problem: CQ47644 - (FCOE) Chip reporting an error instead of dropping the packet. Cause: Some errors were detected before verifying FCoE delimiters. Fix: Once an error detected, verify first the FCoE delimiters before reporting an error. Impact: Exists in all previous FCoE releases. 11. Problem: (iSCSI) Chip hangs during out-of-order traffic. Cause: Firmware internal synchronization issue between iSCSI and L2 flows. Fix: Firmware fix. Impact: Introduced in firmware 6.0.11. 12. Problem: Driver load on 57712 devices takes ~20 seconds on IA64 machines. Cause: init_pxp2_common performs ~6000 indirect register write operations, while there isn't any reason not to use direct (and much faster) ones. Fix: Change reg write operations to be direct. Impact: 57712 devices only. 13. Problem: CQ47472 - IA64, 57711E – When load/update eVBD, it gets yellow bang. Cause: Shared feature configuration SHARED_FEAT_CFG_FORCE_SF_MODE_SPIO4 wasn't handled in vbd. Fix: handle the option SHARED_FEAT_CFG_FORCE_SF_MODE_SPIO4 correctly in vbd. Impact: Introduced in version 6.0.20. Enhancements ------------ 1. Request: CQ47555 - Remove not supported portion of 2.5G link on BCM957711A1102G. Change: As requested. Impact: None. 2. Request: Add upload request to abortive disconnect completion. Change: As requested. Impact: None. 3. Request: Support DCB for Toe and Tcp (iSCSI not supported). Change: Set vlan priority and CoS according to DCB info in ram. Impact: None. Version 6.0.26 (May 10, 2010) =============================== Fixes ----- 1. Problem: CQ47518,CQ47504 - Changing the FCoE CoS value while the traffic was running caused the system crash. Cause: Assert in the eVBD because of illegal ETS parameters reception. When switch changes configuration in runtime it sends several packets that contain illegal configuration until the actual configuration is merged. Fix: The current solution is to change the assert to disable ETS when illegal ETS parameters are received. Impact: Introduced in Release T6.0.24 2. Problem: External phy firmware version is not available after driver is loaded Cause: External phy firmware is not re-loaded during driver load, only once during bootcode initialization stage Fix: Initialize external phys during once during common init stage Impact: 57711+8073/8726/8727 3. Problem: CQ47496 - 57711- AUT fails to continue CERTS Test "DPK WDK - Hot-Add - Device Test - verify driver support for Hot-Add CPU" Cause: Store-Port calls FindAdapter second time after STOP_DEVICE, instead of calling BXOIS with SRB_FUNCTION_PNP/StopStartDevice. Fix: Refusing IRP_MN_QUERY_STOP in eVBD PDO for BXOIS and BXFCOE child devices. Impact: Exists in all previous releases. 4. Problem: Dynamic Host-Coalescing functionality - interrupt rate is toggling too fast. Cause: Dynamic Host-Coalescing counters were summed between several status blocks, and not separately per status block. Fix: Firmware calculation was fixed. Impact: Introduced in T6.0. 5. Problem: CQ47609 -Link Level Pause causes link to pause after PFC has been negotiated. Cause: Wrong MAC registers configuration Change: Fix configuration Impact: BCM57712 only 6. Problem: CQ47544,CQ47629 - TOE memory allocation/free race condition. Cause: Non synchronized operations with memory TOE blocks Change: Fix synchronization Impact: T6.0 only. Introduced in version 6.0.23 Enhancements ------------ 1. Request: Remove redundant LCPLL setting which is done already in the bootcode. Change: As requested Impact: None. 2. Request: eVBD support for going to D3 while BXFCOE is still bounded. Change: As requested Impact: None. Version 6.0.25 (May 03, 2010) =============================== Fixes ----- 1. Problem: CQ47348 - On WS08SP2 evbd assert while running on a system with 48 core, when number of RSS chains is 16. Cause: Wrong handling of the indirection table when receiving processors numbers that are higher than 16. Fix: Fixed the handling for processor numbers that are higher than 16. Impact: Introduced in Release T6.0 2. Problem: CQ46978 - BSOD after some IOCTL's in IA64 systems. Cause: odd value of pointer casting is fatal in IA64. Fix: Consider the odd pointer in the code so BSOD won't happen. Impact: All version. IA64 systems only. 3. Problem: CQ47367 - BSOD while running iomonkey for iSCSI traffic. Cause: Incorrect parsing of FW data for functions higher than 0. Fix: Fix the parsing code. Impact: New feature since version 6.0.23. 4. 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 Fix: Initialize PLL once during common init Impact: 57712 5. Problem: CQ46495 - ETH connection loss or ping stops for too long when OS holds more than 80% of rx buffers Cause: Chip have no rx buffers (most of them are on OS) due to a high threshold, this cause xoff and as a result connectivity loss. Change: When going below a defined amount of rx buffers, indicate a packet as resource to the OS. Than packets will be returned immodestly to the chip. Impact: Problem observed in Windows Server 2003. 6. 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. Fix: The common handler considers it's thread Id when waiting for the context load response. Impact: Exists in all previous releases. 7. Problem: Firmware generates false data digest error on incoming PDU. Cause: Data digest arrived splitted into 3 packets. Fix: Firmware fix. Impact: Introduced in firmware 6.0.11. 8. Problem: (CQ46388,CQ46608,CQ46638) Chip hangs when running stress iSCSI traffic. Cause: iSCSI firmware caused connection activity-counter to drop to a negative value. Fix: Firmware fix. Impact: Introduced in firmware 6.0.11. Enhancements ------------ 1. Request: Added new fields to DCBX/LLDP IOCTL's. Change: As requested Impact: None. 2. Request: CQ47412 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. 3. Request: Enhance vbd/miniport interface with generic way of indicating events Change: As requested. Impact: T6.0 only. evbd 6.0.25 and forward supports only T6.0 client miniports released from 5/3/10 and forward. 4. Request: Changing PFC RX configuration . In RX COS0 will always be configured to lossy and COS1 to lossless. Change: As requested Impact: None. 5. Request: Scale the number of bd pages allocated according to number of RX descriptors. Change: As requested Impact: None. 6. Request: For VMQueue, support minimum look ahead buffer to be 14 bytes (with vlan removal set) and 18 bytes without it. Change: As requested. Impact: None. 7. Request: Improve accounting of bytes for rate shaping mechanism. Change: Added preamble and inter packet gap to bytes reported to rate shaping mechanism. Impact: None. Version 6.0.24 (April 26, 2010) =============================== Fixes ----- 1. Problem: CQ46327 - IOCTL for BACS Transceiver Data information fails with status invalid parameter. Cause: Wrong handling of input buffer. Fix: Fixed the input buffer handling. Impact: New feature since version 6.0.23 2. Problem: CQ47198 - Hyper-V:evbda!_lm_tcp_isle_get_free_list break during multi GOS L4 stress and Virtual team modification. Cause: Isles pool is not synchronized between FW and driver. Fix: Increase isles pool to prevent race conditions of the pool using. Impact: Introduced in Release T6.0 3. Problem: CQ47286 - device id's missing in .inf Cause: Id's wrongly mixed so the in IA64 .inf there was wrong combinations of device id's. Fix: Fixed the wrong id's. Impact: Introduced in eVBD 6.0.9 4. Problem: CQ47026 - 57711 fails NDISTest 6.5 powermanagement test Cause: Rx Buffers weren't reposted when returning to D0 due to client-state being inactive Fix: Don't treat client-state when re-posting buffers when returning to D0. Impact: Introduced in release T6.0 5. Problem: CQ46674 - Unexpected ungraceful reboot occurs while running "Dynamic Partitioning (DP) Simulator and Test - DP WDK - Hot Replace Device Test Verify Driver support for D3 power stat" Cause: eVBD didn't supported going to D3 while OIS is still bounded. Fix: eVBD supports going to D3 while OIS is still bounded. Impact: Introduced in evbd 6.0.0. 6. Problem: CQ47166 - 57712sfp+: System breaks @ X64_0x0_evbda!lm_get_packets_sent+288 while running disable\enable using devcon Cause: Status block index of forward chain was mistakenly cleared during unload of vbd. This was since clear-chains-sb-cons was called on RXQ chains which don't have a status block index anymore and aren't initialized properly. Fix: don't call clear-chains-sb-cons on rxq chains (they don't have a status block index, only txq + rcq) Impact: Introduced in release T6.0 7. Problem: On 57710/57711 Toe traffic can stop if a different function loaded after traffic has begun. Cause: Searcher "NIC mode" for the case that there is no offload is a common configuration in 57710/57711 and not per function as in 57712 Fix: Set nic-mode in common phase for 57710/57711 and not function phase Impact: Introduced in VBD version 6.0.23 affects 57710/57711 only. 8. Problem: Chip transmitting unwanted FCP_CONF frames. Cause: Incorrect update of the CONFQ TX producer. Fix: Reset the CONFQ TX producer at the beginning of transmission flow. Impact: Exists in all previous FCoE releases. 9. Problem: CQ47280 - Power Management Tab is grayed out, not allowing switch independent mode device to wake up from S4. Only the actual physical port allow the Power management tab to be check. Cause: It was limited hard coded to declare WOL support only for functions 0 and 1. Fix: Remove the hard coded limitation and support WOL for all functions for switch independent mode. Impact: Related to switch independent mode only (new feature for T6.0). Enhancements ------------ 1. 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. 2. Request: CQ46429 Move the *InterruptModeration parameter from the bus driver to the miniport Change: Phase 2 ("honor miniport request for InterruptModeration setting") is implemented. Impact: NDIS Miniport 6.0.8 or later must be used. 3. Request: Added ETS support. Change: As requested. Impact: None. 4. Request: Added ISCSI OOO support. Change: As requested. Impact: None. 5. Request: Improve TOE single connection performance (Rx path). Change: Adding “Dominant connection” feature and reducing firmware cycles count. Impact: None. Version 6.0.23 (April 19, 2010) =============================== Fixes ----- 1. 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 Fix: Initialize polarity swap correctly when enabled. Impact: BCM8073 based boards only 2. Problem: Link down when upgrading BCM84823 phy firmware to 2.24/2.25 Cause: Changes in the firmware initialization required setting different values. Fix: Set the require phy register to achieve link and led in all speeds. Impact: BCM84823 based boards. 3. Problem: FlowControl options should not be enumerated for certain devices Cause: Wrong INF settings. Fix: Fixed INF settings.. Impact: Introduced in evbd 6.0.19. 4. Problem: CQ47068 evbda!lm_gen_attn_everest_processing while running L4 GOS network stress + load/unload of physical adapter Cause: There was no reordering mechanism in the relevant firmware flows. Fix: Adding reordering. Impact: Introduced in firmware 6.0.12. 5. Problem: (FCOE) (CQ47126, CQ47129) Miss detection of fc-crc error. Cause: Firmware bug. Fix: Firmware fix. Impact: Introduced in firmware 6.0.6. 6. Problem: (iSCSI) Firmware generate false data digest on incoming PDU. Cause: First 4 data bytes arrived splitted into 3 packets. Fix: Firmware fix. Impact: Introduced in firmware 6.0.11. 7. Problem: BSOD During driver-unload. um_destroy_q_group caused assert in free-memory Cause: qgroup item memory was freed too late causing null pointer access Fix: Fix sequence of calls Impact: Introduced in Release T6.0 8. Problem: CQ047058: Link occasionally doesn't come up with 8073 based boards Cause: Insufficient delay during phy firmware load sequence Fix: Increase delay during phy firmware load sequence to 120ms Impact: BCM8073/BCM8727 Enhancements ------------ 1. Request: L2 Performance optimization (57710/57711/57712) Add support for Searcher "NIC mode" for the case that there is no offload. Change: As requested. Impact: None. 2. Request: CQ47227 - Add new BCM57712 device id's to the driver INF file. Change: As requested. Impact: None. 3. Request: CQ46327 - Add IOCTL for BACS Transceiver Data information. Change: As requested. Impact: None. 4. Request: CQ46465 - 577xx eVBD: complete new generic buffer allocation scheme for TOE Change: As requested. Impact: None. Version 6.0.22 (April 12, 2010) =============================== Fixes ----- 1. 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. Fix: When link speed is up in 10M/100M/1000M, set led control to 1G core. Impact: BCM84823/BCM8481 based boards. 2. Problem: CQ47040 - BSOD on division by zero. Cause: Non effective wrap around protection of statistics parameter using as divider. Fix: Fix protection of the parameter to prevent division by zero. Impact: This issue is exposed to all driver versions. 3. Problem: Total Throughput on W2k8 server is 35-45% lower, when Hyper-threading is enabled and number of processors is larger than 2. Cause: In RSS V1 (W2k8 server) the eVBD modulo the RSS indirection table to the number of RSS chains. In HT, windows sends in the RSS indirection table, when hyper-threading is enabled, only even processors that can be higher from the number of RSS chains. Fix: Remove modulo in this case. Impact: W2k8 server when Hyper-threading is enabled and number of processors is larger than 2. 4. Problem: CQ47021 - 57711E: Break when uninstalling NDIS driver (evbdx!l2_close_q_groups) Cause: Wrong driver logic, resulted null pointer access. Fix: Fix driver logic. Impact: Introduced in eVBD 6.0.20 5. Problem: (FW L2) DCB change during FLR might cause chip hang. Cause: Firmware skipped DCB update when encountered a PCI error. Fix: Firmware flow changed to first update DCB version and only then to proceed to handle PCI error. Impact: Introduced in firmware 6.0.15. 6. Problem: (FW TOE )(CQ46996) Chip hangs during TOE stress test. Cause: Illegal completion after joining TCP isle with FIN. Fix: Firmware fix. Impact: Introduced in firmware 6.0.6. 7. Problem: (FW FCoE) Chip hangs after trying to access inappropriate host memory address. Cause: Firmware instructed corrupted SGEs in PBF command due to corrupted Xstorm context. Fix: Save entire Xstorm context during disable connection procedure. Impact: Exists in all previous FCoE releases. 8. Problem: (FW 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. Fix: Save task context only after all verification has been completed. Impact: Introduced in firmware 5.3.7. 9. Problem: (FW iSCSI) Connection close does not complete. Cause: final ACK from target is discarded by firmware. Fix: Firmware fix. Impact: Introduced in firmware 6.0.11. 10. Problem: CQ47007 - eVBD error seen on system shutdown. Cause: Wrong unload sequence on 57712 in 2-port mode when cable isn't connected. Fix: Fix the unload sequence. Impact: Introduced in eVBD 6.0.19. Enhancements ------------ 1. Request: (FW FCoE) Reset the entire KCQE before start initializing it. Change: As requested. Impact: None. 2. Request: (FW FCoE) Change firmware assert to error notification to driver when receiving MP frame with unknown R_CTL.function mode. Change: As requested. Impact: None. Version 6.0.21 (April 6, 2010) =============================== Fixes ----- 1. Problem: In 57712 only in 2-port mode, eVBD asserts when there is only one eVBD client and he is toggled. Cause: False assert. Fix: Removed false assert. Impact: Introduced in Release T6.0.20, 57712 Only in 2-port mode. Enhancements ------------ 1. Request: CQ46816- Remove 1 Gb full speed setting from certain OEM IDs Change: As requested. Impact: None. Version 6.0.20 (April 04, 2010) =============================== Fixes ----- 1. 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. Fix: When speed capability doesn't include 10G, or force speed is not set to 10G, disable 10G advertisement Impact: BCM84823, BCM8481 2. Problem: CQ46542 57712CX4: Evbd: system breaks @ X64_0x0_evbda!lm_wait_state_change+15d while running disable\enable in MF mode Cause: IGU block wasn't cleanup properly during initialization Fix: Send proper cleanup command to IGU from the driver during chip-init Impact: Introduced in Release T6.0, 57712 Only 3. Problem: CQ46432 - BSOD on invalid MSI interrupt message. Cause: Access to non valid memory during processing invalid interrupt message. Fix: Validate interrupt message before accessing to corresponding memory blocks Impact: This issue is exposed to all driver versions. 4. Problem: Potential link issue with force 1G on 8073 Cause: Setting one of the registers in the force 1G sequence incorrectly Fix: Fix 1G force sequence Impact: 57712 + KR only 5. Problem: (L2 FW) Return credit in termination handler without executing DCB update. Cause: Firmware bug. Fix: Update DCB in the beginning of the terminate handler. Impact: Introduced in firmware 6.0.11. Enhancements ------------ 1. Request: DCBX CEE support in BCM57712 2-port mode. Change: As requested. Impact: None. 2. Request: Removed DCBX CEE support from BCM57711. Change: As requested. Impact: None. 3. Request: Support for Mac Partitioning Mode (multi function based on mac classification) Change: As requested. Impact: 57712 Only. Version 6.0.19 (March 29, 2010) =============================== Fixes ----- 1. Problem: FC behavior is changed so that setting FC to auto when speed is force has no influence on the flow-control Cause: Although this configuration is not so logic, many boards have their configuration build this way so need to restore this behavior Fix: Change back to old behavior Impact: Optic devices. Introduced in 6.0.17 2. 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 Fix: Set RX polarity on the XGXS side of the 8073 3. Problem: L5 mtu settings in registry were deleted upon vbd load Cause: At first it was planned to remove MTU registry value in iSCSI sub key from vbd registry in T6.0. Now the plan is to keep it untouched. Fix: Do not delete L5 mtu settings in registry upon vbd load Impact: Old T6.0 versions only. 4. Problem: CQ46543 - eVBD:57710: SUT crash while running load/unload on 1 port and passing sockdie L4 traffic on the 2nd port. Cause: Race between queue group destruction and DPC processing; wrong order of cleanups led to false indication of Tx completions. Fix: Fix order of cleanups during client unload. Impact: Introduced in eVBD 6.0.13 5. Problem: CQ46847 - 57712SFP+: System Encounters BSOD (0x19, Bad_PooL_Header) for evbda!um_util_free_resources+0x6d6 while Loading evbd driver CQ46812 - System BSOD during the installation of the ndis 5.2 drivers CQ46824 - System encounters pool corruption when installing NDIS5.2 6.0.10 with eVBD 6.0.18 Cause: Memory allocated for new client-init ramrod was nullified using a bad memory size, causing a memory corruption Fix: Nullify according to correct memory size Impact: Introduced in eVBD 6.0.17 6. Problem: (FW) Traffic after start traffic ramrod cause QM VOQ overflow attention. Cause: Wrong QM configuration. Fix: Configure QM properly. Impact: Introduced in firmware 6.0.15, BCM57712 only. 7. Problem: (L2 FW) Terminate ramrod called host coalescing on Tx segment. Cause: Wrong logic while sending host coalescing on Tx. Fix: The ramrod no longer send host coalescing. Impact: Introduced in firmware 6.0.3. 8. Problem: (L2 FW) Firmware asserted when RSC is disable. Cause: Wrong logic in the assert Conditions. Fix: The assert may occur only when RSC is enabled. Impact: Introduced in firmware 6.0.15. 9. Problem: (L2 FW) System crashed When VF reads client init data. Cause: Reading client init from VF memory and not from PF memory. Fix: VF read the client init from PF memory. Impact: Introduced in firmware 6.0.15. 10. Problem: (L2 FW) Pause on exhausted ring broken. Cause: Internal pause data structure was initialized improperly. Fix: Fix internal ram offset calculation. Impact: Introduced in firmware 6.0.15. 11. Problem: (FCoE FW) Timer expiration doesn’t read DCB info. Cause: DCB update is done only for transmission flows. Fix: Read DCB info for timer expiration. Impact: Introduced in firmware 6.0.15. 12. Problem: CQ46474 - NDIS:57710: Assert is seen while running load/unload on ndis with driver verifier. (bxnd60a!destroy_q_group) Cause: Driver flow of queue group destruction aborted Rx buffers one by one, causing assert in the client miniport for operation that did not complete in a timely manner. Fix: Driver flow of queue group destruction improved; abort all Rx buffers in one call. Impact: Introduced in Release T6.0 Enhancements ------------ 1. Request: Add PFC support for E2 on EMAC Change: As requested. Impact: BCM57712 2. Request: Support *FlowControl registry in VBD Change: As requested. Impact: None. Version 6.0.18 (March 23, 2010) =============================== Fixes ----- 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. Fix: Set the FC configuration on optic devices according to user settings. Impact: Optic devices. 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. Version 6.0.17 (March 23, 2010) =============================== Fixes ----- 1. Problem: BSOD on S4 power flows (going to D3). Cause: Block attentions of CSDM,PXP2,PXP,TSDM,USDM,XSDM were not masked correctly. Fix: Mask the block attentions correctly. Impact: Introduced in eVBD 6.0.11 2. Problem: CQ#46585 eVBD:57710: evbda!lm_get_packets_rcvd+374; Assert is seen while running sockdie L4 traffic while running load/unload on iSCSI adapter. Cause: unload of iSCSI adapter wrote to ethernet index in status block 0 by mistake, causing an assert in received_packets Fix: iSCSI does not need to write to status blocks of its l2 connection rxq Impact: Introduced in Release T6.0 3. Problem: CQ46443 - BSOD during uninstall of ndis driver - lm_get_packets_sent Cause: Wrong cleanup of FW status block index, during client unload caused false interrupts. Fix: Driver cleans up correct FW status block index. Impact: Introduced in Release T6.0 4. 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 Fix: Toggle GPIO1 from LOW to HIGH during common init Impact: 57112 + 8073 5. Problem: Driver mistakenly allowed link/flow control configuration via advanced properties page in partitioned nic mode Cause: Evbd did not block link/flow control configuration from miniport in partitioned nic mode Fix: Block link/flow control configuration from miniport in partitioned nic mode. Impact: Introduced in T6.0 drivers. 6. Problem: (L2 FW) 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. Fix: Unmasked the function id in searches in the cam in switch independent mode. Impact: Introduced in firmware 6.0.10, BCM57712 only. 7. Problem: (FCoE FW) (CQ46072) BSOD on Windows setups when running heavy traffic write operations. Cause: Inappropriate line credit calculation in transmission path. Fix: Firmware fix in line credit calculation. Impact: Introduced in firmware 6.0.10. 8. Problem: (iSCSI FW) Firmware might spin into infinite-loop when RQ is full. Cause: Priority of Sleep when fetching new RQ producer is too high. Fix: Reduce sleep priority. Impact: Introduced in firmware 6.0.11. Enhancements ------------ 1. Request: Support dual-media configuration with swapped phy configuration. Change: As requested. Impact: Dual media board. 2. Request: Split speed and duplex parameters into two media. Change: As requested. Impact: None. 3. Request: Support powering down the BCM84823 copper core when phy configuration is set to second_port. Change: As requested. Impact: BCM84823 dual-media. 4. Request: Add support for 4-port mode device Change: As requested. Impact: 57712 5. Request: Add defines for SFP+ EEPROM addresses to enable reading it through ioctl interface. Change: As requested. 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: (L2 FW) Increase L2 clients from 26 clients to 28 in order to support iSCSI Out of Order in multi function mode. Change: As requested. Impact: None. 8. Request: (L2 FW) Added client_init_ramrod_data struct, in order to decouple between driver and firmware client-related structures. Change: As requested. Impact: None. 9. Request: (L2 FW) Support changing COS and vlan priority updates according to DCB in L2 TX firmware. Change: As requested. Impact: None. 10. Request: (FCoE FW) Support stop traffic\start traffic flow control ramrods. Change: As requested. Impact: None. Version 6.0.16 (March 16, 2010) =============================== Fixes ----- 1. Problem: CQ46516 evbda!lm_locate_snd_next_info+1e0 break while running chariot with jumbo frames enabled. Cause: Wrong calculation of BDs number required to transmit unack buffer incoming on connection offload. Fix: Required BDs number is increased by whole SGL number of element. Impact: Introduced in release T6.0. 2. Problem: CQ46329 57711- Break "evbda!lm_get_packets_rcvd+1ff" When Running "Pnpdtest with Concurrent IO in parallel with DevPathExer" in W2K8 x64 R2 Cause: Q groups that weren't destroyed had client resources that weren't nullified properly during flow of d3_to_d0, this caused an interrupt to be received with an old consumer index which was larger than the new producer index causing an assert Fix: Initialize q-group clients resources before initializing chip and enabling interrupts Impact: Introduced in release T6.0. 3. Problem: CQ46577 - BSOD (evbda!l2_send_packets+5b6) is seen while passing sockdie L4 traffic to both ports Cause: Race condition between RSS update and TSS send request wrt indirection table content Fix: Avoid race condition Impact: Introduced in evbd 6.0.15. 4. Problem: CQ46443, 46543 - BSOD during uninstall of ndis driver - lm_get_packets_sent Cause: Driver did not complete Tx processing, before destroying a queue group, causing assert while getting completions for Tx operation when the packets descriptors were already aborted. Fix: Driver will complete Tx processing before destroying a queue group. Impact: Introduced in release T6.0. Version 6.0.15 (March 15, 2010) =============================== Fixes ----- 1. Problem: WHQL ndistest6.5 failures in test "packetfilters" when "Virtual Machine Queues" is set to enabled. Cause: Driver did not set the correct packet filter settings to the FW. Fix: Set the correct packet filter to the FW. Impact: Introduced in release T6.0. 2. 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. Fix: Firmware now use correct clock frequency for RT configuration. Impact: Relevant only to BCM57712. 3. Problem: "Pause on exhausted rings" functionality broken. Cause: Internal firmware variable was not set properly in RAM. Fix: Firmware now sets the missing internal variable at L2 client init phase. Impact: Introduced in firmware 6.0.2. 4. Problem: (CQ46506) firmware hanged (all threads in Ustorm sleep).(FCOE) Cause: Error handling was not processed correctly.. Fix: Firmware fix. Impact: Introduced in firmware 6.0.11. 5. Problem: (CQ46342) RX_ID not populated inside REC_ELS packet. (FCOE) Cause: Driver did not receive RX_ID during timer's error reporting. Fix: Firmware fix. Impact: Problem exist in all previous firmware releases. 6. Problem: (iSCSI) Data placement of non-aligned small size data (<4 bytes) caused false data-digest error. Cause: Internal firmware error. Fix: Firmware fix. Impact: Introduced in firmware 6.0.11. 7. Request: CQ46380 - Re-enable TSS to follow RSS indirection table (Follow up on CQ46009 against NDIS miniport) Change: As requested. Impact: T6.0 SW only. To be verified with NDIs miniport 6.0.9 or newer. 8. Problem: CQ45848 CQ46329 - Asserts in the driver during client load/unload test scenarios Cause: iSCSI / FCOE consumer value in the FW was not cleaned during client unload, causing false interrupts upon next client load. Fix: Driver will clean the iSCSI / FCOE consumer value in the FW during client unload. Impact: Introduced in release T6.0. Enhancements ------------- 1. Request: (iSCSI) Add TCP Out-Of-Order support in iSCSI Firmware. Change: As requested. Impact: None. Version 6.0.14 (March 11, 2010) =============================== Fixes ----- 1. Problem: CQ46475 - 57712:EVBD:W2K8 - WDF_VILOATION(10d) running acpi related test (suspend30.exe/DTM common scenario stress). Cause: Wrong driver logic caused unnecessary "Set MAC" ramrods to be sent to the FW, and not complete WDF request. in a timely manner. Fix: The driver will send only necessary "Set MAC" ramrods to the FW. Impact: Introduced in release T6.0. 2. Problem: CQ46125 - 57712:EVBD:W2K8R2x64 - running Chariot IPv4/IPv6 Stress on Function0+1 while Devcon_load_unload on all other functions causes assert. Cause: under a stressed system, it could take a work-item a long time until it starts running, the function that waited for all work-items to complete didn't wait long enough. Fix: Increased timeout. Impact: Debug versions only. 3. Problem: CQ45948 - 57712: Windows iSCSI Offload: W2K8R2: only certain iSCSI device could pass traffic in MF mode. Cause: qzone-id wasn't initialized properly in multi-function mode for iSCSI / FCoE. Fix: Initialize qzone-id properly. Impact: Introduced in release T6.0. 57712 only, iSCSI/FCoE only. 4. Problem: CQ46491 - 57712, SF, ETH: Configuring NIC Properties Results in Possible Memory Leakage. Cause: Allocated driver memory - TOE generic buffers, were not freed on driver unload, if other client miniports were bounded. Fix: Free all driver resources upon driver unload. Impact: Introduced in release T6.0. 5. Problem: CQ45947 - BSOD Occurs When Performing iSCSI Boot DVD Installation while lldp/ncsi traffic. Cause: A grc timeout was caused due to nig access from boot code while it is in reset Fix: This specific grc timeout cause won't cause a BSOD anymore and driver will recover. Impact: While lldp/ncsi traffic exists in D3 flows and or iSCSI BOOT. Version 6.0.13 (March 9, 2010) ============================== Fixes ----- 1. Problem: Sub-optimal throughput in L4 (TOE) Tx tests with small I/O sizes. Cause: Interrupt rate setting was too low for such tests. Fix: Increase interrupt rate setting for L4 Tx. Impact: None. 2. Problem: CQ45947 - evbd BSOD Occurs When Performing iSCSI Boot DVD Installation. Cause: UNDI driver was running on function 0 wasn't running on function 1. VBD reset the chip after it announced to the MCP to take ownership of the hardware. this reset caused grc timeout since there was lldp traffic managed by MCP. Fix: Fix VBD UNDI flow that in case ownership was given to MCP don't reset the chip afterwards. Impact: Might be exposed while VBD "cleans" after UNDI (iSCSI boot) and there is traffic on chip after this cleaning (e.g. management traffic). 3. Problem: CQ46322/46405 - There is a discrepancy between evbd.inf and ndis.inf w.r.t mapping of SSID to advanced properties. Cause: Incorrect assignment in evbd.inf of the last device id's added. Fix: Fixed the error in the .inf file. Impact: Introduced in eVBD 6.0.10. 4. Problem: Potential link issue with BCM8727. Cause: In BCM8727, the firmware in second port must be loaded before. the first port. Fix: Download the second port to 8727 first during initialization. Impact: 57712 only and SFP+ only. 5. Problem: CQ46456 - eVBD:57710: BSOD is seen during load/unload on eVBD with driver verifier turned on. Cause: Allocated driver memory was not freed on driver unload. Fix: Free all driver resources upon driver unload. Impact: Introduced in release T6.0. 6. Problem: CQ45896 - 57712:ETH:W2K8R2 - Enable Multifunction mode results in assertion during windows boot. Cause: Wrong driver logic in queue affinity assignment when the driver was granted for only one MSIX message. Fix: The driver won't change the queues affinity if only one MSIX message is used. Impact: Introduced in release T6.0. 7. Problem: CQ46119 - 57712:EVBD:W2K8SP2x86 - Assert while running sequential Devcon_Load_Unload (vbd+ndis) test against 2 E2 multifunction devices. Cause: Amount of allocated generic buffers for TOE in multifunction mode was more than required. Fix: Reduce generic buffer allocation for TOE. Impact: Introduced in release T6.0. 8. Problem: CQ 46240: 57710 Assert is seen while passing sockdie traffic to 1st port and running load/unload on 2nd port CQ 45790: 57711 Assert is seen on eVBD driver while running load/unload on 1 port and passing sockdie traffic to a 5708 LOM CQ 46443: BSOD during the uninstall of ndis driver. Cause: Problematic initialization sequence of status blocks caused several issues: Unexpected completion is received during forward connection establishment. Forward connection establishment does not generate an interrupt. Function start completion does not generate an interrupt. Fix: Firmware now checks for function enable before updating the status block. Impact: Introduced in release T6.0, relevant to 57710/11 only. 9. 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. Fix: Fixed confirmation request verification. Impact: Problem exists in all previous FCoE versions. Enhancements: ------------- 1. Request: Move the *InterruptModeration parameter from the bus driver to the miniport. Change: Phase 1: Remove *InterruptModeration parameter from evbd registry, to avoid conflict with miniport registry. Impact: T6.0 drivers only. Phase 2 ("honor miniport request for InterruptModeration setting") is yet to be implemented. Until phase 2 is implemented, the option InterruptModeration in the advanced properties page has no effect, InterruptModeration is always on. Version 6.0.12 (March 4, 2010) ================================ Fixes ----- 1. 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. Fix: Set the appropriate flag for the 84823 which enforce XGXS initialization before external link is up. Impact: BCM84823(copper). 2. 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. Fix: Send this command only to bootcode which support it. Impact: SFP+ only. 3. Problem: Driver crash during power state transition. Cause: During processing of reset flow driver does not wait for real disabling of timers. Fix: Fixed relevant flow (function reset) to comply with new BCM57712 hardware. Impact: BCM57712 S5/S4/S3 and back to S0 from sleep flows. 4. Problem: Various BSOD while iSCSI boot flow is running - CQ46109, CQ46158, CQ45939, CQ45750, CQ45751. Cause: In 57712 dual port mode, reset device if undi is active was not handled correctly. Fix: Fix the flow to reset the chip - once for each path. Impact: iSCSI boot flow on BCM57712 dual port mode only. 5. Problem: Problems with load/unload ndis driver while iSCSI / FCoE miniport is up CQ45893, CQ45676, CQ45712, CQ46222. Cause: The leading connection always had to be up for iSCSI / FCoE even if ndis wasn't up, but the buffers of the connection had to be released when ndis unbounded, there wasn't a way to notify FW about this issue, this caused assertions in the next ndis bind. Fix: Changed driver to work with enhanced FW API of function start/stop ramrods (detailed in enhancements). Impact: Problem introduced in release T6.0, multi-client environment only. 6. Problem: CQ46303 - BSOD/yellow banged (retail) in case no rss (2 CPU's) or INTA mode Cause: Missing implementation of this case. Fix: Fixed missing part. Impact: Problem introduced in release T6.0. Enhancements: ------------- 1. Request: Add function start/stop ramrods, to clarify HSI and enable better multi-client support on Windows driver. Change: - Adding support for function init. Function start, function stop, cfc delete, set mac and stat query ramrods complete on event ring. - Removed leading connection concept. - Added new configuration flags to client setup ramrods. Impact: None. Version 6.0.11 (March 1st, 2010) ================================ Fixes ----- 1. Problem: CQ46160 - System get blue screen while installing T6.0 drivers for Winxp32. Cause: VBD did not fill VBD-Client bind information structures properly on WinXP 32bit. Fix: Fill VBD-Client bind information structures properly. Impact: Problem introduced in release T6.0. 2. Problem: BCM57712 Intermittently Encounters BSOD when Placing into S4 Sleep State. Similar to old CQ38495. also includes various CQ: 46202,46189,46123,46053,45805,46165,46107,46124. Cause: When "Allow the computer to turn off this device to save power." check box on Power Management tab was checked, OS didn't unbind the VBD, and therefore structures and flows was not closed gracefully. Fix: Fixed relevant flow (blocks attentions) to comply with new BCM57712 hardware. Impact: BCM57712 S4 flows. 3. Problem: BCM57712 Intermittently Encounters BSOD when placing into S3/S4/S5 Power State and back from S3/S4 Includes various CQ: 46189,46165,46124,46107,45805 Cause: VBD processing of reset flow on path 1 may mistakenly reset path 0 Fix: Fixed relevant flow (common reset) to comply with new BCM57712 hardware. Impact: BCM57712 S5/S4/S3 and back to S0 from sleep flows 4. Problem: Error statistics weren't counted correctly. Cause: The fw statistics address was miscalculated. Fix: Fixed address calculation. Impact: Introduced in firmware 6.0.3 (eVBD 6.0.3) 5. Problem: iSCSI firmware broken. Cause: TCP layer interface was changed. Fix: Applied new TCP interface to iSCSI firmware. Impact: Introduced in firmware 6.0.4 (eVBD 6.0.4). 6. Problem: Cannot run FCoE offload traffic on port 1. Cause: PBF address was not set properly during offload procedure. Fix: Fixed address. Impact: Introduced in firmware 6.0.10 (eVBD 6.0.10). Enhancements: ------------- 1. Request: VMQ Enhancement: Support more than one queue filter per queue group. Change: As Requested. Impact: None. 2. Request: CQ46112 - Add additional 57712 devices to INF. Change: As Requested. Impact: None. Version 6.0.10 (22 February, 2010) ================================== Fixes ----- 1. Problem: CQ45424 - eVBD:57710 57711: Assert is seen on the eVBD while trying to create a SLB team (evbda!l2_set_information_ex+1ab) Cause: VBD did not support more than one "set information" requests from the client miniports. Fix: Fix VBD to support more than one request from the client. Impact: Problem introduced in release T6.0. Enhancements: ------------- 1. Request: Change friendly name of certain BRCM57712 device IDs in INF. Change: As Requested. Impact: None. Version 6.0.9 (16 February, 2010) ================================ Fixes ----- 1. Problem: BCM8073 second port doesn't link up Cause: BCM8073 second port was left in low-power mode Fix: Set the appropriate GPIO setting to take each port out of low power mode Impact: 57712 only and KR 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. Fix: offset was generated for slow path sync line index. Impact: Relevant to BCM57712 only. 3. Problem: Terminate handler will not complete. Cause: Race between timer expiration and terminate handler invocation. Fix: Fixed by firmware. Impact: None. 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. Fix: Remove some of the HW buffer uses. Impact: Problem introduced in firmware 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. Fix: Remove the use of timers command, instead use aggregated interrupts. Impact: Problem introduced in firmware 5.3.19. Relevant only to BCM57710/BCM57711. 6. Problem: CQ45347 - High NPP usage on Win 7 with 1K TOE connections (or more) in Chimney Automatic mode. Cause: On each connection offload the driver allocates some auxiliary memory proportionally the connection's receive window size. In Chimney automatic mode the OS sets the receive window size is 16MB, compared to only 64KB on all other modes/Oss. Thus, on Win 7 in Chimney automatic mode, the driver wrongly allocates ~450KB excessive memory per connection, compared to the 64KB receive window case. Fix: To limit memory allocation per connection. Impact: Introduced in version T5.0 7. 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. Fix: Always load the first phy port's firmware Impact: 57712 only and KR only Enhancements ------------ 1. Request: Add addition 57712 devices to INF. Change: As Requested. Impact: None. 2. Request: Added per-path licensing support. Change: Support BCM57712 address scheme. Impact: Relevant to BCM57712 only. 3. Request: Constant pause avoidance. Change: 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: Relevant to BCM57711/BCM57711E/BCM57712 only. 4. Request: VMQ modification: search Tstorm CAM also for MAC+VLAN pair. Change: As requested. Impact: None. 5. Request: VMQ modification: allow BD buffer size in VMQ mode to be any size larger then 26 (instead of 60 today). Change: As requested. Impact: None. 6. Request: Add support for maintaining multiple TCP isles in TOE. Change: As requested. Impact: Due to TCP layer changes, iSCSI is currently not functional. Version 6.0.8 (8 February, 2010) ================================ Fixes ----- 1. Problem: 57712 MF does not work Cause: Wrong calculation CAM offsets in MF mode for 57712_ASIC Fix: Calculate CAM offsets for 57712 ASIC Impact: 57712 ASIC only 2. Problem: (CQ45648) driver asserts while trying to unload/load iSCSI/FCoE (57712 only). Cause: internal FW resources were not cleaned properly by driver upon unload. Fix: offset was generated for slow path sync line index. Impact: Introduced in firmware 5.3.20. 3. Problem: System crash when RSC is enabled per function, but disabled per queue. Cause: Bug in ASM code. Fix: Fixed ASM code. Impact: Introduced in firmware 5.0.7. 4. 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. Fix: Initialize port0 of both paths of BCM8073 during common init Impact: 57712 only and KR only 5. Problem: Driver unload of all functions in multi function mode resulted in BSOD Cause: There was an attempt to access the dmae when master_enable was off. Fix: Make sure that master_enable is set to 0 only after all dmae transactions are complete Impact: 57712 only Enhancements ------------ 1. Request: Minimize DMA transaction to improve PCIE latency. Change: Reduce DMA in packet placement to be done in single DMA instead of two. Impact: None. 2. Request: Added per-path licensing support for E2. Change: Support 57712 address scheme. Impact: None. Version 6.0.7 (1 February, 2010) ================================ Fixes ----- 1. Problem: CQ45625: evbda!lm_vf_pf_channel_wait_response assertion Cause: Wrong detection of virtual function Fix: Detection of virtual function is fixed Impact: Introduced in T6.0 SW for 57710 only 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 Fix: Use different registers to mark the beginning of the shared memory per path. Impact: 57712 only and SFP+ 3. Problem: CQ45608: assert in the driver when rebooting W2k8R2 server Cause: Wrong driver logic when choosing transmit queue and TSS is disabled. Fix: Fixed driver logic. Impact: Problem introduced in release T6.0. Version 6.0.6 (28 January, 2010) =============================== Fixes ----- 1. Problem: low dual port l2 rx performance Cause: un-aligned dma transactions Fix: enable pxp2 capability for dma alignment Impact: 57712 only 2. Problem: sub optimal l2 rx performance Cause: un-aligned placement of headers Fix: fixed configuration for aligned headers placement Impact: Introduced in T6.0 SW 3. Problem: 57712 occasionally bsod on advanced property setting Cause: There is an occasional parity error in the rom mcp, the driver caused a bsod when this was found. Fix: On retail driver, do not treat scratchpad parity as fatal Impact: 57712 only Version 6.0.5(27 January, 2010) =============================== Fixes ----- 1. Problem: 57712 occasionally bsod on advanced property setting Cause: There is an occasional parity error in the scratchpad, the driver caused a bsod when this was found. Fix: The driver doesn't treat scratchpad parity as fatal Impact: 57712 only 2. Problem: Checked VBD version didn't load on 57712 Cause: The default msi-x configuration had too many msi-x vectors allocated per pf, the driver did not handle this well. Fix: The driver uses only the resources it needs. Impact: 57712 only Version 6.0.4(26 January, 2010) =============================== Fixes ----- 1. Problem: 57712 link is not up Cause: There's difference in AER strapping between 57711 and 57712 Fix: Set the XGXS AER to the appropriate value according to the new XGXS model Impact: 57712 only 2. Problem: possible spurious interrupt could occur at a second driver load Cause: Interrupt block wasn't initialized properly by the driver due to internal driver counters not being set properly in the flow. Fix: set internal driver counters at the correct place in the flow (before chip-init) Impact: 57712 only Version 6.0.3(25 January, 2010) =============================== Fixes ----- 1. Problem: CQ45453 Assert in the driver while running BacsCLI script Cause: Wrong driver logic caused multiple TOE RSS chains to be created with invalid chain indices, in scenario that only chain was supposed to be created. Fix: Fix wrong driver logic. Impact: Problem introduced in release T6.0. 2. Problem: (FCOE FW)(CQ44937) Data corruption after forcing FC-CRC error. Cause: Fault when detecting CRC error on FCoE data placement. Fix: Firmware fix - Send additional 64 DMA write commands in order to circumvent the error. Impact: None. Enhancements ------------ 1. Request: Add devices to INF including 57712 with correct ssid. Change: As Requested. Impact: None. Version 6.0.2(18 January, 2010) =============================== Fixes ----- 1. Problem: (iSCSI FW) Unexpected chip behavior when padding is splitted into 2 or 3 parts. Cause: Firmware bug when aligning split padding. Fix: Firmware was fixed. Impact: Problem exists in all previous releases. 2. Problem: (iSCSI FW) False data digest error when data digest is splitted into 3 parts. Cause: Firmware bug when aligning split digest. Fix: Firmware was fixed. Impact: Problem exists in all previous releases. 3. Problem: (FCoE FW) (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. Fix: 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. 4. Problem: (FCoE FW) 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. Fix: Add designated counter for number of active functions. Impact: Problem in BCM57712 only. 5. Problem: (iSCSI FW) OIS Assert occurred after attempting to login to iSCSI target. Cause: Firmware bug. Fix: Firmware was fixed. Impact: Problem exists only in release T6.0. Enhancements ------------ 1. Request: Add ability to control BCM8073 PN polarity swap through nvm configuration Change: As requested. Impact: None. 2. Request: Use GPIO3 to take BCM84823 phy out of reset Change: As requested. Impact: None. 3. Request: Initial Support for iSCSI client using Version6 VBD-Client interface Change: As requested. Impact: None. 4. Request: (FW Enhancement) Improve performance of new HC code. Cut the storm utilization by 50%. Change: As requested. Impact: None. 5. Request: Add support for Qzone IDs, enabling management of VF ram sections for ETH RX producers and dynamic HC counters. Change: As requested. Impact: None. Version 6.0.1(12 January, 2010) =============================== Fixes ----- 1. Problem: PFC packets were not received. Cause: PFC BMAC configuration at run time was done only when the link went down. Fix: Update the BMAC regardless of if the link went down. Impact: Issue introduced in driver version 5.3.14 No exposure in previous releases. 2. Problem: PFC packet were sent with PFC configuration from port1 regardless of if the real port is port0 or port1. Cause: The driver read the configuration statically from port1. Fix: Fix the bug. Impact: Issue introduced in driver version 5.3.14 No exposure in previous releases. 3. Problem: CQ45237 - Assert in the driver when changing "Jumbo Packet" settings Cause: Wrong access to uninitialized member when BACS initiated IOCTL request and the NDIS miniport was not bounded. Fix: Fixed the wrong access. Impact: None. 4. Problem: Assert in the driver upon load for insufficient resources Cause: The driver allocated 16 MSIX messages per CPU, to allow full flexibility of VM queue group affinity. Fix: The driver will allocate 1 MSIX message per CPU. Impact: Current release will fail WLK1.5 VMQ basic verification and scalability tests. Version 6.0.0(4 January, 2010) ============================== Fixes ----- Enhancements ------------ 1. Request: Bug check driver dump was change to support paths. Change: As requested. Impact: None. 2. Request: DCBX CEE support in 57711. Change: As requested. Impact: None. 3. Request: Initial VMQ support in 5771x. Change: As requested. Impact: The VBD supports only client miniports of version 6 and above. Version 5.3.14(24 December, 2009) ================================== Fixes ----- 1. Problem: Assertion on FCOE miniport disable/enable. Cause: Indexes supporting FCOE functionality is not cleared on miniport's unbind. Fix: In new host coalescing mechanism driver must fully clear all indexes. Impact: Issue introduced in driver version 5.3.13 No exposure in previous releases. 2. Problem: New host coalescing showed bad latency results in latte tests. Cause: Firmware internal timer was not set to the appropriate resolution. Fix: Setting new init value for this timer. Impact: Problem introduced in Driver 5.3.13 3. 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. Fix: Checking if received the amount of data when receiving this format of FCP_RSP. Impact: None. 4. 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. Fix: on detection of packet with invalid CRC, task cached context isn't write back to memory. Impact: None. 5. Problem: (iSCSI) Chip hangs when running iSCSI read traffic. Cause: Miscalculation of HW commands when SGEs are not 64-bytes aligned. Fix: Fixing FW calculation of SGE alignment and fields in HW command. Impact: None. Enhancements ------------ 1. 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. Impact: None. 2. Request: (iSCSI) Add FLR support for iSCSI option2. Change: When there's PCI read error, orderly terminate the handler after returning all activity counters. Impact: None. Version 5.3.13(21 December, 2009) ================================== Fixes ----- 1. Problem: RSS update completion not reproduced to NDIS miniport. Cause: Wrong handling of DPC, in special cases of TOE RSS update. Fix: Complete TOE RSS update without optimization. Impact: Issue introduced in driver version 5.2.11 No exposure in previous releases. 2. Problem: The driver doesn't have specified processors MSI-X vectors, for processors above 16. Cause: The driver allocates MSI-X vectors for processors above 16 as all processors, instead of specified processors. Fix: The driver allocates MSI-X vectors for processors above 16 as specified processors. Impact: Issue introduced in driver version 5.2.9. No exposure in previous releases. 3. Problem: Dips in ISCSI throughput. Cause: Gap between the constant back-to-back DPC was called too frequently and on SB that supported all processors. Fix: Fix the problem. Impact: Issue introduced in driver version 5.2.11. No exposure in previous releases. 4. Problem: GRC-timeout when running on 57712 Emulation 4-domain compile Cause: Driver accidently accessed non-existing EMAC Fix: Remove access to EMAC register in case of emulation Impact: None 5. Problem: In dual-media, only the SFP+ module on the first phy is checked Cause: Insufficient support in SFP+ module checking Fix: 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 6. Problem: CQ44858 - Performing Windows Applications against 57711 Results in Non-responsive when Bergstrom Switch is Present. Cause: In RSS version 2 a wrong chain for transmission, was chosen when miniport gave lower CPUs than base CPU. Fix: Handled this case correctly. Impact: Issue introduced in driver version 5.2.5. No exposure in previous releases. Enhancements ------------ 1. 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. 2. Request: New host coalescing code, featuring: 1. Single status blocks structure (no more segments). 2. Up to 136 status blocks in E2 (and 32 in E1/E1h). 3. Zero-based status blocks numbering (global per-path indexing). 4. Configurable way to allocate status blocks to IGU indices and to allocate status blocks indices to state machines. 5. Both IGU modes (BC and NBC). 6. Improved and simpler firmware interface. Change: As requested. Host coalescing firmware&driver was completely re-written. Impact: None. Version 5.3.12(8 December, 2009) ================================== 1. Problem: CQ44516 :Assert occurred while disabling eVBD when passing sockdie L4 traffic to SLB team on 57710. Cause: ISCSI L2 client unbind, takes more time than max time expected by VBD. There are 8000 TOE offload connection uploading while the ISCSI L2 client is unbinding and sending ramrods toward chip, all these connections share the same ramrod priority with ISCSI L2 client. This causes ISCSI L2 client ramrods to take more time than expected by VBD. Fix: L2 client unbind ramrods get a higher ramrod priority, than TOE offload connection uploading ramrods. Impact: None. 2. Problem: CQ43175 - On W7 sluggishness is seen when passing Rx traffic against one port of Everest if RSS is enabled. Cause: Sluggishness is caused due to numerous of DPCs running back-to-back without no gap for a long duration. Fix: Add a gap between the back-to-back DPC. Impact: None 3. Problem: (CQ44171) Data validation failed during TOE stress test. Cause: False push timer expiration caused empty pre-posted buffer to be skipped. Fix: Fix in firmware. Impact: Regression introduced in firmware version 5.3.12. No exposure in previous releases. 4. Problem: 57712 FPGA long timeouts occurred in toe scenarios Cause: FPGA frequency factor was set to 100 instead of 400 Fix: Fix in Init-values Impact: 57712 FPGA only 5. Problem: (FCOE) Chip hangs while running normal rd/wr operations. Cause: RX Doorbell was not handled properly. Fix: Handling the case where receiving false RX doorbell. Impact: None. 6. Problem: A possible race could cause a hardware attention from the CFC due to CDU-validation. Cause: Possible race could cause a connections timer to expire after connection has terminated. To avoid errors the context is marked as "nothing to do on timer expire". The problem is that the context is not always cached to host memory, and therefore an un-updated context could be loaded when the timer expires. Fix: The driver nullifies the timers context area to assure that even if the context is not cached out to host, it is still marked as "nothing-to-do". Impact: Issue introduced in driver version 5.2.3 No exposure in previous releases. 7. Problem: A request can be sent on a disabled function Cause: HW bug in timers block that scans function 6/7 when function 2/3 scan off is set Fix: workaround in the driver that assures that if the timers starts scanning for function 6/7 nothing fatal will occur. Impact: 57712 Only. Enhancements ------------ None. Version 5.3.11 (16 November, 2009) ================================== 1. Problem: CQ41232: Management gets incorrect AN and FC bit values. Cause: FC wasn't updated correctly during link up event Fix: Extract all status_link information correctly Impact: None 2. Problem: BCM8481 doesn't negotiate FC capabilities Cause: FC capabilities weren't advertised during phy initialization Fix: Set BCM8481 FC capabilities during init stage Impact: None 3. Problem: CQ43967: Break running back-to-back bi-directional sockdie stress test + toggle toe Cause: In FPGA/Emulation the cfc cam only uses the bottom 8 bits of each field in the 4 tuple Fix: To prevent offloading connection with already existing combination [SRC | DST].[IP | TCP] LSBs for FPGA/Emulation Impact: FPGA/Emulation only 4. Problem: (FCOE) Completions are not arrived on open tasks. Cause: Connection does not register to QM since SQ producer/consumer remain equal. Fix: Adding toggle bit indication to these values. Impact: None. 5. Problem: (iSCSI) Invalid RX segments within a live connection lead to system halt. Cause: SYN segments arrived during connection life, created wrong event for the driver. Fix: After bad segments are detected and reset is sent, send RESET event to the driver. Impact: None. Enhancements ------------ 1. Request: Enable defining a minimum byte cost for a packet in Host coalescing. Change: As requested. Impact: None. 2. Request: Performance improvement using doorbell indication instead of reading from host memory. Change: As requested. Impact: None. Version 5.3.10 (10 November, 2009) ================================== 1. Problem: (E2) cq44330: evbd assertion at evbda!lm_tcp_rx_next_grq_buf+0x201 Cause: During urgent TOE generic buffers compensation all functions update counter of function 0 instead of their own one Fix: Compensation mechanism is fixed Impact: None. 2. Problem (E2) driver load on 4 port FPGA compile failed. Cause: during driver load of 4 ports, wrong igu sb id and default sbid were assigned in igu backward compatible mode Fix: Select correct sbid Impact: None 3. Problem: (FCOE) Chip hanged during data placement. Cause: Thread started placing data before verifying the task type. Fix: Verify task type is match to read in FCP_DATA before placement. Impact: None. 4. Problem: (FCOE) (CQ44328) Chip hanged after error was detected. Cause: Thread was waiting for CRC result instead of releasing the packet. Fix: Release the packet if an error occurred during data placement. Impact: None. Version 5.3.9 (2 November, 2009) ================================== 1. Problem: ABTS flow does not complete normally. (FCOE) Cause: The task context valid flag indication was not processed correctly, hence the ABTS ACC was considered as an error. Fix: Update and verify the valid flag correctly. Impact: None. 2. Problem: Incoming iSCSI PDU with corrupted header caused assert. Cause: Firmware failed to increase activity counter when issuing error report. Fix: Firmware fix in iSCSI event report flow. Impact: None. 3. Problem: cq44272 running Driver load/unload caused BSOD Cause: Driver asserted if a certain register in the IGU was not zero at time of initialization, but the register has shared bits with other functions Fix: Don't assert on the value '0' Impact: None 4. Problem: Ndis miniport was not enumerated when there is no MCP (E2...) Cause: The multi-function configuration in the shmem is not configured properly when there is no MCP Fix: Always enumerate ndis, iSCSI, FCoE when there is no MCP Impact: User must make sure NOT to try and install all clients in multi-function, and install only the one required Enhancements ------------ 1. Request: Improve TOE Rx performance on few TCP connections scenarios, when working with pre-posted buffers. Change: Add per connection pre-fetched buffers local Ring. Impact: None. 2. Request: Remove DCA algorithm from TOE code. Change: As requested. Impact: None. Version 5.3.8 (27 October, 2009) ================================== Enhancements ------------ 1. Request: The driver allocates as many MSI-X vectors as there are processors in the system (but not more than 64). Change: As requested Impact: None 2. Request: Add support for EMAC loopback for FPGA Change: As requested Impact: None 3. Request: Add support for FCOE statistic, that is collected via ramrod. Change: As requested Impact: None 4. Request: For VMQueue, support vlan filtering for mac entry and not only two vlans in function level. Change: Implement a new scheme for vlan filtering. Impact: Removed strict vlan option (supporting a specific vlan and no vlan). Version 5.3.7 (20 October, 2009) ================================== 1. Request: For VMQueue, support for packet split up to certain amount of bytes and for consuming sge (data buffer) on every packet even if not used. (ETH) Change: As requested. Impact: None. 2. Request: Support for collecting statistics via ramrod. (FCOE) Change: As requested. Impact: None. 3. Request: Add GRC DUMP support to FW debug dump through driver for E2 as well Change: As Requested. Impact: None. Version 5.3.6 (12 October, 2009) ================================== 1. Problem: Priority Flow Control 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. Fix: Set properly PriorityEnableVector in Xon PFC packet. Impact: BCM57711 Only. 2. Problem: (CQ43495, CQ43306) Driver assertion seen running Chariot Hi-Perf Bi-Directional Stress. (TOE) Cause: Synchronization bug at TOE RSS update flow. Fix: Synchronization mechanism fixed. Impact: None. 3. Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected FIN packet was received under traffic. (iSCSI) Cause: FW erroneously increased activity counter. Fix: Condition for activity counter increment fixed. Impact: None. 4. Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected SYN packet was received under traffic. (iSCSI) Cause: TCP reset initiated by FW caused endless wake ups for FW. Fix: Changed setting of FW internal flags. Impact: None. 5. 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. Fix: Use the scratchpad within the thread boundary only. Impact: None. 6. Problem: iSCSI offload: TCP Close failed. Cause: Bug in byte credit update during termination. Fix: Fixed in firmware. Impact: None. 7. Problem: FCoE INIT ramrod was never completed. Cause: Reading from inappropriate VQ in Tstorm. Fix: Reading from to the correct VQ. Impact: None. Enhancements ------------ 1. Request: Adding support broadcast and multicast received packets in L2 for switch-independent mode. Change: As requested. Impact: None. 2. Request: Improve TOE recovery in case of multiple drops. Change: Change previous OOO optimization with a new algorithm. Impact: None. 3. Request: Single Binary for E2 / E1H Change: Integrated new internal-ram structures Impact: Same binary can be used for E1h/E2 Version 5.3.4 (30 September, 2009) ================================== 1. Problem: CQ43574 - System assert when trying to create a SLB team. Cause: An rss_v1 updated was received after a previous rss_v2 was received. The driver didn't support a dynamic change from rss_v2 to rss_v1. Fix: Add support for dynamic change from rss_v1 to rss_v2 and vice versa. Impact: None 2. Problem: CQ43701 - Evbd asserts during miniport update on fresh W7 install. Cause: From the point an rss_v2 updated was received by eVBD, eVBD expected in TSS to work only on CPUs that where based on the CPUs from the RSS indirection table. During miniport update the functions that weren't update work on the current processor in TSS. Fix: Evbd handles any TSS CPU that is received from miniport. Impact: None 3. Problem: TCM AGG region was not loaded (FCoE). Cause: Inappropriate regions initialization. Fix: Moving TCM AGG to region #3. 4. Problem: FW assert after cable pull (FCoE). Cause: Ignore MAC error indication from Parser. Fix: Verify the field and drop the packet if an error was detected. Impact: None 5. Problem: FW would intermittently hang on FLR L4 traffic testing (TOE). Cause: Cstorm corrupted its context when fetching bds during FLR. Fix: Added mitigation for PCIe error handling in cstorm fetch bds. 6. Problem: CQ44061 - Can't pass traffic when RX buffer size is 100 or lower. Cause: The driver threshold to post BD to FW, relied only on BD ring size. When RX descriptor size was much smaller then BD ring size the driver didn't post new BD to FW. Fix: The driver threshold to post BD to FW now relies on the minimum between BD ring size and RX descriptor size. Impact: None. Enhancement ----------- 1. Request: In retail driver builds removed an assertion in case of starvation of statistic timer . Change: As requested. Impact: In retail builds, driver won't initiate an assertion (cause BSOD) in case of starvation of statistic timer. Version 5.3.3 (22 September, 2009) ================================== Fixes ----- 1. Problem: System hang during IO, and no PFC packet is observed. Cause: When PFC was enabled a NIG register write overwrites the correct initialization. Fix: Removed the write. Impact: None 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 2. Request: FCOE is enumerated by default and the default max number of FCOE connections set to 128. Change: As requested. Impact: None. Version 5.3.2 (15 September, 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 Fix: 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 configuration of the LED4 signal which generate the interrupt Fix: Detect link down using the LED4 signal rather than the BCM8481 registers Impact: None. 3. Problem: CQ43133 - CPU usages are not in the same level during traffics when RSS enabled. Cause: On RSS updates when the eVBD receive in the indirection table update, CPU numbers instead of queue indexes, the indirection table that was given to FW didn't always point to the right SB. Fix: Fixed the bug. Impact: None 3. Problem: (CQ35477) - Incorrect display of External Phy Firmware Version for Everest XFP board. Cause: External Phy Firmware Version for XFP boards used to display 0000:0000 Fix: Change display in this case to "N/A" 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. Fix: First load the SPIROM to the master port. Impact: None. 5. Problem: (CQ41320) - On W7 the system is sluggishness when RSS is disabled on L2 stress scenarios. Cause: When RSS is disabled only one CPU is used. Fix: ALL processor affinity will be used when RSS is disabled. Impact: None. 6. Problem: (CQ42262) - "Number of RSS Queues" option is limited to half of the maximum possible RSS chains. Cause: "Number of RSS Queues" was limited to half of the maximum possible RSS chains, regardless of if it was set to "Auto" or a specific number. Fix: Remove the limitation of half of the maximum possible RSS chains, in case that a specific number is set to "Number of RSS Queues". Impact: None 7. Problem: In MSIX, if the number of processors in the system is not a power of 2 and is less than 16, then TOE affinity when TOE RSS is disabled is specific processor and not all processor. Cause: Wrong condition in case of number of processors in the system is not a power of 2 and is less than 16. Fix: Fixed the condition. Impact: None. 8. Request: Recognition whether the RSS indirection table contains CPU num or qidx according to NDIS_RECEIVE_SCALE_PARAMETERS version. Change: As requested. Impact: None 9. Problem: cq42482 - BSOD when running Reboot test. Cause: SW should add a delay between consecutive writes to reset registers. Change: Added the delay. Impact: None. 10. Problem: cq43242 - interrupt was lost while calling MsixSetTableEntry. Cause: MsixSetTableEntry was called without masking the interrupt before. Change: Mask the interrupt before calling MsixSetTableEntry and after MsixSetTableEntry was called unmasked the interrupt. Impact: None. 11. Problem: cq43458 - LUN's do not reappear back on link removal and reconnection. Cause: Functionality of recycling FCoE CIDs was broken Change: Fixed recycling FCoE CIDs Impact: None. 12. Problem: Pfc handler was not released properly. Cause: Using threadless instead of thread. Change: Fix the thread release in Pfc flow in Cstorm. Impact: None. Enhancement ----------- 1. Request: (CQ41067) Add support for CL73 to CX4 boards Change: As requested Impact: None 2. Request: Raise max supported FCOE offloaded connections from 128 to 1024 Change: As requested Impact: None Version 5.3.1 (3 September, 2009) ================================= Fixes ----- 1. Problem: System BSOD when unloading and loading iSCSI client. Cause: The driver did not cleanup the FW's internal RAM consumer index during iSCSI client unbind, causing mismatch of the completions value on next client load. Fix: The driver clears the correct entries of FW internal RAM consumer index during iSCSI client unbind. Impact: None. Version 5.3.0 (4 August, 2009) ============================== Fixes ----- 1. Problem: Setting rx-usecs to a value less than 12 causes the traffic to stop Cause: HC coalescing was not disabled when setting the coalescing timeout to zero (coalescing timeouts are multiples of 12us) Fix: 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 Fix: Disable management egress traffic when driver is in diag mode Impact: None 3. Problem: CQ42854 - retransmissions causing iSCSI timeout Cause: VBD didn't honor tcp_ack_freq value of 1. Fix: VBD honors tcp_ack_freq value of 1. Impact: None Enhancements ------------ 1. Request: CQ40745 - Write an event log in case fan failure occurred prior to loading of the driver. Change: As requested. Impact: None. 2. 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 effects all packets regardless of RX Parser packet sorting logic. Change: As requested Impact: None 3. Request: (CQ41112) - PHY LED Programming for BCM8481 on BlackBird (BCM957711A1100G) Production Board Change: As requested Impact: None. Version 5.2.24 (July 14, 2010) ============================== 1. Problem: CQ48772 - BSOD after approximately 5 days of stress test. Cause: A race in the code of statistics collection mechanism caused a mismatch between driver and firmware. This mismatch caused a firmware ASSERT that leaded to the BSOD. Fix: Fix the code and the potential race so there will be no possibility to the mismatch scenario. Impact: Introduced in T4.6. Very unlikely to happen. Version 5.2.23 (June 6, 2010) ============================= 1. Problem: CQ46978 - BSOD after some IOCTL's in IA64 systems. Cause: Odd value of pointer casting is fatal in IA64. Fix: Consider the odd pointer in the code so BSOD won't happen. Impact: All version. IA64 systems only. Version 5.2.22a (April 16, 2010) =================================== Enhancements ------------ 1. Request: CQ47203 - Product version string should be 14.2.2 Change: As requested. Impact: None. Version 5.2.22 (April 11, 2010) ============================== Fixes ----- 1. Problem: CQ47040 - BSOD on division by zero. Cause: Non effective wrap around protection of statistics parameter using as divider Fix: Fix protection of the parameter to prevent division by zero. Impact: This issue is exposed to all driver versions. Version 5.2.21 (April 6, 2010) ============================== Fixes ----- 1. Problem: CQ46432 - BSOD on invalid MSI interrupt message. Cause: Access to non valid memory during processing invalid interrupt message. Fix: Validate interrupt message before accessing to corresponding memory blocks Impact: This issue is exposed to all driver versions. 2. Problem: CQ45574 - BSOD during Windows 2008 SP2 powerup on 57710, ncsi enabled Cause: Race condition between NCSI and driver caused HW attention that was mistakenly interpreted by the driver as fatal Fix: Do not treat this HW attention as fatal when the race occurs. Impact: Only when ncsi is enabled. 3. Problem: (FW L2) Non-offloaded FCOE traffic was silently dropped. Cause: When FCOE offload engine was disabled all FCOE traffic was dropped. Fix: Remove check of FCOE flag in case FCOE offload is disabled. Impact: Exists in all previous T5.0/T5.2 versions. 4. Problem: (FW TOE) CQ46245 - Possible data miscompare during stress test. Cause: Race in fast retransmit flow. Fix: Firmware verifies that the transmitter is synced on latest released buffers. Impact: Exists in all previous versions. 5. Problem: (FW iSCSI) Unexpected chip behavior when padding split into 2 or 3 parts. Cause: Firmware bug when aligning split padding. Fix: Firmware was fixed. Impact: Exists in all previous versions. 6. Problem: (FW iSCSI) False data digest error when data digest split into 3 parts. Cause: Firmware bug when aligning split digest. Fix: Firmware was fixed. Impact: Exists in all previous versions. 7. Problem: (FW iSCSI) Chip hangs when running iSCSI read traffic. Cause: Miscalculation when SGEs are not 64-bytes aligned. Fix: Fixing firmware calculation. Impact: Exists in all previous versions. Enhancements ------------ 1. Request: CQ46816- Remove 1 Gb full speed setting from certain OEM IDs Change: As requested. Impact: None. Version 5.2.20c (March 23, 2010) ================================ Fixes ----- 1. Problem: (Completion of CQ45475) - rx buffers threshold value is not overwritten when it is already exists from previous eVBD installation. Cause: Incorrect define in inf - "don't overwrite". Change: Fix the .inf value to "always overwrite". Impact: Issue is exposed only when upgrading from 5.0.32a to 5.2.20b Enhancements ------------ 1. Request: CQ46684 - Add new BCM57711 device id's to the driver INF file. Change: As requested. Impact: None. Version 5.2.20b (March 3, 2010) =============================== Fixes ----- 1. Problem: CQ45475 - ETH connection loss or ping stops for too long when OS holds more than 80% of rx buffers Cause: Chip have no rx buffers (most of them are on OS) due to a high threshold, this cause xoff and as a result connectivity loss. Change: When going below a defined amount of rx buffers, indicate a packet as resource to the OS. Than packets will be returned immodestly to the chip. Impact: Problem observed in Windows Server 2003. Version 5.2.20a (February 14, 2010) =================================== Enhancements ------------ 1. Request: CQ45946 - Product version string should be 14.2.1 Change: As requested. Impact: None. Version 5.2.20 (February 02, 2010) ================================== Fixes ----- 1. Problem: CQ45552 - BSOD on specific system running on Windows 2008 R2. Cause: Specific systems (e.g with 48 CPU's) might experience high latency of dma transactions that will require more time to complete. Fix: Increase the time driver is waiting before asserting for dma not completed from 2ms to 200ms Impact: This issue is exposed to all driver versions. Version 5.2.19 (January 19, 2010) ================================== Fixes ----- 1. Problem: CQ45347 - High NPP usage on Win 7 with 1K TOE connectins (or more) in Chimney Automatic mode. Cause: On each connection offload the driver allocates some auxiliary memory proportionally the connection's receive window size. In Chimney automatic mode the OS sets the receive window size is 16MB, compared to only 64KB on all other modes/Oss. Thus, on Win 7 in Chimney automatic mode, the driver wrongly allocates ~450KB excessive memory per connection, compared to the 64KB receive window case. Fix: To limit memory allocation per connection. Impact: None Version 5.2.18 (December 21, 2009) ================================== Fixes ----- 1. Problem: CQ44858 - Performing Windows applications against 57711 Results in Non-responsive when traffic from switch exists. Cause: In RSS V2 a wrong chain for transmission, was chosen when miniport gave lower CPUs than base CPU. Fix: Handled this case correctly. Impact: Issue introduced in driver version 5.2.6 no exposure in earlier releases. Enhancements ------------ 1. Request: CQ45020 - Remove BCM57711 PCI id's for oem customer (CQ44977). Change: As requested. Impact: None. Version 5.2.17 (December 17, 2009) ================================== Enhancements ------------ 1. Request: Rollback of CQ44744 - Add support "*FlowControl" registry keyword for configuring flow control setting via BACS. Change: As requested. Impact: Rollback of the change that was first applied on verison 5.2.14. 2. Request: CQ44968 - Add new BCM57711 device id's to the driver INF file. Change: As requested. Impact: None. 3. Request: CQ44977 - Add new BCM57711 device id's to the driver INF file. Change: As requested. Impact: None. 4. Request: CQ44447 - Add new BCM57711 device id's to the driver INF file (ssid fix). Change: As requested. Impact: None. Version 5.2.16 (December 14, 2009) ================================== Fixes ----- 1. Problem: The driver doesn't have specified processors MSI-X vectors, for processors above 16. Cause: The driver allocates MSI-X vectors for processors above 16 as all processors, instead of specified processors. Fix: The driver allocates MSI-X vectors for processors above 16 as specified processors. Impact: Issue introduced in driver version 5.2.9. No exposure in previous releases. 2. Problem: CQ44876 - WOL Failing Ndistest for specific board. Cause: Wrong capabilities settings in .inf. Fix: Fix the .inf settings. Impact: BCM57711 specific boards, newly introduce in eVBD version 5.2.11 3. Problem: Dips in ISCSI throughput. Cause: Gap between the constant back-to-back DPC was called too frequently and on SB that supported all processors. Fix: Fix the problem. Impact: Issue introduced in driver version 5.2.11. No exposure in previous releases. Version 5.2.15 (December 09, 2009) ================================== Fixes ----- 1. Problem: RSS update completion not reproduced to NDIS miniport. Cause: Wrong handling of DPC, in special cases of TOE RSS update. Fix: Complete TOE RSS update without optimization. Impact: Issue introduced in driver version 5.2.11 No exposure in previous releases. Version 5.2.14 (December 07, 2009) ================================== Fixes ----- 1. Problem: CQ42101 - WOL Failing because Ndistest cannot determine WOL support. Cause: Wrong capabilties settings in .inf. Fix: Fix the .inf settings. Impact: BCM57710/11E Generic test boards. 2. Problem: CQ41760 - Fan failure of device with generic ssid displays specific oem information in event viewer. Cause: Requirement change. Fix: Change the string from OEM specific name to "OEM". Impact: BCM5771x devices with fan - event log wording only. 3. Problem: A possible race could cause a hardware attention from the CFC due to CDU-validation. Cause: Possible race could cause a connections timer to expire after connection has terminated. To avoid errors the context is marked as "nothing to do on timer expire". The problem is that the context is not always cached to host memory, and therefore an un-updated context could be loaded when the timer expires. Fix: The driver nullifies the timers context area to assure that even if the context is not cached out to host, it is still marked as "nothing-to-do". Impact: Issue introduced in driver version 5.2.3 No exposure in previous releases. Enhancements ------------ 1. Request: CQ44744 - Add support "*FlowControl" registry keyword for configuring flow control setting via BACS. 2. Request: CQ44754 - Add new BCM57711 device id's to the Driver INF file. Change: As requested. Impact: None. Version 5.2.13 (November 30, 2009) ================================== Fixes ----- 1. Problem: CQ44382 - IO generation tool reports errors when data digest errors are injected. Cause: A bug when detecting data digest error on iSCSI data placement. Fix: Creating FW fix. iSCSI connections write 64 dummy data placements to clear erroneous bit when data digest is detected. Impact: All previous iSCSI releases, running on 57710, 57711, 57711E Version 5.2.12 (November 23, 2009) ================================== Fixes ----- 1. Problem: CQ44524 - F6 installation failed in Win2K3 with latest iSCSI ROM which runs in polling mode. Cause: Newer iSCSI ROM runs in polling mode. It masks out PCI interrupt by setting bit 10 in PCI Command register. In Win2k8 or newer, OS clears this bit when it runs in non MSI-X mode. However, Win2K3 doesn't do this. This bit is new in PCI v2.3. Fix: Clear PCI masking bit if it runs in legacy PCI mode. Impact: None 2. Problem: CQ44171 - Data validation failed during TOE stress test. Cause: False push timer expiration caused empty pre-posted buffer to be skipped. Fix: Fix in firmware. Impact: Regression introduced in version 5.2.8. No exposure in previous releases. 3. Problem: ISCSI: Invalid RX segments within a live connection lead to system halt. Cause: SYN segments arrived during connection life, created wrong event for the driver. Fix: After bad segments are detected and reset is sent, send RESET event to the driver. Impact: None. 4. Problem: CQ44516 :Assert occurred while disabling eVBD when passing sockdie L4 traffic to SLB team on 57710. Cause: ISCSI L2 client unbind, takes more time than max time expected by VBD. There are 8000 TOE offload connection uploading while the ISCSI L2 client is unbinding and sending ramrods toward chip, all these connections share the same ramrod priority with ISCSI L2 client. This causes ISCSI L2 client ramrods to take more time than expected by VBD. Fix: L2 client unbind ramrods get a higher ramrod priority, than TOE offload connection uploading ramrods. Impact: None. Version 5.2.11 (November 15, 2009) ================================== Fixes ----- 1. Problem: Theoretical bug in statistics collection (non NDIS mandatory parameters). Cause: Statistics wraparound is not detected correctly on statistics update (on very rare cases). Fix: Calculation was fixed. Impact: None. 2. Problem: CQ41232: Management gets incorrect AN and FC bit values. Cause: FC wasn't updated correctly during link up event Fix: Extract all status_link information correctly Impact: None 3. Problem: BCM8481 doesn't negotiate FC capabilities Cause: FC capabilities weren't advertised during phy initialization Fix: Set BCM8481 FC capabilities during init stage Impact: None 4. Problem: CQ43175 - On W7 sluggishness is seen when passing Rx traffic against one port of Everest if RSS is enabled. Cause: Sluggishness is caused due to numerous of DPCs running back-to-back without no gap for a long duration. Fix: Add a gap between the back-to-back DPC. Impact: None Enhancements ------------ 1. Request: Enable defining a minimum byte cost for a packet in Host coalescing. Change: As requested. Impact: None. Version 5.2.10a (November 12, 2009) =================================== Enhancements ------------ 1. Request: CQ44447 - Add new BCM57711 device id's to the Driver INF file. Change: As requested. Impact: None. Version 5.2.10 (November 02, 2009) ================================== Fixes ----- 1. Problem: CQ44171- TCP windows were closed when passing TOE traffic. Cause: Erroneous handling of push flag caused the firmware to skip a pre-posted receive buffer. Fix: Firmware was fixed. Impact: None 2. Problem: Incoming iSCSI PDU with corrupted header caused assert. Cause: Firmware failed to increase activity counter when issuing error report. Fix: Firmware fix in iSCSI event report flow. Impact: None 3. Problem: Data placements could be cancelled in case one of the iSCSI connections encounters data digest error. Cause: Firmware didn't set checkForEop in DMA message. Fix: Firmware sets flag when data digest is enabled. Impact: None Enhancements ------------ 1. Request: CQ43584 - Product version string should be 14.2.0 Change: As requested. Impact: None. Version 5.2.9 (October 20, 2009) ================================== Enhancements ------------ 1. Request: The driver allocates as many MSI-X vectors as there are processors in the system (but not more than 64). Change: As requested Impact: None Version 5.2.8 (October 13, 2009) ================================== Fixes ----- 1. Problem: Direct boards always show flow-control enabled after CL73 autoneg Cause: Incorrect register was used to access link-partner advertisement Fix: Use the right register for the link-partner advertisement Impact: None 2. Problem: CQ43574 - System assert when trying to create a SLB team. Cause: An rss_v1 updated was received after a previous rss_v2 was received. The driver didn't support a dynamic change from rss_v2 to rss_v1. Fix: Add support for dynamic change from rss_v1 to rss_v2 and vice versa. Impact: None 3. Problem: CQ43701 - Evbd asserts during miniport update on fresh W7 install. Cause: From the point an rss_v2 updated was received by eVBD, eVBD expected in TSS, to work only on CPUs that where based on the CPUs from the RSS indirection table. During miniport update the functions that weren't update work on the current processor in TSS. Fix: Evbd handles any TSS CPU that is received from miniport. Impact: None 4. Problem: BCM8726 P14 is unable to link up @ 1G Cause: Incorrect SPIROM load sequence Fix: Set new load sequence according to HW requirement Impact: None 5. Problem: CQ44061 - Can't pass traffic when RX buffer size is 100 or lower. Cause: The driver threshold to post BD to FW, relied only on BD ring size. When RX descriptor size was much smaller then BD ring size the driver didn't post new BD to FW. Fix: The driver threshold to post BD to FW now relies on the minimum between BD ring size and RX descriptor size. Impact: None. 6. Problem: Direct boards pause capabilities are not resolved as expected Cause: Pause capabilities are negotiated over different registers, hence require distinction between CL73 and CL37. Fix: Verify CL73 negotiation was completed as well as that link-partner supports CL73 to conclude CL73 link up Impact: None 7. Problem: (CQ43495, CQ43306) Driver assert when TOE RSS is enabled. Cause: Synchronization bug at TOE RSS update flow (bug in previous fix). Fix: Synchronization mechanism fixed. Impact: None 8. 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. Fix: Use the scratchpad within the thread boundary only. Impact: None 9. Problem: iSCSI offload: TCP Close failed. Cause: Bug in byte credit update during termination. Fix: Fixed in firmware. Impact: None Enhancements ------------ 1. Request: Enable flow-control capabilities on direct boards when flow-control is set to AUTO, and link is up using parallel-detect Change: As requested Impact: None 2. Request: Improve TOE Rx performance on single/few TCP connections scenarios, when working with pre-posted buffers. Change: Add per connection pre-fetched buffers local Ring. Impact: None Version 5.2.7 (September 22, 2009) ================================== Fixes ----- 1. Problem: In BCM8481, going from 1G to 10M cause GRC timeout. Cause: EMAC clock is changed only after setting EMAC registers. Fix: Set the EMAC clock according to the new speed before setting EMAC registers. Impact: None 2. Problem: Link led is down when link is up in CL73. Cause: HW issue. Fix: SW workaround by setting led registers. Impact: None 3. Problem: CQ43710 - iSCSI boot adapter in SLB team is not active when Lievelink probe ID is tagged. Cause: When iSCSI boot via the HBA path is enabled, the Ndis miniport can be part of an SLB team. To allow for this, the Ndis miniport needs to know if it is in the boot path or not. Fix: Modified the L2_IOC_GET_ISCSIBOOT_PAGING_INFO to only return MBA_ISCSIBOOT_ENABLE if the device is in the paging path. Impact: None Enhancements ------------ 1. Request: Modify BCM8481 link led configuration in 10G. Change: As requested Impact: None 2. Request: Add support for new dual-port 10G-baseT phy BCM84823. Change: As requested Impact: None 3. Request: CQ43108 - Remove "Number of RSS queues" configuration from the advanced properties page on Windows XP. Change: As requested. Impact: None. 4. Problem: CQ43158 - OEM 10G IOR produces BSOD when booting W2K8 x64 iSCSI on 10G Port when other 10G Port Connected. Cause: Race condition between ports on driver load when iSCSI booting, occurred while accessing the MCP, caused MCP command sequence mismatch that resulted a BSOD. Fix: Protect MCP access on driver load with common lock for both ports. Impact: None 5. Request: In retail driver builds removed an assertion in case of starvation of statistic timer . Change: As requested. Impact: In retail builds, driver won't initiate an assertion (cause BSOD) in case of starvation of statistic timer. Version 5.2.6 (September 07, 2009) ================================== 1. Problem: CQ35477 - (refix) - Incorrect display of External Phy Firmware Version for Everest XFP board. Cause: External Phy Firmware Version for XFP boards used to display "0000:0000". Fix: Change display in this case to "N/A". Impact: None. 2. Problem: CQ43051 - Cannot boot into OS after upgrading evbd (checked build) in iSCSI boot environment. Cause: F6 install creates a service based on binary name. The service name is different from the one that is created by INF install. This causes OS creating two driver objects that share the same binary. In some cases, it will cause ASSERT on checked builds since we don't expect to driver objects to be created. Fix: Modify the driver not to ASSERT in case of double call to DriverEntry. Impact: None. 3. Problem: CQ43423 - Xstorm asserted with sequence mismatch assert. Cause: Amount of sendable bytes miscalculated the fin flag in case of fin slow start retransmission. Fix: Calculation treats fin correctly. Impact: None. Version 5.2.5 (September 03, 2009) ================================== Fixes ----- 1. Problem: Direct boards unable to link up at 1G using auto-negotiation. Cause: When negotiating using CL73, 1G-KX speed wasn't advertised. Fix: In CL73, when 1G speed capability is enabled, advertise 1G-KX, and disable 10G parallel-detect. Impact: None 2. Problem: Flow control doesn't work when auto-negotiation complete with CL73. Cause: Flow-Control wasn't advertised with CL73. Fix: Enable Flow-Control negotiation using CL73. Impact: None 3. Problem: CQ43133 - CPU usage is not evenly distributed during traffic when RSS is enabled. Cause: On RSS updates, when the eVBD receive indirection table update consist of CPU numbers instead of queue indexes, the indirection table that was given to FW didn't always point to the right SB. Fix: Fixed the bug. Impact: None Version 5.2.4 (September 01, 2009) ================================== Fixes ----- 1. Problem: CQ43415 - Assert observed during BacsCLI automation test Cause: On device remove driver uses variable in freed memory Fix: Move needed variable to safety memory container. Impact: None. 2. Problem: CQ43419 - iSCSI boot BSOD during OS load Cause: On common TOE/iSCSI offload code driver turns to parameter releveant only for TOE Fix: Use the parameter in TOE only specific branch of code. Impact: None. 3. Problem: In BCM8706 rarely LASI is not cleared after link change Cause: LASI may not behave well when Serdes link is not up yet Fix: Reorder link up order of BCM8706 so that first it initialize the link between the XGXS and only then initialize the BCM8706. Impact: None Version 5.2.3 (August 31, 2009) =============================== Fixes ----- 1. Problem: CQ37078 - Lower throughput in L4 Tx than in L2 when running ntttcp with small buffers. Cause: Low L4 Tx interrupts rate. Fix: Increase default value for L4 Tx interrupts rate. Impact: None. 2. Problem: eVBD is counting packets which are dropped due to lack of host buffers twice: once in good-packets counter and once in no-buff packets counter. Cause: Lack of specific counters for this matter. Fix: Subtract the no-buff counters from the good packet counters (bytes/frames unicast/multicast/broadcast) using a special handler which is invoked by the ustorm for each dropped packet. Impact: None. 3. Problem: CQ42248 - TOE offload stress test fails Cause: Absent generic buffers Fix: Increase utilization of generic buffer for poor memory models by bounding generic buffer size to MTU boundary. Impact: None 4. 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. Fix: Change the fairness credit init value. Impact: None. 5. 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 RSC aggregation. So in case less then 75 CQEs are on the ring, the firmware starts dropping packets. Fix: Check if RSC is enabled before deciding if to drop packet. If RSC is disabled save only 11 CQEs instead of 75. Impact: None. 6. Problem: In Licensing Error flow target ring for completion was incorrect. Cause: Ring parameters were calculated according to a deprecated mechanism. Fix: Changed ramrod to use the standard mechanism to calculate ring parameters. Impact: None. 7. Problem: CQ42482 - BSOD when running Reboot test. Cause: SW should add a delay between consecutive writes to reset registers. Fix: Added the delay. Impact: None. 8. Problem: CQ43242 - Interrupt was lost while calling MsixSetTableEntry. Cause: MsixSetTableEntry was called without masking the interrupt before. Fix: Mask the interrupt before calling MsixSetTableEntry and after MsixSetTableEntry was called unmasked the interrupt. Impact: None. Enhancements ------------ 1. Request: CQ43350 - Link eVBD compile to WDF 1.7 (instead 1.9) Change: As requested. Impact: - Driver update for OS earlier than Windows 7 will not require system restart. - OS will see eVBD driver on iSCSI boot DVD installation. 2. Request: CQ43091 - Add new devices to INF. Change: As Requested. Impact: None. 3. Request: Remove DCA algorithm from TOE code. Change: As requested. Impact: None. 4. Request: Improve TOE recovery in case of multiple drops. Change: Change previous OOO optimization with a new algorithm. Impact: None. 5. Request: Remove 2 seconds delay in terminate flow. Change: Incorporate flush doorbell mechanism in terminate flow. Impact: None. Version 5.2.2 (August 24, 2009) =============================== Fixes ----- 1. Problem: CQ42853 - X64_0x0_evbda!lm_locate_snd_next_info+1d5 running Chariot stress Cause: Wrong calculation of BDs number required to transmit unack buffer incoming on connection offload Fix: Required BDs number is increased by whole SGL number of element Impact: None Enhancements ------------ 1. Request: CQ043078 - Move eVBD compile to WDK 7.0.0 RTM. Change: As requested. Impact: Driver update for OS earlier than Windows 7 Might require system restart (For WDF 1.9). 2. Request: tx/rx interrupts rates must be separated per protocol Change: As requested. Impact: None 3. Request: Access to "under indication" flags must be synchronized Change: As requested. Impact: None 4. Request: Recognition whether the RSS indirection table contains CPU num or qidx according to NDIS_RECEIVE_SCALE_PARAMETERS version. Change: As requested. Impact: None Version 5.2.1 (11 August, 2009) =============================== Fixes ----- 1. Problem: CQ42854 - retransmissions causing iSCSI timeout. Cause: VBD didn't honor tcp_ack_freq value of 1. Fix: VBD honors tcp_ack_freq value of 1. Impact: None 2. Problem: CQ42586 - SUT fails to wake from S4 via Interesting Packet in Multi-function mode if all functions are enabled. Cause: In case last function to unload in port is not vnic 0 (e.g. function 3 in port 1) Chip reset of last function overridden registers that programmed interesting packet for the first function in port. Fix: Save and restore the registers before and after the reset for both ports and not only for opposite port (extension of CQ41586 fix). 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 Fix: 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 Fix: Detect link down using the LED4 signal rather than the BCM8481 registers Impact: None 5. Problem: (CQ35477) - Incorrect display of External Phy Firmware Version for Everest XFP board. Cause: External Phy Firmware Version for XFP boards used to display 0000:0000 Fix: Change display in this case to "N/A" Impact: None 6. 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. Fix: First load the SPIROM to the master port. Impact: None 7. Problem: In BCM8727 base boards, link is down intermitted after loading the interface Cause: In BCM8727 No-OverCurrent board designs, link up registers gets updated 10us after link up LASI is received Fix: Add 100us delay after LASI is triggered before reading link status Impact: None 8. Problem: (CQ41320) - On W7 the system is sluggishness when RSS is disabled on L2 stress scenarios. Cause: When RSS is disabled only one CPU is used. Fix: ALL processor affinity will be used when RSS is disabled. Impact: None 9. Problem: (CQ42262) - "Number of RSS Queues" option is limited to half of the maximum possible RSS chains. Cause: "Number of RSS Queues" was limited to half of the maximum possible RSS chains, regardless of if it was set to "Auto" or a specific number. Fix: Remove the limitation of half of the maximum possible RSS chains, in case that a specific number is set to "Number of RSS Queues". Impact: None 10. Problem: In MSIX, if the number of processors in the system is not a power of 2 and is less than 16, then TOE affinity when TOE RSS is disabled is specific processor and not all processor. Cause: Wrong condition in case of number of processors in the system is not a power of 2 and is less than 16. Fix: Fixed the condition. Impact: None. Enhancements ------------ 1. Request: CQ42856 - In promiscuous mode, pass management traffic to the host. Change: As requested. Impact: None. 2. Request: (CQ41112) - PHY LED Programming for BCM8481 on BlackBird (BCM957711A1100G) Production Board Change: As requested Impact: None 3. Request: (CQ41067) Add support for CL73 to CX4 boards Change: As requested Impact: None Version 5.2.0 (27 July, 2009) ============================= Fixes ----- 1. Problem: CQ41054, CQ42091 - RSS on W2K8 R2 with multiple 10G adapters does not behave as expected. Cause: On W2K8 R2 the OS divide the CPUs between multiple adapters via the content of the RSS indirection table. The OS expects the driver will do dynamically change the MSIX vectors affinity to CPUs accordingly. The driver did not support this dynamic change of affinity. Fix: Added support for dynamic MSIX affinity according to the content of RSS indirection table. Impact: Win 7/W2K8 R2 only. To take affect the fix must be accompanied with NDIS Miniport version 5.2.0 or newer. Enhancements ------------ 1. Request: CQ40745 - Write an event log in case fan failure accord prior to loading of the driver. Change: As requested. Impact: None. Version 5.1.0 (11 June, 2009) ============================= Enhancements ------------ 1. Request: Support Priority Flow Control (PFC) to achieve lossless Ethernet for FCoE at 57711E. Change: As requested. Impact: None. 2. Request: When PFC enabled, Pass pause frames towards the NIG. Change: As requested. Impact: None. Version 5.0.31a (August 27, 2008) ================================= Enhancements: ------------- 1. Request: CQ43162 - Have iSCSI offload disabled by default on OEM LOM. Change: As Requested. Impact: None. 2. Request: Product version string should be 14.1.5 Change: As requested. Impact: None. Version 5.0.31 (August 5, 2008) =============================== 1. Problem: CQ42662 - WLK1.4 Win08R2 Sleep Stress & Common Scenario will not complete. Cause: In a scenario of extensive stress, DPC might not run for a very long time. Fix: Extended the time interval waiting for DPC completion. Impact: None. 2. Problem: CQ42854 - retransmissions causing iSCSI timeout Cause: VBD didn't honor tcp_ack_freq value of 1. Fix: VBD honors tcp_ack_freq value of 1. Impact: None Version 5.0.30a (July 21, 2009) =============================== Enhancements: ------------- 1. Request: CQ42231 - Add new devices to INF. Change: As Requested. Impact: None. Version 5.0.30 (July 9, 2009) ============================= 1. Problem: System ASSERT/Hang on S5/S4 with systems that have more than one 57710/57711 installed. Problem is newly introduced on eVBD 5.0.29 Cause: DevicePropertyBusNumber was wrongly overridden upon driver init. Fix: Remove override code. Impact: Systems that have more than one 57710/57711 chips installed. Version 5.0.29 (July 9, 2009) ============================= 1. Problem: CQ42300 - Plug and Play Driver Test Surprise Removal hangs on Windows 7 WLK 1.4. Cause: WLK 1.4 implement New Plug and Play flow on Windows 7 Surprise Removal testing. In this new flow, driver should not access hardware after surprise removal is called. Fix: Changed the driver to match surprise removal behavior on Windows 7. Impact: Windows 7 only. 2. Problem: 57711E - BSOD after loading drivers via *OIS* path during iSCSI Boot DVD Installation on OEM blade Cause: Chimney is disabled by eVBD on VISTA. When eVBD disabled chimney eVBD doesn't do some common initializations that are needed for TCP (which is common for TOE and ISCSI). ISCSI crashes because some of these initializations aren't done. Fix: Removed the dependency between chimney support by eVBD and initializations that are needed for TCP . Impact: None. Enhancements: ------------- 1. Request: CQ42477 - Remove "loadordergroup=base" for certain OEM IDs in inf. Change: As Requested. Impact: Specific OEM ID's only. Version 5.0.28 (July 6, 2009) ============================= 1. Problem: CQ42435 - BSOD after loading drivers during iSCSI Boot DVD Installation on OEM blade Cause: Wrong driver logic did not take into account the advertised TOE status when configured TOE RSS functioning. Fix: Fix driver logic when configuring TOE RSS functioning. Impact: None Version 5.0.27 (July 2, 2009) ============================= 1. Problem: Link up time takes too long with BCM8727 based NICs Cause: EDC mode is not set automatically Fix: Set EDC mode manually according to the SFP+ module type detected ( Passive DAC / Active DAC / LC-LRM / LC-SR / LC-LR ) Impact: None 2. 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. Fix: 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 3. Problem: (CQ42416) BSOD when uncheck iscsi from BACS and miniport is disabled in OS. Cause: The IOCTL (LICENSE_KEY_REQ) was received and no client was bound. In this IOCTL we send a command to the MCP. If no client is bound the data to send a command to the MCP isn't initialized. Fix: Read the MCP data in the CB EvtDevicePrepareHardware before an IOCTL can be received. Impact: None Version 5.0.26 (June 24, 2009) ============================== Fixes ----- 1. Problem: CQ42058 - System crashes BugCheck 0x124 as soon as netperf gets started. Cause: On cell-based systems, the driver should access MMIO space using a “translated” BAR address provided by the OS, and not with the “physical” BAR address that retrieved doing a direct read from the BAR registers in the PCI config space. Change: Use the "translated" BAR address instead the address read from PCI config space. Impact: Cell-based systems. Version 5.0.25 (June 22, 2009) ============================== Fixes ----- 1. Problem: CQ42073 - TCP performance drop when running netperf. Cause: Window update was delayed due to Delayed-Ack algorithm. Change: Window updates are not delayed when the advertised window is small. Impact: None. 2. Problem: CQ41586 - SUT fails to wake from S4 via Ping/Magic Packet in MF mode. Cause: Chip reset of last port overridden registers that programmed interesting packet for the first port. Fix: Save and restore the registers before and after the reset. Version 5.0.24 (June 18, 2009) ============================== Fixes ----- 1. Problem: CQ38748 - Win7 fails GlitchFreeDevice in Ndistest 6.5 Cause: Statistics query frequency was not sufficient for the GlitchFreeDevice test. Fix: Increase statistic query frequency in Windows 7. Impact: None. Version 5.0.23 (June 17, 2009) ============================== Fixes ----- 1. Problem: CQ40562 - Windows DVD installation over HBA path failed in Windows 2008 R2. Cause: iSCSI PDO was not created because of redundant check. Fix: Made changes to remove redudant check so that iSCSI PDO is created in the iSCSI HBA DVD installation. Impact: None. 2. Problem: CQ42011 - Misspelling in event viewer message when unqualified SFP+ module is detected. Cause: Typo. Fix: Trivial. Impact: None. 3. Problem: CQ41988 - Toe needs to be disabled for xp and vista. Cause: OS type is not detected correctly. Fix: Detect the OS type correctly. Impact: None. 4. Problem: CQ41604 - BSOD when running DTM test "Common Scenario Stress With IO". Cause: Busy-wait for event completion caused starvation of other DPCs and assert for no completions in a timely manner. Fix: Avoid long busy-waiting for event's completion. Impact: None. Enhancements: ------------- 1. Request: CQ41931 - Add new devices to INF. Change: As Requested. Impact: None. Version 5.0.22 (June 10, 2009) ============================== Fixes ----- 1. Problem: CQ41599 - NDISTest 6.0 2c_mini6rsssendrecv fails on Win2k8 R2 IA64 with KGROUP enabled Cause: MSIX was disabled on W2K8 IA64 and on W2K8 R2 IA64. In INTA mode kgroup support was broken Fix: Enable MSIX on IA64 (already done in evbd v5.0.20) Fixed KGROUP support for INTA mode. Impact: On W2K8 SP1 IA64 - MSFT's fix KBKB957018 must be installed, otherwise Miniport installation on top of evbd may intermittently fail. On all other Windows flavors - No impact. 2. Problem: CQ40964, CQ41586 - 57711/57711E fails to wake up from S4 via Ping. Cause: Chip reset of last port overridden registers that programmed interesting packet for the first port. Fix: Save and restore the registers before and after the reset. Impact: All versions after T4.4 that are trying to use WOL via ping for both ports. 3. Problem: CQ41299 - evbda!lm_tcp_rx_gen_peninsula_process assertion running Chariot Cause: Race condition on RSS (TOE) update processing. Fix: Complete processing all ingoing connections before processing RSS (TOE) update. Impact: None. 4. Problem: System break during driver load (BCM57711E). Cause: The error handling path when MF/SF mode query resulted an error was not complete. Fix: Fix error hanlding path. Impact: In case of invalid configuration, VBD load will fail and result a yellow bang (instead of a BSOD). Enhancements ------------ 1. Request: Make 8727 over-current behavior code more efficient. Change: As requested. Impact: None. 2. Request: PHY FW upgrade IOCTL - Customization for BMAPI. Change: Change FW upgrade prepare IOCTL to init the phy in order to enable phy register reading. Impact: As requested. Version 5.0.21 (June 4, 2009) ============================= Fixes ----- 1. Problem: Sparta script TCP_ChimneyOffload (test t70) fails intermittently. Cause: Retransmit timer inaccuracy due to timer resolution differences during upload. Fix: Fix time resolution conversion macro. Impact: None. Enhancements ------------ 1. Request: CQ41711 - Block enumartion of iscsi device on Windows 7 client OS. Change: As Requested. Impact: Windows 7 client only. 2. Request: CQ41756 - Block enumartion of iscsi device on Windows Vista client OS. Change: As Requested. Impact: Windows Vista client only. Version 5.0.20 (June 3, 2009) ============================= Fixes ----- 1. Problem: Port statistics for management might be inconsistent. Cause: in MF mode, all devices assigned the port statistics to monument instead PMF only. Fix: Only PMF will assign port statistics. Impact: Newly introduced on 5.0.9, not related to older versions. 2. 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. Fix: When set to warning - enable the module. Validate that the module is present before checking for over current indication. Impact: None. 3. Problem: Sparta script TCP_ChimneyOffload fails several tests. Cause: Zero window probe retires exceeded the allowed maximum. Change: Original zero window probe and its retries will not exceed maxRT_count. Impact: None. 4. Problem: CQ41599 - NDISTest 6.0 2c_mini6rsssendrecv fails on Win2k8 R2 IA64 with KGROUP enabled Cause: MSIX was disabled on W2K8 IA64 and on W2K8 R2 IA64 Fix: Enable MSIX on IA64 Impact: On W2K8 SP1 IA64 - MSFT's fix KBKB957018 must be installed, otherwise Miniport installation on top of evbd may intermittently fail. On all other Windows flavors - No impact. 5. Problem: CQ40964 - 57711 fails to wake up from S4. Cause: Hardware was programmed to WOL on incorrect phase on move to d3 flow. Fix: Program the hardware in the correct phase. Impact: None. Version 5.0.19 (June 1, 2009) ============================= Fixes ----- 1. Problem: Allow enabling and disabling the fan failure mechanism for different PHY types doesn't function (nvram option 83). Cause: The option was overridden to always enable fan failure detection. Fix: Remove the overwriting code. Impact: None. 2. Problem: Module compliant event log and module over-current event logs are truncated Cause: Unable to print event log with variable length Fix: Use hardcoded event logs instead of event logs from nvram file. Impact: Warning message is not to be used in the modules nvram file. 3. Problem: CQ41487 - Driver asserts on TCP rx flow while running unidirectional offloadstress test. Cause: OS sends more than one Rx buffers with partially filled buffer flag. Fix: To allow processing only single Rx buffer with partially filled buffer flag. Impact: None 4. Problem: CQ41541 - general attention bits assert in eVBD. Cause: Device enabled with TOE RSS option has no initialized indirection table in RAM till 1st RSS update from OS. Non valid values in indirection table may be used by FW causing assertion . Fix: Initialize indirection table in RAM. Force disabling TOE RSS in multifunction mode. Impact: None Enhancements ------------ 1. Request: Prevent unreasonable assertions caused by race condition Rx/Tx completions processed on different CPUs Change: Needed statuses of connection is checked on final completion stage. Impact: None. 2. Request: Add support for BCM8727 without over current detection (BCM8727_NOC). Change: As requested. Impact: None. Version 5.0.18 (May 26, 2009) ============================= Fixes ----- 1. Problem: CQ41307 - break at evbda on TCP RX ramrod complete. Cause: Caused by race condition Rx/Tx completions processed on different CPUs Fix: Needed parameters is extracted under lock before completion processing. Impact: None. 2. Problem: CQ41147 - (iSCSI Offload) System break while passing traffic on Equallogic target. Cause: The MSS value of an offload connection was not multiple of 4 as the iSCSI FW expects. Fix: If the MSS value is not multiple of 4, the driver will truncate it when reporting to the FW. Impact: None. 3. Problem: CQ41212 - NDISTest 6.0 1c_mini6rssoids fails on Windows 7 kgroup testing. Cause: RSS chain count calculation algorithm. Fix: In case number of CPU's in a kgroup or system is less than 4 - default RSS chain count will be equal to CPU's count. Impact: Windows 7 only. 4. Problem: CQ38947 - Sparta script TCP_ChimneyOffload fails test “t73”. Cause: Connection was uploaded due to Doubt-Reachability in persist state. Change: Indicate Doubt-Reachability only if not in persist. Impact: None. 5. Problem: Sparta script TCP_ZeroWindow fails. Cause: Persist probe was counted as retransmit, causing maxRT to be exceeded too early when transmitting probe retries. Change: Don't count the persist probe in maxRT check. Impact: None. 6. Problem: iSCSI LocalCompletionTest fails in internal unit test tool. Cause: Firmware bug. Change: Fix cIscsiCompletion bit size variables, Binary division ASM MACRO. Impact: None. 7. Problem: CQ41358 - Intermittent 30 sec. WatchDog break at evbdx during system shutdown. Cause: In some systems (mainly with couple of 57710/57711 devices), due to overload, we might hit WatchDog assert due to long wait time in DPC (Wait for SW<-->HW operations complete). Change: While going to S4/S5, we reset the chip and in that case we might not get completion for some of our SW<-->HW operations. in case we know we are on S4/S5 process, we can skip the waiting time and this way prevent the WatchDog assert. Impact: None. 8. Problem: Sparta script TCP_ChimneyOffload fails test “t61”. Cause: Push timer was not set for partially filled receive request after offload. Change: Support for handling partially filled receive request was added. 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: Added nvram option 83 to indicate if the fan failure detection should be enabled according to the PHY type, disabled or enabled. Impact: None. 3. Request: Support firmware flow control when consuming SGEs. Change: Added check for Flow control when consuming SGEs from host. Impact: None. 4. Request: Avoid excessive OS memory interface using for offloaded connection. Change: As requested. Impact: None. 5. Request: Add support for DCC spec 1.6 Change: As requested. Impact: None. Version 5.0.17 (May 20, 2009) ============================= Fixes ----- 1. Problem: Assertion at NDIS60 miniport. Cause: Non initialized indirection table in VBD. Fix: Initialize whole indirection table on init. Impact: None. 2. Problem: CQ41146 - Break at VBD driver when running a bi-dir sockdie stress on the GOS Cause: Assertion in VBD on zero byte receive request for already closed connection. Fix: Remove assertion, return success code. Impact: None. 3. Problem: CQ40851, 40627, 41179, 40991 - System break during driver load on x86 systems Cause: Wrong logic in the driver caused faults in HW blocks initializations made by DMAE commands. Fix: Fix wrong logic of memory address calculation that's being used in DMAE commands. Impact: None. Enhancements ------------ 1. Request: Add support for BCM8481 SPI-ROM upgrade. Change: As requested Impact: None 2. Request: Prevent locks overlapping, unreasonable sharing lock between NDIS & iSCSI facilities, excessive lock's acquiring working with connection's physical blocks. Change: As requested Impact: iSCSI 3. Request: CQ41254 Add 57711 support. Change: As Requested. Impact: None. 4. Request: Add required IOCTLs to support PHY FW upgrade. Change: Add 3 IOCTL's to VBD: PHY FW upgrade init, PHY FW upgrade done, and PHY re-init after upgrade. Add CL45 MDIO IOCTL support. Impact: None. 5. Request: Comply with Windows 7 WOL capabilities query. Change: As Requested. Impact: Windows 7 only. Version 5.0.16 (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. Fix: Firmware fix. Impact: None. 2. Problem: Sparta script TCP_StateConformance fails several tests. Cause: Packets with in-order SYN are both uploaded in CLOSED state and forwarded via L2. Fix: Do not forward such packets via L2. Impact: None. 3. Problem: Sparta script TCP_ChimneyOffload fails test “t53”. Cause: When invalidating connection after exceeding maxRT_time or maxRT_count, snd_nxt was erroneously set back to snd_una. Fix: snd_nxt remains as is at the above cases. Impact: None. 4. Problem: Sparta script TCP_ChimneyOffload fails test “t70”. Cause: When arming the RTO timer, max_RT value was not taken into consideration. Fix: Arm the timer to the minimum between RTO and the remaining time till max_RT is reached. Impact: None. Version 5.0.15 (May 13, 2009) ============================= Fixes ----- 1. Problem: CQ36705 - Performance is lower when FC is forced than disabled. Cause: L2 Firmware flow control was enabled for BCM57711/E and caused performance decrease. Fix: Disabled L2 firmware flow control by default (can be changed using registry). Impact: None. 2. Problem: CQ40927 System halt during VBD load/unload when iSCSI client is enumerated. Cause: The code of the halted function was located in a paged memory, which caused a page fault when the IRQL level was high. Fix: Locate the function's code in a non-paged memory. Impact: None. 3. Problem: CQ40878, CQ41072 - ISCSI L2 connection load failed (MF mode). Cause: Firmware miscalculated HC address at context initialization. Change: Address calculation was fixed. Impact: None. 4. 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. Fix: 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 5. Problem: CQ41000 - Target is not connected after load eVBD+NDIS during DVD installation, also not able to iSCSI boot from OS image created by DVD. Cause: At the time that SFP+ module plugged-in was triggered, driver enabled the module while ignoring link change. Fix: Check for link changes during module plugged in/out. Impact: None. 6. 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. Fix: When setting 10G, enforce 10G configuration, and not relay on the default configuration. Impact: None. Enhancements ------------ 1. Request: Add "Pause On Host Exhausted Ring" to advanced properties (only for BCM57711/E devices). Change: As requested. Impact: None - "Disabled" is the default value (as older versions). 2. Request: Change the way that port statistics are written to MCP scratchpad for NCSI statistics support convenience. Change: As requested. Impact: None. Version 5.0.14 (May 7, 2009) ============================ Fixes ----- 1. Problem: CQ40774 - Break at “evbda!lm_tcp_tx_terminate_ramrod_complete”. Cause: Assertion caused by race condition Rx/Tx completions processed on different CPUs Fix: Needed parameters inspection is moved to final event completion Impact: None. 2. Problem: CQ40838 - Break at “evbda!lm_tcp_rx_abortive_disconnect_ramrod_complete" Cause: Assertion caused by collision connection's resets from both sides Fix: Needed state inspection is moved to final event completion Impact: None. 3. Problem: CQ40300 - XFP adapter shows link up in network properties with no cable. Cause: Link status register was updated long after interrupt was triggered. Fix: Check that RX PMD Loss of Sync bit is cleared and RX PMD Sync Acquired bit is set to detect link. Impact: None. 4. 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. Fix: 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. 5. Problem: CQ40848, CQ40835 - System breaks due to a firmware assert – previously resolved by a workaround. Cause: Firmware asserted when PCI read latency for RX BD ring was longer then 20usec. Fix: Replace the workaround by a flow which polls on the RX BD ring every 4usec. Impact: None. 6. Problem: CQ38949 Failure in Sparta script TCP_ReceiveIndications. Cause: Window update was not sent for partially filled “no_push” application buffers. Fix: Firmware will release the placed bytes, resulting with window update. Impact: None. Enhancements ------------ 1. Request: CQ40976 - Add user control for "TOE RSS" enablement/disablement via BACS. Change: As requested Impact: None. 2. Request: Add fan-failure check for BCM8727. Change: As requested Impact: None. 3. Request: Add additional support for BCM8727. Change: Add support module detection, over-current detection and SFP+ EEPROM access. Impact: None. Version 5.0.13 (April 30, 2009) =============================== Fixes ----- 1. Problem: CQ40848, CQ40835 (ETH)- System breaks due to a FW assert(BCM57710). Cause: Firmware asserted when PCI read latency for RX BD ring was longer then 20usec. Fix: Implemented firmware workaround - wait for 20msec instead of 20usec. Impact: None. 2. Problem: CQ40775 - BSOD when running on systems with more than 16 CPU's. Cause: Driver code was limited hard coded to support up to 16 CPU's. in case more than 16 CPU's exists in system, memory overrun might happen which might cause unexpected behaviors. Fix: Increase the driver code to support up to 256 CPU's systems. Impact: None. 3. Problem: CQ40884 - BSOD when loading driver on BCM57710 device. Cause: For some reason yet to be found, scratch pad address of port statistics read by driver is invalid. Fix: Verify scratch addresses by driver, in case not valid - don't write statistics to MCP scratch pad. Impact: In case non valid address is read - no management statistics will be written. Enhancements ------------ 1. Request: CQ39070 - Theoretical deadlock when many connections with large OOO isles Change: Collect isles staistics and upload connecion/s if resources consumping by isle/s exceeds thresholds (controlled via registry) Impact: None. 2. Request: Add support for new MTU registry key for iSCSI device to support Jumbo Frame. Change: As requested. Impact: None. 3. Request: CQ36705,CQ37054,CQ37281 and CQ37373 - Performance improvements in TX scenarios. Change: Implemented new L2 firmware flows. Impact: None. Version 5.0.12 (April 28, 2009) =============================== Fixes ----- 1. Problem: CQ40823, CQ40829 - System breaks when running sockdie stress test (BCM57710). Cause: Wrong register initialization in PXP HW block. Fix: Fixed register initialization. Impact: None. Version 5.0.11 (April 27, 2009) =============================== Fixes ----- 1. Problem: Excessive freeing of physical memory pool for non NDIS clients Cause: Non initialized parameter of freeing threshold Fix: Default Initialization of needed parameter . Impact: None. 2. Problem: CQ40799, CQ40800: System crash during client setup, when iSCSI client is present. Cause: Interrupt wasn't generated for ISCSI client due to wrong write by firmware. Fix: Firmware was fixed. (fw version 5.0.8) Impact: None. 3. Problem: BCM8481 is not able to link with 10/100 switch. Cause: XGXS was initializaed to work in none-SGMII mode. Fix: Set XGXS to work in SGMII mode if link speed is slower the 1G. Impact: None. 4. Problem: CQ38358 BCM957711T1111 fiber board: System lock up during load/unload bacs diag combo. Cause: One device doesn't get CPU in order to complete the init flow while other device in chip_reset flow is in DISPATCH_LEVEL and in wait state (forever - until ASSERT). the issue is not board specific though it might happen in BCM957711T1111 more frequent due to timing issue. Fix: Call chip_reset only on PASSIVE_IRQL. Impact: None. Enhancements ------------ 1. Request: Avoid excessive acquiring of locks in driver Change: TOE mechanisms (returning buffers to pool and compesation rx queues) were modified to optimize locks acquiring Impact: None. 2. Request: Add initial support for BCM8727. Change: Add support for the new dual-port SFP+ phy. Impact: None. Version 5.0.10 (April 23, 2009) =============================== Fixes ----- 1. Problem: CQ39598 - iSCSI Offload: Break during HBA load/unload. Cause: Wrong logic in error handling path of driver load, led to unclean unload of the driver in case of an error, and assert upon next load. Fix: Fixed error handling path of driver load. Impact: None. Enhancements ------------ 1. Request: Rewrite Eth RX flows for performance improvement. Includes: + Separating Ustorm eth packet handler to two handlers, RSC packet handler and non RSC packet handler. + Use of double buffer for RX BDs, allowing improved performance of single-connection scenarios. + Many ASM-level and flow-level optimizations. Change: As requested. Impact: None. Version 5.0.9 (April 21, 2009) ============================== Fixes ----- 1. Problem: CQ39709 - Packets are 4 byte short when VLAN enabled. Cause: 4 byte room for VLAN header is allocated from payload. Fix: VLAN header is not part of payload. Payload size is not reduced. Impact: None. 2. Problem: CQ39022 - Rx traffic may stall upon "zero bytes receive request". Cause: Sytem sends zero byte rx request during indication (rejects one) and waits for next indication, driver after failed indication waits for rx buffer. Fix: Detect zero byte request during indication and indicat rejected data once more. Impact: None. 3. Problem: CQ40448,CQ40467 - EVBD "Unbind-bind" flow fails in multi-clients scenario. Cause: Driver was not able to zero the status block "sync line"s in RAM. As a result, old values affected the run after the bind process. Change: Add macros for status blocks sync lines, to be initialized by the driver. Reset relevant HC parameters on unbind. Impact: None. 4. Problem: CQ40623 - TOE scenarios crash under stress. Cause: Firmware could assert when extending a TCP isle to the left while crossing an application buffer. Change: Firmware was fixed. Impact: None. 5. Problem: CQ39216 - Connections upload can be stalled when RSS is enabled. Cause: Interrupts could have been delayed by firmware in some corner cases at the present of RSS update ramrod. Change: Firmware was fixed. Impact: None. 6. Problem: Failures in tcp_chimneyOffload_ipv6 Sparta script. Cause: Inconsistency between firmware data at upload and actual packets transmitted on the wire if maximum number of allowed retransmissions is exceeded. Change: Correct firmware data if maximum retransmissions are exceeded. Impact: None. 7. Problem: CQ40239,CQ40379,CQ40314 - Chip gets stuck on partial PDU header reception. Cause: Same PXP queue was used for both read and write of partial PDU header. Change: Separate read and write PXP queue. Impact: None. 8. Problem: Port statistics were not continuously written to MCP scratchpad. Cause: Relevant function was not called. Change: Call the relevant function. Impact: MCP scratchpad will now contain updated per port statistics. Enhancements ------------ 1. Request: Prevent TOE in a Windows 2000, Windows XP, Windows Vista environments and force L2 only. Change: As requested. Impact: None. 2. Request: Support interface to inform user level application about supported TOE connections. Change: As requested. Impact: None. Version 5.0.8 (April 16, 2009) ============================== Fixes ----- 1. Problem: CQ30465 - Sparta test TCP_Reassembly_TOE fails. Cause: Out-Of-Order FIN was dropped by firmware. Fix: Firmware now accepts and handles Out-Of-Order FIN. Impact: None. 2. Problem: CQ37336 - tcpm-tcpsecure-09 (Improving TCP's Robustness to Blind In-Window Attacks) was not supported, causing also "TCP_RcvNext" Sparta test for Win7 to fail. Cause: Support was not implemented by firmware. Change: Firmware now handles Out-Of-Order RST and SYN according to requirements. Impact: None. 3. Problem: CQ40177 - iSCSI boot: Crashdump driver does not dump when Kernel calls evbd bugcheck callback. Cause: When evbd bugcheck callback dumps it ruins registers that are set by iSCSI boot Crashdump driver. Change: Evbd bugcheck callback will not dump when iSCSI boot Crashdump driver is on. Impact: No dump file will be created by EVBD when iSCSI boot Crashdump driver is on. 4. Problem: CQ40409, CQ40411 - Assert in the driver during driver update or system reset. (BCM57711) Cause: During PMF migration the driver read the port's statistics from invalid address in the chip, causing HW attention. Change: Fix wrong logic of memory address calculation that's being used in DMAE commands. Impact: None. Enhancements ------------ 1. Request: CQ40226,CQ40380 - Add new devices to INF. Change: As requested. Impact: None. 2. Request: CQ38622 Improve NPP usage: Phase 3. (Resubmit) Change: ILT page is limited by 64K (if possible). Impact: None. 3. Request: For NX2/NX2_EV MSI-x capable devices we will allow an option in the advanced driver properties that will allow the user to change the amount of RSS queues and rx Change: As requested. Impact: None. 4. Request: Add an end user configurable option to the advanced driver properties that would allow for setting the INT-coalesing parameter. Change: As requested. Impact: None. 5. Request: Add an end user configurable option to the advanced driver properties that would allow for setting the receive buffers count. Change: As requested. Impact: None. Version 5.0.7 (April 07, 2009) ============================== Fixes ----- 1. 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. Fix: 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 2. Problem: BCM8481 is not able to link up in legacy speeds. Cause: Setting legacy speeds requires additional phy configuration, and speed analysis. Fix: Enable legacy speeds for this phy. Impact: None 3. Problem: VBD BSODs on disable/enable NDIS miniport when iSCSI miniport is up. Cause: New mechanism ILT pages allocation. Fix: Rollback "CQ38622 Improve NPP usage: Phase 3" (Changelist #67437) Impact: None. 4. Problem: CQ40415 Licensing error warning is reported when running scenarios with multiple TOE connections (BCM957710 only). Cause: Firmware initialized licensing parameters incorrectly. Change: Fixed firmware initialization. Impact: None. Enhancements ------------ 1. Request: CQ40378 Product version string for T5.0 should be 14.1.0 Change: As requested. Impact: None. 2. Request: CQ39955 Add support for DCC: enable/disable PF (link indication to OS). Change: As requested. Impact: None. 3. Request: CQ39957 Add support for DCC: per PF bandwidth allocation. Change: As requested. Impact: None. Version 5.0.6 (April 06, 2009) ============================== Fixes ----- 1. Problem: When several protocols (L2/TOE/ISCSI) work together, interrupt rate is the sum of all protocol rates, instead of the maximal. Cause: Per-protocol host coalescing code was independent, so when several protocols work together they generate the sum of interrupts. Change: Add dependency between the host coalescing states machines - when an interrupt is generated by a protocol, then all other protocols host coalescing code is reset. 2. Problem: CQ39681 Dtape test fails on OEM media changer device. Cause: Misalignment between driver and firmware. Change: Firmware fix. Impact: None. Enhancements ------------ 1. Request: CQ30453, CQ30465, CQ30483 Device should support extending a TCP isle to the left (Sparta verification). Change: As requested. Impact: CQ30465 CQ30483 will still fail due to other issues. 2. Request: Device should support dropping an existing TCP isle. Change: As requested. Impact: None. 3. Request: CQ38622 Improve NPP usage: Phase 2. Change: Size of block to L4 generic buffers allocation is flexible and controllable via registry. Default value is 64KB. Impact: None 4. Request: CQ38622 Improve NPP usage: Phase 3. Change: ILT page is limited by 64K (if possible). Impact: None Version 5.0.5 (April 2, 2009) ============================= Fixes ----- 1. Problem: Checked build assert when loading driver. Cause: Wrong assert in init flow when working with MSI-X. Fix: Fixed the assert. Impact: Impacts only driver's checked builds. Version 5.0.4 (March 31, 2009) ============================== Fixes ----- 1. Problem: Flow control doesn't work on multi function mode (related to CQ38526). Cause: Flow control is disabled hard coded. Fix: Enable flow control. Impact: None. 2. Problem: OS crash caused division by zero. Cause: Division by zero in some cases of internal statistics collection. Fix: Simplest preventing of the case by divider's checking. Impact: None. 3. Problem: CQ40119,CQ40228,CQ40232,CQ40191,CQ40196 - on load/unload test the set-mac ramrod was never completed, so the Windows driver throws assert that can happen mainly on load/unload tests on BCM57710 (with two ports toggling simultaneously) may fail. Cause: Bug in init code for BCM57710 only, caused defect initialization of "dynamic HC" area in Cstorm RAM. Fix: Fix firmware init code for BCM57710. Impact: None. 4. Problem: CQ40211 - On Windows that is running with MSI-X on a machine with 16 CPU's the driver ASSERT during boot after driver upgrade. Cause: The MSIX messages affinity that were configured “AllProcessorsInMachine” have only a subset (instead of all the CPUs in the machine) of the CPUs in the machine. This is checked on run time and the checked eVBD driver build ASSERTS in that case. Fix: Removed the ASSERT. Impact: If TOE RSS is disabled and MSIX is enabled we may use a subset of the CPUs on the machine.(the same applies to the default SB). 5. Problem: TOE - Various Sparta failures. Cause: The VBD fails connection offload in case of the following offload parameters: (send_max = send_una + unacked_data_len). Fix: Allow the legit case of offload parameters mentioned above. Impact: None. 6. Problem: CQ39532 TOE - Break while discovering IET target (MS iSCSI Initiator software). Cause: Wrong assert logic to verify that RST request was posted only once. Fix: Remove the wrong asserts. Impact: None. 7. Problem: CQ40078,CQ40088,CQ40200 Statistics assert in driver. Cause: Cross project firmware change of warning asserts mistakenly removed a branch, creating an illegal looping flow. Change: Fix firmware code. Impact: None. Enhancements: ------------- 1. Request: Add "per function" statistics support for NCSI management. Change: When first function in port is enabled - clear previous management statistics in all port's functions. When non-first function is enabled, it will accumulate function's statistics from management that might have been collected before function was disabled. Impact: None. 2. Request: Add flexibility to return generic buffers interface to prevent unwanted rings compensation. Change: Add parameters to relevant functions Impact: LM compilation 3. Request: CQ38622: Improve NPP usage: Part 1. Change: Allocate physical memory related to offloading connection as set of separate pages. Add API to connect set of noncontiguous pages to BD chain. Impact: None 4. Request: Disable Dynamic Host Coalescing (DHC) on SB initialization. Activate DHC for each protocol in relevant SB Change: As requested Impact: None 5. Request: Allocate needed memory (as last chance) to indicate buffered data on connection upload. Change: As requested Impact: None Version 5.0.3 (March 19, 2009) ============================== Fixes ----- 1. Problem: CQ39740 - DTM Stress test with IO failed. Cause: High contiguous memory consumption on x86 systems. Fix: Reduced consumption on x86 systems. Impact: None. 2. Problem: Absent ramrod assertion during RSS update with TOE RSS enabled. Cause: Because synchronization problem yet another thread try to access to already processed ramrod. Fix: Fix synchronization mechanism to allow exactly one thread complete RSS update by corresponding ramrod processing Impact: None. 3. Problem: Only 1800 TOE connections are supported on x86 and some x64 systems. Cause: Initialization problem Fix: Restore 1880 default TOE connections Impact: None. 4. Problem: (TOE) failures in Sparta script Tcp_ChimneyOffload (T54, T55, T56). Cause: Incorrect context initialization during connection Offload. Fix: Corrected context initialization. Impact: None. 5. Problem: CQ39929, CQ39932 - 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. Fix: Add RAM line for default SB to dynamic HC array. Impact: None. 6. Problem: eVBD should gracefully handle an offload request with invalid arguments. Cause: Wrong error handling when the stack offload connection is with the parameters: (send_max > send_una + unacked_data_len). Fix: Fixed error handling path. Impact: None. 7. Problem: CQ38640, CQ39843 - assert on statistics query function (not getting statistics too long). Cause: Statistics query frequency sometimes was too high (every 10 milliseconds). Fix: Reduced frequency as defined in spec (500 milliseconds). Impact: Statistics snapshot accuracy will slightly decrease. Enhancements: ------------- 1. Request: L4 Dynamic Host Coalescing must be enabled by default. Change: As requested Impact: None. Version 5.0.2 (March 11, 2009) ============================= Fixes ----- 1. 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. Fix: Set link led up on loopback test. Impact: None. 2. 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 BCM57711/BCM57711E. Fix: BCM8481 will connect LED4 signal to the BCM57711/BCM57711E LASI signal. The BCM57711/BCM57711E will use the NIG latching mechanism which allows to catch a link event even if the link toggles fast. Impact: None. 3. Problem: SFP+ (BCM8726) boards do not use flow-control. Cause: Flow control wasn't set for BCM8726. Fix: Set flow control according to configuration in BCM8726. Impact: None. 4. Problem: Client Memory (MDL)leak when ISCSI clients load/unload repeatedly and VBD stays. Cause: The Memory (MDL) resource was bound to the VBD. Fix: The Memory (MDL) resource is now bound to the ISCSI client. Impact: None. Enhancements: ------------- 1. Request: Init code more efficient. Change: Instead of running same code multiple times and deciding on each run whether to execute the write operation or not, run the code only once and decide off line, what code to run in which call. Impact: None. 2. Request: Support dynamic host coalescing for all protocols. Change: As Requested. Impact: None. Version 5.0.1 (March 4, 2009) ============================= Fixes ----- 1. Problem: CQ39675 - BSOD (ASSERT) when running CNIC. Cause: statistics collection timer wasn't call for ~30 seconds and ASSERT. The reason is due to very high CPU load (8K connections). Fix: Increase the timeout period. Impact: None. 2. Problem: New phy version (P14) of the BCM8726 unable to link up. Cause: The new phy version doesn't behave exactly like it's previous version (P13), hence requires some adjustments. Fix: 1. Microcode download requires write of another register. 2. Read from "Limiting/LRM mode" register before setting Limiting mode. Impact: No impact on P13. 3. Problem: CQ39674 - BSOD while updating driver to 5.0. Cause: DPC's rescheduling involving by TOE RSS implementation does not use common mechanism DPCs submission and disturb reference counter. It causes assertion. Fix: Update (if needed) the reference counter of dpc in case TOE RSS dpc's rescheduling Impact: None. 4. Problem: BSOD When loading driver on Windows XP OS. Cause: Calling a function which is not supported on earlier OS versions. Fix: Use alternative API. Impact: None. Enhancements: ------------- 1. Request: Chip debug dump through driver, will be per chip instead of per device. Change: As Requested. Impact: The chip debug dump through driver will be enabled by default. 2. Request: Rollback CFC delete optimization . Change: CFC delete optimization: Free CID delay is restored from version before TOE RSS implementation, controllable via registry. Impact: None. 3. Request: TOE RSS is enabled on systems later than W2K3 with x64 architecture and at least 8GB memory. Change: TOE RSS: a. Enabled by default on systems later than W2K3 with x64 architecture with memory greater than 8GB b. Set default toe connections to 8192 for all systems with x64 architecture with memory greater than 8GB Impact: None. 4. Request: CQ39765 - Add new devices to INF. Change: As Requested. Impact: None. 5. Request: The Doorbell Queue CID size reduced from 256 Bytes to 128 Bytes. Change: As Requested. Impact: Slight improvement in memory consumption. Version 5.0.0 (February 19, 2009) ================================= Fixes ----- 1. Problem: ETH FCS field was not counted in both RX and TX statistics. VLAN should not be counted in 57711E. Cause: Not implemented correctly Fix: fix the statistics code in RX and TX FW to support this. Impact: None. 2. Problem: CQ39452 - Assert (checked builds only) during shut down after running SockDie stress test. Cause: During shut down flow the driver waits for completion of scheduled task list up to 1 second, and asserts if there are still scheduled tasks after the wait period. Fix: Extend the wait period for tasks completion, it is possible that certain tasks (CFC_DELETE) can be scheduled to start later to the end of a 1 second wait period. Impact: None. 3. 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 in the BCM8072 and BCM8073. Fix: Lock the hardware using MDIO_RESOURCE when accessing the BCM8726 phy via MDIO. 4. Problem: CQ39169 - Network utilization dips observed in task manager. Cause: Statistics are collected using a timer, the timer's interval was not always equable. Fix: Added an algorithm that ensure as much as possible that statistics will be collected in constant intervals. 5. Problem: ext_phy_fw version for BCM8705 shows invalid number. Cause: BCM8705 has no microcode. Fix: Set BCM8705 version to 0. 6. 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. Fix: Ignore error code when setting limiting mode Enhancements: ------------- 1. Request: Select memory consumption for BCM57711E according to system's resources. Change: Minimal mode of memory consumption is selected for x86 systems and for systems with memory per function less than 1GB. Impact: None. 2. Request: Add disable option to the recording of second isle drops. Change: Added a bit in ram to control the recording of second isle drops Impact: None. 3. Request: Optimizations of RX TOE firmware. Change: NDC (Non Delayed Completion) completion is no longer sent to the driver. This in order to save cycles and RCQs. This completion was used for DCA, which is not activated. Impact: None. 4. Request: When TOE RX FW detects lack of host buffers, it should signal the HW to generate a flow-control message. Change: Support for Toe Rx flow control was added (57711 only). At the moment this feature is not functional by default (by setting the threshold for pause to Zero). Impact: None. 6. Request: CQ39380 related - Write a bit in shared memory for FW. Change: As requested. Impact: None. 7.Request: Add idle check support to FW debug dump through driver. Change: As Requested. Impact: None. 8.Request: Added support for TOE RSS (HSI changes). Change: As Requested. Impact: None. 9.Request: Xoff is now performed per function and not per port. Change: As Requested. Impact: None. 10.Request: Performed decoupling of generic buffers and completions in Xon/Xoff mechanism. Change: As Requested. Impact: None. 11. Request: Support TOE RSS Change: TOE RSS: Full support including indirection table update from OS CFC delete optimization: Free CID delay is zeroed by default, controllable via registry Statistics: Some values reflecting state of connection on its upload are added Impact: None. 12. Request: When MSIX is successfully connected and TOE RSS is disabled, the TOE CPU affinity will be all processors. When MSIX is successfully connected, the DPCs won't be bounded to a CPU. Change: As Requested. Impact: When MSIX is successfully connected and TOE RSS is disabled ,the TOE CPU affinity will be all processors instead of a specific CPU. 13. Request: The Doorbell Queue CID size reduced from 4k to 256 Byte. Change: As Requested. Impact: Number of offload connection capability will be larger (up to 8K connections on systems with x64 architecture and at least 8GB memory). 14. Request: TOE RSS is enabled on systems with x64 architecture and at least 8GB memory. Change: TOE RSS: a. Enabled by default on systems with x64 architecture with memory greater than 8GB b. Enabling by default TOE RSS on such systems means set default toe connections to 8192 c. l4_enable_rss modifies enable TOE RSS default value but does not change default toe connections value Impact: None. 15. Request: Performance optimization. Change: L2 host coalescing Impact: None. 16. Problem: CQ39553 - MSS violation with Chimney enabled. Cause: MSS calculated with room for time stamp TCP option before update by less remote MSS value can cause addition time stamp over possible remote MSS. Fix: Decrease MSS to prepare space for time stamp after final MSS calculation. Impact: None. 17. Problem: CQ39540 - eVBD should gracefully handle an offload request with invalid arguments. Cause: Wrong error handling when the stack offload connection is with the parameters: (SEND_NEXT > SEND_UNA) && (UNACKED_DATA == NULL). Fix: Fixed error handling path. Impact: None. Version 4.8.102 (March 16, 2009) ================================ 1. Problem: Flow control doesn't work on multi function mode. Cause: Flow control is disabled hard coded. Fix: Enable flow control. Impact: None. Version 4.8.101 (March 11, 2009) ================================ 1. Problem: CQ39740 - DTM Stress test with IO failed. Cause: High contiguous memory consumption on x86 systems. Fix: Reduced consumption on x86 systems. Impact: None. 2. Problem: BSOD When loading driver on Windows XP Operating system. Cause: Calling a function which is not supported on earlier OS. Fix: Use alternative API. Impact: None. Version 4.8.100 (February 26, 2009) =================================== Fixes ----- 1. Problem: CQ39553 - MSS violation with Chimney enabled. Cause: MSS calculated with room for time stamp TCP option before update by less remote MSS value can cause addition time stamp over possible remote MSS. Fix: Decrease MSS to prepare space for time stamp after final MSS calculation. Impact: None. 2. Problem: CQ39638 - PCIE error when chimeny enabled OID is used during shutdown. Cause: After the system has called us to handle a shutdown request and has put our device to low power state, Ndis may issue an OID to change offload parameters. This causes us to touch the hardware while it is in D3hot state which leads to NMI. Fix: The driver will not process the set OID request if system has called us to handle shutdown. A registry key is also introduced to stop the PCIe device from reporting non-fatal error reporting to system in case the device is being accessed at d3hot state. Impact: None. 3. Problem: CQ38727 - (Derived from BCM95709 bug) BSOD on some systems with LOM due to timers in VBD don't get cancel properly during driver unload. Cause: Timers were re-armed altough driver state was not running. Fix: Added extra delay to wait for timers to expired and make sure we don't re-arm timers when driver state is not DRIVER_STATE_RUNNING. Impact: None. Version 4.8.54 (February 10, 2009) ================================== Fixes ----- 1. Problem: CQ39469 - (iSCSI) Assert when disabling/enabling iSCSI PDO while connected to targets Cause: During iSCSI PDO unload, the driver used incorrect index values when cleaning the iSCSI EQ resources, causing mismatch between driver's and fw's EQ producer value upon next driver load, and indication of false completions. Fix: During iSCSI PDO unload, Use correct index values when cleaning iSCSI EQ chains. Impact: None. Version 4.8.53 (February 8, 2009) ================================= Fixes ----- 1. 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. Fix: Set pre-emphasis values in XGXS only for direct type boards. Impact: None. 2. Problem: ext_phy_fw version 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. Fix: During init phase of the BCM8706, wait until the firmware is loaded completely before reading the version number. Impact: None. 3. Problem: CQ39452 - Assert (checked builds only) during shut down after running SockDie stress test. Cause: During shut down flow the driver waits for completion of scheduled task list up to 1 second, and asserts if there are still scheduled tasks after the wait period. Fix: Extend the wait period for tasks completion, it is possible that certain tasks (CFC_DELETE) can be scheduled to start later to the end of a 1 second wait period. Impact: None. 4. Problem: CQ39469 - (iSCSI) Assert when disabling/enabling iSCSI PDO while connected to targets Cause: During iSCSI PDO unload, the driver used incorrect index values when cleaning the iSCSI EQ resources, causing mismatch between driver's and fw's EQ producer value upon next driver load, and indication of false completions. Fix: During iSCSI PDO unload, Use correct index values when cleaning iSCSI EQ chains. Impact: None. Enhancements: ------------- 1. Request: CQ39495 - Remove BCM57711E based PCI id's for oem customer. Change: As requested. Impact: None. 2. Request: CQ39449 - Remove BCM57711/BCM57711E PCI id's for oem customer. Change: As Requested. Impact: None. Version 4.8.52 (January 28, 2009) ================================= Fixes ----- 1. Problem: CQ39008 - System may NMI during system shutdown. Cause: After the system has called us to handle a shutdown request and has put our device to low power state, NDIS may issue an OID to clear the multicast address. This causes us to touch the hardware while it is in D3hot state which leads to NMI. Fix: The driver will not process the set OID request if system has called us to handle shutdown. Impact: None. Enhancements: ------------- 1. Request: CQ38106 - (Completion) add INTx Delay Support for 3rd Party PCIe Switch. Change: The change will be applied for the devices, no dependency with PCI BUS number as before. Impact: None. 2. Request: CQ39231 - Add new devices to INF. Change: As Requested. Impact: None. Version 4.8.51 (January 26, 2009) ================================= Fixes ----- 1. Problem: CQ39341 - W2K3/W2K8 IA64 BSOD loading driver. Cause: Incorrect alignment of parameters in code. Fix: Corrected parameters alignment. Impact: None. 2. Problem: CQ39334 - (TOE) Multiple Sparta failures in W2K3. Cause: Incorrect context initialization during connection Offload. Fix: Corrected context initialization. Impact: None. 3. Problem: (TOE) Possible miscalculation of persist probe counts, when offloading a connection in persist state. Cause: Firmware bug. Fix: Firmware bug was fixed. Impact: None. Enhancements: ------------- 1. Request: CQ39048 completion (Preconfigure specific 8706 XAUI registers for specific OEM) override NVRAM parameters only if .inf flag is on. Change: Added "preemphasis_enable" to .inf Impact: None. Version 4.8.50 (January 22, 2009) ================================= Fixes ----- 1. Problem: Transmit Histogram 1024Octetsto1522Octets and Over1522Octets had a 4 byte overlapping when working on BMAC. Cause: Incorrect spec definitions. Fix: Collect the relevant statistics from NIG and not from MAC. Impact: Issue could be seen only on BACS application. no functional impact. now fixed. 2. 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 Fix: In order for control the Serdes over Clause45, (and not Clause22), it requires first one time register setting in Clause22. Impact: None. 3. 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. Fix: Save the firmware version of all external phys in shared memory, after firmware is loaded. Impact: None. 4. 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. Fix: From now on use interrupt driven event using GPIO3, to detect module plugged in/out, and execute module detection then. Impact: None. 5. Problem: (TOE) failures in Sparta script Tcp_ChimneyOffload (T54, T55, T56). Cause: TCP state machine handles incorrectly offload of connection in persist state (offloads as normal state). Fix: State machine recognizes connection is in persist state according to sndWndProbeCount and initializes context accordingly. Impact: None. 6. Problem: (TOE) failures in Sparta script Tcp_ChimneyOffload (T71, T72, T73). Cause: Retransmission timer and counter were measured from first retransmit. Fix: Retransmission timer and counter are now measured from transmit. Impact: None. 7. Problem: (TOE) Variables in xon/xoff warning were corrupted. Cause: Variables could have been changed due to other running handlers. Fix: Relocate the warning. Impact: None. Enhancements: ------------- 1. Request: CQ38106 - Add INTx Delay Support for 3rd Party PCIe Switch. Change: As requested. Impact: Only specific 3rd party PCIe id's will be effected. 2. 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. 3. Request: BCM8726 should be able to link up at 1G. Change: Add support for 1G for BCM8726. Impact: When requested speed it 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. 4. Request: Add GRC DUMP support to FW debug dump through driver. Change: As Requested. Impact: None. 5. Request: CQ39048 - Preconfigure specific 8706 XAUI registers for specific OEM. Change: 8706 XAUI registers will be configured only for specific device id's. Impact: Specific devices only will be effected. 6. Request: (TOE) Add path relink support in the VBD, due to failure in Sparta script Tcp_ChimneyOffload (T40). Cause: As requested. Impact: None. Version 4.8.17 (January 15, 2009) ================================= Fixes ----- 1. Problem: CQ39181 - rfc2544 test performance degraded from eVBD 4.8.7 to 4.8.11 on BCM57711E. Cause: The VBD allocated less memory for the L2 rings in the driver, this caused the FW to drop packets due to lack of space in the L2 rings. Fix: Rollback the L2 ring sizes,in order to mach 4.8.7 performance results. Impact: None. Version 4.8.16 (January 12, 2009) ================================= Fixes ----- 1. Problem: CQ39167 - iSCSI Offload: Disks offline after coming back from hibernation. Cause: The VBD didn't perform clean unload to the iSCSI client while going to S4, causing invalid initializations while coming back. Fix: Fix driver unload flow for hibernation. Impact: None. Version 4.8.15 (January 5, 2009) ================================ Fixes ----- 1. Problem: CQ39111 - Unable to Resume from Windows after Waking up from S4. Cause: In the fix for CQ38750 the driver disabled the PCIE Bus Master, in S4 flow it should re-enable it. Fix: Re-enable PCIE Bus Master when resuming from D3. Impact: None. Version 4.8.14 (January 1, 2009) ================================ Fixes ----- 1. Problem: CQ39011 - iBoot BSOD seen during device enumeration in Device bay 7 (BCM57711E) when booting Win2003-64 Cause: F6 install creates a service based on binary name. The service name is different from the one that is created by INF install. This causes OS creating two driver objects that share the same binary. In some cases, it will corrupt some global variables setup by the running instance of the service. Fix: Modify the driver not to explicitly initialize the global linked list. Impact: None. Version 4.8.13 (December 31, 2008) ================================== Fixes ----- 1. Problem: CQ38750 - Some systems Encounters BSOD (NMI Error) when Running a Continuous Reboot Test. Cause: In rare cases firmware might initiate PCIE DMA operations after the PCI function is already in D3 state and before BME was cleared. This violation cause NMI BSOD. Fix: The driver disable the PCIE Bus Master and wait for last pending completion before the function state change to D3. Impact: None. 2. Problem: Potential bug - Driver might crash on IA-64 systems when transmitting on all 8 functions. 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. Fix: Add write barrier after updating the BD data and before updating the BD producer. Impact: None. Version 4.8.12 (December 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. Fix: In case port-swap is enabled in the NIG, access MDC/MDIO via EMAC1 Impact: None. 2. Problem: BCM8726 wasn't actually reset when driver was unloaded Cause: The phy hardware reset affects both ports and thus wasn't used. Fix: When link needs to be reset, reboot the micro-controller of the BCM8726. Impact: None. 3. Problem: BCM8726 wasn't really reset during init. Cause: The phy is connected using static port-swap, hence the reset should have been triggered through the opposite port from the spec. Fix: Set gpio1 during common init from port1 instead of port0. Impact: None. 4. Problem: CQ38495 - BCM57711E Intermittently encounters BSOD (0x8E) when placing into S4 Sleep State. Cause: When "Allow the computer to turn off this device to save power." check box on Power Management tab was checked, OS didn't unbind the VBD, and therefore structures and flows was not closed gracefully. Fix: Fixed relevant flow. Impact: None. 5. Problem: Permissive fw logic caused BCM57711E to enter “xoff - no buffers” state (drops packets) Cause: Unnecessary dependencies in fw's rx flows. Fix: Separate xon/xoff mechanism to be per fw resource. Impact: None. 6. 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. Fix: Firmware maintains separate byte/pkt counters for no-buff discards of unicast/broadcast/multicast. Impact: None. 7. Problem: iSCSI - High non-paged host memory consumption. Cause: Unnecessary optimization of chipset<->memory bandwidth in expense of memory consumption. Fix: Changed R2TQE size from 64 to 8. Impact: 40% drop in non paged memory consumption. 8. Problem: CQ39051 - Assert during reboot after running netperf stress with iscsi background traffic. Cause: During reset flow, the VBD called OIS callback function when the client state was already set to inactive, and invalid pointers were referenced. Fix: Once the VBD's client reference counter reaches zero, the VBD won't call client callback functions. Impact: None. Enhancements: ------------- 1. Request: Driver will set the memory consumption for BCM57711E according to system's resources. Change: Minimal mode of memory consumption is set according to the system's architecture and memory. Impact: None. Version 4.8.11 (December 18, 2008) ================================== Fixes ----- 1. Problem: Windows XP should not enumerate iSCSI device. (CQ38477 related) Cause: There should be check for OS_TYPE before iSCSI enumeration. Fix: Added relevant check Impact: None. 2. Problem: NMI is seen during system shutdown when there is an iSCSI connection running over TOE. (CQ38895 related) Cause: After the system puts our device into D3Hot, the Microsoft iSCSI initiator posts a transmit buffer. As a result our device reports a non-fatal error back to the bridge which then issues a NMI. Fix: Changed the driver to fail the transmit buffer post if the device's shutdown routine has been called. Impact: None. 3. Problem: (TOE) Windows 7 Sparta script TCP_Urgent_TOE fails. Cause: This script expects urgent retransmitted packet to be answered with ack. Today's code silently drops such packet. Fix: Answer out of window URG packet with ack. Impact: None. 4. Problem: (TOE) Windows 7 Sparta script TCP_WindowUpdate fails. Cause: Script expects ack processing of second isle. Fix: We still don't support second isle, but perform ack processing. Impact: None. 5. Problem: (TOE) Windows 7 Sparta scripts TCP_AckFrequency and TCP_CongestionControl fail. Cause: Scripts expect window updates outside delayed ack to be sent only if decremented window was advertised to peer. Our solution advertises window updates as soon as possible. Fix: Window updates are sent outside of delayed ack only if previous window was decremented. Impact: None. 6. Problem: (iSCSI) 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. Fix: After SYN retransmit is timed-out, keep the RX state, but set error flag which indicate to drop any further segments. Impact: None. 7. Problem: Byte counters statistics did not count the 4 FCS bytes. Cause: The FCS bytes were not counted in Tx & Rx statistics. Fix: Fixed by firmware. Impact: None. Version 4.8.10 (December 15, 2008) ================================== Fixes ----- 1. Problem: CQ38959 - Assert in the driver during reboot with enumerated iSCSI client. Cause: Uncompleted iSCSI client unload task asserted for timeout during reset flow. Fix: During reset flow, the driver won't assert for uncompleted tasks. Impact: None. 2. Problem: CQ38977 - No TOE TX Chariot traffic with 1MB I/O Size. Cause: Wrong handling of large application buffer in the TX flow. Fix: Set appropriate thresholds to notify the fw in case there is an application buffer that fills the entire TX chain. Impact: None. Enhancements: ------------- 1. Request: CQ38972 - Add secondary link status indication (partition link vs. PHY link) Change: As Requested. Impact: None. 2. Request: (TOE) Enforce "Short Loop" window update mode in the driver. Change: As Requested. Impact: None. Version 4.8.9 (December 11, 2008) ================================= Fixes ----- 1. Problem: CQ38869 (BCM57711E IA64)- FW assert while running NDIS 6 test 1c_mini6send. Cause: A memory barrier was missing before updating a FW counter, that caused the FW to have inconsistent data. Fix: Added the memory barrier before updating to the counter. Impact: None. 2. Problem: CQ38112 - Timeout message while running OEM Diagnostic test. Cause: Buffered data annexed with offload waits for Rx buffers from OS and blocks indications. In this scenario the OS is not posting Rx buffers, causing the connection to get stuck. Fix: Allow indication of buffered data. Impact: None. 3. Problem: (iSCSI) 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. Fix: This bit is reset correctly. Impact: None. 4. Problem: (iSCSI) Connection wasn't initialized with the right parameters for the TX in BCM57711E. Cause: Initialization was done using BCM57710 parameters. Fix: retrieve the correct parameters. Impact: None. 5. Problem: (iSCSI) CQ38886 & CQ38888 - Wrong vlan settings for iSCSI in BCM57711E. The packet was transmitted with bogus IP length, and no vlan parameters. Cause: The vlan flag and the header builder command size weren't set correctly. Fix: These bits are set correctly. Impact: None. 6. Problem: CQ38525 - Memory shortage while Running L4 Offload Related Stress Test Scenario in W2K3x86 Edition. Cause: Stress scenario in which generic buffers were not being passed to the fw, causing the device to be stuck in XOFF. Fix: Add another path in which the driver will update the fw's generic buffer chain; upon generic buffers return from the NDIS miniport. Impact: None. 7. Problem: CQ38706 - Assert in the driver during reboot with enumerated iSCSI client. Cause: Reset flow does not acquiesce TOE traffic, causing other tasks including the iSCSI client unload ones to get stuck. Fix: During reset flow, the driver won't assert for uncompleted tasks. The imminent reset will cleanup everything. Impact: None. Enhancements: ------------- 1. Request: CQ38619 - Remove BCM957711T0191/BCM957711T0192 from INF Change: As Requested. Impact: None. 2. Request: Reduce memory consumption for BCM57711E. Change: Minimal mode of memory consumption is supported Impact: None. 3. Request: Change upgrade external PHY Firmware interface with BMAPI to happen only on diagnostics mode. (doesn't require system reboot) Change: Change as requested. Impact: None. Version 4.8.8 (December 8, 2008) ================================ Fixes ----- 1. Problem: CQ38880, 38890 - Driver crash while running L4 stress tests. Cause: During connection upload, the connection's resources were being released too early, and later were being examined. Fix: Postpone resources release during the upload flow. Impact: None. Version 4.8.7 (December 4, 2008) ================================ Fixes ----- 1. Problem: CQ38342 - BCM57711E Driver halts when trying to upgrade to a new driver version. Cause: Race condition when link change occur upon driver unload left the link state machine in wrong state and caused an assert. Fix: The flow now take care of this possibility. Impact: None. 2. Problem: CQ38801 - Driver crash while running S4 ACPI Stress. Cause: During ISCSI client bind the VBD didn't clean all the resource allocated, in case of ISCSI recourse allocation failure. Fix: Cleaned all the resource in case of ISCSI recourse allocation failure during ISCSI client bind. Impact: None. 3. Problem: CQ38814 - Assert in checked build of the driver while running, chariot stress and driver load/unload. Cause: During driver load, the driver asserts for memory allocation failure. Fix: Remove the assert for memory allocation failure. Impact: NDIS Miniport load will fail and result a yellow bang (instead of BSOD). 4. Problem: CQ38805 - (iSCSI) BSOD during WHQL Plug&Play Driver test. Cause: Race condition in the driver when uploading a connection between two requests to release the connection's resources, one from the VBD and one from the OIS Miniport. Fix: Fixed connection upload flow to circumvent race. Impact: None. 5. 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. Fix: In case of passive copper cables, link up in LRM mode. Impact: None. Enhancements: ------------- 1. Request: Complete CQ34926 to support more than one chip installed on a system. Change: As Requested. Impact: None. 2. Request: Add interface for BACS to indicate completion of upgrade external PHY Firmware Change: Change as requested. Impact: None. Version 4.8.6 (December 1, 2008) ================================= Fixes ----- 1. Problem: System sluggish when upgrading external PHY firmware. Cause: Procedure was executed on DISPATCH IRQL Fix: Change the upgrade external PHY Firmware via BACS to run on PASSIVE IRQL Impact: None. 2. Problem: CQ38726 - On IA64 in W2K8 the Mini Port Driver installation failed (yellow Bang) . Cause: The driver doesn't fully supported MSIX on IA64. Fix: Disabled MSIX on IA64. Impact: None. 3. Problem: CQ38636 - On IA64 driver Asserts when running bidirectional chariot traffic. Cause: The driver used packing macro that caused a 32 bit value to be stored byte by byte. The fw read this values and asserted. Fix: The packing macro were redundant and removed. Impact: None. Version 4.8.5 (November 25, 2008) ================================= Fixes ----- 1. Problem: CQ38434 - Driver assert after system boot in BCM57711E. Cause: Wrong speed link was indicated to NDIS miniport in case MAX bandwidth was set to zero. Fix: Incase of zero MAX bandwidth the driver now indicate correct value. Impact: None. 2. Problem: CQ37634 - In BCM57711E the driver sometimes assert when working in MSIX mode. Cause: The driver didn't handle properly the case that less than the requested MSIX messages were actually granted. Fix: Handled the case properly. Impact: None. 3. Problem: CQ38112, CQ38525, CQ38538(TOE) – Data transfer can stop due to zeroed advertised window, when working with application buffers that are larger then the initial receive window. Cause: Possible deadlock when exiting out-of-order state, due to a firmware bug regarding handling the push timer and buffer release. Fix: Firmware bug was fixed. Impact: None. Enhancements: ------------- 1. Request: Added CPU Affinity in MSIX mode. Change: As Requested. Impact: None. Version 4.8.4 (November 20, 2008) ================================= Fixes ----- 1. Problem: CQ38528 - System breaks when running sockdie stress test. Cause: Wrong assert logic was applied in connection upload flow. Fix: Fixed assertion. Impact: None. 2. Problem: CQ38504 - NDIS path uses VLAN parameter that is configured for iSCSI offload path. Cause: VBD driver returns VLAN parameter to NDIS miniport regardless it's booted with offload or non-offload path. Fix: Changed to return VLAN parameter to NDIS miniport only if it's booted with non-offload path. Impact: None. 3. Problem: BCM57711: In vlan classification mode. No receive traffic arrives to host. Cause: Search in cam failed because of mismatch between the vlan on the packet and the configured cam entries. Fix: Added new configuration parameter which specifies whether to include the vlan in the cam search. Impact: None. 4. Problem: CQ38509 (TOE) -Sparta ZeroWindow tests failed. Cause: Erroneous changes that were made to the firmware persist flows. Fix: Persist flows changes were reverted. Impact: None. 5. Problem: CQ38139 (iSCSI) - BCM57711/BCM57710 iSCSI Performance < 40% of Peak Advertised. Cause: Inefficient implementation of ring management in firmware. Fix: Firmware fix. Impact: SQ size must be an integral power of 2. Enhancements: ------------- 1. Request: Add BCM957711T0191/BCM957711T0192 to INF Change: As Requested. Impact: None. Version 4.8.3 (November 13, 2008) ================================= Fixes ----- 1. Problem: CQ38408 - Unchecking TOE feature using BACS causes system to hang. Cause: Wrong handling of valid CID ranges for TOE protocol caused a connection to get offloaded, even though TOE feature was disabled. Fix: Fixed handling of valid CID ranges for TOE protocol. Impact: None. 2. Problem: BCM957711A1111G Sometimes loopback test might fail. Cause: mdio register access is sometimes broken since PHY was not hard reset. Fix: Pull GPIO1 low for 1 ms after power-on. Impact: None. 3. Problem: CQ38275 – System crash after 27 hours of C-NIC stress. Cause: Chip was stack due to race condition in the receiver flow that caused a deadlock. Fix: Implemented FW workaround to avoid entering the race condition. Impact: None. Enhancements: ------------- 1. Request: ILT table of E1H may be 4K aligned instead of ILT client page size aligned Change: As Requested. Impact: None. 2. Request: (part of Cont35465 ) Update to latest SPI ROM procedure to solve potential problems with write-protect. Change: Change as requested. Impact: None. 3. Request: Addd interface to upgrade external PHY Firmware via BACS Change: Change as requested. Impact: None. Version 4.8.2 (November 6, 2008) ================================ Fixes ----- 1. Problem: CQ38221 - After disabling RSS when OIS is present, the driver may not correctly reload what in return will prevent network traffic to resume. Cause: When the NDIS miniport loads after disabling RSS and when the OIS client is up The eVBD issue asynchronous call to the chip in a state it shouldn't. Fix: Clean eVBD RSS parameter when the driver unloads after disabling RSS. Impact: None Enhancements: ------------- 1. Request: Enable iSCSI Offload for BCM57711. Change: As Requested. Impact: None. Version 4.8.1 (November 2, 2008) ================================= Fixes ----- 1. Problem: CQ37832 - System crash. Cause: Access to unsupported address in FW PRAM. Fix: Moved all operational FW code to legal PRAM addresses. Impact: None. 2. Problem: CQ37615 (TOE) - chariot reports data validate error (additional fix) Cause: Race in TOE FW between reset/invalidate ramrods, reset receive and retransmit flows. Fix: Fixed (FW 4.8.1 + DRV) reset/invalidate ramrods and reset receive flows to circumvent race. Impact: None. Enhancements: ------------- 1. Request: Add BCM57711/BCM57710 support for IA64. Change: As Requested. Impact: None. Version 4.8.0 (October 23, 2008) ================================ Enhancements: ------------- 1. Request: Added 57711 devices to INF. Change: As Requested. Impact: None. 2. Request: iSCSI PDO enumeration removed. Change: As Requested. Impact: None. Version 4.6.21 (October 16, 2008) ================================= Fixes ----- 1. Problem: CQ37878 - Windows 2008 DVD installation over iSCSI offload path doesn't complete. Cause: Driver instance was not created during DVD installation after the first reboot. eVBD driver doesn't query create_pdo_flag correctly and therefore iSCSI offload instance was not enumerated. Fix: Changed driver to enumerate iSCSI PDO in the above scenario. Impact: None. 2. Problem: CQ37948, CQ34610 - (TOE) Query ramrod completion reached driver before chip completed context DMA. Cause: Firmware passed ramrod to next processor before completing its DMA. Fix: Reordered handler flow to DMA first and pass ramrod after. Impact: None. 3. Problem: CQ37772 - (iSCSI) Bad data digest is transmitted Cause: Missing initialization in FW when going out of slow start. Fix: Add rxmit params init to normal TX flow. Impact: None. 4. Problem: CQ36957, CQ37759 - Unable to receive packets on the iSCSI MAC address Cause: Promiscuous in rx mode was ran over by resetting the rx mode. Fix: Reset the rx mode before setting promiscuous mode. Impact: None. Enhancements: ------------- 1. Request: CQ37160 - Remove redundant devices from INF. Change: As Requested. Impact: None. Version 4.6.20 (October 8, 2008) ================================ Fixes ----- 1. Problem: CQ37473 & CQ34829 - BACS doesn't display adapters for teaming configuration when adapters were used for booting the system over iSCSI offload path. Cause: VBD driver always indicates to the application (e.g BACS) that interface is booted with non-offload path even it's booted with offload path. BACS doesn't allow users to configure adapter if it's used for non-offload (NDIS) path. Fix: Indicate correct iSCSI booting information to the application. Impact: None. 2. Problem: CQ37605 - iSCSI PDO is still enumerated when create_pdo_flag is set to 4 CQ37788 - Assert occured when iscsi is unchecked in BACS resource reservations Cause: Wrong PDO enumeration scheme, ignored "create_pdo_flag" option and relied only on licenses. Fix: Fix PDO enumeration scheme. Impact: None. 3. Problem: CQ37366 - After resetting device, the device MAC address will be the same as the iSCSI MAC address. CQ37759 - iSCSI Boot Install of OIS driver causes BSOD. Cause: Mitaknly, the code flow facilitated iSCSI miniport change MAC address, but only NDIS miniport should be able to do so. Fix: Fixed the wrong flow. Impact: None. Enhancements: ------------- 1. Request: CQ35085 - Add iSCSI Boot/Win2K8 DVD installation support for UEFI environment. Cause: In UEFI environment, iBFT table is only created as an entry in the ACPI table per ACPI 3.0b specification. Change: Driver now determines if an adapter is an iSCSI boot interface or not by locating iBFT table in the ACPI table in addition to the low memory region (512K to 640K) and device's internal memory. Impact: None. Version 4.6.19 (October 06, 2008) =================================== Fixes ----- 1. Problem: CQ37699 - BSOD occurred while passing sockdie traffic to SLB and iscsi traffic. Cause: Access to null pointer, due to race condition between update neighbor and terminate tcp offload Fix: Don't access null pointer. Impact: None. 2. Problem: CQ36696 - System breaks when running sockdie stress test Cause: When the system is low on resources, PTEs allocation to translate physical to virtual addresses fails, and as a result generic buffers to application buffers copy operation fails. Fix: Perform the generic to application buffer copy through DMAE operations in case the conventional copy fail. Impact: None. 3. Problem: CQ37720 - BSOD while disabling eVBD. Cause: New fix that was recently added used wrong lock type and caused the BSOD. Fix: Remove the lock from this flow because it is not needed. Impact: None. 4. Problem: CQ37651 - Driver asserts when licensing is not configured. Cause: Driver allowed connections offload when licensing was not configured. Fix: Driver will not allow connection offload when there is no licensing. Impact: None. 5. Problem: CQ37706(TOE)– Firmware assert when reset was received and sent simultaneously. Cause: The firmware gave priority to reset send completion over reset received completion. Fix: Priority was changed. Impact: None. 6. Problem: Firmware(ISCSI)- Chip halts after few unanswered connections attempts. Cause: After retransmits were done, the chip didn't return the credits it should have. Fix: When the state is changed to stop, return the unused credits Impact: None. 7. Problem: CQ37668(ISCSI): 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 Fix: Fix this case. Impact: None. 8. Problem: HW hangs some time after startup. Cause: Shutdown flow does not reset the Network glue or clears partially received packets. These cause the HW to hang on the next restart. Fix: Reset the network glue during shutdown. Impact: None. Version 4.6.18 (October 02, 2008) =================================== Fixes ----- 1. Problem: CQ37566 - Everest: interface can not be started when increasing the BAR setting for each device to 128M. Cause: The bug was caused due to the pre mapping of all the bar. Fix: The Bar is dynamically mapped.Only allocated connections are mapped. Impact: None. 2. Problem: CQ37611 (iSCSI Offload) - BSOD in evbda!lm_tcp_init_tcp_context+170 while target discovery Cause: Pointer to data structure that exists only in TOE flows was being examined in the common L4/L5 init flows. Fix: Move the TOE init from the common flow to the TOE init flow. Impact: None. 3. Problem: CQ37385 - iSCSI licensing enumeration/enforcement not consistent between Everest and Teton/Xinan Cause: The enumeration for Everest was affected only from registry parameter. Fix: Meet Xinan's licensing enforcement, registry parameter is set to 4, and the client will be enumerated by the configured licenses. Impact: None. 4. Problem: CQ34926 - Intermittent break during system shutdown. Cause: Shutdown flow does not Acquiesce TOE traffic. Fix: Avoid closing the HSI with the FW, Mask the inevitable HW attentions and make sure the driver does not BSOD on uncompleted tasks. The imminent shutdown will clearup everything. Impact: None. 5. Problem: CQ37556 - BSOD while running BACS. Cause: Attempt to access an address in alist that was already freed in client unbind flow. Fix: The driver now empty the list before client unbind Impact: None. Version 4.6.17 (September 29, 2008) =================================== Fixes ----- 1. Problem: CQ34540 - Everest:Toe:A1 - break at "evbdx!um_tcp_copy_buffered_data" while running sockdie maxconns. Cause: Amount of buffered data passed on TCP Offload request exceeds initial receive window size. Fix: Keep zeroed window size while driver sends data exceeding the initial receive window size back to OS. Impact: None. 2. Problem: CQ37559 - BSOD while running TOE bi-directional sockdie_stress + chariot HPT traffic Cause: A case of giant application buffers that where posted after data was placed in generic buffers and FIN was received, was not handled properly in eVBD Fix: If giant application buffers are posted in this case, when completing them, do not forget to remove then from the rx bd chain. Impact: None. 3. Problem: CQ37277 - BACS/BMAPI timeout when querying license key info. Cause: Interface changes between VBD and MCP (FW) caused a different behavior between BMAPI & VBD. Fix: BMAPI & VBD interface were changed so the request will be supported. Impact: None. 4. Problem: CQ37439 - BSOD while running chariot traffic to SLB team, and disabling adapter in team. Cause: Not all pending TOE rx buffer have been returned to the VBD. Fix: Wait for pending TOE rx buffer to return to the VBD when NDIS miniport halts. Impact: None. 5. Problem: (TOE Sparta) Some W2k8 sparta scripts failed Cause: These scripts expect the connection be uploaded in closed state Fix: Added request for upload if connection is in closed state Impact: None 6. Problem: (iSCSI offload - CQ 37288) iSCSI offload with Everest is extremely slow Cause: PSH flag was not set in last PDU TCP packet. Fix: Added PSH flag 7. Problem: (iSCSI offload - CQ 36673) - X64_0x0_evbda!lm_gen_attn_everest_processing running MaxLuns Cause: Activity count drops to negative value: Fix: Fixed in TStorm FW Impact: None 8. Problem: (iSCSI offload Linux - CQ 37224 ) iLab test5.10 - chip hangs when receiving SYN+RST+ACK after SYN sent Cause: Activity count leak Fix: Fixed AC update in Tstorm FW Impact: None 9. Problem: (iSCSI offload - CQ 36673) - Incorrect header digest error reported Cause: Incorrect context update when RQ is full Fix: Fixed in TStorm FW. Impact: None Enhancements: ------------- 1. Request: Add "f6 install" compression support to release folder Change: As Requested. Impact: None. Version 4.6.16 (September 25, 2008) =============================== Fixes ----- 1. Problem: CQ37143 - Windows DTM Break seen during Sleep Stress with IO test. Cause: When coming back from D3, second device waiting timeout expiers due to long time for the first device to finish loading. Fix: Increased timeout time. Impact: None. 2. Problem: Sparta W2K8 - TCP_ChimneyOffload t19 & TCP_SendAndDisconnect t9 + t10 fail Cause: Race condition between FIN send and FIN recv in VBD Fix: Race condition handled properly. Impact: None. 3. Problem: CQ37421 - Chariot scenario w/ management sent on DUT fails to initiate L4 traffic after ndis client enable/disable if iscsi client is installed Cause: When NDIS client unloaded, in case other clients were present (iscsi), the FW local grq ring consumer was not zeroed. Fix: Driver zeroes the consumer. Impact: None Enhancements: ------------- 1. Request: Add BCM957711A1111G to inf Change: As Requested. Impact: None. 2. Request: Add support for BCM8726 (Dual port phy SFP+ ) Change: As Requested. Impact: None. Version 4.6.15 (September 22, 2008) =================================== Fixes ----- 1. Problem: CQ36997 - Break at evbda!lm_tcp_rx_get_buffered_data_from_terminate when running Netperf Random IO. Cause: When the VBD completes received data to OS, the number of fragments used exceeds the number of possible fragments for that operation. Fix: Decrease a number of buffers by more effective utilization of the buffer's unused space. Additional fix to prevent possible data integrity problem and memory corruption. Impact: None. 2. Problem: CQ37033,CQ36263 - unreasonable reject on tcp_offload. Cause: 1. One bd must be kept available when checking capacity for unacked list 2. It is not enough to check that snd_max can fit into the bd chain upon offload request. It is a must that the entire tcp buffer that includes snd_max will be fit into the bd chain. Fix: Fixed both issues above. Impact: None. 3. Problem: (CQ37314)TOE Chariot random IO script would result in hardware attention BSOD. Cause: FW would confuse bd pointers on very large tcp windows when exiting Slow Start. Fix: FW updates bd pointers only when appropriate. Impact: None. 4. Problem: (CQ36673)ISCSI BSOD when running MaxLuns test. Cause: Hardware attention raised because of activity count leak in Ustorm. Fix: Fix in ustorm FW flow. Impact: None. Version 4.6.14 (September 18, 2008) =================================== Fixes ----- 1. Problem: Sometimes, under stress, the VBD does not complete operations in a timely manner Cause: DPCs with medium importance may have been starved for unlimited time by DPCs with high importance, thus processing of completions from the chip may have been delayed for a long time. Fix: Improved the dynamic DPC importance algorithm to avoid this starvation Impact: None 2. Problem: CQ37375 - BSOD bxnd52a!um_invalidateoffload when running TOE toggling with Chariot & Offloadstress CQ37019 - BSOD bxnd60a!check_for_reset_done when running TOE toggling with Offloadstress CQ37125 - Break at evbda!lm_stats_on_timer when running a bi-dir sockdie test Cause: Under stress of TOE offload/upload slow path requests, a set information request could be pending in the VBD for too long. This caused NDIS to reset the Miniport. Fix: Increased priority of set information request over TOE slow path request. This promises that set information request will not be held by VBD for too long Impact: None. 3. Problem: CQ36997 - Break at evbda!lm_tcp_rx_get_buffered_data_from_terminate when running Netperf Random IO Cause: When the VBD completes received data to OS, the number of fragments used exceeds the number of possible fragments for that operation. Fix: Decrease a number of buffers by more effective utilization of the buffer's unused space. Impact: None. 4. Problem: CQ37066 - Break at evbda!lm_sp_req_manager_shutdown when running offloadstress Cause: A race condition between "reset" request to "terminate offload" request was not handled properly in eVBD. Fix: Verify that "reset" requests that are posted after a terminate request will be properly blocked. Impact: None. Version 4.6.13 (September 16, 2008) =================================== Fixes ----- 1. Problem: CQ37047 - Assert occurred while passing L4 sockdie traffic in team configuration "evbda!lm_tcp_post_update_request+bf" Cause: A race condition between "update neighbor" request to "terminate offload" request was not handleds properly in eVBD. Fix: Verify that update requests that are posted after a terminate request will be properly blocked. Impact: None 2. Problem: CQ37220 - Fails STATS test in Ndistest6.5 in w2k8 (Packets were dropped, but neither OID_GEN_RCV_NO_BUFFER nor OID_GEN_RCV_ERROR statistics were incremented) Cause: One of the FW counters wasn't added as expected to the ifInDiscards field in OID_GEN_STATISTICS Fix: Add the missing FW counter Impact: None 3. Problem: CQ36817 - BSOD when running NDISTest 6.0 2c_holdpackets test script. Cause: Wrong rx packet reference counting caused NDIS miniport to unload while there are still rx buffer pending in the eVBD. Fix: Wait until all rx packet return brfore allowing miniport umload. Impact: None 4. Problem: CQ37340 - Assert in "evbda!lm_tcp_get_delegated" while running sockdie stress test Cause: Wrong define value in assert check. Fix: Remove the wrong assert. Impact: None 5. Problem: CQ35662 - NVRAM pre-emphasis support does not take effect Cause: Current nvm values didn't actually affect the phy. Fix: 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. 6. 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 Fix: 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. 7. Problem: Fix EMAC initialization setting. Cause: Currently it is configured inside the enable emac before configuring the EMAC mode. Fix: Changed to be after enable emac 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. Version 4.6.12 (September 11, 2008) =================================== Fixes ----- 1. Problem: CQ36870 - Sparta - Chimney offload, failure in test t19 Cause: VBD does not indicate fin received event if there is rejected buffered data for the connection. If the connection is in "time wait" state, the host stack will not know about it, and thus test t19 will fail Fix: If fin is received, in "time wait" state, FW will send a request for upload, and if indication is delayed because of existence of rejected buffered data, the VBD will ask for an upload of the connection Impact: none 2. Problem: CQ34691 - High number of pause frames Cause: The thresholds in the BRB were configured to wrong values Fix: Config the thresholds in the BRB Impact: None 3. Problem: CQ37033,CQ36263 - Unreasonable tcp offload request rejection Cause: Ordinal resources of connection are not enough to post whole unacked data incoming with the request. Fix: Check resource's availability only for critical part of unacked data posting. Impact: None 4. Problem: Rtt sample could be miscalculated. Cause: Firmware bug when exiting from Fast Retransmit mode. Fix: Firmware bug was fixed. Impact: None 5. Problem: (CQ37155) Sparta Tests failed. Cause: Sparta Test “TCP_StateConformance” didn’t close its connections properly. That could cause following tests to fail. Change: Firmware bug was fixed. Impact: None 6. Problem: (CQ 37090) Placement of RQ data to wrong address Cause: ASM problem Change: Firmware bug was fixed. Impact: None 7. Problem: (CQ 36912) BSOD when destroying erroneous connections Cause: Activity count leak Change: Firmware bug was fixed. Impact: None 8. Problem: (CQ 36987) Unable to perform media changer/tape functions Cause: Bad padding calculation in long PDUs Change: Firmware bug was fixed. Impact: None Enhancements ------------ 1. Request: (CQ37110) Bacs3 ISCSI: Display the total ISCSI offloaded connections under Statistics tab Change: As Requested Impact: None 2. Request: Enable MSIx interrupt mode for Windows 2008. Change: As Requested Impact: None 2. Request: (CQ 36758) Firmware now enforces iSCSI licensing and fails the offload if no iSCSI initiator license exists. Change: As Requested Impact: iSCSI connections won't be offloaded without proper license Version 4.6.11 (September 08, 2008) =================================== Fixes ----- 1. Problem: (CQ37023) BSOD (0x8E) when Entering in S4 State Cause: Chip reset was called twice when NDIS miniport was disabled and VBD was enabled Fix: Don't call chip reset in case chip was not initialized Impact: None. 2. Problem: Potential condition race with MCP shared memory when system is back from S4 state might cause a BSOD Cause: Shared memory validity bit was not checked when system back from S4 state before accessing the shmem. this might cause a failed "back from S4" (BSOD), especially on setups when link init time might take long time. Fix: Access the shared memory only after verifying the shmem is valid. Impact: None. 3. Problem: (CQ37050) iSCSI login fails over VLAN Cause: VLAN tag type was not set Fix: Set VLAN ether-type to 0x8100 Impact: None 4. Problem: (CQ35629) Statistic ramrod didn't pass for more then 25 second. Cause: The statistics ramrod was bounded to the leading connection, When there were other pending ramrods for that CID, the statistic ramrod wasn't sent in a timely fashion. Fix: Disable CID dependent for the statistic ramrod. Impact: None 5. Problem: (CQ36972) Assert in the driver when NDIS & OIS are both installed. Cause: Possible race due to firmware bug while the 2 clients are up. Change: Firmware bug was fixed. Impact: None. 6. Problem: (CQ37032) Traffic could stop while running Chariot with very large buffers. Cause: Firmware bug at the management of large placement buffers. Change: Firmware bug was fixed. Impact: None. 7. Problem: Possible data integrity while working with generic buffers. Cause: Lack of internal resources for completions could result in out of order placement on the generic buffers. Change: Generic buffers are not consumed unless there are resources to send their completion. Impact: None. 8. Problem: (CQs 36786, 36911, 37111, 37146, 36656, 36911) Assert in the VBD while loading/unloading client when two clients are installed. Cause: VBD doesn't clear FW Status block index values for client chains upon unload, causing mismatch in index values when the client will be reloaded. Fix: Zero client's status blocks index values upon unload in both host and chip memory. Impact: none 9. Problem: (CQs 36940, 35797) Assert while running offloadstress Cause: Wrong handling when receiving remote RST with tx buffer posted to the fw, RST was indicated to the client, while the buffers were not aborted. Fix: Postponed the RST indication, and indicate when there are no more tx buffers posted to the FW. Impact: none Enhancements ------------ 1. Request: (CQ36854) iSCSI boot file table support Change: As Requested Impact: None 2. Request: Indicate packet's rx queue idx to NDIS Miniport to allow performance optimization in Miniport Change: Added rx queue idx to indicated packet Impact: None 3. Request: Implement several minor optimizations for non TOE performance. Change: As requried Impact: None Version 4.6.10 (August 27, 2008) =============================== Fixes ----- 1. Problem: First 32 connections were cached instead of first 8 connection Cause: Caching was dependent on pbe_cache_index instead of pdu_cache_index Change: Change the condition to the correct variable in Ustorm. Impact: None. 2. Problem: Header digest split across two segments was processed as digest error Cause: The first header segement cached in the wrong order Change: Change header segment caching order in Tstorm Impact: None. 3. Problem: EC timer not stopped in connection ABORT Cause: Wrong index was stopped in timer array Change: Fix index in Cstorm ASM. Impact: None. 4. Problem: retransmit_start_time was not set correctly in slow path query RAMROD Cause: Missing ASM instruction Change: Fix in Tstorm ASM Impact: None. Version 4.6.9 (August 21, 2008) =============================== Fixes ----- 1. Problem: (CQ36882) Break running S4 ACPI Stress. Cause: A fix made in return from D0 flow was implemented incorrectly. Fix: Fixed wrong flow. Impact: None. 2. Problem: Potential condition race in iSCSI boot flow Cause: A register value is overridden to be 0 by all devices although it might already have a init value which is not 0 Fix: Only one device will set the register value to 0 Impact: None. 3. Problem: Firmware will assert in case it will receive packets that were truncated to length smaller than 20B (E1h L2 only). Cause: Wrong define value in assert check. Change: Define was changed from 20B to 16B. Impact: None. 4. Problem: (CQ35817, CQ36954 & CQ36971) Possible Assert at the VBD or at Microsoft stack when uploading a connection. Cause: The 1st Rtt sample after initiate offload could have been miscalculated, and result in high and illegal values of sRtt and RttVar. Change: Firmware fix. Rtt sample is now calculated correctly. Impact: None. 5. Problem: (CQ36804) Assert in the driver unload flow. Cause: New code added to this flow had false assert logic. Change: Remove wrong assert. Impact: None. Version 4.6.8 (August 18, 2008) =============================== Fixes ----- 1. Problem: Error Event ID 56 appears in the System Event Log in some machines during driver installation on W2K8. Cause: The device capabilities of the child device has the UniqueID set to TRUE which result in the same PnP device ID for the two BCM5709 ports. UniqueID is propagated from the parent device and it set by the PCI bus driver. Fix: Always set the UniqueID to FALSE in the child's device capabilities Impact: None. 2. Problem: (CQ36795) - iSCSI boot DVD installation does not complete - Switch side showed link down when VBD loading. Cause: Condition race caused two ports to reset the chip in parallel. Fix: Verify lock is acquired. Impact: None. 3. Problem: (CQ36792) - evbd.inf is not MS-DOS compatible: wrong formatting Cause: inf file was generated without CR (carriage return) Fix: run unix2dos on .inf file Impact: None. 4. Problem: (CQ36866) - Min size of multicast address list in BCM57711 should be increased Cause: Multicast table size in eVBD for BCM57711 was 32. Fix: Increased multicast table size in eVBD for BCM57711 from 32 to 64 Impact: None. 5. Problem: (CQ35393) - TOE Data corruption running Chariot High_Perf with 1MB I/O Size Cause: When large application buffers were aborted (e.g. due to terminate offload) the driver didn't set the value in the field that indicated how many bytes were transmitted/received from/to this large application buffer before the abortion Fix: Properly set the app_buf_xferred field in the case of abortion of large application buffer Impact: None. 6. Problem: XAUI link on port0 goes down and then up, when the link on port1 is changed. Cause: When master port (port1) is down, Due to PLL issues speed will change from 10G to 1G. It will cause XAUI clock to both ports down and then up again. Fix: Set bit in the BCM8073 that enables the fix. Impact: None. 7. Problem: (CQ36874) - Assert in attention bit processing flow. Cause: Wrong assert logic was apply in this flow. Fix: Remove the wrong assert. Impact: None. 8. Problem: (CQ36880) - Assert when running bi-directional sockdie transmit file. Cause: Assert to indicate flow that haven't occurred yet - zero byte receive request. Fix: Remove the wrong assert. Impact: None. 9. Problem: TCP secure ack validation not implemented correctly. Cause: maxWnd was not scaled. Fix: Window scaling is taking into a count when checking ACK validity. Impact: None. 10. Problem: TCP options length error flow updated the wrong statistics. Cause: Fault in firmware flow. Change: Erroneous code was removed. Impact: None. 11. Problem: (CQ36735, CQ36869) - Firmware assert due to lack of Bds. Cause: Completion management for initiate offload ramrods could cause to lack of Bds for L2 fast path. Fix: The completion is sent on the L4 ring only. Impact: None. 12. Problem: (CQ36632) - Driver got CQ_NOTIFY event on EQ for a connection that was already terminated. Cause: Event Coalescing global timer expiration indicated pending completions for the destroyed con_id. Change: Turn off pending completions bit in RAM during Terminate ramrod. Impact: None. 13. Problem: Assert in TStorm during CFC_DELETE ramrod. Cause: Activity count leak for non-cached iSCSI connections. Change: Fix connection cached condition in Ustorm. Impact: None. Enhancements: ------------- 1. Request: Change congestion control algorithms for better compliance with Microsoft’s implementation (Request for Sparta tests). Change: As Requested. Impact: None. Version 4.6.7 (August 13, 2008) =============================== Fixes: ------ 1. Problem: (CQ35002) System assert with Windows 2008 DPC Watchdog Cause: VBD's DPC duration on Windows 2008 systems exceeds 1.5 seconds, due to tcpip stack hang while processing initiate offload request completion and GRQ buffers indications for the same connection on different CPUs. Fix: Initiate offload request completion moved from the L2 chain to the L4 RCQ chain, Causing serialization of the initiate offload completion and the GRQ buffers indications and processing on the same CPU. Impact: None. 2. Problem: (CQ36688) Break when running iSCSI max target test Cause: When CID allocation fails, iscsi_state resources get released twice. The function that releases resources doesn't zero the pointers. Fix: Zero the pointers when releasing physical memory. Impact: None. Version 4.6.6 (August 4, 2008) ============================== Fixes: ------ 1. Problem: (CQ36310) BSOD When connecting to Wintarget during Win2008 DVD boot Cause: Parser block memory still contains data after unload of undi driver which cause block to assert when loading chip. Fix: When VBD reset the chip if undi driver is up, it change firmware counters so firmware have 'place' for the packets and won't assert Impact: None. 2. Problem: (CQ36611) Windows iSCSI Offload:Everest: X64_0xc2_7_evbda!um_util_free_resources disabling vbd Cause: Indexes problems in resource leak tracking code. Fix: Fix the leak detection code and use proper indexes for all resource tracking arrays. Impact: None. 3. Problem: (CQ36437) Everest:iscsi:A1-w2k8:Windows iSCSI Offload: not able to install iscsi device on Everest nic Cause: Compatible IDs were not being built properly in KMDF mode. Only the 4 part ID was generated. Fix: Code fix to generate all compatible IDs. Impact: None. 4. Problem: (CQ36483) Everest:Eth:A1-w2k8:Windows Iscsi offload: System breaks into debugger after login to target Cause: Dynamic HC should not be configured for the iSCSI chain. Fix: Disable dynamic HC for the iSCSI chain. Impact: None. 5. Problem: (CQ36627) Everest: A1-w2k8: Windows iSCSI Offload: While running iomonkey system breaks in to debugger Cause: Cid recycling code was not waiting the needed time before reusing the cid. Fix: Fix the cid recycling code so that the next offload w/that cid does not start too early. Impact: None. 6. Problem: (CQ36493) Windows iSCSI Offload:Everest: evbda!mm_alloc_phys_mem_align_imp loading iSCSI driver Cause: OS Memory allocation function (AllocateCommonBuffer()) was being called at DISPATCH_LEVEL. Fix: Change the iSCSI firmware init flow to happen at PASSIVE_LEVEL in a worker thread. Impact: None. 7. Problem: Invalid ITTs were not being detected Cause: Task contexts were being reused and in some cases contained stale data that looked valid. Fix: Zero out the task contexts before each use. Impact: None. 8. Problem: (CQ36647) Windows iSCSI Offload:Everest:A1: X64_0x0_bxois!l4if_ofld_neigh break discovering target Cause: LALs were not always initialized. Some LALs were shared between iSCSI and NDIS Fix: Change LAL ownership so that it belongs to the VBD. Impact: None. 9. Problem: (CQ36481) BSOD while running sockdie stress Cause: After completion of upload request for a connection, there were still pending slow path requests for that connection in the queue. The slow path lock was being released too early, which caused a race when adding requests to the queue. Fix: Change in the reset completion flow, postpone the release of the slow path lock, later to the queuing of the request. Impact: None. 10. Problem: (CQ36126) BSOD while running sockdie/offload stress Cause: Driver didn't take into account that when servicing deferred completions upon offload completion, there may still be buffers that were not indicated to the client yet. Fix: Fixed assertion. Impact: None. 11. Problem: (CQ36560) Firmware assert on Sockdie stress tests Cause: A RST packet without the ACK flag set, after FIN was already received, could cause in some cases to processing of the invalid ACK and result in firmware assert. Change: Firmware - ACK is not being processed in case of FIN / RST retransmits, after FIN was already received. 12. Problem: (CQs: 36461, 36462, 36464, 36465 & 36466) Sparta w2k3 tests failed. Cause: When OOO packet with SYN flag set was received, that packet was dropped. Change: If OOO SYN is received, send pure ack instead of dropping the segment. 13. Problem: (CQ36510) 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 handled other speeds which are controlled by HW. Since the HW detect link with the external PHY, the link LED stayed on Fix: Turn off the LED for all speeds manually when link goes down Impact: None Enhancements: ------------- 1. Change: L2 Performance optimization: Enable dynamic DPC importance by default on W2K3. Impact: None. 2. Request: (CQ36460) Add msft folder to release tree (for windows 7 submission) Change: As Requested. Impact: None. 3. Request: Add "f6 install" folder to release tree Change: As Requested. Impact: None. 4. Request: Add insufficient Memory Event Log for 57710/57711E Change: As Requested. Impact: None. Version 4.6.5 (July 21, 2008) ============================== 1. Problem: Sockdie stress test failed. Cause: Wrong handing in the driver when connection was offloaded with KA timeout delta parameter equals 0xFFFFFFFF. Fix: Set KA timer properly according to probe count and timeout delta values. Impact: None. Version 4.6.4 (July 18, 2008) ============================== 1. Problem: CQ35739 - BSOD during un-install in W2K8 Cause: Mismatch between W2K8 inbox T3.7 miniport driver and currect T4.4 57710 evbd driver Fix: Don't allow loading of T3.* miniport driver to load on T4.4 evbd driver Impact: An attemp to load T3.7 Miniport on T4.4 evbd will result with a yellow bang (instead of BSOD) 2. Problem: CQ35277 - BSOD during shutdown in BCM57711E mode Cause: 1. Upon shutdown, the function's L2 connections were not gracefully closed. In BCM57711E mode this caused a HW attention due to PCI write transaction that was initiated by FW after the function was already down. That caused a BSOD 2. The driver's timeout period for receiving response from MCP upon unload requrest was too short for BCM57711E mode. That caused a BSOD Fix: 1. Added closure of L2 connections in shutdown flow 2. Increased driver's timeout period for receiving response from MCP upon unload Impact: None. 3. Problem: CQ#35806, 35860) WHQL Statistics failure in BCM57711E mode Cause: Statistics were taken from HW instead FW (per function) Fix: Get the values from the FW Impact: WHQL Statistics test will pass on BCM57711E mode 4. Problem: ReceiveIndication Sparta test failed (W2K8 window decrement test) Cause: KA timer was not set properly. Fix:: Set KA timer properly according to probe count and timeout delta values. Impact: None. 5. Problem: StateConformance Sparta test failed (test 15 - offloading a connection in FIN_WAIT2 state). Cause: KA timer was not set properly. Fix:: Set KA timer properly according to probe count and timeout delta values. Impact: None. 6. Problem: (CQ35610 & CQ35848) In some specific chipsets, when machine back from sleep - BSOD/machine hung Cause: Max payload size (MPS) wasn't updated by driver after system back from S1 Fix:: Read the MPS every time driver starts. Impact: WHQL test/Sleep will Pass. 7. Problem: STATS test failed in Ndistest 6.5 in w2k8 (CQ36125) Cause: OID_GEN_RCV_DISCARDS returned only part of the drop counters Fix: Added HW drop counters to this OID Impact: None. 8. Problem: script "TCP_SendAndDisconnect" test "FIN received while doing SendAndDisconnect" with IPv6 failed. Cause: When we received FIN RT left to the window (seg_seq < rcv_nxt) we didn't decrement the seglen by 1 byte back to it's original value. Therefore those packets were dropped since the actual packet was 1 byte shorter than the expected packet. Fix: We now check if the FIN flag is set (when FIN was already received in the past) before the checking if seg_seq < rcv_nxt. If so we decrement the seglen by 1. Impact: None. 9. Problem: retransmit_start_time tstorm parameter was init to a garbage value (CQ36154). Cause: When upload the connection FW doesn’t update retransmit_start_time and correct the value of the time elapsed from retransmit_start_time to current time. Fix: In query ramrod FW updates retransmit_start_time and correct the value of the time elapsed from retransmit_start_time to current time. Impact: None. 10. Problem: BSOD during processing corrupted TCP packet Cause: FW not freeing the Parser serial number Fix: Free serial number Impact: None. 11. Problem: HBA sends login PDUs with wrong padding size Cause: Miscalculation in the transmit window Fix: transmit window now taken into account Impact: None. 12. Problem: Placement to wrong location in 3rd login response Cause: Problem in write task ctx for mpath PDUs Fix: write task ctx corrected Impact: None. 13. Problem: HBA issues IPv6 packets with "0" in the ip.version field instead of "6" Cause: missing context field initialization Fix: initialize ctx field Impact: None. 14. Problem: ASSERT in driver due to receiving an invalid status code for the ISCSI_ERROR KCQE opcode Cause: KCQE sent with ISCSI_ERROR opcode instead of TCP_ERROR opcode Fix: fixed the opcode Impact: None. 15. Problem: S5 WoL does not work (BCM57711E mode) CQ35786 Cause: MISC block register was not set correctly Change: Fixed the register value. Enhancements: ------------- 1. Change: L2 Performance optimization: Set the default rss chain count to be half the amount of CPUs and no more than 4 Impact: None. 2. Request: Add Support for evbd multi PDO iSCSI and NDIS. Change: As Requested. Impact: None. Version 4.6.3 (June 25, 2008) ================================= Fixes: ------ 1. Problem: (CQ#34893) W2K3 - BSOD running Netperf TX traffic, 10 session per function Cause: servicing deferred cqes didn't take into account the fact that upload can occur during servicing, and connection can be invalid afterwards. Fix: don't delete a connection while we're servicing deferred cqes at the end of the service_deferred_cqes function check if connection may have died during Impact: None 2. Problem: Potential risk for deadlock Cause: In certain cases, lock was not released from VBD before calling Miniport Change: Make sure lock is never held when calling miniport Impact: none. 3. Problem: Sparta StateConformance test failed. Cause: At FIN_WAIT2 state, after a certain timeout, we should close the connection. Fixes: Xstorm arms min(2 minutes, ka timer) when fin was sent and acked (delayed ack flow and keepalive flow). Impact: none. 4. Problem: Sparta TCP_KeepAlive test failed. Cause: We failed at the tests because When we receive acks for KA probes, we do not re-arm the KA timer. Fix: When we receive acks for KA probes, we re-arm the KA timer. Impact: none. 5. Problem: one of Sparta test at the script TCP_SendAndDisconnect failed. Cause: Fw bug in the fix for last version. If ack was received with FIN flag on (FIN RT) we did not continue to ack processing. Fix: We now continue to ack processing in the case above (return NOPROC in stead of FINISH). Impact: none. 6. Problem: (CQ35652). rto_timer is very large (around 0fffffff) upon upload Cause: set_rto and enter block state flow fail to update the next_timer_expir field in storm context when setting timer. Fix: next_timer_expir updated in all flows which set timer. Impact: none. 7. Problem: Sparta ReceiveIndications test failed (HSI changes). Cause: There was no support for window deflation flow. Fix: Added window deflation support. Impact: none. 8. Problem: Sparta TCP_Urgent_TOE test failed. Cause: We failed at the test case in which we received a packet with URG and SYN flag set, and we processed the SYN and ignored the URG. Fix: If we receive a packet with URG and SYN flag set, we process the URG and ignore the SYN. Impact: none. 9. Problem: Sparta TCP_SendAndDisconnect test fails. Cause: Xstorm bd loop treats FIN bd as normal bd. Fix: FIN bd ignored Impact: none. 10. Problem: Sparta TCP_StateConformance (“FIN WAIT 2 state” test) fails. Cause: fin_sent_val in Tstorm aggregative context is initialized to 0 always. Fix: fin_sent_val in Tstorm aggregative context is initialized by Xstorm according to its own fin_sent_flag. Impact: none. 11. Problem: iSCSI Write stress test fails Cause: corruption of internal RAM thread scratchpad by another thread Fix: correct RAM offset calculation Impact: none Version 4.6.2 (May 29, 2008) ================================= Fixes: ------ 1. Problem: (CQ#35510,CQ35408) assert when cwnd=0xffffffff Cause: We had a wrong assumption that delegated param cwnd was limited by 2^30. This assumption turned out to be not true. Fix: We no longer assume this and do not assert if we get cwnd=0xffffffff and we deal with it. Impact: we can deal with cwnd=0xffffffff 2. Problem: (CQ#35461,CQ35504) Win2k3: Assertion failed: TcpDelegatedState->Retransmit.TimeoutDelta != -1 Cause: In some cases we gave a retransmitTimeout value of -1 at upload stage when timer was expired, instead of giving value '0' Fix: If timer expired we give value '0' and not '-1' Impact: we will no longer crash in tcpip stack because of this. 3. Problem: Several Performance issues Cause: We have a nagle algorithm that involves both driver + FW, the driver did not mark some bds correctly. Fix: Driver now marks bds correctly Impact: will improve some performance scenarios. Enhancements: ------------- 1. Request: Add BCM57711E Support for WOL ACPI pattern. Change: As Requested. Impact: None. 2. Request: Add BCM57711E Support for WOL magic packet. Change: As Requested. Impact: This feature requires bootcode 4.4.7 or later. 3. Request: Add BCM57711E Support for function disabled. Change: As Requested. Impact: Disable function will appear with link down. 4. Request: BCM57711E Max bandwidth speed will be indicate to the OS. Change: As Requested. Impact: None. 5. Request: Support 2.5G speed for BCM8073. Change: As Requested. Impact: None. Version 4.6.1 (May 18, 2008) ================================= Fixes: ------ 1. Problem: BACS mii test failed. Cause: NIG access changed to CL45 and the mii test is using CL22 Change: Change the NIG to CL22 when using CL22 mii access IOCTL Impact: None. Enhancements: ------------- 1. Request: BCM57711E Support MIN/MAX bandwidth control. Change: As Requested. Impact: None. 2. Request: Support BCM8073 external phy. Change: As Requested. Impact: None. Version 4.6.0 (May 4, 2008) ================================= 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. 2. Problem: (CQ#34808) rcv_wnd is different than initial rcv_wnd at connection upload Cause: There was a race between switching between long-loop and short-loop while indicating from the post context, and reaching the indication point from the dpc-context, the window_update_mode was overriden, thus causing a double increase in the window size. Fix: Fixed race in code Impact: None. 3. Problem: (CQ#34537) TOE initiate offloads didn't complete Cause: VBD Driver got starved for a long period of time. But chip was not stuck and this caused a statistics timer assert. Fix: Make sure statitistics ramrod always gets posted even if there are other SP commands out, and only assert if it seems like chip is stuck Impact: None. 4. 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: None. 2. Request: Support statistics on 57711 Change: As Requested. Impact: None. Version 4.4.9 (April 22, 2008) ================================= Fixes: ------ 1. Problem: (CQ#34729) Failed to boot to local HD with W2k8 after failed to boot to iSCSI Boot target Cause: There seems to be a problem with MSI-X and iscsi boot Change: Workaround: disable MSI-X by default Impact: MSI-X won't work with iscsi boot. We will fix this for T4.6 2. Problem: (CQ#34782) completion received for a partially filled no_push buffer TOE Cause: Driver didn't take into account that if terminate is called and there is a partially filled buffer, it may be partially completed. Change: Fixed assertion Impact: Driver won't assert on a partially filled no_push buffer if it is a result of terminate / reset / fin 3. Problem: Link indication was broken for BCM57711E on W2K8 Cause: Improper initialization of MSIX caused first link indication to fail Change: Fixed initialization Impact: Link indication should work properly 4. Problem: Autoneg flow-control is broken Cause: Broken in last drops - wrong check of the autoneg result Change: Fixed the autoneg result check Impact: None Version 4.4.8 (April 14, 2008) ================================= Fixes: ------ 1. Problem: DMAE timeout problem on 57711 Cause: DMAE needs to be configured differently Change: Reduce the MPS of the DMAE client Impact: None Enhancements: ------------- 1. Request: Add new BCM57710 device id's to the Driver INF file. Change: As Requested Impact: None. 2. Request: (CQ#33228) Add new IOCTL for SFG10 PHY FW update. Change: As Requested Impact: None. 3. Request: (CQ#34076) Add new IOCTL for PHY FW version query. Change: As Requested Impact: None. Version 4.4.7 (April 9, 2008) ================================= Fixes: ------ 1. Problem: (CQ#28680) Sparta Test ReceiveIndication Failed Cause: FW was not notified of indicate-success immediately, therefore FW did not recognize that the driver has no generic data and that the generic data should be released Change: Notify FW immediately of consumed count as a result of indicate-success Impact: Test will Pass. 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: (CQ#34565) Add new BCM57710 device id's to the Driver INF file. Change: As Requested Impact: None. 4. Request: Add support for WIN2K8 DPC watchdog BSOD. Change: Next DPC will be delayed in case we are reaching close to DPC watchdog counters threshold. Impact: None. Version 4.4.6 (March 27, 2008) ================================= Fixes: ------ 1. Problem: (CQ#34233) Resource allocation problem when trying to install several nics. Cause: On some cases resource allocation for TOE was too much. Change: Reduce resource allocation for TOE. Impact: none. 2. Problem: (CQ#34102) BSOD occured when running BACS memory test. Cause: Wrong value was assined to one of the BCM57710 register. Change: Cahnge BCM57710 register configuration. Impact: none. Enhancements: ------------- 1. Request: Add IOCTL B10_IOC_READ_PHY/B10_IOC_WRITE_PHY for MDIO clause 45 access. Change: Support added. Impact: None. 2. (CQ#34432) (CQ#34439) (CQ#34436) Request: Add support for additional devices in the inf file. Change: Support added. Impact: None. 3. Request: Add new events to the windows system event viewer in case of client bind/unbind and resource allocation failure. Change: Support added. Impact: None. 4. Request: Add support for BCM57711 LINK and statistic management. Change: Support added. Impact: None. Version 4.4.5 (March 20, 2008) ================================= Fixes: ------ 1. Problem: (CQ #34085) Blue screen during windows ACPI stress test. Cause: wrong handling of PNP state machine Change: Fixed state machine states upon moving to D3 Impact: ACPI Test should pass now 2. Problem: (CQ #31630) Assertion when running with 10MB buffers Cause: Buffers that did not fit into the bd-chain were not handled. Change: New HSI change enables the driver to post partial buffers by marking them as such and iteratively post buffers larger than the bd-chain Impact: Large buffers (larger than 3MB) are now supported. 3. Problem: (CQ #33877) Assertion when running chariot with 1MB buffers Cause: Driver released RQ buffers, as a result of copying GRQ data to them too soon, before FW had a chance to process them, caused an override in the bd-chain when the bd-chain was fully utilized. Change: New HSI change makes sure driver will release RQ buffers ONLY after it got a specific indication from FW that FW has processed these buffers. Impact: None. 4. Problem: (CQ #30193, CQ#32463) Assertion when running L4 stress together with load/unload Cause: Upon function unload, the searcher block table was erroneously cleaned too early, before promising that no additional search requests can be initiated on the disabled function. Change: Changed the order of operations upon function unload. Impact: BSOD should not occur. 5. Problem: (CQ #34242) BSOD occured when running bi-dir sockdie stress. Cause: Wrong handling of free cid operation when tcp offload fails and the cid is still pending. Change: The cid allocation is postponed therefore the above scenario is prevented. Impact: bi-dir sockdie stress test won't break. 6. Problem: (CQ#34042) Driver assert on negative CWND on upload of TCP connection Cause: There was a FW bug that lead to negative CWND in some cases Fix: Fixed the FW bug Impact: None 7. Problem: (CQ#28863, CQ#32830, CQ#33504) Driver may assert when uploading TCP connection while exitting from "persist" state. Cause: There was a bug in TCP offloaded connection when exitting "persist" state that could lead to temporary corruption on SndNxt parameter. Fix: Fixed corruption on SndNxt parameter Impact: None 8. Problem: (CQ#43424) Cannot link SFP module at 1G with OEM PowerConnect 6224 Cause: The OEM 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: Add support for iSCSI. Change: Support added. Impact: iSCSI client can be used only when NDIS client is down. 2. Request: Enable MSI-X by default for Windows 2008. Change: INF file change to support MSIX. Impact: VBD will use MSIX by default. 3. Request: CQ#34253 Product version string for 4.4 should be 12.4.0 Change: Support added. Impact: None. 4. Request: Add support for BCM57711 boot code. Change: Support added. Impact: None. 5. Request: Add resource reservation registry parameters support, Change: Registry Param named: memory_consumption is added. Takes values 25/50/75/100 (percent of memory consumption). Impact: Using this registry param will affect the amount of memory that the driver will allocate roughly according to the percentage stated. 6. Request: Add new boards information to the inf. Change: Support added. Impact: More boards are noe supported.Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.