============================ R E L E A S E N O T E S ============================ Broadcom BCM57710/BCM57711/BCM57711E 10 GigE VBD For Windows Server 2000, 2003 and 2008 Copyright (c) 2000-2009 Broadcom Corporation All rights reserved. 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 TPA aggregation. So in case less then 75 CQEs are on the ring, the firmware starts dropping packets. Fix: Check if TPA is enabled before deciding if to drop packet. If TPA 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.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. 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 HP 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, TPA packet handler and non TPA 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 Dell TL2000 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 Enhancements: ------------- 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 Dell PowerConnect 6224 Cause: The Dell switch supports only autoneg and not forced 1G Change: Changed the 1G implementation to autoneg with only 1G advertisement Impact: When choosing 1G speed, the speed is achieved via autoneg and not forced Enhancements: ------------- 1. Request: 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. Version 4.4.4 (February 28, 2008) ================================= Fixes: ------ 1. Problem: (CQ#33902) BCM57711 BSOD on W2K8. Cause: Mixed TX queue indices within TX completion path. Change: Enforce single queue index per TX completion path. Impact: None. 2. Problem: (CQ#33582, CQ#30141) Driver assert when driver stopped when L4 traffic is running. Cause: Worng state machine handling caused the assert. Change: Fixed driver PNP state machine handling. Impact: None. 3. Problem: (CQ#31295) Blue screen when booting to iscsi boot w2k3 image with BCM57710. Cause : No implementation of the iscsi_boot feature. Change : Implemented/ported code from BCM570x to BCM57710 code. Impact: None. 4. Problem: We could have wronly process packets with errors in offloaded connection. Cause: Some errors (like "packet too short" are not reported by parser in certain cases. Fix: Added checking in FW for these cases Impact: None 5. Problem: (CQ#30464) 3 variations of sparta test "TCP_RcvNext" for w2k8 fail. Cause: We used delayed ack when FIN packet received (this behaviour is OK, but we still fail the test). Fix: Delayed ack is no longer used for FIN packet. 6. Problem: (CQ#28677) 1 variation of sparta test "TCP_BadHeaderAfterConnection" for w2k3 fails , there is still 2 failure after this fix. Cause: When ack that is less than (snd_una - MAX_FE_WND) we sent pure ack instead of silently drop the packet as expected by Sparta. Fix: If we receive ack that is less than (snd_una - MAX_FE_WND) we silently drop the packet. 7. Problem: (CQ#28677) Sparta test "TCP_StateNonConformance_CLOSE_WAIT" for w2k3 fails (no cq). Cause: We dropped SYN packet when in half close state since its sequence was 1 more than rcv_nxt. Fix: Only packets with payload (including FIN) are dropped when in half close state (FIN already received from the FE). 8. Problem: (CQ#30484) 3 variations at Sparta test 'TCP_ZeroWindow' for w2k8 fail there is still 1 failure after this fix. Cause: We didn't send FIN if the send window was closed. Fix: Fin is now sent, unless we are in persist state. Enhancements: ------------- 1. Request: Add support for BCM57711/BCM57711E. Change: Initial support added. Impact: None. 2. Request: Add support for forced 1Gbps for BCM8706 Change: Support added. Impact: None. 3. Request: Compile with latest DDK 6001.18000 Change: Support added. Impact: None. Version 4.2.2 (February 14, 2008) =============================== Fixes: ------ 1. Problem: (CQ#33556) Flow Control feature does not work on A1022G Board. Cause: Advertisment and resoluton of pause auto negotiation weren't implemented. Change: Advertisment and resoluton of pause auto negotiation flows are now implemented Impact: None. 2. Problem: (CQ #33089) CPU ultilization from RX are unexpectedly high compared to TX. Cause: Rss which uses all cpus on the system in some cases reaches 100 %. Change: use one less cpu than exists, until a maximum of 8, unless overriden by a registry param. Impact: CPU UTilization is decreased but throughput may be lower as well. Version 4.2.1 (February 10, 2008) =============================== Fixes: ------ 1. Problem: (CQ #33684) Windows driver fails to load on ZLR (Zero Length Read) systems. Cause: There were wide bus registers that was not handled correctly Change: Use DMAE for wide buss register access. Impact: None. Enhancements: ------------- 1. Request: (CQ#33781) - BCM57710 VBD needs embedded digital signature Change: Added embedded digital signature to evbd driver Impact: vbd driver now can load on Windows 2008 x64 machines Version 4.2.0 (February 4, 2008) =============================== Fixes: ------ 1. Problem: A1022G Board Speed duplex should display "10G Auto" instead of "Auto" CQ#33274 Change: Fixed 1022 board auto string in the inf file. Impact: None. 2. Problem: BCM57710 VBD (EVBD) Needs to Show Support for Windows Server 2008 CQ#33251 Change: "Windows Server 2003" to "Windows Server 2000, 2003 and 2008" strings. Impact: None. 3. Problem: A1022G Board Need to remove Wake Up Capabilities from the configuration CQ#33236 Change: Removed the wol section from board A1022G inf change. Impact: None. 4. Problem: BCM57710 VBD Driver Does Not include Pnp Product ID in INF CQ#33319 Cause: Not implemanted. Change: Added the product_version reg key to the inf and the product version define. Impact: None. 5. Problem: After thousands of iterations of load/unload, using a debug-version of the driver, we got an assert stating that we're trying to close lals-manager resources while the lals-manager-dpc/workitem hasn't completed yet. (No open CQ) Cause: race between lals-manager-dpc and lals-manager-close (called after the timer is canceled) Change: fixed race between lals-manager-dpc and lals-manager-close using a InterlockExchangeCompare locking mechansim. Impact: None. 6. Problem: BSOD occurs when changing Jumbo MTU size.CQ #33479 Cause: KeCancelTimer is called for a never initialized timer Change: Do not call KeCancelTimer for non initialized timer Impact: BugCheck (reported on Windows 2008 checked beta build) will be prevented. 7. Problem: OffloadChecksum WHQL test fails (only when run after new InvalidPackets test) CQ #30135 Cause: ip_cksum_error flag was always looked at, even if it wasn't valid. There we're a lot of old cqes that contained this flag with a value of '1' due to the test InvalidPackets which sent a lot of packets that actually had an invalid ip, so it was 'left-over', since there were a lot of packets, we got a wrap around once offloadchecksum was run Change: Look at the flag ip_cksum only if the valid flag is on Impact: offloadchecksum test will pass even when run after InvalidPackets. 8. Problem: PCI-e slot power not turned off after NDIS driver is stopped CQ #28628 Cause: The PDO capabilities are passed through from the PCI BUS Driver (which cause them not to be stopped on Stop) Change: PDO capabilities are now overridden by VBD to be zero Impact: PCI-e slot power will trued off after NDIS driver is stopped (Like BCM5708 Behavior). Enhancements: ------------- 1. Request: Display SFG10 PHY SW revision in BACS3 CQ#33286 Change: External PHY FW version - added support in hw_info and in ioc_get_device_info Impact: BACS can Display PHY SW revision. 2. Request: New 'shared memory' layout for T4.0E/T4.2 that will CQ33571 be compatible with T4.4 new features Change: As requested Impact: Loading the driver requires bootcode 4.2.0 or later. Version 4.1.0 (February 4, 2008) =============================== Fixes: ------ 1. Problem: BSOD after 700 iterations of load/unload. (CQ #32874) Cause: failure in l4 resource allocation during driver bind didn't have a proper rollback. Change: fixed rollback for all stages that occur during client-bind AFTER drv-bind has already succeeded. Impact: 700 iterations and more of load/unload could still result in failing to bind due to resource allocation issues (especially on low resource setups where memory gets very fragmented) but will no longer cause a BSOD. Instead, could yellow-bang Miniport. 2. Problem: BSOD on T1002 boards. Cause: A new code was added that manipulate GPIO 1 for external phy reset. On T1002 board this GPIO control the PERST_L_BYPASS. Change: Do not manipulate GPIO 1 on T1002 boards Impact: None. Enhancements: ------------- 1. Request: Add workaround for full Tetris buffer bug. Change: The workaround was added Impact: None. 2. Request: Request: Add fan failure detection and external PHY power down for the A1022G. Change: The now detect fan failure (indicated by SPIO5) on the A1022G, the driver will shutdown the PHY (reset and low power mode, using GPIO1+2) and log a message in the windows eventlog. Impact: When fan failure occur the link will go down until full power cycle will apply. 3. Request: limit speed/duplex setting to 10Gbps for NIC's using SFG10 PHY. A1022G special string is "10G Auto". (CQ #32730) Change: update driver inf to suppurt the request A1022G special string is "10G Auto". Impact: "10G Auto" will appear as only available speed. Version 4.0.20 (December 17, 2007) ================================== Enhancements: ------------- 1. Request: Add support for the SFG10 PHY Change: The support was added Impact: None 2. Request: Add support for the BCM8072 PHY Change: The support was added. The code is still not 100% functional Impact: None 3. Request: Change the MDC/MDIO CL45 scheme Change: The functions are more generic: - Supports different MDC/MDIO controller - Reduce the clock to 2.5MHz - Less PIO writes (writing all the required information at one attempt) Impact: All external PHY access are using a slower (standard) MDC/MDIO clock 4. Request: Hard reset external PHYs Change: The external PHYs are now reset via GPIO. Before working with an external PHY, a reset pulse of 1ms is generated, and when the driver is down, the external PHY is kept in reset Impact: Link partner should always see link down when the link is down Version 4.0.19 (November 15, 2007) ================================== Fixes: ------ 1. Problem: When loading and unloading the driver with link speeds less than 10G We might get a BSOD. Cause: When the driver was unloaded the boot code wasn't notify that the link went down. And continue pooling the MAC although it might be in reset state. Change: Link down routine is now being called as part of the driver unload flow. Impact: None. 2. Problem: BSOD when running chariot on 3 BCM57710 NICs result of statistics timeout. (CQ #31966) Cause: Stress scenarios with several nics caused starvation of several scheduled DPCs, since HighImportance was set for all DPCs. Change: Changed priority to be MediumImportance. Impact: None. 3. Problem: On some system we got an assertion when using the BCM57710 DMA engine with large transaction length. Cause: The DMAE maximum transaction length was too large and caused HW attention. Change: Limit the DMAE max transaction length. Impact: None. 4. Problem: BACS tests as well as Windows FW upgrade utility long response time from VBD (#CQ#32714 CQ#32776 ) Cause: mm_wait was conditonally using Windows's API KeWaitForSingleObject that due to poor timer resolution caused too long wait intervals Change: Currently disabled the condiotional use of KeWaitForSingleObject and now using always KeStallExecutionProcessor() Impact: Diag tests are now ~1-2 seconds instead ~4-5 seconds each. FULL NVRAM dump now takes few seconds instead ~30 minutes. Enhancements: ------------- 1. Request: Add functionality for BRCM8072A1 (KR) external phy that support speeds 1G, 10G and AN. Change: BRCM8072A1 external chip initialization and manipulation code was added. All external phys are now being reset using GPIO on initilize link and driver unload. Impact: New KR board type are being supported. Version 4.0.18 (November 15, 2007) ================================== Fixes: ------ 1. Problem: (CQ#32181) On heavy traffic scenarios, the machine halted due to PCI problem. Cause: A HW change in A1 boards requires some registers that controls the PCI credit to be changed as well Change: Updating the PXP credit registers. Impact: None. 2. Problem: A bug in switch that results with transission constant SAFC XOFF packet may lead to BSOD in BCM57710. Cause: Stopping transmission due to SAFC affects also processing of "terminate offload" request. Fix: Changed implementation of "terminate offload" such that it will allow processing of next slow-path elements even if transmission is stopped. Impact: Change of "terminate offload" implementation. 3. Problem: Cwnd calc could have been incorrect. Cause: Cwnd was not increased in case that cwndAccum = cwnd. Fix: Cwnd is now increased in case cwndAccum >= cwnd (instead of cwndAccum > cwnd). Impact: None. 4. Problem: RTO val can be wrong in initiate offload, if connection is in retransmit state. Cause: Changing in RTO computation wasn't applied to initiate offload routing. Fix: Added the change to initiate offload. Impact: None. 5. Problem: (CQ#30328) BSOD on systems without TOE when comming out of D3 (Sleep). Cause: Attemt was made to initialized TOE resources that never was allocated. Fix: The flow was fixed. Impact: None. 6. Problem: Few Sparta Lh inbox scripts fails. Cause: RTO was set to default value at initiate offload regardless of the value that we got from NDIS (it was later updted by the Tstorm according to srtt and rttVar). Fix: We no longer use the default value, but the value that driver initiate, with regard to the rto MIN & MAX values. Impact: None. Enhancements: ------------- 1. Request: Changes with statistics requirements due to performance enhancement and preparation for next features. Change: Removed statistics histogram, Comply with new statistic structure. Impact: The displayed statistics format was changed. 2. Request Remove FW interrupts that are not needed Change: FW no longer interrupts the driver for reading a new slow-path element (it updates driver only when completing processing it) Impact: None. 3. Request Support MTU size of 9600 bytes. Change: Updtae the appropriate flows and update HW confgiuration. Impact: None. 4. Request: Block RX Pause if Auto-pause was selected and the MTU > 4500 to prevent performance retrogression when using PAUSE with big packets. Change: The auto-pause resolution will be only TX pause if the MTU is larger than 4500. Force pause mode will be obeyed as requested. Impact: Jumbo frames with auto-pause will achieve higher throughput Version 4.0.17 (October 28, 2007) ================================ ****** Before installing this version one MUST upgrade the MCP boot code version to 4.0.9 or later **** Fixes: ------ 1. Problem: CQ29388 - Incorrect Link Speed shown on Task Manager when port disconnected. Cause: When link is down and the link speed configuration is auto negotiation the Miniport advertize to Ndis speed of 1G. Fix: In BCM57710 the VBD advertize 10G when link is down and auto negotiation is selected. 2. Problem: A fragmented Tcp/Udp packet might have been wrongly dropped Cause: parser doesn't checks tcp/udp checksum for fragemented packets Fix: FW will report to driver the tcp/udp checksum wasn't validated if the packet was fragmented 3. Problem: CQ29378 - failure of Sparta test "TOESackCompliance". Cause: Wrong MIN_RTO value Fix: Fixed MIN_RTO value setting 4. Problem: CQ30484 - failure of Sparta Longhorn Inbox "TCP_ZeroWindow v4". Cause: We transmitted FIN regardless of TxWnd. Fix: Transmit Fin only if Tx window is open. Enhancements: ------------- 1. Supporting nVidia chipsets with MCP55. 2. Supporting inf with different subsystem Id's for each borad. 3. Supporting NDIS dynamic RSS Hash Type change. 4. Supporting licensing enforcement. Version 4.0.16 (October 11, 2007) ================================ ****** Before installing this version one MUST upgrade the MCP boot code version to 4.0.9 or later **** Fixes: ------ 1. Problem: CQ30135, CQ30137, CQ30138 - 3 NDISTEST failures Cause: MSFT issue when UDP cksum offload support is missing Fix: Added full UDP cksum offload support 2. Problem: CQ31558 - LSO frames statistic showed 0 frames when LSO was enabled Cause: LSO frames were not counted properly Fix: Count LSO frames 3. Problem: CQ31487 - BSOD under stress Cause: Starvation of default status block completion handling Fix: Change priority to HighImportance of def_sb_dpc same as all others. 4. Fix: When getting doubt-reachability from FW, request to upload the connection. Required by LH Inbox. Enhancements: ------------- 1. MCP Heartbeat support 2. MCP Statistics (UMP) 3. Enlarged TSS support from 4 to 8 queues (Miniport) 4. Full UDP cksum offload support Version 4.0.14 (September 17, 2007) ================================ Fixes: ------ 1. Problem: "lost interrupt" CQ#30719, CQ#31102, CQ#31119, CQ#31150, CQ#31196, CQ#31228 BSOD while Running various stress tests Cause: HW issue in PCIE core caused a lost of an interrupt. Fix: HW issue will be fixed for A1 Currently added a recovery process in the VBD in case an interrupt is lost. 2. Problem: CQ#29861, CQ#30193 BSOD while Running offloadstress Cause: QM was not initialized properly by the VBD Fix: Fixed init code in VBD 3. Problem: CQ#31144 load/unload being enabled twice while passing traffic to another port Cause: improper synchronization between ports in VBD Fix: Fixed synchronization in VBD 4. Fixed CQ#30540 Enhancements: ------------- 1. Improved TOE performance on setups with 8 CPUs. Version 4.0.13 (August 29, 2007) ================================ Fixes: ------ 1. Problem: CQ#31182 BSOD while Running sockdie maxtput. Got an attention saying that the cdu-validation failed. Cause: VBD nullified the TOE context too early (before CFC delete ramrod was completed) Fix: VBD should not nullify the TOE context before CFC ramrod completion Version 4.0.12 (August 23, 2007) ============================= New features: ------------- 1. L2 performance optimizations. 2. Phy and link configuration changes. Version 4.0.11 (August 13, 2007) ============================= New features: ------------- 1. Boot code version validation in the drivers. 2. Enable UDP Rx cksum offload. 3. Windows 2000 supported. 4. MSIX support in LH, default is disabled. 5. Updated firmware version 4.0.7. Version 4.0.9 (July 26, 2007) ============================= Fixes: ------ 1. Problem: Duplication of receive packets in promiscuous mode. Cause: Incorrect configuration of the firmware by the Driver. Fix: Corrected configuration of promescuous mode. Version 4.0.8 (July 25, 2007) ============================= New features: ------------- 1. Added support for flow control. 2. RSS is enabled by default. BCM57710 Firmware v4.0.6 ------------------------ Version 4.0.4 (June 29, 2007) ============================= New features: ------------- 1. Co-installer for LH was added. 2. Updated to firmware version 4.0.3. Fixes: ------ 1. Problem: BSOD when running stress tests - sockdie maxtput/offloadstress while toggling TOE. Cause: Unsafe access to the path list of an uploaded connection. Fix: Software lock to prevent simultaneous access to the resource. Version 4.0.2 (June 15, 2007) ============================= New features: ------------- 1. Added support for 64 Multicast addresses. 2. Added link auto-negotiation and speed & duplex support. 3. Added support for WoL. 4. Added support for RSS. Fixes: ------ 1. Problem: L2 netperf tests with small messages sizes cause BSOD or do not run. Cause: Driver bug in the header/data separation flow for LSO packets. Fix: Software fix for that flow. 2. Problem: BSOD when installing or upgrading the driver. Cause: The VBD alignment of the physical address caused the virtual address not to correspond to the physical address in some cases. Fix: Correct alignment algorithm in the driver. BCM57710 Firmware v4.0.2 ------------------------ 1. Added support for 64 multicast addresses. 2. TOE - additional performance improvements. Version 0.30.2 (June 4, 2007) ============================= New features: ------------- 1. Added support for 2000 offloaded TOE connections. Fixes: ------ 1. Problem: BSOD when running high TOE offload tests on low memory systems. Cause: Different driver routines accessed the same resource simultaneously. Fix: Software lock to prevent the issue. BCM57710 Firmware v0.30.1 ------------------------ 1. TOE – Additional performance improvements. Version 0.29.2 (May 21, 2007) ============================= New features: ------------- 1. Added power management support (without WoL). 2. Added dynamic L2 host coalescing. Fixes: ------ 1. Problem: Several WHQL-Ndistest failures: Receive packets and simultaneous. Cause: Incorrect assert condition. Fix: Software code fix. BCM57710 Firmware v0.29.1 ------------------------ 1. TOE - improved performance when TCP Nagle is enabled. Version 0.28.1 (May 7, 2007) ============================= New features: ------------- 1. Updated Miniport to the latest NX2 Miniport of 3.4.3. 2. Release contains Win 2003 64 bit drivers. Fixes: ------ 1. Problem: TOE - LLc/SNAP packets were dropped. Cause: The MSS size was not calculated correctly by the driver. Fix: Fixed MSS size to include the additional size. BCM57710 Firmware v0.28.3: ------------------------- 1. TOE - Improved TCP window update on mechanism receiver side. Version 0.27.1 (Apr 23, 2007) ============================= New features: ------------- 1. Added speed and activity support for LEDs. Fixes: ------ 1. Problem: BSOD when running ntttcp/netperf stress test. Cause: LSO header data was split into separate buffer descriptors. Fix: Fixed bug in the driver flow. 2. Problem: BSOD when running load/unload. Cause: Synchronizing problem between unloading the driver and stopping the statistics. Fix: Unload flow was fixed.