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

                  Broadcom BCM57710/BCM57711/BCM57711E/BCM57712
                             10 GigE VBD For Linux

                  Copyright (c) 2007-2011 Broadcom Corporation
                              All rights reserved.

Version 1.62.15 (Feb 10, 2011)
==============================
    Fixes
    -----
    1.  Problem: (CQ52536) Extra bytes might be added in the middle of the
                 payload when a packet with padding after the TCP payload is
                 received, while TPA is enabled.

        Cause:   Firmware wrongly places padding bytes on RX SGEs.

        Change:  (In FW 6.2.7) Fixed relevant firmware flow.

        Impact:  The problem will be exposed only in very rare case in which a
                 device on the network pads the Ethernet packet to longer than
                 72 bytes.

    Enhancements
    ------------
    1.  Request: Use FW 6.2.7

        Change:  As requested.

Version 1.62.14 (Feb 03, 2011)
==============================
    Fixes
    -----
    1.  Problem: (CQ52402) In NPAR mode setting some speed via ethtool -s causes
                 device to hang.

        Cause:   FW configured with illegal configuration.

        Change:  Limit allowed speed to range from 1%-100% of actual line speed.

        Impact:  NPAR mode only.

Version 1.62.13 (Feb 01, 2011)
==============================
    Fixes
    -----
    1.  Problem: (CQ52656) In NPAR mode "ethtool -t ethX" does not report error
                 on some partitions while no link.

        Cause:   Link is not tested for non PMF partitions.

        Change:  Allow link testing for non PMF partitions.

        Impact:  NPAR mode only.

    2.  Problem: Unresolved bnx2x_invalidate_uc_list symbol on kernels
                 below 2.6.23.

        Cause:   Missing #if block preventing the usage of the above function
                 while it's only implemented for kernels above 2.6.23
                 (including).

        Change:  Added a missing #if block.

        Impact:  Kernels below 2.6.23.

Version 1.62.12 (Feb 01, 2011)
==============================
    Fixes
    -----
    1.  Problem: (CQ52402) In NPAR mode "ethtool -s ethX speed 0" causes
                 device to hang.

        Cause:   FW configured with illegal configuration.

        Change:  Do not allow speed 0.

        Impact:  NPAR mode only.

    Enhancements
    ------------
    1.  Request: Add support for dev_uc_add()/dev_mc_add().

        Change:  As requested.

Version 1.62.11 (Jan 24, 2011)
==============================
    Fixes
    -----
    1.  Problem: ifup returned error when device has illegal iSCSI mac.

        Cause:   FCoE/iSCSI features were enabled even with illegal mac.

        Change:  Disable the features if mac is illegal.

        Impact:  57712 SF mode.

    2.  Problem: CQ52212 8073PHY intermittently exhibits signs of disconnected
                 devices upon loading/unloading.

        Cause:   Microcontroller and Driver both controlling Xaui Low Power
                 Mode.

        Change:  Remove Driver control of Xaui Low Power Mode.

        Impact:  8073 PHY based boards.

    3.  Problem: CQ51624 PHY TXONOFF_PWRDN_DIS bit set to "1" instead of default
                 0 to prevent reset & power down of PHY.

        Cause:   When GPIO controls TX Laser on 8727 and 8706, turning off laser
                 will put PHY in low power mode.

        Change:  Set TXONOFF_PWRDN_DIS accordingly.

        Impact:  8727PHY and 8706PHY based boards with TX laser controlled by
                 GPIO_0.

    4.  Problem: Potential wrong PHY initialization when loading the first
                 function on a port, after another function from this port was
                 unloaded.

        Cause:   In this case, the driver won't lock PHY access, which may cause
                 MDC/MDIO collision.

        Change:  Initialize the lock flag on the init driver stage, instead of
                 the common and port init stage.

        Impact:  Multi-function mode.

Version 1.62.10 (Jan 17, 2011)
==============================
    Fixes
    -----
    1.  Problem: "Statistics sequence counter out of order" strom assert.

        Cause:   Race between the LINK_UP event handler and the timer which both
                 are calling the bnx2x_storm_stats_post() thus sending
                 consequent statistics ramrods without waiting for a
                 completion of the first. Therefore FW will read the ramrod data
                 of the second ramrod while handling the first one, which will
                 cause the above assert.

        Change:  Prevent the above race.

    2.  Problem: (FCoE) There was no licensing for FCoE.

        Cause:   Missing FCoE licensing handling code.

        Change:  Added the missing code.

        Impact:  FCoE only.

    3.  Problem: The module date was not updated since 2010/08/01.

        Cause:   The date was moved to another source file which did not updated
                 it automatically on submission to the version control system.

        Change:  Update the file properties so the version control system will
                 update the date automatically.

        Impact:  Introduced in 1.60.32.

    4.  Problem: Compilation error on some older vanilla kernels.

        Cause:   Improperly handling gso v6 feature by compat.

        Change:  Fix handling in bnx2x_compat.h.

        Impact:  Introduced in 1.62.06.

    5.  Problem: ESX - When there's a single netqueue (num_queues=2),
                 it can never be allocated for RX.

        Cause:   When there's a single netqueue it is set aside as an LRO
                 queue, but ESX does not put any queues in the LRO pool.

        Change:  Set aside queues 2 and 4 for LRO instead of 1 and 3.

        Impact:  ESX only.

    6.  Problem: (CQ52276) Unable to bring up device when iSCSI is not allowed.

        Cause:   Driver tried to enable feature, but failed due to illegal mac.

        Change:  Disable the feature if not allowed.

        Impact:  57712 SF mode. Introduced in 1.62.09.

Version 1.62.09 (Jan 03, 2011)
==============================
    Fixes
    -----
    1.  Problem: All multicast packets were arriving to all L2 clients.

        Cause:   All queues were configured to accept all multicast packets in
                 NPAR.

        Change:  Fix Rx mode configuration code in bnx2x driver.

        Impact:  NPAR only. Introduced in 1.60.09.

    2.  Problem: (CQ51731) Kernel paniced after "ethtool -d" test.

        Cause:   Registers dump caused MCP SPAD parity error, which caused
                 "close the gates" flow in HW, which in line caused undefined
                 behaviour of the whole system.

        Change:  Prevent HW blocks parity attentions during registers dump
                 routine.

    3.  Problem: ESX - CNIC 'change MTU' would fail or result in a PSOD.

        Cause:   Mismatched module IDs for request/free IRQ.

        Change:  Masquerade as CNIC when cnic ops are called form bnx2x.

        Impact:  ESX only.

    4.  Problem: Possible sending of a spurious MSI-X message after MSI-X is
                 disabled.

        Cause:   MSI-X configuration wasn't properly cleared when MSI-X was
                 disabled.

        Change:  Properly clear MSI-X configuration.

        Impact:  Introduced in 1.60.28.

    5.  Problem: (NPAR, FCoE) FCoE MAC wasn't read in NPAR mode.

        Cause:   Missing code.

        Change:  Add the missing code.

        Impact:  FCoE in NPAR mode only.

    6.  Problem: (iSCSI) If iSCSI offload is requested in switch dependent MF
                 mode zero MAC would be configured for iSCSI L2 queue.

        Cause:   Bug in a driver.

        Change:  Prevent the configuration of an illegal MAC.

        Impact:  iSCSI in switch dependent mode only.

    Enhancements
    ------------
    1.  Request: (CQ51889) Add Common Mode Sense (CMS) enable/disable
                 functionality.

        Change:  Adding field 156 to nvm cfg, as well as support in eLink.

        Impact:  NVM config and Common Mode Sense capable PHYs.

    2.  Request: Add dcbnl implementation supporting the FW DCBX engine.

        Change:  As requested.

        Impact:  57712 only.

Version 1.62.08 (Dec 20, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ51134) NC-SI functionality dependant on Port initialization
                 Sequence

        Cause:   When the driver loads the first port, some PHYs require reset
                 and loading their microcode on both ports. In case NCSI was
                 enabled on the other port, the traffic was stopped since PHY
                 was reset

        Change:  Load PHY microcode during common init, only if the PHY
                 microcode wasn't loaded

        Impact:  Requires bootcode 6.2.9 to resolve this problem
                 PHY firmware upgrade will require reboot from now on

    2.  Request: Increase RX ring size to 512 when using Jumbo Frames

        Change:  As requested

        Impact:  ESX only

    3.  Request: Enable OOO by default and have the OOO ring match
                 in size with a RX ring

        Change:  As requested

        Impact:  ESX only

    4.  Problem: (CQ51367) - BCM84823/84833 activity LED blinks at lower rate on
                 10G link

        Cause:   The activity LED control registers are not configured right

        Change:  Enabled activity LED stretch_en bit. Made activity LED blink on
                 source

        Impact:  BCM57712 + BCM84823/84833 based boards

    5.  Problem: (CQ51413) Driver crashed, when number of queues was set to a
                 value smaller than a default one due to SAFC configuration

        Cause:   Broken connection between an SAFC initialization and a memory
                 allocation code

        Change:  Fixed the above flaw

        Impact:  SAFC only. Introduced in 1.62.06

    Enhancements
    ------------
    1.  Request: CQ51710 - Disable CMS (common mode sense) feature in 84823
                 PHY, as this reduces power consumption and allows a better
                 10G link stability

        Change:  Clear the CMS bit in PHY register in PHY configuration routine

        Impact:  BCM84823B based boards

    2.  Request: Re-introduce the dropless_fc vmkernel module parameter

        Change:  As requested

        Impact:  ESX only

    3.  Request: BCM8727 Link LED not funtioning properly during BACS LED test

        Change:  Not blinking correct link light

        Impact:  BCM57712 + BCM8727 based boards

Version 1.62.07 (Dec 15, 2010)
==============================
    Fixes
    -----
    1.  Problem: (iSCSI, CQ50571) TCP connection erroneously closed

        Cause:   TCP window was closed due to out-of-order state, and initiator
                 failed to send a window update when exiting out-of-order state

        Change:  Fixed in FW 6.2.5

        Impact:  Introduced in 1.60.00

    2.  Problem: (CQ51171) One CX4 blade design does not autoneg to link up
                 at 10G with a particular switch.

        Cause:   The autoneg was not enabled due to incorrect setting at the
                 XGXS AER

        Change:  Update the XGXS AER to devad 7 to allow proper configuration of
                 autoneg

        Impact:  57712 only

    3.  Problem: (iSCSI, CQ50380) TCP window was closed due to out-of-order
                 state, and initiator failed to send a window update when
                 exiting out-of-order state

        Cause:   Malformed message is sent by FW from Tstrom to Xstorm

        Change:  Fixed in FW 6.2.6

        Impact:  iSCSI OOO only. Introduced in 1.60.15


    Enhancements
    ------------
    1.  Request: Use FW 6.2.6

        Change:  As requested

    2.  Request: (CQ48296), (CQ51540) Add support for new BCM8727 boards

        Change:  As requested

        Impact:  BCM8727 based boards

Version 1.62.06 (Dec 2, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ50681) Device hangs on up/down test when PFC is enabled

        Cause:   If the device is going down while in PFC Xoff it will not set
                 it to Xon and therefore, on the next load it will remain in
                 constant Xoff

        Change:  Force PFC Xon when enabling the device

        Impact:  57712 only

    2.  Problem: ethtool -t failed on single port boards and 57712 (nvram test)

        Cause:   Erroneous access to unexistent port info

        Fix:     remove the access

    3.  Problem: PCI bus error when trying to transmit LSO packets from 57712 on
                 Big Endian machines

        Cause:   Parsing BD parsing_data field was malformed when running
                 57712 on Big Endian machines

        Fix:     Fix the code handling the parsing_data field of a parsing BD
                 for 57712

        Impact:  Introduced in 1.53.0a, 57712 only

    4.  Problem: Kernel panic when receiving in none-MSI-X interrupt mode

        Cause:   Indirection table was configured with none-existing queues when
                 MSI-X was not attainable and RSS queues set was cut to a single
                 queue. The reason for the above was an improper location of
                 SAFC initialization code and usage of the SAFC parameters for
                 the indirection table configuration despite the fact that an
                 SAFC MF mode was not requested/not available

        Fix:     Don't use SAFC parameters unless SAFC MF mode is requested

        Impact:  Introduced in 1.60.30

    5.  Problem: (CQ48350, CQ49176, CQ50911, CQ51200) BCM57712 not linking up
                 after system waked up

        Cause:   PHY firmware does not have enough time to download in 8073 and
                 8727 common init

        Fix:     Poll until PHY firmware is downloaded, and then timeout at
                 300ms

        Impact:  8727 and 8073 PHYs

Version 1.62.05 (Nov 26, 2010)
==============================
    Fixes
    -----
    1.  Problem: A possible dead-lock situation between sch_direct_xmit() and
                 bnx2x_run_loopback() (calling bnx2x_tx_int()) on
                 netif_tx_lock()

        Cause:   Both functions above take a netif_tx_lock() but
                 bnx2x_run_loopback() is called in a syscall context and takes a
                 lock without disabling BHes on a local CPU, which may cause a
                 dead lock as long as sch_direct_xmit() is called in a
                 soft_irq() context

        Fix:     Explicitly disable local BHes in bnx2x_run_loopback() to
                 prevent a mentioned above dead-lock situation

        Impact:  Introduced in 1.60.25

    Enhancements
    ------------
    1.  Request: Integrate VLAN enhancements from the net-next

        Change:  As requested

    2.  Request: (NPAR) Restore set speed ethtool interface to use absolute
                 speed instead of percents

        Change:  As requested

        Impact:  NPAR mode only, introduced in 1.62.04

Version 1.62.04 (Nov 17, 2010)
==============================
    Fixes
    -----
    1.  Problem: Duplex status may be displayed incorrect

        Cause:   Missing duplex configuration in some external PHYs when link
                 goes up

        Change:  Set duplex to FULL when 10G link comes up

    2.  Problem: 57712 incorrect PCIX interface speed reported to user

        Cause:   Improper print

        Change:  Fix print

        Impact:  57712 only

    3.  Problem: (FCoE, NPAR) FIP mac is not configured in NPAR mode

        Cause:   FIP configured for SF only

        Change:  Add NPAR mode

        Impact:  57712 NPAR mode only

    4.  Problem: (CQ51015) nx2 Package 6.2.5 has error when compile on RH6.0

        Cause:   cnic_if.h included before if_vlan.h

        Change:  Move if_vlan.h before cnic_if.h

        Impact:  Introduced in 1.62.01

    5.  Problem: Compilation failed when kernel configured without 8021Q

        Cause:   Improper #ifdef structure

        Change:  Fix the #ifdef structure to suit the configuration

        Impact:  Introduced in 1.62.01

    6.  Problem: (CQ50672) Chip hangs when running iSCSI traffic on one function
                 and toggling load/unload on the other function

        Cause:   Firmware initialized the CAM incorrectly, causing iSCSI out of
                 order client to receive an unexpected packet

        Change:  (Fixed in FW 6.2.3) Fixed firmware flow

        Impact:  Introduced in 1.60.01, BCM57710 only

    7.  Problem: (CQ50748) MinBW not functioning as expected in certain
                 NPAR configuration

        Cause:   MinBW algorithm coefficients were not calculated properly and
                 cause the algorithm to not function well in extreme cases

        Change:  Re-calculate the algorithm coefficients to allow
                 granularity of 1:100

        Impact:  Affects NPAR mode in which MAX bandwidth can be configured
                 to over-subscription

    6.  Problem: Compilation failed on RH5.6

        Cause:   Redefinition of backported function

        Change:  Remove the definition from bnx2x code for RH5.6

    Enhancements
    ------------
    1.  Request: Use FW 6.2.3

        Change:  As requested

    2.  Request: (CQ51065) NPAR mode: change Max BW from units of "intervals of
                 [100Mbps]" to units of "% of physical link speed"

        Change:  As requested

        Impact:  NPAR mode only

Version 1.62.03 (Nov 10, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ50559) Build fails with RHEL6 kernel

        Cause:   Redefinition of backported function

        Change:  Remove the definition for RH kernels

        Impact:  Introduced in 1.62.01

    2.  Problem: Compilation failed on 2.6.36 kernels

        Cause:   Improper conditions in bnx2x_compat.h layer

        Change:  Fix condition for functions' definitions

    3.  Problem: (CQ50903) Driver prints some debug info when dcbx enabled

        Cause:   Debug info printed with error dbg level

        Change:  Remove the prints

    4.  Problem: False bug-check when trying to set speed in NPAR mode when link
                 is down

        Cause:   The FW should be configured only after the physical link is up

        Change:  Do not configure the FW while link is down with the new speed
                 settings

        Impact:  57712 NPAR mode only

    5.  Problem: (iSCSI) (CQ50380) Offloaded connection eventually closed

        Cause:   TCP window is closed and initiator cannot properly process
                 incoming in-order packets

        Change:  (in FW 6.2.2) Fixed firmware flow

        Impact:  Introduced in 1.60.01

    6.  Problem: (iSCSI) in NPAR mode devices have incorrect iscsi mac address

        Cause:   Mac address was taken from port configuration

        Change:  Take the mac addresses from NPAR configuration

    Enhancements
    ------------
    1.  Request: (CQ49959) Request to log event log in case the PHY does
                 not come out of reset

        Change:  As requested

    2.  Request: Use FW 6.2.2

        Change:  As requested

Version 1.62.02 (Nov 3, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ49515 & CQ50024) Occasionally losing link on force 10/100
                 connections on BCM84823 based boards

        Cause:   Not waiting for GPHY to complete reset

        Change:  Add 50ms delay after 84823 PHY comes out of reset

        Impact:  BCM84823 based boards

    2.  Problem: (CQ50623) MF is not functional on single CPU systems

        Cause:   Improper FW configuration when only one queue configured

        Change:  Allow FW configuration when only one queue configured

        Impact:  Introduced in 1.62.01

    3.  Problem: Possible race between the netdev->open() and the last part of
                 pci_dev->probe() that configures the interrupt mode and adds
                 NAPIs

        Cause:   Improper operations order: netdev_register() should be called
                 after driver is completely configured

        Change:  Move all driver initializations before the netdev_register()
                 call

        Impact:  Introduced in 1.60.28

    Enhancements
    ------------
    1.  Request: (CQ50053) Add "Dual Media Support" section to README/Man pages

        Change:  As requested

Version 1.62.01 (Oct 20, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ49888) Can't pass VLAN Tagged packets when CAP_VLAN_RX & TX
                 are disabled

        Cause:   VLAN HW acceleration was performed regardless the value of the
                 runtime NETIF_F_HW_VLAN_RX/NETIF_F_HW_VLAN_TX netdev
                 capabilities

        Change:  Consider NETIF_F_HW_VLAN_RX/NETIF_F_HW_VLAN_TX netdev
                 capabilities when enabling or disabling VLAN HW acceleration
                 capability

        Impact:  ESX only. Introduced in 1.60.11

    2.  Problem: (CQ49375) VLAN tag was stripped from the packet when there were
                 no VLAN interfaces configured

        Cause:   HW VLAN stripping was always configured

        Change:  Don't configure HW VLAN stripping if there are no VLAN
                 interfaces configured for the current device

    3.  Problem: iSCSI OOO didn't work over VLAN

        Cause:   Inconsistent Client configuration and fast path functions
                 implementation for OOO Client in regard to HW VLAN
                 acceleration

        Change:  Don't assume HW VLAN acceleration in fast path iSCSI OOO
                 functions

        Impact:  iSCSI OOO only

    4.  Problem: (PR609549) vsish pNic general statistics always showed 0

        Cause:   The incorrect stats struct was given to the vmkernel.
                 The private data stats struct was given to the vmkernel
                 rather then the stats struct in the net_device struct

        Change:  When the vmkernel is requesting for the stats, return the stats
                 struct used by ESX 4.x (netdev->stats)

        Impact:  ESX4.x only

    5.  Problem: (CQ49886) MC Assert on 57710 with more than 4 queues

        Cause:   ESX does not align physical memory to requested size. Thus ILT
                 pages do not adhere to 57710 alignment requirements

        Change:  Allocate extra memory and manually align CDU ILT pages. Define
                 ILT pages for all other clients to be 4K

        Impact:  ESX only. Introduced in 1.60.01

    6.  Problem: (ESX) LRO (TPA) not enabled for 4.1

        Cause:   __NO_TPA__ CFLAG defined for all ESX releases

        Change:  Define __NO_TPA__ only for ESX releases below 4.0

        Impact:  ESX only. Introduced in 1.60.01

    7.  Problem: On ESX 4.1, not all 8 queues are exposed for BCM57711

        Cause:   When reducing the number of queues for ESX 4.0
                 ESX 4.1 was also effected

        Change:  At compile time, allow for 8 queues for ESX 4.1 and
                 4 queues for ESX 4.0

        Impact:  ESX only. Introduced in 1.60.43

    8.  Problem: (CQ50111) Unload/Load driver in MSI mode causes kernel warning

        Cause:   pci_enable_msi() called during open()

        Change:  move pci_enable_msi() to init_one()

        Impact:  Introduced in 1.60.28

    9.  Problem: (CQ50208) ESX4.0/4.1 pNic statistics are not updated

        Cause:   Using a local statistics structure for ESX instead of the
                 net_device statistics structure

        Change:  Use the correct statistics structure for ESX

        Impact:  ESX only

    10. Problem: (CQ50033) Link remains down on the PMF despite the DCC
                 "link up" indication

        Cause:   DCC event handler wasn't handling the event for the PMF

        Change:  Fix the DCC event handler code

        Impact:  57711 and 57712 only

    11. Problem: Link up event is not reported to the OS

        Cause:   Inconsistent link report state handling

        Change:  Change the link report state handling

    12. Problem: (CQ50004, CQ50166) ESX4.1. TPA not working, netperf for LRO
                 net-queues fail

        Cause:   IP header offset is not computed correctly for ESX,
                 as a result the IP header checksum is not fixed correctly

        Change:  Correct the IP header offset computation

        Impact:  ESX only

    13. Problem: All traffic comes to RX queue 0

        Cause:   Missing RSS enablement code

        Change:  Add missing code

        Impact:  Introduced in 1.60.30

    14. Problem: Xmit was stopping after a short time on the Flex-10

        Cause:   Wrong parsing of the MIN_MAX configuration in the SHMEM

        Change:  Revert the parsing logic to what it was before 1.60.47

        Impact:  Introduced in 1.60.47

    15. Problem: (ESX) Non LRO net-queues were still aggregating incoming TCP
                 frames

        Cause:   net-queues not reserved for LRO were not internally marked
                 as such (tpa not disabled)

        Change:  correctly disable tpa fpr such queues

        Impact:  ESX only, Introduced in 1.60.48

    16. Problem: (CQ50411) All traffic comes to RX queue 0

        Cause:   Missing RSS enablement code

        Change:  Add missing code

        Impact:  Introduced in 1.60.30

    17. Problem: (ESX) Bad IP checksum for TPA packets over VLAN when VLAN
                 acceleration is disabled

        Cause:   IP header offset wasn't properly calculated in the case
                 mentioned above

        Change:  Don't move the IP header pointer in VLAN none-accelerated case
                 as eth_header_len() has already taken it into an account

        Impact:  ESX only

    18. Problem: (CQ50080) Link up event is not reported to the OS

        Cause:   Inconsistent link report state handling

        Change:  Change the link report state handling

        Impact:  Introduced in 1.60.47

    19. Problem: (CQ49827, CQ49844) pNic Link/Unlink test fails when the pNic
                 eventually fails to load

        Cause:   During load skb allocation for L2 queues is stopped on the
                 first failure. If this happens on the default queue before a
                 minimal number of skbs were successfully allocated nic load
                 fails

        Fix:     Do not break upon first skb allocation failure. Fail only if
                 after queues size allocation attempts not enough skbs were
                 successfully allocated

        Impact:  ESX only

    20. Problem: (CQ49826) Wrong skb queue mapping passed to hard_xmit

        Cause:   FCoE L2 queue is not disabled and is used by the stack

        Change:  Disable FCoE L2 queue for E1x in general and all devices in
                 ESX

        Impact:  ESX only

    21. Problem: (ESX) packets received on a net queue may arrive after its
                 filters are removed

        Cause:   Filter removal completion is not synchronized with the
                 net-queue fast-path completions

        Change:  Send a flush command for the net-queue after deleting the
                 filter and before returning from the filter removal call-back

        Impact:  ESX only

    22. Problem: ethtool -S shows all possible queues including disabled queues
                 such as FCoE or queues with no stats such as iSCSI OOO queues

        Cause:   ethtool statistics call-backs iterate over all queues

        Change:  Iterate only over L2 queues and FCoE queue if not disabled

    23. Problem: (ESX, PR379952/PR405074) FW asserts on invalid value in a VLAN
                 field in the start BD (xmit flow)

        Cause:   Invalid calculation of the headers length and, as a result,
                 invalid handling of packet dropping

        Change:  Check that the headers are in the first BD only for the LSO
                 packets. Properly calculate the headers length and drop the skb
                 if it's illegal

        Impact:  ESX only

    24. Problem: (CQ49968) DMAE timeout on specific system during init

        Cause:   The DMAE can take up to 200ms to complete on some systems

        Change:  Update the DMAE timeout from 2ms to 200ms

    Enhancements
    ------------
    1.  Request: Use FW 6.0.34

        Change:  As requested

    2.  Request: (CQ49997) Implement Bandwidth allocation for Nic partitioning
                 mode

        Change:  As requested

        Impact:  57712 only

    3.  Request: Properly calculate the LRO MSS value (needed for TCP delayed
                 ACK handling)

        Change:  As requested

Version 1.60.43 (Sep 16, 2010)
==============================
    Fixes
    -----
    1.  Problem: Performance regression on ESX4.x

        Cause:   Tx ring was configured to have a smaller length than it was in
                 IOVP driver

        Change:  Configure Tx ring to have the same length as in IOVP driver

        Impact:  ESX4.x only

    2.  Problem: (PR609549) vsish pNic general statistics always showed 0

        Cause:   The incorrect stats struct was updated. The private data
                 stats struct was updated rather then the stats struct
                 in the net_device struct

        Change:  When updating the stats, update the stats struct used
                 by ESX 4.x, the stats struct in the net_device struct

        Impact:  ESX4.x only

    3.  Problem: (CQ49760) No link on 10Gbase-T PHY on some systems

        Cause:   Not waiting until PHY has come out of reset

        Change:  Poll on reset bit. Timeout after 1 second

        Impact:  BCM84823 based boards

    4.  Problem: BCM8726 was not reset during common init

        Cause:   GPIO assert should have been swap due to board design

        Change:  Assert reset through the swapped GPIO port

        Impact:  BCM8726 based boards

    Enhancements
    ------------
    1.  Request: Optimize fast path performance

        Change:  Optimized the branching in the bnx2x_rx_int() based on the
                 fact that FP CQE will always have at least one of START or
                 STOP flags set, so if not both bits are set and START bit is
                 not set, then it's a STOP bit that is set

Version 1.60.42 (Sep 13, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ49795) Link loss on port after multiple iterations of
                 load-unload

        Cause:   When link change occur, and at the same time the driver is
                 unloaded, the NIG attention is left latched since it is used to
                 be cleared only during link change event. This leads that
                 following link change events are actually masked

        Change:  Clear NIG latched attention during driver unload

        Impact:  BCM84823 based boards

Version 1.60.41 (Sep 8, 2010)
==============================
    Fixes
    -----
    1.  Problem: (ESX) unload flow bails too early without properly releasing
                 resources and resetting the HW

        Cause:   Erroneous state validation causes early bail out form the
                 unload flow

        Change:  Fix the state validation condition

        Impact:  (ESX only) Introduced in 1.60.40

    2.  Problem: (ESX) ethtool -t (self-test) causes PSOD

        Cause:   Erroneous state validation causes early bail out form the
                 unload flow. As a result napi is not disabled and the next
                 load tries to re-enable the already enabled napi

        Change:  Fix the state validation condition

        Impact:  (ESX only)

Version 1.60.40 (Sep 7, 2010)
==============================
    Fixes
    -----
    1.  Problem: Possible corrupted fast-path state after nic load

        Cause:   The fast-path structure is not zero'd during nic load

        Change:  bzero the fast-path structure

        Impact:  Introduced in 1.60.28

    2.  Problem: Accessing NULL pointer when debug printing queues stats and
                 ooo rings are disabled

        Cause:   the debug print loop iterates over all rx/tx queues instead
                 of the strictly L2 queues. When ooo is disabled the print will
                 access NULL pointers

        Change:  Iterate over the L2 queues only (eth_queues)

        Impact:  Introduced in 1.60.01

    3.  Problem: (CQ49299) HW stuck after 8 hours of heavy LSO traffic

        Cause:   Firmware miscalculated SGL length of LSO packet with BDs larger
                 than 64K, leading to erroneous HW command

        Change:  (In FW 6.0.32) Fix calculation

    4.  Problem: Under low memory condition, on kernels below 2.6.24 and
                 backported GRO infrastructure, when system not able to allocate
                 all RSS queues, some RSS queues become unfunctional

        Cause:   Misplaced preprocessor directives

        Change:  Fix preprocessor directives

        Impact:  Introduced in 1.60.27

    Enhancements
    ------------
    1.  Request: Use FW 6.0.33

        Change:  As requested

Version 1.60.39 (Sep 2, 2010)
==============================
    Enhancements
    ------------
    1.  Request: (CQ49671) Add capability to build against SuSE source RPMs

        Change:  As requested

Version 1.60.38 (Aug 31, 2010)
==============================
    Fixes
    -----
    1.  Problem: Possible inconsistency in parity recovery flow in case of bogus
                 usage of bnx2x_trylock_hw_lock() function

        Cause:   Inconsistent error core returned (-EINVAL while function
                 returns 'bool')

        Change:  Return 'false' in case of an error

        Impact:  Introduced in 1.60.01

    2.  Problem: (CQ49649) Dual Media: No 1Gb fiber link after changing driver
                 speed property, when cable is connected

        Cause:   Link interrupt is generated from NIG attention common for both
                 phys on dual media board. The NIG status was set for
                 both PHYs while it should have been done for the copper
                 attention only

        Change:  Set NIG attention according to the active PHY

        Impact:  Dual media boards

Version 1.60.37 (Aug 25, 2010)
==============================
    Fixes
    -----
    1.  Problem: num_queues module parameter functionality was broken

        Cause:   Improper initialization of the bp->num_queues

        Change:  Properly initialize the bp->num_queues

        Impact:  Introduced in 1.60.35

    2.  Problem: When ALL_MULTI rx mode was requested HW was configured to the
                 PROMISC mode

        Cause:   Missing `break' in a switch-case structure

        Change:  Added a missing `break'

        Impact:  Introduced in 1.60.01

    3.  Problem: (CQ49328) Failed to load an 57710 interface on ESX

        Cause:   Initialization of a forwarding client failed

        Change:  Don't configure iSCSI OOO by default when running on ESX (it's
                 not supported on ESX at the moment)

        Impact:  ESX only

    4.  Problem: Statistics counter may display inconsistent value

        Cause:   Counting statistics directly into shared buffer

        Change:  Use a private variable to fold rx_dropped value

    5.  Problem: HW Statistics collection through the DMAE broken on 57712

        Cause:   For 57712 the DMAE command needs to include the destination
                 function.

        Change:  Adjust the DMAE command to work on 57712

        Impact:  Introduced in 1.60.01

Version 1.60.36 (Aug 19, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ47494) VMs were unable to pass IPv6 traffic

        Cause:   Default queue rx mode was not properly configured

        Change:  Configure a default queue to always accept an unmatched
                 unicast traffic and never configure it to accept all unicast
                 traffic (even in a promiscuous mode). This fix will also
                 properly resolve a packets duplication problem

        Impact:  ESX only

    2.  Problem: (CQ49197) No link at 1Gb/2.5Gb on BCM8073 based boards

        Cause:   CL37 BAM was enabled on all boards while it should be
                 configurable

        Change:  Disable CL37 BAM by default

        Impact:  BCM8073 based boards. Introduced in 1.60.21

Version 1.60.35 (Aug 17, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ48954) Kernel panic when system is not able to allocate
                 all MSIX vectors requested by driver

        Cause:   Numbers of queues adjustment didn't count FW+OOO channels

        Change:  Make the adjustment independent of active channels

        Impact:  Introduced in 1.60.13

    Enhancements
    ------------
    1.  Request: (DCBX) Change ETS behavior when 100%-0% bandwidth allocation
                 is received from no ETS configuration to 99%-1% bandwidth
                 allocation

        Change:  As requested

Version 1.60.34 (Aug 12, 2010)
==============================
    Fixes
    -----
    1.  Problem: Dual Media PHY 84823 activity and front panel LED's not
                 functioning correctly. Also Diagnostic Mode LED's not firing
                 correctly

        Cause:   LED masks not set correctly

        Change:  Changed LED masks, and added LED mode for Diagnostics

        Impact:  Dual Media boards

    2.  Problem: (FCoE) (CQ49244) ABTS BA_ACC dropped due to F_CTL
                 (LAST_SEQ bit) verification mismatch

        Cause:   Detecting a protocol violation in ABTS BA_ACC frame from
                 target (target protocol violation)

        Change:  (in FW 6.0.31) No need to verify LAST_SEQ bit in F_CTL field

    3.  Problem: (CQ49296) - Dual media:  Copper link would not come up upon
                 removal of fiber media when serdes priority and 1GB full is set
        Cause:   When Fiber link is set to 1G, its XAUI will not automaticity
                 power down like it does in 10G. This cause the BCM84823 to
                 detect false link from the BCM8727 even if Fiber is not
                 connected. This ends up in not linking the copper side

        Change:  When link is configured to 1G, power down the BCM8727 XAUI
                 side and when link comes up, power it up

        Impact:  Dual Media boards

    4.  Problem: (CQ49137) -Dual Media: Ethtool fail - Link_test (online) on TP
                 every few iterations

        Cause:   Link detection may take very long in case of copper, while the
                 wait up time was limit to 10sec only

        Change:  Increase link wait up time in link test to 14sec

        Impact:  Dual Media boards

Version 1.60.33 (Aug 11, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ48584) Intermitted link issue and unexpected behavior using
                 boards with external PHYs

        Cause:   PHY lock indication was missing on second port, so there was no
                 locking between the ports. When two ports tried to read/write
                 from the PHY, they the instruction may collide.

        Change:  Set PHY lock indication of both ports

        Impact:  57710/57711 on boards with external PHY; Introduced in 1.50.0

    2.  Problem: (CQ49219) Dual media: Copper link does not come up once
                 10gbaseT priority is set in driver property

        Cause:   Link indication from both Copper and Fiber

        Change:  Ignore link indication from Fiber in case Copper is selected

        Impact:  Dual-media boards; Introduced in 1.60.32


Version 1.60.32 (Aug 5, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ48747) Dual media: fiber port does not link at 1gig speed

        Cause:   The link speed in the pass-through phy (84823) was set to 10G

        Fix:     Set the pass-through speed to 1G as well when fiber is set to
                 1G

        Impact:  Dual-Media boards

    2.  Problem: (CQ49143) Dual Media: First attempt to change from default TP
                 to FIBRE using ethtool does not work.

        Cause:   When changing port type from TP to FIBRE the command failed
                 since FIBRE doesn't support autoneg, yet the port type was
                 changed.

        Fix:     When ethtool command fail, do not change port type

        Impact:  Dual-Media boards

    3.  Problem: Compilation error on kernels 2.6.34 and later

        Cause:   netdev_name() defined by both kernel and driver

        Fix:     Fix compat.h for these kernels

    4.  Problem: 84823 PHY not showing correct Link LED's.

        Cause:   Incorrectly setting LED Masks

        Fix:     Eliminated offending branch in code

        Impact:  Introduced in 1.60.24

    5.  Problem: (CQ49137) ethtool -t test fails in dual-media boards

        Cause:   Link wasn't tested correctly depending on the media
                 configuration

        Change:  Test link according to media configuration

        Impact:  Dual-Media boards

    6.  Problem: (CQ49004) Dual Media: Switch show link on both media
                 simultaneously.

        Cause:   Not disabling TX on non-active port.

        Change:  In case link is up in non SFP+, disable the SFP+ TX laser.

        Impact:  Dual-Media boards

    7.  Problem: On BCM8727 based boards, when link speed is changed from 1G
                 to 10G, PCS may be halted

        Cause:   Restoring 10G link setting was done according to old PHY
                 microcode

        Change:  Restore default 10G link setting according to new microcode

        Impact:  BCM8727 based boards

Version 1.60.30 (Jul 29, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ47855) Link test fails under Linux using ethtool

        Cause:   In case a MAC test followed by link test, the NIG attention
                 might be cleared while ISR was already triggered due to NIG
                 attention. This led to declaring the MAC test as failed since
                 there's actually no link in this case

        Fix:     In case NIG interrupt mask is cleared during interrupt
                 handling, do not execute link status update routine

    2.  Problem: (CQ49067) Compilation failed on kernels 2.6.23 - 2.6.27

        Cause:   Wrong assumption in #includes order, caused BNX2X_MULTI_QUEUE
                 to be defined on these kernels

        Fix:     Remove the assumption

        Impact:  Introduced in 1.60.14

    Enhancements
    ------------
    1.  Request: Support HW Rx hash generation for a single queue configuration

        Change:  As requested

Version 1.60.29 (Jul 21, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ48770) When working with rate-limiting in 57711/2 with jumbo
                 frames, the rate is half of what configured

        Cause:   Firmware miscalculated the amount of bytes transmitted

        Fix:     (In FW 6.0.30) Fixed the calculation

        Impact:  Introduced in 1.60.16 (FW 6.0.20)

    2.  Problem: FW XSTORM assert during server reboot test

        Cause:   There were two statistics ramrods sent with the same statistics
                 counter. There was a race condition in the bnx2x driver that
                 allowed this situation

        Fix:     Protect statistics ramrod sending code and statistics counter
                 update with the spin lock

    Enhancements
    ------------
    1.  Request: Use FW 6.0.30

        Change:  As requested

    2.  Request: Rearrange LLH memory organization

        Change:  Allow 16 MACs in the memory; do not set FCoE MACs in LLH

        Impact:  Switch-Independent mode only

Version 1.60.28 (Jul 14, 2010)
==============================
    Fixes
    -----
    1.  Problem: Possible crash during load/unload of one function, if more
                 functions are loaded.

        Cause:   Statistics ramrod of one function might override data of other
                 functions

        Fix:     (In FW 6.0.29) Fixed statistics ramrod

        Impact:  Introduced in 1.60.07 (FW 6.0.5)

    2.  Problem: Port detection feature(ethtool -p) for dual-media is not
                 working

        Cause:   BCM8727 LED needs to be set via the PHY, and not the MAC

        Fix:     Set BCM8727 LED via PHY

        Impact:  Dual-Media boards

    3.  Problem: ethtool -s ethX speed YYY does not work properly

        Cause:   Forcing port configuration every call to ethtool -s

        Fix:     Do not change port configuration if not requested

        Impact:  Introduced in 1.60.27

    4.  Problem: Divide by 0 in driver code, after disabling coalescing via
                 ethtool

        Cause:   Conversion from usec to interrupt per sec done without check
                 for zero

        Fix:     Check for zero in conversion

        Impact:  Introduced in 1.60.26

    5.  Problem: (CQ48787) ethtool -t fails in Switch-Independent mode after
                 bringing up higher functions (4,5,6,7)

        Cause:   Improper mac placement in NIG block

        Fix:     Fixed address calculation

        Impact:  Switch-Independent mode only

    Enhancements
    ------------
    1.  Request: Modify Dual-media look & feel such that ethtool gets and sets
                 the configuration of the active PHY only. Active PHY is the
                 PHY which linked up, or in case of link down, according to the
                 port selection

        Change:  As requested

    2.  Request: Use FW 6.0.29

        Change:  As requested

    3.  Request: Don't call for pci_disable_msix() every time bnx2x_nic_unload()
                 is called

        Change:  Move pci_enable_msi/msix() to pcidev->probe() callback

    4.  Request: (ESX) Call for netif_napi_add() before netdev->open()

        Change:  As requested. This change is relevant for all platforms

    5.  Request: Support for ethtool_cmd.speed_hi field

        Change:  As requested

Version 1.60.27 (Jul 07, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ48202) Under low memory condition, rx stop functioning
                 during load/unload test

        Cause:   Some queue may be not fully populated, under low memory
                 condition, which may cause FW to drop packets for this queue

        Fix:     Change memory allocation scheme in order to avoid this
                 situation

    2.  Problem: Link lost every other time when driver is brought up.

        Cause:   When the PHY swap parameter ('nvm cfg' option 124) is set, the
                 PHY's swap everytime the link is brought up.

        Change:  Instead of storing the PHY order, we calculate it fresh
                 everytime.

        Impact:  Dual-media boards.

    Enhancements
    ------------
    1.  Request: Return an error if bnx2x_set_flags() is called for unsupported
                 flags

        Change:  As requested

    2.  Request: Don't collect statistics if requested so according to
                 edebug-driver interface (edebug_driver_if field in shmem2
                 region)

        Change:  As requested

    3.  Request: Add support to bnx2x to extract Toeplitz hash out of the
                 receive descriptor for use in skb->rxhash

        Change:  As requested

        Impact:  Kernel 2.6.35 and newer

    4.  Request: Add ethtool port selection for dual media

        Change:  As requested

        Impact:  Dual media boards

Version 1.60.26 (Jun 30, 2010)
==============================
    Fixes
    -----
    1.  Problem: Incorrect LED behavior on dual-media platform

        Cause:   The LED settings are used to control GPIO in favor of
                 over-current detection

        Fix:     On NOC (No-OverCurrent) flavor, configure the GPIOs to reflect
                 LED behavior rather than unnecessary over-current indication

        Impact:  BCM8727 based boards

    2.  Problem: Possible deadlock on bp->stat_sm_lock spinlock

        Cause:   Inappropriate locking function was used for protecting a
                 resource accessed by workqueue and timer:
                    used spin_lock()/spin_unlock() while should be
                    spin_lock_bh()/spi_unlock_bh()

        Fix:     Use an appropriate locking API: spin_lock_bh()/spin_unlokc_bh()

        Impact:  Introduced in 1.60.22

    3.  Problem: Possible crash loading cnic if iSCSI OOO has been disabled
                 in a bnx2x

        Cause:   cnic was unaware of the fact that iSCSI OOO may be disabled in
                 the bnx2x

        Fix:     Add an appropriate bit in a cnic_eth_dev->drv_state and set
                 it if iSCSI OOO is disabled in the bnx2x. This is done in a
                 bnx2x_cnic_probe2()

        Impact:  CNIC only

    4.  Problem: Interrupt coalescing was disabled in the chip

        Cause:   Coalescing was erroneously disabled by bnx2x by default

        Fix:     Properly configure coalescing

        Impact:  Introduced in 1.60.11

    Enhancements
    ------------
    1.  Request: Fit Dual media selection to the new scheme

        Change:  As requested

    2.  Request: Enable to set the GPIO which controls the external PHY reset
                 (through nvm cfg 129)

        Change:  As requested

        Impact:  BCM8727 based boards

Version 1.60.25 (Jun 23, 2010)
==============================
    Fixes
    -----
    1.  Problem: Link down when using specific DACs (Direct Attached Cables)

        Cause:   Some DAC's EEPROM do not respond at 400Khz speed

        Fix:     Set 2-wire transfer rate of SFP+ module EEPROM to 100Khz

        Impact:  BCM8727 based boards

    2.  Problem: (FCoE) (CQ48021) RESET_LUN operation failed due to
                 error detection

        Cause:   Detecting a protocol violation in response frame from
                 target (target protocol violation)

        Fix:     (In FW 6.0.28) Mask the error reporting

        Impact:  FCoE only

    3.  Problem: (FCoE) 10% performance degradation

        Cause:   Read queue used by firmware did not have enough credits

        Fix:     (In FW 6.0.28) Change the read queue used by firmware

        Impact:  Introduced in 1.60.24 (FW 6.0.27)

    4.  Problem: (FCoE) (CQ48403) Target does not handle incoming FCP_DATA

        Cause:   Increasing SEQ_CNT is not supported by target

        Fix:     (In FW 6.0.28) Reset the SEQ_CNT back to zero when transmitting
                 new FCP_DATA frame

        Impact:  FCoE only

    5.  Problem: There was a "timeout waiting for queue[0]" message in a syslog
                 when running self-test (ethtool -t ethX) on 57712

        Cause:   Unlike HC IGU won't generate an interrupt for status block
                 updates that have been performed while interrupts disabled thus
                 Tx work generated by loopback test will never be handled

        Fix:     Call for bnx2x_tx_int() from inside the loopback test for chips
                 with IGU (57712 and newer)

        Impact:  57712 only

    6.  Problem: (CQ48284) up-down test on port 1 causes traffic to stop on
                 port 0

        Cause:   Improper cleanup of HC and IGU blocks during function init

        Fix:     Fix HC block cleanup, remove unnecessary IGU clean-up

        Impact:  Introduced in 1.60.15

    Enhancements
    ------------
    1.  Request: (CQ48374) Add a module parameter to disable iSCSI OOO

        Change:  As requested: added a disable_iscsi_ooo module parameter, which
                 is present if BCM_CNIC is defined, otherwise iSCSI OOO is not
                 enabled anyway

    2.  Request: (iSCSI) Add counters for iSCSI out-of-order events

        Change:  As requested (counters can be read from RAM through GRC)
                 (In FW 6.0.28)

    3.  Request: Use FW 6.0.28

        Change:  As requested

Version 1.60.24 (Jun 16, 2010)
==============================
    Fixes
    -----
    1.  Problem: (iSCSI) (CQ42399) Unable to run I/Os greater than 1500 bytes
                 with initiator MTU set to 9000 and target MTU set to 1500

        Cause:   Timestamp option was not considered in MSS calculation

        Fix:     (in FW 6.0.27) Fix mss calculation when timestamp option
                 is present

        Impact:  iSCSI only

    2.  Problem: (iSCSI) (CQ46648) Connection closure tests fail

        Cause:   Incorrect FIN max retransmit count

        Fix:     (in FW 6.0.27) Fix FIN max retransmit count

        Impact:  iSCSI only

    3.  Problem: (FCoE) Address calculation of task-context in Ustorm
                 could be wrong

        Cause:   Address calculation considered an argument twice

        Fix:     (in FW 6.0.27) Fix calculation

    4.  Problem: (FCoE) Ustorm RAM read/update could be wrong during
                 event generation

        Cause:   Confusion between addresses while accessing RAM databases

        Fix:     (in FW 6.0.27) Use appropriate address for each specific
                 database

    5.  Problem: (FCoE) ABTS local-completion mechanism did not handled error if
                 error was detected on ABTS BA_ACC

        Cause:   Not handling error caused an assert

        Fix:     (in FW 6.0.27) Handle error by overwriting RX state.
                 Cleanup shall follow to clean the task

    6.  Problem: (FCoE) Writing to host memory from Tstorm could be corrupted

        Cause:   Using the same write VQ for Tstorm and Cstorm

        Fix:     (in FW 6.0.27) Using the write VQ belongs to Tstorm only

    7.  Problem: bnx2x wouldn't properly function with 2.6.29 kernel

        Cause:   bnx2x used new netdev->netdev_ops interface starting from
                 2.6.30 and not from 2.6.29 kernel as should be

        Fix:     Use new netdev_ops interface starting from 2.6.29 kernel

        Impact:  2.6.29 kernel only

    Enhancements
    ------------
    1.  Request: Align TCP advertised window in iSCSI (4b alignment)

        Change:  As requested in FW 6.0.26

    2.  Request: Mask protocol violations error detected by chip on HP targets

        Change:  Masking the specific checks (in FW 6.0.26)

    3.  Request: Dropping invalid packets which are received during the
                 abort procedure

        Change:  As requested (in FW 6.0.27)

    4.  Request: Use FW 6.0.27

        Change:  As requested


Version 1.60.23 (Jun 10, 2010)
==============================
    Fixes
    -----
    1.  Problem: Avahi daemon crashed after loading bnx2x.ko on kernels newer
                 than 2.6.30

        Cause:   SAN MAC was added (dev_addr_add()) before netdev_register()
                 call and call_netdevice_notifiers(NETDEV_CHANGEADDR, dev) has
                 been called for a unregistered device

        Fix:     Call dev_addr_add() after netdev_register()

        Impact:  Introduced in 1.60.21

    2.  Problem: Link status notification appeared each time when DCBX
                 negotiation received

        Cause:   DCBX update handled as link update and notification printed

        Fix:     Remove link notification from this flow

        Impact:  DCBX only

    3.  Problem: (CQ47700) Can't get Link when forcing speed on 10/100M

        Cause:   When link is not set to autoneg, MDIX wasn't enabled so link
                 couldn't be established on direct cables

        Fix:     Enable MDIX when autoneg is disabled

        Impact:  BCM84823 based board

    4.  Problem: (CQ47671) "ethtool -p ethx" has no effect on the port's LED

        Cause:   Specific PHY requires specific phy settings

        Fix:     In case of copper phys, set LED registers directly in the PHY,
                 rather than the NIG

        Impact:  Copper boards

    5.  Problem: (iSCSI OOO) Producer of OOO Rx CQ ring was updated twice than
                 was expected

        Cause:   The mentioned producer was updated both in the
                 bnx2x_cnic_get_ooo_cqe() and in the bnx2x_cnic_reuse_ooo_pkt()
                 while is meant to be updated only in the
                 bnx2x_cnic_reuse_ooo_pkt()

        Fix:     Don't advance CQ ring producer in the bnx2x_cnic_get_ooo_cqe()

        Impact:  iSCSI OOO only

    6.  Problem: (iSCSI) UIO Client wasn't able to handle IPv6 traffic

        Cause:   UIO Client was not receiving multicast traffic because in
                 non-promiscuous mode only one Client per function will receive
                 multicast packets (leading RSS Client)

        Fix:     Configure UIO Client's to accept all multicast packets

        Impact:  iSCSI only

    7.  Problem: bnx2x would not compile on kernel 2.6.34

        Cause:   Improper dependency in bnx2x_compat.h

        Fix:     Switch on netdev_hw_addr_list_for_each during bnx2x_mc_addr()
                 definition

    8.  Problem: (CQ47854) Driver crash during FCoE test

        Cause:   HW assert causes driver to halt

        Fix:     Notify user with appropriate message without causing panic

    9.  Problem: Unable to bring up function 2-7 if MBA didn't configure MACs

        Cause:   Check for MAC for both multi-function modes

        Fix:     Check for OV tag in Switch-Dependent mode

        Impact:  Introduced in 1.60.10


    Enhancements
    ------------
    1.  Request: Change PXP Write block initialization values in 57712 to help
                 reduce latency

        Change:  As requested

        Impact:  57712 only

Version 1.60.22 (Jun 02, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ47662) "stats updated by DMAE but no MAC active" message
                 while up/down test

        Cause:   Race on update of statistics' state machine

        Fix:     Use spinlock to protect the state machine

    2.  Problem: (CQ46918) Network bursts are larger than the configured
                 connection on FLEX 10

        Cause:   Inaccurate bytes calculation at rate shaping mechanism

        Fix:     Calculation was fixed in FW 6.0.25

    3.  Problem: (CQ47623,CQ46388,CQ47225,CQ47833) System hangs during
                 iSCSI stress traffic

        Cause:   Incorrect packet trimming lead to HW internal error

        Fix:     Fixed packet trimming on LB port in FW 6.0.25

        Impact:  Introduced in 1.60.10 (FW 6.0.11)

    4.  Problem: All BRB interrupts are masked

        Cause:   BRB interrupt mask is not initialized so reset value is used

        Fix:     Initialize interrupt mask so only parser read length errors
                 are masked

        Impact:  In scenarios where BRB interrupts occur, indicate appropriate
                 error information

    5.  Problem: (CQ47834, CQ47795, CQ47980) On low memory condition, driver
                 caused kernel panic in bnx2x_ilt_mem_op()

        Cause:   Unallocated memory access

        Fix:     Validate non NULL pointers before access

    6.  Problem: (FCoE) FCoE traffic experiences a lot of drops

        Cause:   Improper PFC configuration - mixed RX/TX COSes

        Fix:     Fixed configuration

        Impact:  Introduced in 1.60.21

    Enhancements
    ------------
    1.  Request: Don't limit the pause advertisement for large MTU

        Change:  As requested

        Impact:  57712 and above

    2.  Request: Forward setup ramrod should complete on event ring and not
                 as a tx_bd_cons increment

        Change:  (in FW 6.0.25) as requested

    3.  Request: Use FW 6.0.25

        Change:  As requested

    4.  Request: Use terminate ramrod for non forwarding clients

        Change:  As requested

Version 1.60.21 (May 26, 2010)
==============================
    Fixes
    -----
    1.  Problem: (iSCSI OOO) Kernel panicked in the skb_put() when called from
                 bnx2x_cnic_reuse_ooo_pkt()

        Cause:   Wrong skb function has been used for resetting the data length
                 in the skb: skb_put(skb, -skb_headlen(skb))

        Fix:     Use the proper function: skb_trim(skb, 0)

        Impact:  iSCSI OOO only

    2.  Problem: 57710 - Load/unload stress test caused chip to hang

        Cause:   Disable of device in the middle of MSIX message caused deadlock
                 in HC block

        Fix:     Use PCI configuration space to avoid the deadlock

        Impact:  57710 only

    3.  Problem: iSCSI is not functional in switch independent mode

        Cause:   iSCSI mac was not written into NIG memory

        Fix:     Fix handling of MAC addreses in switch independent mode

        Impact:  switch independent mode only

    4.  Problem: Changing MTU when CNIC is loaded was causing CFC error

        Cause:   Setting CDU validation value for iSCSI L2 Client was done from
                 bnx2x_register_cnic(), which is not called in change MTU flow

        Fix:     Move setting of iSCSI L2 Client CDU validation value to
                 bnx2x_cnic_sp_post() right before it sends iSCSI L2 Client
                 SETUP ramrod

        Impact:  iSCSI only

    5.  Problem: 57710/57711/57711E: unable to load device on machine with 16
                 (and more) CPUs

        Cause:   Improper HC SB calculation

        Fix:     Exclude none l2 contexts from HC SB calculation

        Impact:  57710/57711/57711E only; introduced on 1.60.13

    Enhancements
    ------------
    1.  Request: (FCoE) Set SAN MAC before ifup event in order to allow the
                 bnx2fc properly configure WWN

        Change:  Move the dev_addr_add() for a SAN MAC to pci_dev->probe() flow
                 (bnx2x_init_one()) making it similar to networking MAC address
                 configuration (it is configured in netdev at this stage as
                 well). dev_addr_del() for a SAN MAC has been moved to
                 bnx2x_remove_one() correspondingly

        Impact:  FCoE only

    2.  Request: Lower the bnx2x skb memory footprint on ESX

        Change:  Limit the OOO Rx ring to 40 BDs

        Impact:  ESX only


Version 1.60.20 (May 18, 2010)
==============================
    Fixes
    -----
    1.  Problem: (iSCSI OOO) Call for bnx2x_cnic_reuse_ooo_pkt() was causing a
                 kernel panic

        Cause:   There was a wrong fp picked in bnx2x_cnic_reuse_ooo_pkt() (fwd
                 instead of ooo)

        Fix:     Pick the right fp

        Impact:  iSCSI OOO only

    2.  Problem: (FCoE)(CQ47674) Chip hangs during destroy FCoE connection flow

        Cause:   FCoE reordering mechanism was corrupted during disable
                 connection flow

        Fix:     (Fixed in FW 6.0.24) Assure not to overrun relevant context
                 for reordering operation

        Impact:  FCoE only

    3.  Problem: (FCoE)(CQ47644) Chip reporting an error instead of dropping
                 the packet

        Cause:   Some errors were detected before verifying FCoE delimiters

        Fix:     (Fixed in FW 6.0.24) Once an error detected, verify first the
                 FCoE delimiters before reporting an error

        Impact:  FCoE only

    4.  Problem: (iSCSI OOO) Chip hangs during out-of-order traffic

        Cause:   Firmware internal synchronization issue between iSCSI
                 and L2 flows

        Fix:     (Fixed in FW 6.0.24) Firmware fix

        Impact:  Introduced in 1.60.10 (FW 6.0.11)

    Enhancements
    ------------
    1.  Request: Add BNX2X_MSG_CNIC debug level

        Change:  As requested

    2.  Request: Allow the RX rings to be initialize with a lower number of
                 entries (at the source code level)

        Change:  As requested

    3.  Request: Use FW 6.0.24

        Change:  As requested

    4.  Request: Enable PFC statistics in MAC

        Change:  As requested

Version 1.60.19 (May 12, 2010)
==============================
    Fixes
    -----
    1.  Problem: (iSCSI OOO): OOO packets were not indicated on the OOO Rx ring

        Cause:   There were missing OOO ring's CID and Client ID configuration
                 in a TSTORM

        Fix:     Properly configure OOO ring's CID and Client ID in the TSTORM
                 memory

        Impact:  iSCSI OOO only

    2.  Problem: (iSCSI OOO): CNIC SB context in internal memory was zeroed
                 after OOO and FWD rings' ramrods were completed

        Cause:   There was a call for bnx2x_init_sb() for CNIC SB in
                 bnx2x_register_cnic()

        Fix:     Remove the bnx2x_init_sb() call from bnx2x_register_cnic()

        Impact:  iSCSI OOO only

    3.  Problem: (CQ46146) "ethtool -t" fails when the speed is forced on cx4
                 NICs to 100/10Mb

        Cause:   Internal loopback test needs to conducted when speed is set
                 to 10G force

        Fix:     Set speed to 10G force during loopback test, and restore link
                 speed afterwards.

        Impact:  ethtool -t test

    4.  Problem: Spelling error in module parameter

        Cause:   "Then" used instead of "Than"

        Fix:     Fixed to "than"

    5.  Problem: (CQ47609) Link Level Pause causes link to pause after PFC
                 has been negotiated

        Cause:   Wrong MAC registers configuration

        Fix:     Fix configuration

        Impact:  57712 only

    6.  Problem: Link change after PMF migration may halt the system

        Cause:   PHY attributes are provided to the initial PMF only

        Fix:     Load PHY attributes for every new function regardless of
                 being PMF or not.

        Impact:  Multi-function mode

    7.  Problem: (iSCSI OOO) OOO FW was not processing the incoming OOO packets

        Cause:   TSTORM internal RAM was not properly initialized

        Fix:     Properly initialize OOO producer, CID and Client ID of OOO ring
                 in a TSTORM internal memory

        Impact:  iSCSI OOO only

    8.  Problem: (iSCSI OOO) L2 FW was generating XSTORM
                 x_eth_vlan_special_check assert when trying to post packets on
                 a FWD ring

        Cause:   The running index that was posted on a VLAN field of the start
                 BD was starting from 1, while FW was expecting it to start from
                 0

        Fix:     Keep driver's packet producer and consumer running from 0 and
                 decrement a FW packet consumer during completions handling
                 instead

        Impact:  iSCSI OOO only

    9.  Problem: (CQ47445) The duplex mismatch does not work as expected

        Cause:   Duplex was set correctly in the phy, but wasn't passed to the
                 driver. In addition, when setting 10/100 force speed, it
                 actually advertised 10/100 with autoneg.

        Fix:     Return the correct duplex result, and when speed is set to 10/
                 100, set the speed actually for force 10/100

        Impact:  BCM84823 based boards

    10. Problem: (CQ47383) It takes long time to re-establish link in when
                 working against some switches in force 1G mode

        Cause:   PHY is unable to establish good link in this mode

        Fix:     Enable CL37 BCM autoneg instead of working in force 1G

        Impact:  BCM8073 based boards

    11. Problem: (CQ47436) FC setting not consistant

        Cause:   "ethtool -a" show flow-control autonegotiation as off when
                 speed is not set to autonegotiate.

        Fix:     Show the actual flow-control settings on "ethtool -a", but
                 in case the speed setting is actually force speed, this setting
                 will have no affect like with the BCM8727

        Impact:  ethtool -a

    12. Problem: (CQ45632) NETDEV Watchdog message appeared and system hung

        Cause:   driver disables tx while carrier still on

        Fix:     call to netif_carrier_off() after netif_tx_disable()


    Enhancements
    ------------
    1.  Request: Remove redundant LCPLL setting which is done already in the
                 bootcode

        Change:  As requested

    2.  Request: (DCBX) Changing PFC RX configuration: In RX COS0 will always
                 be configured to lossy and COS1 to lossless

        Change:  As requested

    3.  Request: Remove Outer Vlan configuration for Mac partitioning mode

        Change:  As requested

    4.  Request: Use FW 6.0.23

        Change:  As requested

    5.  Request: Allow driver compilation with different kernel location

        Change:  As requested


Version 1.60.18 (May 03, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ47451) iSCSI and FCoE broken and causes kernel panic

        Cause:   Wrong FW offsets used

        Fix:     fix FW offsets defines

        Impact:  Introduced in 1.60.17

    2.  Problem: Loading driver on one port may cause link toggling on the
                 other port

        Cause:   PLL was initialized for both ports instead of per chip

        Fix:     Initialize PLL once during common init

        Impact:  57712 only

    3.  Problem: Possible race between firmware threads when loading context
                 to chip

        Cause:   Common firmware handler which loads context for slow path
                 handler may override other handlers context load responses

        Fix:     The common handler considers it's thread
                 Id when waiting for the context load response

    4.  Problem: Loading driver on one port may cause link toggling on the
                 other port

        Cause:   Firmware generates false data digest error on incoming PDU

        Fix:     (Fixed in FW 6.0.22) Firmware fix

        Impact:  Introduced in 1.60.10 (FW 6.0.11)

    5.  Problem: (iSCSI) (CQ46388,CQ46608,CQ46638) Chip hangs when running
                 stress iSCSI traffic

        Cause:   Firmware caused connection activity-counter to drop to
                 a negative value

        Fix:     (Fixed in FW 6.0.22) Firmware fix

        Impact:  Introduced in 1.60.10 (FW 6.0.11)


    Enhancements
    ------------
    1.  Request: Remove the extra prefetch instructions from bnx2x_rx_int()

        Change:  As requested

    2.  Request: (DCBX) add ETS support

        Change:  As requested

    3.  Request: (DCBX) add DCB statistics information; add support for 4-bytes
                 long remote chassis id

        Change:  As requested

    4.  Request: Set NIC_MODE when cnic driver does not exist in the system

        Change:  As requested

        Impact:  Revert of change introduced in 1.60.11

    5.  Request: Remove Modules.supported file

        Change:  As requested

    6.  Request: Use FW 6.0.22

        Change:  As requested


Version 1.60.17 (Apr 27, 2010)
==============================
    Fixes
    -----
    1.  Problem: Kernel warning message from pci_enable_msix() in case of
                 parity error

        Cause:   Improper handling of MSI-X enable/disable flow in parity error
                 case

        Fix:     Disable interrupts, disconnect from IRQs and disable MSI-X in
                 OS level in bnx2x_nic_unload() both in parity error case

    2.  Problem: FIP packets won't arrive to the FCoE L2 ring

        Cause:   Current FW still doesn't support the FIP packets filtering
                 according to the ETH type

        Fix:     Revert the previous enhancement that removed setting the "FIP
                 MAC" to the FCoE L2 Client

        Impact:  Introduced in 1.60.16

    3.  Problem: PCI speed is always reported as 5G (Gen2) on 57712

        Cause:   Wrong decoding of the PCI speed

        Fix:     Fixed the speed decoding

        Impact:  Only 57712

    4.  Problem: There was a possibility that packets might be transmitted on
                 the queue of the FCoE L2 Client before its SETUP ramrod is
                 completed

        Cause:   bp->state was set to OPEN after FUNCTION_START ramrod
                 (before SETUP ramrod(s) are sent)

        Fix:     Set bp->state=OPEN only after all Clients' SETUP ramrods complete

        Impact:  FCoE only, introduced in 1.60.10

    5.  Problem: (FCoE) Chip transmitting unwanted FCP_CONF frames

        Cause:   Incorrect update of the CONFQ TX producer

        Fix:     (Fixed in FW 6.0.21) Reset the CONFQ TX producer at the
                 beginning of transmission flow

        Impact:  FCoE only

    Enhancements
    ------------
    1.  Request: Add TCM storm context registers to the register dump

        Change:  As requested

        Impact:  57712 only

    2.  Request: Add path info to the registers dump header

        Change:  As requested

        Impact:  57712 only

    3.  Request: Modify LED configuration of the BCM84823 to fit the new
                 phy firmware (2.25 and up)

        Change:  As requested

        Impact:  BCM84823 based boards only.

    4.  Request: Set packets producer for OOO Rx ring in TSTORM

        Change:  As requested

        Impact:  iSCSI only

    5.  Request: Limit number of BDs in OOO Rx ring to the number of CQEs minus
                 maximum number of outstanding ramrods.

        Change:  As requested

        Impact:  iSCSI only

    6.  Request: Move handling of the FCoE L2 ring to NAPI

        Change:  As requested

        Impact:  FCoE only

    7.  Request: Remove support for FCoE L2 rings on 57711

        Change:  As requested

        Impact:  FCoE only

    8.  Request: Use FW 6.0.21

        Change:  As requested


Version 1.60.16 (Apr 22, 2010)
==============================
    Fixes
    -----
    1.  Problem: MIN/MAX feature is not functional

        Cause:   Miscalculation FW offsets in driver code

        Fix:     Offset calculation fixed

        Impact:  Introduced in 1.60.01

    2.  Problem: (CQ47092) DCBX: Chassis ID Lower and Upper are switched

        Cause:   bnx2x copied upper to lower and lower to upper

        Fix:     Assignment fixed

        Impact:  Introduced in 1.60.01

    3.  Problem: iSCSI L2 ring Rx side wasn't functional

        Cause:   iSCSI L2 Client Rx filtering configuration wasn't properly set

        Fix:     Properly set iSCSI L2 Client Rx filtering configuration

    4.  Problem: CQ047058: Link occasionally doesn't come up with 8073 based
                 boards

        Cause:   Insufficient delay during phy firmware load sequence

        Fix:     Increase delay during phy firmware load sequence to 120ms

        Impact:  BCM8073/BCM8727

    5.  Problem: Function unload could bypass statistic ramrod (Theoretical bug)

        Cause:   There was no reordering mechanism in the relevant firmware
                 flows

        Fix:     (Fixed in FW 6.0.20) Adding reordering

        Impact:  Introduced in 1.60.10 (FW 6.0.12)

    6.  Problem: (FCoE) (CQ47126, CQ47129) Miss detection of fc-crc error

        Cause:   Firmware bug

        Fix:     (Fixed in FW 6.0.20) Firmware fix

        Impact:  Introduced in 1.60.07 (FW 6.0.6)

    7.  Problem: (iSCSI) Firmware generate false data digest on incoming PDU

        Cause:   First 4 data bytes arrived splitted into 3 packets

        Fix:     (Fixed in FW 6.0.20) Firmware fix

        Impact:  Introduced in 1.60.10 (FW 6.0.11)

    8.  Problem: There were sporadic "timeout waiting for state X" messages in
                 the dmesg when loading/unloading the driver

        Cause:   There was a race on bp->set_mac_pending variable during
                 increment/decrement

        Fix:     Replace increment/decrement of bp->set_mac_pending to
                 set 1/set 0 to avoid the race

    9.  Problem: TSO packet was not identified is ESX environment
                 (as a result there were CSUM errors on wire)

        Cause:   Wrong condition is checked for identification of TSO packet

        Fix:     Fix the TSO identification condition (only check
                 skb_shinfo(skb)->gso_size for being not zero)

        Impact:  ESX and old kernels only (below 2.6.18)

    10. Problem: Possible sporadic memory garbadging

        Cause:   Waiting for CFC_DEL ramrod completion for OOO Client was
                 done in polling mode while default SB interrupt was still
                 enabled

        Fix:     Always wait for CFC_DEL ramrod completion in interrupt driven
                 mode for all clients

        Impact:  Introduced in 1.60.15

    Enhancements
    ------------
    1.  Request: Reuse completed Tx buffers in Rx ring from Tx DPC

        Change:  As requested

        Impact:  iSCSI OOO only

    2.  Request: Remove 57711-only FCoE L2 MAC manipulations

        Change:  As requested

        Impact:  FCoE only

    3.  Request: Simplify the iSCSI L2 Client MAC configuration code

        Change:  Set/Clear iSCSI L2 MAC in bnx2x_drv_ctl() on START_L2/STOP_L2
                 commands

        Impact:  iSCSI only

    4.  Request: Use FW 6.0.20

        Change:  As requested

    5.  Request: Use kmalloc() instead of vmalloc() for dynamic allocation of
                 none-DMAable buffers

        Change:  As requested

    6.  Request: Add an way for CNIC to return an L2 SPQ credit

        Change:  Added DRV_CTL_RET_SPQ_CREDIT command option to bnx2x_drv_ctl()

        Impact:  iSCSI only

    7.  Request: (DCBX) support transaction between different pause modes

        Change:  Added support

        Impact:  57712 only


Version 1.60.15 (Apr 15, 2010)
==============================
    Fixes
    -----
    1.  Problem: FCoE INIT ramrod timeout

        Cause:   HW wasn't producing interrupt on CNIC SB

        Fix:     bnx2x didn't send an ACK to IGU after establishing
                 OOO and FWD clients

        Impact:  CNIC only

    2.  Problem: (CQ47020) Kernel panic during cnic load

        Cause:   Initializing of iSCSI L2 context validation values was done
                 from bnx2x_cnic_probe() function, which is called both for
                 devices that are down and their memories are still not
                 allocated (including contexts)

        Fix:     Initialize iSCSI L2 context from bnx2x_register_cnic() which
                 may be called only for interfaces that are up

        Impact:  CNIC only

    3.  Problem: CFC error when FCoE INIT ramrod is sent

        Cause:   FCoE Init CID was not initialized

        Fix:     Initialize fcoe_init_cid to the correct value in
                 bnx2x_cnic_probe()

        Impact:  FCoE only

    4.  Problem: (CQ47100) When the force KR enabler is set correctly, traffic
                 does not work on 8073 based boards

        Cause:   Polarity swap was not set correctly in case link is set to 1G

        Fix:     Initialize polarity swap correctly when enabled.

        Impact:  BCM8073 based boards only

    5.  Problem: DCB change during FLR might cause chip hang

        Cause:   Firmware skipped DCB update when encountered a PCI error

        Fix:     (Fixed in FW 6.0.19) Firmware flow changed to first update
                 DCB version and only then to proceed to handle PCI error

        Impact:  Introduced in 1.60.11 (FW 6.0.15)

    6.  Problem: (FCoE) Chip hangs after trying to access inappropriate host
                 memory address

        Cause:   Firmware instructed corrupted SGEs in PBF command due to
                 corrupted Xstorm context

        Fix:     (Fixed in FW 6.0.19) Save entire Xstorm context during disable
                 connection procedure

        Impact:  Exists in all previous FCoE releases

    7.  Problem: (FCoE) (CQ47022) Disabling/Enabling the adapter from Host side
                 without IO, causes device manager to hang

        Cause:   Firmware did not update task properly in host memory after
                 detecting illegal CONF request

        Fix:     (Fixed in FW 6.0.19) Save task context only after all
                 verification has been completed

        Impact:  Introduced in 1.60.01

    8.  Problem: (iSCSI) Connection close does not complete

        Cause:   Final ACK from target is discarded by firmware

        Fix:     (Fixed in FW 6.0.19) Firmware fix

        Impact:  Introduced in 1.60.10 (FW 6.0.11)

    9.  Problem: (CQ47034) MIN/MAX is not accurate for small packets

        Cause:   The firmware didn't count inter-packet gap and preamble in
                 bandwidth allocation.

        Fix:     (Fixed in FW 6.0.19) Fixed L2 calculation

        Impact:  Introduced in 1.45.xx. Doesn't include fix for iSCSI and FCoE

   10.  Problem: (CQ46501) DCBX IOTCL config_dcbx_params.admin_dcbx_version
                 shows incorrect value

        Cause:   Variable initialized to incorrect value of 2

        Fix:     Fixed to appropriate 0 (CEE)

   11.  Problem: Link down when upgrading BCM84823 phy firmware to 2.24/2.25

        Cause:   Changes in the firmware initialization required setting
                 different values

        Fix:     Set the require phy register to achieve link and led in all
                 speeds

        Impact:  BCM84823 based boards

    Enhancements
    ------------
    1.  Request: Add support for iSCSI OOO flow in L2 driver

        Change:  As requested

        Impact:  iSCSI only

    2.  Request: Don't call for NAPI related functions from non-NAPI context

        Change:  Handle cleanup ramrods in an interrupt driven mode and not
                 in a polling mode as it was

    3.  Request: (FCoE) Reset the entire KCQE before start initializing it

        Change:  As requested

    4.  Request: (FCoE) Change firmware assert to error notification to driver
                 when receiving MP frame with unknown R_CTL.function mode

        Change:  As requested

    5.  Request: Use FW 6.0.19

        Change:  As requested

    6.  Request: Don't disable TPA on XEN enabled kernels

        Change:  As requested

Version 1.60.14 (Apr 08, 2010)
==============================

    Fixes
    -----
    1.  Problem: Driver failed to pass TCP traffic in non-TPA mode on 57712

        Cause:   SGE buffer size was not configured to zero in non-TPA mode

        Fix:     Properly set TPA-related section in Client Init ramrod data

        Impact:  57712 only

    2.  Problem: Link LED for 10M/100M/1000M is not functional on BCM84823 based
                 boards

        Cause:   LED functionality was controlled by 10G core all the time

        Fix:     When link speed is up in 10M/100M/1000M, set led control to
                 1G core.

        Impact:  BCM84823/BCM8481 based boards

    3.  Problem: Link doesn't come up when changed from 1G to 10G with BCM84823
                 based boards.

        Cause:   Phy wasn't initialized in this case so some parameters were not
                 cleared

        Fix:     Reset phy when any parameter is changed

        Impact:  Seen on BCM84823 based board, but may relate to others

    4.  Problem: (CQ46902) Unable to load driver on some systems

        Cause:   Old BIOS behaviour is not compliant with newest PCIE spec
                 according to number of tags supported by the system

        Fix:     Driver validates the capability

        Impact:  57712 only


Version 1.60.13 (Apr 4, 2010)
==============================
**** This release doesn't support non-TPA mode on 57712 devices ****

    Fixes
    -----
    1.  Problem: (CQ46501) DCBX IOTCL config_dcbx_params.admin_dcbx_version
                 shows incorrect value

        Cause:   Variable initialized to incorrect value of 2

        Fix:     Fixed to appropriate 0 (CEE)

    2.  Problem: FC behavior is changed so that setting FC to auto when speed
                 is force has no influence of to flow-control

        Cause:   Although this configuration is not so logic, many boards have
                 their configuration build this way so need to restore this
                 behavior

        Fix:     Change back to old behavior

        Impact:  Optic devices. Introduced in 1.60.11

    3.  Problem: When RX-polarity swap is set, traffic in 1G link  doesn't pass.

        Cause:   RX-polarity was set on the PMA/PMD side instead of the XGXS
                 side

        Fix:     Set RX polarity on the XGXS side of the 8073

        Impact:  KR (BCM8073)

    4.  Problem: Autoneg flow-control is not seen using "ethtool -a"

        Cause:   Duplicating the link parameters configuration for dual-media
                 platform

        Fix:     Return the correct FC status

        Impact:  Introduced in 1.60.11

    5.  Problem: Self-test was reporting errors in an IGU block when driver was
                 configured to use INT#x

        Cause:   Driver was reading interrupt status register when IGU was
                 still disabled for the current PF

        Fix:     Connect to IRQs after HW initializing

    6.  Problem: Self-test was reporting errors in an IGU block when driver was
                 configured to use INT#x

        Cause:   Driver was reading interrupt status register when IGU was still
                 not configured to Single ISR mode

        Fix:     Set IGU_PF_CONF_SINGLE_ISR_EN bit together with
                 IGU_PF_CONF_FUNC_EN when driver is configured to Single ISR
                 mode (MSI or INT#x) and do not turn it off unless the driver is
                 configured to use MSI-X interrupt mode

        Impact:  57712 only

    7.  Problem: When link speed is set to 1G, link comes up in 10G when
                 connected to device which advertise 10G.

        Cause:   BCM84823 always advertises 10G speed.

        Fix:     When speed capability doesn't include 10G, or force speed is
                 not set to 10G, disable 10G advertisement

        Impact:  BCM84823, BCM8481

    8.  Problem: (CQ46844, CQ46842) Driver did not work properly on machines
                 with large number of CPUs.

        Cause:   Driver was managing more resources then available in FW

        Fix:     Taking into account max available L2 contexts

        Impact:  57712 only

    8.  Problem: Potential link issue with force 1G on 8073

        Cause:   Setting one of the registers in the force 1G sequence
                 incorrectly

        Fix:     Fix 1G force sequence

        Impact:  57712 + KR only

    9.  Problem: Terminate ramrod called host coalescing on Tx segment

        Cause:   Wrong logic while sending host coalescing on Tx

        Fix:     (Fixed in FW 6.0.17) The ramrod no longer send host coalescing

        Impact:  Introduced in 1.60.6 (FW 6.0.3)

    10. Problem: Firmware asserted when TPA is disable

        Cause:   Wrong logic in the assert Conditions

        Fix:     (Fixed in FW 6.0.17) The assert may occur only when TPA is
                 enabled

        Impact:  Introduced in 1.60.12 (FW 6.0.15)

    11. Problem: VF: system crashed when VF reads client init data

        Cause:   Reading client init from VF memory and not from PF memory

        Fix:     (Fixed in FW 6.0.17) VF read the client init from PF memory

        Impact:  Introduced in 1.60.12 (FW 6.0.15)

    12. Problem: Pause on exhausted ring broken

        Cause:   Internal pause data structure was initialized improperly

        Fix:     (Fixed in FW 6.0.17) Fix internal ram offset calculation

        Impact:  Introduced in 1.60.12 (FW 6.0.15)

    13. Problem: (FCoE) Timer expiration doesn't read DCB info

        Cause:   DCB update is done only for transmission flows

        Fix:     (Fixed in FW 6.0.17) Read DCB info for timer expiration

        Impact:  Introduced in 1.60.12 (FW 6.0.15)

    14. Problem: Return credit in termination handler without executing DCB
                 update

        Cause:   Firmware bug

        Fix:     (Fixed in FW 6.0.18) Update DCB in the beginning of the
                 terminate handler

        Impact:  Introduced in 1.60.10 (FW 6.0.11)


    Enhancements
    ------------
    1.  Request: When link speed is set to force on copper devices, set link to
                 autoneg with specific link speed advertisement since force speed
                 is not copper compliant

        Change:  As requested

        Impact:  BCM84823/BCM8481 based devices

     2. Request: Add PFC/DCBX support for E2

        Change:  As requested

     3. Request: Make driver to be compiled, by default, with FCoE support

        Change:  As requested. FCoE support comes by default with CNIC support

     4. Request: Don't allocate SGEs when TPA is not enabled for a specific
                 ring

        Change:  As requested

     5. Request: Use FW 6.0.18

        Change:  As requested


Version 1.60.12 (Mar 23, 2010)
==============================
    1.  Problem: Flow control is not set on optic devices

        Cause:   When flow-control was set to force on optic devices,
                 configuration was not permeate to the MACs

        Fix:     Set the FC configuration on optic devices according to user
                 settings

        Impact:  Optic devices

Version 1.60.11 (Mar 22, 2010)
==============================
    Fixes
    -----
    1.  Problem: Driver didn't work on big endian setups

        Cause:   There were endianness bugs both in HSI and in driver

        Fix:     Properly handle endianness in EQ related code

        Impact:  Introduced in 1.60.10

    2.  Problem: Potential link issue with BCM8727

        Cause:   In BCM8727, the firmware in second port must be loaded before
                 the first port.

        Fix:     Download the second port to 8727 first during initialization

        Impact:  57712 only and SFP+ only

    3.  Problem: Driver didn't work with KVM SR-IOV

        Cause:   Final client delete (CFCdelete ) was not communicated
                 to the SR-IOV management code.

        Fix:     Passing the delete completion notifications to the SR-IOV
                 management.

        Impact:  Introduced in 1.60.10

    4.  Problem: (CQ46455) Load-unload test failed in Multi-Function mode

        Cause:   Improper initialization and cleanup of IGU block

        Fix:     Fixed

        Impact:  Introduced in 1.60.01

    5.  Problem: (FCoE) FCoE L2 client was receiving erroneous SETUP client
                 ramrod completions

        Cause:   FCoE L2 Tx SB index was configured to the same value as Rx
                 index. As a result FW was overwriting the Rx SB index with
                 a Tx index value

        Fix:     Fixed Tx index configuration

        Impact:  Introduced in 1.60.10

    6.  Problem: BCM8073 isn't able to link up on specific board

        Cause:   The default state of the GPIO1 is high and the PHY might not be
                 in the good reset state after a POR

        Fix:     Toggle GPIO1 from LOW to HIGH during common init

        Impact:  57112 + 8073

    7.  Problem: (CQ46476) Unable to load driver on RH48/RH47 32bit

        Cause:   Undefined symbols "____log2_NaN" used in kernel

        Fix:     Define the symbol if not defined

    8.  Problem: Binary data printed during fw_dump()

        Cause:   Address of dump miscalculated for 57712

        Fix:     Fix address calculation

        Impact:  Only 57712

    9.  Problem: (CQ45724) in MF configuration, after bringing the interface
                 down, ethtool does not reflect link status correctly

        Cause:   Missing check for device status

        Fix:     Add check for device status

    10. Problem: (CQ 46240) Unexpected completion is received during forward
                 connection establishment

        Cause:   Problematic initialization sequence of status blocks

        Fix:     (Fixed in FW 6.0.13) Firmware now checks for function enable
                 before updating the status block

        Impact:  Introduced in 1.60.01 (FW 5.3.19), relevant to 57710/11 only

    11. Problem: (FCOE) Detect an error on FCP_RSP with confirmation request

        Cause:   Firmware did not verify confirmation request indication
                 when checked last sequence indication in FC header

        Fix:     (Fixed in FW 6.0.13) Fixed confirmation request verification

        Impact:  Problem exists in all previous FCoE versions

    12. Problem: (CQ46005) Maximum bandwidth allocation feature not working
                 as expected

        Cause:   Storm clock frequency was 500MHz instead of 550MHz - this
                 affects the RT clocks configuration which had a 10% deviation

        Fix:     (Fixed in FW 6.0.14) Firmware now use correct clock frequency
                 for RT configuration

        Impact:  Relevant only to BCM57712

    13. Problem: "Pause on exhausted rings" functionality broken

        Cause:   Internal firmware variable was not set properly in RAM

        Fix:     (Fixed in FW 6.0.14) Firmware now sets the missing internal
                 variable at L2 client init phase

        Impact:  Introduced in 1.60.06 (FW 6.0.2)

    14. Problem: (FCoE)(CQ46506) firmware hanged (all threads in Ustorm sleep)

        Cause:   Error handling was not processed correctly

        Fix:     (Fixed in FW 6.0.14) Firmware fix

        Impact:  Introduced in 1.60.10 (FW 6.0.11)

    15. Problem: (FCoE)(CQ46342) RX_ID not populated inside REC_ELS packet

        Cause:   Driver did not receive RX_ID during timer's error reporting

        Fix:     (Fixed in FW 6.0.14) Firmware fix

        Impact:  Problem exist in al previous firmware releases

    16. Problem: (iSCSI)Data placement of non-aligned small size data (<4 bytes)
                 caused false data-digest error

        Cause:   Internal firmware error

        Fix:     (Fixed in FW 6.0.14) Firmware fix

        Impact:  Introduced in 1.60.10 (FW 6.0.11)

    17. Problem: The firmware supported only unicast addresses that were
                 recognized by the LLH (limit to 16 MACs) in
                 switch independent mode

        Cause:   The search in the CAM used the function id from the LLH

        Fix:     (Fixed in FW 6.0.15) Unmasked the function id in searches
                 in the cam in switch independent mode

        Impact:  Introduced in 1.60.10 (FW 6.0.10)

    18. Problem: (iSCSI) Firmware might spin into infinite-loop when RQ is full

        Cause:   Priority of Sleep when fetching new RQ producer is too high

        Fix:     (Fixed in FW 6.0.15) Reduce sleep priority

        Impact:  Introduced in 1.60.10 (FW 6.0.11)

    19. Problem: (iSCSI) Saturated window was not supported in option2
                 TCP connect

        Cause:   Feature not supported

        Fix:     (Fixed in FW 6.0.15) Add support in firmware

    20. Problem: (FCoE) (CQ46072) IO errors when running heavy traffic write
                 operations

        Cause:   Inappropriate line credit calculation in transmission path

        Fix:     (Fixed in FW 6.0.15) Firmware fix in line credit calculation

        Impact:  Introduced in 1.60.10 (FW 6.0.10)

    21. Problem: in 4-port mode - using port 2 and 3 caused errors followed by
                 fw dump

        Cause:   Inappropriate FW SB allocation, improper FW mailbox calculation

        Fix:     Add port id to the calculations

        Impact:  57712 4-port only

    Enhancements
    ------------
    1.  Request: (CQ45126) Change NIC_MODE to impove latency if no offloaded
                 connection is present

        Change:  As requested

    2.  Request: Support dual-media configuration with swapped phy configuration

        Change:  As requested.

        Impact:  Dual media board

    3.  Request: Split speed and duplex parameters into two media

        Change:  As requested

    4.  Request: Support powering down the BCM84823 copper core when phy
                 configuration is set to second_port

        Change:  As requested

        Impact:  BCM84823 dual-media

    5.  Request: Add support for 4-port mode device

        Change:  As requested

        Impact:  57712

    6. Request:  Add support for force 1G for KR triggered by new nvm cfg
                 option 127: "Force KR enabler"

       Change:   As requested

       Impact:   KR(BCM8073)

    7. Request:  Add support for Client Setup ramrod

       Change:   Use FW 6.0.15

    8. Request:  Cleanup VLAN related code

       Change:   As requested

    9. Request:  Add TCP Out-Of-Order support in iSCSI Firmware

       Change:   As requested (in FW 6.0.14)

    10.Request:  Increase L2 clients from 26 clients to 28 in order to support
                 iSCSI Out of Order in multi function mode

       Change:   As requested (in FW 6.0.15)

    11.Request:  Added client_init_ramrod_data struct, in order to decouple
                 between driver and firmware client-related structures

       Change:   As requested (in FW 6.0.15)

    12.Request:  Support changing COS and vlan priority updates according
                 to DCB in L2 TX firmware

       Change:   As requested (in FW 6.0.15)

    13.Request:  (FCoE) Support stop traffic\start traffic flow control ramrods

       Change:   As requested (in FW 6.0.15)


Version 1.60.10 (Mar 8, 2010)
==============================
**** This release doesn't support big-endian architecture ****
    Fixes
    -----
    1.  Problem: CFC HW attention was popping up on 57710 and 57711
                 when interface was closed

        Cause:   bnx2x_pf_disable() was called for all types of chips

        Fix:     Call bnx2x_pf_disable() for 57712 only

        Impact:  Introduced in 1.60.08; applies for 57711 and 57710 only

    2.  Problem: (FCoE) PFC didn't function properly

        Cause:   Bad values of LLFC watermarks

        Fix:     Set LLFC watermarks to proper values

        Impact:  57712 PFC only

    3.  Problem: Limiting the number of queues with the num_queues module
                 parameter to a number smaller then the number of CPUs renders
                 the driver inoperable.

        Cause:   The RX RSS indirection table is initialized with bad values.

        Fix:     Fixed the indirection table initialization

        Impact:  Introduced in 1.60.01

    4.  Problem: VF load for VFs with id greater then 3 crashes the host driver.

        Cause:   The host driver failed to allocate the HW-context for such VFs.

        Fix:     Fixed the host driver VF HW-context allocation for VFs.

        Impact:  57712 IOV only

    5.  Problem: (CQ45880, CQ46008) On 57712 incorrect statistic information
                 is displayed for ethtool/ifconfig

        Cause:   Reading the information from incorrect memory region

        Fix:     Fixed region and registers addresses

        Impact:  57712 only

    6.  Problem: (CQ46197) Compilation error on system with undefined value of
                 CONFIG_PCI_MSI

        Cause:   Code was not compiled due to undefined value

        Fix:     Removed dependency on this value

        Impact:  Introduced in 1.60.06

    7.  Problem: BCM84823 Copper link doesn't come up

        Cause:   Starting from firmware 2.20, BCM84823 enforces the XGXS to
                 link first with the BCM84823 before it triggers LASI.

        Fix:     Set the appropriate flag for the 84823 which enforce XGXS
                 initialization before external link is up

        Impact:  BCM84823(copper)

    8.  Problem: CQ45718: Driver crash after driver load

        Cause:   Driver was sending a relatively new command to a bootcode which
                 doesn't support it. This command in unfamiliar with this
                 bootcode, and should only be sent to bootcode which support it.

        Fix:     Send this command only to bootcode which support it.

        Impact:  SFP+ only

    9.  Problem: Some error statistics weren't counted correctly

        Cause:   The statistics address was miscalculated

        Fix:     Fixed address calculation (in FW 6.0.11)

        Impact:  Introduced in 1.60.06 (FW 6.0.3)

    10. Problem: iSCSI firmware broken

        Cause:   TCP layer interface was changed

        Fix:     Applied new TCP interface to iSCSI firmware (in FW 6.0.11)

        Impact:  Introduced in 1.60.07 (FW 6.0.4)

    11. Problem: Possible permanent locking of Tx queue

        Cause:   There was a memory barrier missing after tx_cons update

        Fix:     Added a missing barrier

    12. Problem: Possible "queue is alive while ring is full" situation

        Cause:   bnx2x_start_xmit() may have run and locked the queue while
                 bnx2x_tx_int() has decided that it may unlock it

        Fix:     Take tx_lock while deciding to unlock the queue



    Enhancements
    ------------
    1.  Request: Add clarification for int_mode driver parameter

        Change:  Description fixed; Unnecessary define removed

    2.  Request: Support MAC partitioning mode (Multi function based on
                 MAC classification)

        Change:  As requested

        Impact:  57712 only (when set to MAC partitioning mode)

    3.  Request: Use FW 6.0.12

        Change:  As requested

    4.  Request: Use the upstream printouts and mcast iterators semantics

        Change:  As requested



Version 1.60.09 (Feb 22, 2010)
==============================
    Fixes
    -----
    1.  Problem: (CQ46006) NIG test A36 failed if the driver was loaded before

        Cause:   Configuration of PGLUE_B register with wrong value, while reset
                 value is good

        Fix:     Remove erroneous configuration

        Impact:  57712 only

    2.  Problem: (CQ45648) driver asserts while trying to unload/load iSCSI/FCoE

        Cause:   internal firmware resources were not cleaned properly by driver
                 upon unload

        Fix:     (Fixed in FW 6.0.8) offset was generated for slow path sync
                 line index

        Impact:  57712 only

    3.  Problem: (FCoE) Terminate handler will not complete

        Cause:   Race between timer expiration and terminate handler invocation

        Fix:     (Fixed in FW 6.0.8)

        Impact:  57712 only

    4.  Problem: (CQ46052) Compilation warning on older kernels ("warning:
                 assignment discards qualifiers from pointer target type")

        Cause:   The compilation condition regarding the kernel version was
                 mistakenly changed

        Fix:     Change the kernel version condition

        Impact:  Introduced in 1.60.08

    5.  Problem: (FCoE) (CQ45915): Second CNIC interrupt was never arriving
                 when working with port 1

        Cause:   Wrong SB ID was used in CNIC functions sending ACK to IGU

        Fix:     Added IGU_SB_ID to CNIC interface, fixed CNIC functions
                 sending ACK to IGU to use the new index

        Impact:  Has been introduced in T6.0

    Enhancements
    ------------
    1.  Request: For 57712 add support for switch-independent mode

        Change:  As requested

    2.  Request: Add per-path licensing support

        Change:  (In FW 6.0.9) Support BCM57712 address scheme

        Impact:  57712 only

    3.  Request: Minimize DMA transaction to improve PCIE latency

        Change:  (In FW 6.0.9) Packet placement is done in single DMA command
                 instead of two

    4.  Request: Constant pause avoidance

        Change:  (In FW 6.0.9) Timeout for pause sending was added. Un-pause
                 message will be sent upon timeout expiration. (Timeout default
                 is 1 minute, can be set up to 5 minutes by the driver)

        Impact:  57711/57711E/57712 only

    5.  Request: Use FW 6.0.9

        Change:  As requested

        Impact:  iSCSI is not functional in this version

Version 1.60.08 (Feb 18, 2010)
==============================
**** iSCSI is not functional in this version ****
    Fixes
    -----
    1.  Problem: (CQ45963,CQ45962) DCBX IOCTL shows unusual values for
                 admin_configuration_ets_pg, admin_pfc_bitmap

        Cause:   Admin section was initialized with incorrect values

        Fix:     Choose correct init values

    2.  Problem: (CQ45961,CQ45960) DCBX IOCTL shows incorrect values for
                 admin_dcbx_enable, dcb_enable

        Cause:   The parameters were ignored by driver

        Fix:     Add handling for the parameters

    3.  Problem: (CQ45763, CQ45799) On 57712 a request can be sent on a disabled
                 function

        Cause:   Request sent from timers block that scans function 6/7 when
                 function 2/3 scan off is set

        Fix:     Workaround in the driver that assures that if the timers starts
                 scanning for function 6/7 nothing fatal will occur

        Impact:  57712 only

    4.  Problem: (CQ45973) On 57712 bringing up interface caused DMAE timeout

        Cause:   Initialization of function not performed properly

        Fix:     Enable function in PGLUE_B module before accessing DMAE

        Impact:  57712 only

    5.  Problem: In KR board type, when loading the first port first, it causes
                 the other port's link not to come up.

        Cause:   BCM8073 requires that the second port's firmware will be loaded
                 first.

        Fix:     Always load the first phy port's firmware

        Impact:  57712 only and KR only


    Enhancements
    ------------
    1.  Request: Replace references to cnic_drv.h with cnic_if.h

        Change:  As requested

    2.  Request: Add DRV_CTL_{START,STOP}_L2_CMD capabilities to drv_ctl()

        Change:  As requested

    3.  Request: Update cnic driver with SP_SB information

        Change:  As requested

    4.  Request: Add handling for iscsi mac addresses during registrer_cnic()
                 unregister_cnic() and chip_cleanup()

        Change:  As requested


Version 1.60.07 (Feb 11, 2010)
==============================
**** iSCSI is not functional in this version ****
    Fixes
    -----
    1.  Problem: (CQ45674) Warning message was displayed when modprobe bnx2x
                 "bnx2x_get_hwinfo ..."

        Cause:   Inappropriate printing level for the message used

        Fix:     Set correct level

    2.  Problem: BCM8073 wasn't initialized during common init

        Cause:   In 57712, the second port is actually port0 of the second path,
                 and it wasn't treated like that.

        Fix:     Initialize port0 of both paths of BCM8073 during common init

        Impact:  57712 only and KR only

    3.  Problem: PCIE-X link speed is not displayed correctly for 57712

        Cause:   Misinterpretation of link speed encoded value

        Fix:     Fixed for 57712

        Impact:  57712 only

    4.  Problem: Performance drop on high-PPS scenarios with new HC code

        Cause:   New HC flow was overloading a HW buffer and caused back
                 pressure on on-chip processors

        Fix:     (In FW 6.0.6) Remove some of the HW buffer uses

        Impact:  introduced in 1.60.01 (FW 5.3.19)

    5.  Problem: (CQ45499) HW attention at BCM57710 stress test

        Cause:   New HC flow could cause HW bug by using illegal timers command

        Fix:     (In FW 6.0.6) Remove the use of timers command, instead use
                 aggregated interrupts

        Impact:  introduced in 1.60.01 (FW 5.3.19) BCM57710/BCM57711 only

    6.  Problem: Change MTU causes L4 traffic to stop

        Cause:   Status Block of cnic driver was not updated during nic_load

        Fix:     Add cnic SB update

        Impact:  Introduced in 1.60.01


    Enhancements
    ------------
    1.  Request: Use FW 6.0.7

        Change:  As requested

        Impact:  iSCSI is not functional in this version


Version 1.60.06 (Feb 4, 2010)
==============================
**** This version requires bootcode 6.0.6 or above for BCM57712 ****

    Fixes
    -----
    1.  Problem: FCoE wasn't receiving mcast packets, including FIP packets
                 sent to ALL_ENODE_MACS address

        Cause:   There was DROP_ALL_MCAST flag set to FCoE L2 client

        Fix:     Set ACCEPT_MCAST flag to FCoE L2 client that will make it
                 receive only matched mcast packets

    2.  Problem: Path1 shared memory data run over Path0 configuration

        Cause:   The register that marks the beginning of the shared memory is
                 global rather than split per path

        Fix:     Use different registers to mark the beginning of the shared
                 memory per path.

        Impact:  57712 only

    3.  Problem: bnx2x stopped receiving on the VLAN after MTU change

        Cause:   VLAN removal flag was not configured after reloading FW
                 during change MTU flow

        Fix:     Configure VLAN removal flag if needed after MTU change

    4.  Problem: drivers enter infinite loop during crash dump

        Cause:   lack of parentheses in loop expression

        Fix:     add parentheses

    5.  Problem: (iSCSI)(CQ45150) OIS Assert occurred after attempting to
                 login to iSCSI target

        Cause:   Firmware bug

        Fix:     Fixed in FW 6.0.2

    6.  Problem: (FCoE)(CQ44937) Data corruption after forcing FC-CRC error

        Cause:   Hardware bug when detecting CRC error on FCoE data placement

        Fix:     (Fixed in FW 6.0.3) Firmware workaround - Send 64 DMA dummy
                 write commands in order to prevent the false error from
                 appearing

    7.  Problem: 57712 4-port mode doesn't link up

        Cause:   XGXS wasn't actually configured in this mode since the
                 current MD_DEVAD used didn't work.

        Fix:     Use different MD_DEVAD when working with the E2 XGXS

        Impact:  57712 only

    8.  Problem: 57712 4-port D2 nic test(internal loopback test) fail

        Cause:   Loopback was set as 10G instead of 1G loopback

        Fix:     When speed selection is 1G, set 1G loopback, otherwise
                 set 10G loopback.

        Impact:  57712 only


    Enhancements
    -----------
    1.  Request: Add support for KVM SR-IOV (BCM57712 and onwards)

        Change:  As requested

    2.  Request: Add support for VF devices

        Change:  As requested

    3.  Request: Update README.TXT and manpages with GRO dependency on 8021q
                 module

        Change:  As requested

    4.  Request: Use FW 6.0.3

        Change:  As requested

Version 1.60.04 (Jan 26, 2010)
==============================

    Fixes
    -----
    1.  Problem: (CQ43831) Driver error reports while loading/unloading under
                 DCC traffic

        Cause:   A race condition between disabling the incoming traffic when
                 unloading and DCC enabling the link

        Fix:     Changed DCC enable/disable commands to use a different register
                 setting that will not interfere with normal unload sequence

    2.  Problem: Driver load under DCC traffic might fail

        Cause:   Lack of lock between driver load command and DCC ack command

        Fix:     Add mutex to protect the FW mailbox

    3.  Problem: ifconfig up reported error while using bootcode 6.0.1

        Cause:   Lack of lock between DCBX init command and response handling

        Fix:     Add mutex to protect the FW mailbox

    4.  Problem: FW asserts while unloading/loading under DCC enable/disable
                 commands

        Cause:   DCC disable command changed the driver internal state and might
                 overrun state changes which are initiated by the load/unload
                 sequence. This caused the driver to be out of sync with the FW

        Fix:     DCC disable/enable command uses different flag and not the
                 driver state

    5.  Problem: Error message is printed when failing to obtain MSI-X vectors

        Cause:   When trying to work in multi-mode and not getting enough MSI-X
                 vectors, the driver printed an error message indicating that
                 it will use a single queue

        Fix:     Since this is a valid condition, the print is allowed under
                 specific messages level only

    6.  Problem: port 1 of 57712 can't initialize correctly

        Cause:   driver accessed incorrect shmem addresses

        Fix:     fixed

        Impact:  57712/57712E only

    7.  Problem: 57712 link is not up

        Cause:   There's difference in AER strapping between 57711 and 57712

        Fix:     Set the XGXS AER to the appropriate value according to the
                 new XGXS model

        Impact:  57712 only


Version 1.60.03 (Jan 20, 2010)
==============================

    Fixes
    -----
    1.  Problem: Unresolved symbols during compilation on 32bit platforms

        Cause:   Improper initialization of variable with FP symbol

        Fix:     Using integer constant instead

        Impact:  Introduced in 1.60.01

    2.  Problem: MF dead in the water for 57711

        Cause:   Improper initialization of the FW caused it to hang

        Fix:     Fixed initialization

        Impact:  Introduced in 1.60.01

    3.  Problem: HC not enabled for port 1

        Cause:   Improper initialization the HC in the FW

        Fix:     Fixed initialization

        Impact:  Introduced in 1.60.01

    4.  Problem: (iSCSI) Unexpected chip behavior when padding is splitted
                 into 2 or 3 parts

        Cause:   Firmware bug when aligning split padding

        Fix:     Firmware was fixed

        Impact:  Problem exists in all previous releases

    5.  Problem: (iSCSI) False data digest error when data digest is splitted
                 into 3 parts

        Cause:   Firmware bug when aligning split padding

        Fix:     Fixed in FW 6.0.1

        Impact:  Problem exists in all previous releases

    6.  Problem: (FCoE) (CQ45025) False REC_TOV timer expiration

        Cause:   Timer was not reset when a task that supports REC_TOV was
                 replaced by task that didn't

        Fix:     (Fixed in FW 6.0.1) When new task begin, we set the timer if
                 it supports REC_TOV and reset timer if he doesn't

        Impact:  Problem exists in all previous releases

    7.  Problem: (FCoE) Connection cache was not initialized properly and
                 REC_TOV\E_D_TOV timers weren't disable after all functions
                 destroyed

        Cause:   Wrong calculation of number of active functions

        Fix:     (Fixed in FW 6.0.1) Add designated counter for number of
                 active functions

        Impact:  Problem in BCM57712 only

    8.  Problem: MSI-X vectors request in repeating ifup/ifdown test case
                 fail due to not sufficient amount of resources

        Cause:   MSI-X/MSI were not disabled if ifup failed due to lack of memory

        Fix:     Properly release allocated MSI-X/MSI vectors if ifup failed
                 due to lack of memory

    Enhancements
    -----------
    1.  Request: Remove GRO dependency on kernel version

        Change:  Replaced with dependency on NETIF_F_GRO flag

    2.  Request: Integrate with bootcode 6.0.0 and above for proper handling
                 of phy initialization in 57712 2-PORT-MODE

        Change:  As requested

    3.  Request: (CQ39624) Provide detailed statistics with ethtool -S eth<x>

        Change:  As requested

    4.  Request: Add compatability of GRO feature with RH5.4 systems

        Change:  As requested

    5.  Request: Improve performance of new HC code (submitted in firmware
                 5.3.19). Cut the storm utilization by 50%

        Change:  As requested (in FW 6.0.1)

    6.  Request: Add ability to control BCM8073 PN polarity swap through nvm
                 configuration

        Change:  As requested.

    7.  Request: Use GPIO3 to take BCM84823 phy out of reset

        Change:  As requested.

    8.  Request: Use FW 6.0.1

        Change:  As requested.

    9.  Request: Add support for FCoE to older kernels
                 (e.g. RH5.4 in-the-box kernel)

        Change:  As requested.


Version 1.60.02 (Jan 12, 2010)
==============================

    Fixes
    -----
    1.  Problem: Self-test didn't work on kernels newer than 2.6.25

        Cause:   There was missing a new way to report the number of tests

        Fix:     Added a support for a new way to report a number of tests
                 when compiled against new kernels

    2.  Problem: (iSCSI)(CQ45150) OIS assert @
                 [bxois!HandleConnectionCqeWorkitem+429] when trying to logon
                 to iscsi target

        Cause:   Firmware bug

        Fix:     Fixed in FW 5.3.20.1

        Impact:  Problem exists only in release T6.0


    Enhancements
    -----------
    1.  Request: Add VLAN GRO support

        Change:  As requested

    2.  Request: Use FW 5.3.20.1

        Change:  As requested


Version 1.60.01 (Jan 12, 2010)
==============================

    Fixes
    -----
    1.  Problem: 57712 emulation failed to run in 4 domains 10G mode
                 (debug only)

        Cause:   Driver accidently accessed non-existing EMAC

        Fix:     Remove access to EMAC register in case of emulation

    2.  Problem: In dual-media, only the SFP+ module on the first phy is checked

        Cause:   Insufficient support in SFP+ module checking

        Fix:     Modify SFP+ module API verification to include parameter
                 indicating the exact phy.

        Impact:  Whenever driver send command to the bootcode, it will now also
                 send parameter. Bootcode will treat this parameter only when it
                 is relevant

    3.  Problem: (FCoE) Chip hangs while running normal rd/wr operations

        Cause:   RX Doorbell was not handled properly

        Fix:     (Fixed in FW 5.3.18) Handling the case where receiving false
                 RX doorbell

    4.  Problem: (FCoE) (CQ44936, CQ44937) Data corruption during
                 read/write/compare test

        Cause:   Error was not detected by FW since it was short FCP_RSP packets

        Fix:     (Fixed in FW 5.3.20) Checking if received the amount of data
                 when receiving this format of FCP_RSP

    5.  Problem: (FCoE) (CQ44936, CQ44937) Data corruption during
                 read/write/compare test

        Cause:   When packet with invalid CRC detected, task context isn't
                 reverted to previous valid state

        Fix:     (Fixed in FW 5.3.20) on detection of packet with invalid CRC,
                 task cached context isn't write back to memory

    6.  Problem: (iSCSI) Chip hangs when running iSCSI read traffic

        Cause:   Miscalculation of HW commands when SGEs are not 64-bytes
                 aligned

        Fix:     (Fixed in FW 5.3.20) Fixing FW calculation of SGE alignment
                 and fields in HW command

    7.  Problem: (FCoE) Upper layer didn't know which MAC to use during
                 DCBX negotiation.

        Cause:   Proper MAC (SAN) was not set in the netdev.

        Fix:     Call dev_addr_add() with the proper MAC and SAN type.

    8.  Problem: (FCoE) FIP packets were not ruled by the PFC FC.

        Cause:   FIP packets were arriving on a regular L2 client.

        Fix:     Set a different MAC to the FCoE L2 client.


    Enhancement
    -----------
    1.  Request: Changed the doorbell size (the stride between consecutive
                 doorbells' addresses) from 4K to 128

        Change:  As requested

    2.  Request: Add support for dual-media board type

        Change:  Redesign the CLC to be able to handle multi-phy boards.
                 Rename clc/CLC to elink/ELINK.
                 Driver is required to probe the phys on board before
                 initializing the link.
                 Specific phy access will be done using "phy" structure.
                 Common access will go over all phys on board and execute the
                 command on them.

        Impact:  From now on, high level driver will not be familiar with the
                 phys on-board. For every phy access, it is required to use the
                 elink API, or add new one.

    3.  Request: Having the ability to pass data from the Tstorm to the driver
                 over the SGL in fast_path_cqe (required for iSCSI Out-Of-Order)

        Change:  As requested (in FW 5.3.20)

    4.  Request: Use FW 5.3.20

        Change:  As requested

    5.  Request: Add DCBX support for 57711

        Change:  As requested

    6.  Request: Remove #ifdef CONFIG_PCI_MSI sections from code

        Change:  Removed #ifdef CONFIG_PCI_MSI sections. Left the code that was
                 compiled when this (CONFIG_PCI_MSI) macro has been defined.

Version 1.53.14 (Dec 7, 2009)
==============================

    Enhancement
    -----------
    1.  Request: (CQ41760) Use more generic log message in case of fan failure

        Change:  As requested

    2.  Request: (CQ43089) Add VPD-R V0 entry to displayed firmware revision in
                 ETHTOOL

        Change:  As requested

    3.  Request: Use FW 5.3.17

        Change:  As requested

    4.  Request: Enable parity errors recognition and recovery.

        Change:  First implementation of parity error recovery flow. Currently
                 only "process kill" is supported. Parity errors are currently
                 disabled for E1 until the proper changes are done to init
                 tool.

Version 1.53.13 (Nov 17, 2009)
==============================

    Fixes
    -----
    1.  Problem: Improper initialization of MF/SF causes driver to stall

        Cause:   Using uninitialized values of fpid

        Fix:     Using fpid moved to later stages after its initialization

        Impact:  None


Version 1.53.12 (Nov 16, 2009)
==============================

    Fixes
    -----
    1.  Problem: CQ41232: Management gets incorrect AN and FC bit values.

        Cause:   FC wasn't updated correctly during link up event

        Fix:     Extract all status_link information correctly

        Impact:  None

    2.  Problem: CQ36401: Excessive link down messages when driver is unloaded

        Cause:   Link event is reported for every link event, even when link
                 is not changed

        Fix:     Do not report link change unless there's actually link link
                 change

        Impact:  None

    3.  Problem: BCM8481 doesn't negotiate FC capabilities

        Cause:   FC capabilities weren't advertised during phy initialization

        Fix:     Set BCM8481 FC capabilities during init stage

        Impact:  None

    4.  Problem: (FCoE) Completions are not arrived on open tasks

        Cause:   Connection does not register to QM since SQ producer/consumer

        Fix:     Fixed in FW 5.3.14: Set BCM8481 FC capabilities during
                 init stage

        Impact:  None


    Enhancement
    -----------
    1.  Request: Support bootcode on 57712

        Change:  As requested

        Impact:  577712 Only

    2.  Request: Allocate available MSI-X vectors in normal mode

        Change:  As requested

        Impact:  None

    3.  Request: Use multi cpu rx when using msix in kernels without new napi

        Change:  As requested

        Impact:  None

    4.  Request: support correct number of iSCSI and FCoE sessions in the HW
                 initializations

        Change:  As requested

        Impact:  None

    5.  Request: support any number of L2 queues in the HW
                 initializations

        Change:  As requested

        Impact:  None

    6.  Request: Hanlde both Tx and Rx in NAPI

        Change:  As requested

        Impact:  None

    7.  Request: Support 4-port mode for 57712

        Change:  As requested

        Impact:  None

    8.  Request: Use FW 5.3.14

        Change:  As requested

        Impact:  None

Version 1.53.11 (Nov 11, 2009)
==============================
    Fixes
    -----
    1.  Problem: When iptable_nat module is installed on RH4, traffic halts

        Cause:   iptable_nat on RH4 requests for GSO without asking for csum
                 offload

        Fix:     When configuring the HW/FW to GSO, always configure csum
                 offload as well

    2.  Problem: (FCoE) Chip hanged during data placement

        Cause:   Thread started placing data before verifying the task type

        Fix:     Fixed in FW 5.3.13: verify task type is match to read in
                 FCP_DATA before placement

        Impact:  None

    3.  Problem: (CQ44328) (FCoE) Chip hanged after error was detected

        Cause:   Thread was waiting for CRC result instead
                 of releasing the packet

        Fix:     Fixed in FW 5.3.13: Release the packet if an error occurred
                 during data placement

        Impact:  None

    Enhancement
    -----------
    1.  Request: Use FW 5.3.13

        Change:  As requested

        Impact:  None


Version 1.53.10 (Nov 08, 2009)
==============================

    Enhancement
    -----------
    1.  Request: Use FW 5.3.12

        Change:  As requested

        Impact:  None

Version 1.53.9 (Oct 27, 2009)
==============================

    Fixes
    -----
    1.  Problem: ethtool -t ethX FAILED

        Cause:   test_registers() accessed registers without mask

        Fix:     Added mask for write access

        Impact:  None

Version 1.53.8 (Oct 26, 2009)
==============================

    Enhancement
    -----------
    1.  Request: Use FW 5.3.10

        Change:  As requested

        Impact:  None

Version 1.53.xx (Oct xx, 2009)
==============================

    Enhancement
    -----------
    1.  Request: Improve times for ifconfig up/down (slow 57712 chip revision)

        Change:  As requested

        Impact:  None

Version 1.53.xx (Oct xx, 2009)
==============================

    Enhancement
    -----------
    1.  Request: Add support for EMAC loopback for FPGA

        Change:  As requested

        Impact:  None

Version 1.53.7 (Oct 22, 2009)
==============================

    Enhancement
    -----------
    1.  Request: Use FW 5.3.9

        Change:  As requested

        Impact:  None

    2.  Request: Remove compilation flag for
                 BCM57712/BCM57712E/BCM57713/BCM57713E

        Change:  As requested

        Impact:  None

Version 1.53.6 (Oct 21, 2009)
==============================

    Enhancement
    -----------
    1.  Request: 57712 multifunction support

        Change:  As requested

        Impact:  None

Version 1.53.5 (Oct XX, 2009)
==============================

    Fixes
    -----
    1.  Problem: Failed to build bnx2x in chroot build environment

        Cause:   The Makefile attempted to run with -j flag to utilize all CPU
                 in the system and in chroot environment it resulted with "-j 0"

        Fix:     The Makefile should not force the -j option. Removed this
                 feature

        Impact:  Without explicitly providing the -j flag when compiling the
                 driver, the compilation will consume more time

Version 1.53.4 (Oct 11, 2009)
==============================

    Fixes
    -----
    1.  Problem: Priority Flow Control on BCM57711 showed low performance

        Cause:   Transmitted Xon PFC packet was malformed. PriorityEnableVector
                 field in PFC packet was set to zero instead of the relevant
                 priorities. This caused to remote peer to wait longer until
                 timers expired to Xon again

        Fix:     Fixed in FW 5.3.8: set properly PriorityEnableVector in Xon
                 PFC packet

        Impact:  None


    2.  Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected FIN packet
                 was received under traffic

        Cause:   FW erroneously increased activity counter

        Fix:     Fixed in FW 5.3.8: condition for activity counter increment
                 fixed

        Impact:  None


    3.  Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected SYN packet
                 was received under traffic

        Cause:   TCP reset initiated by FW caused endless wake ups for FW

        Fix:     Fixed in FW 5.3.8: changed setting of FW internal flags

        Impact:  None


    4.  Problem: iSCSI offload: Memory sanity of thread check fail during Query
                 ramrod

        Cause:   During Query ramrod, when FW prepared the context for upload
                 on the scratchpad, it exceeds the thread scratchpad boundary

        Fix:     Fixed in FW 5.3.8: use the scratchpad within the thread
                 boundary only

        Impact:  None


    5.  Problem: iSCSI offload: TCP Close failed

        Cause:   Bug in byte credit update during termination

        Fix:     Fixed in FW 5.3.8

        Impact:  None


    6.  Problem: FCoE INIT ramrod was never completed

        Cause:   Reading from inappropriate VQ in Tstorm

        Fix:     Fixed in FW 5.3.8: reading from to the correct VQ

        Impact:  None


    Enhancement
    -----------
    1.  Request: BCM577xx support for FW 5.3.8

        Change:  As requested

        Impact:  None


    2.  Request: Adding support broadcast and multicast received packets in
                 L2 switch independant mode

        Change:  In FW 5.3.8 as requested

        Impact:  None


Version 1.53.3 (Oct xx, 2009)
==============================

    Fixes
    -----
     1. Problem: Only Tx queue 0 was used in default configuration on
                 kernel 2.6.30 and above

        Cause:   bnx2x_select_queue() was returning 0 by default

        Fix:     Make bnx2x_select_queue() return stack tx_hash() by default

        Impact:  None


    Enhancement
    -----------
     1. Request: Add a separate L2 ring for FCoE L2 traffic

        Change:  As requested

        Impact:  None

Version 1.53.2 (Oct 8, 2009)
==============================

    Fixes
    -----
    1.  Problem: 57712 failed to receive data from network

        Cause:   Incorrect MAC type selected during initialization

        Fix:     MAC initializaton fixed

        Impact:  None

    2.  Problem: 57712 failed to bring up interface

        Cause:   Unhandled attention interrupt caused processor to stall

        Fix:     Added handling for new attentions

        Impact:  None

Version 1.53.1 (Oct 5, 2009)
==============================

    Enhancement
    -----------
    1. Request: 57712 support for FW 5.3.7

       Change:  As requested

       Impact:  None

Version 1.53.xx (Sep xx, 2009)
==============================

    Enhancement
    -----------
    1. Request: When PFC is enabled, set BigMAC to relay control packets to the
                system as well, and enable BigMAC to react on received Pause
                packets

       Change:  As requested

       Impact:  None

Version 1.53.0a (Oct 1, 2009)
==============================

    Enhancements
    ------------
    1.  Request: Use FW 5.3.7

        Change:  As requested

        Impact:  None

    2.  Request: Add support for BCM57712 (by compilation flag)

        Change:  As requested

        Impact:  None

Version 1.51.0a (Sep 14, 2009)
==============================

    Fixes
    -----
    1. Problem: Enabling fairness algorithm in the middle of the run causes
                the function to stop transmitting.

       Cause:   The fairness credit is not initialized in this case.

       Fix:     Change the fairness credit init value.

       Impact:  None.

    2. Problem: (CQ42873) No traffic when number of receive buffers is configured
                to 50 (the minimum) in the advanced properties page.

       Cause:   Firmware is always saving a CQE for each TPA aggregation.
                So in case less then 75 CQEs are on the ring, the firmware
                starts dropping packets.

       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.

    Enhancements
    ------------
    1.  Request: Use FW 5.3.4

        Change:  As requested

        Impact:  None

Version 1.51.x (Aug xx, 2009)
=============================

    Fixes
    -----
    1.  Problem: Link is down with BCM8481 when connected to 1G device after
                 it was connected to 100M device

        Cause:   When link type changes from SGMII to GMII/XGMII, the SGMII
                 configuration wasn't removed

        Fix:     Remove SGMII configuration in non-SGMII link type

        Impact:  None

     2. Problem: BCM8481 link is not able to link up after cable plug out/in

        Cause:   New BCM8481 image required new configurtion of the LED4 signal
                 which generate the interrupt

        Fix:     Detect link down using the LED4 signal rathen than the BCM8481
                 registers

        Impact:  None

     3. Problem: Link is down with BCM8481 when connected to 1G device after
                 it was connected to 100M device

        Cause:   When link type changes from SGMII to GMII/XGMII, the SGMII
                 configuration wasn't removed

        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: Driver might read corrupted data from shared memory in case
                 bootcode is missing

        Cause:   Some pieces of code are not protected in case bootcode is
                 missing

        Fix:     Add additional protection in case bootcode is missing

        Impact:  None

    Enhancements
    ------------
    1.  Request: When PFC enabled, pass pause frames towards the NIG

        Change:  As requested

        Impact:  None

    2.  Request: Improve FP performance

        Change:  Remove writing ACK to USTORM from Tx flow and to CSTORM from
                 Rx

        Impact:  None

    3.  Request: Handle fan failure for BCM8481 PHY

        Change:  As requested

        Impact:  None

    4.  Request: Once PFC is selected along with emac, it is required to set
                 BIT 3, KEEP_MAC_CONTROL, at emac register rx_mode.
                 Setting this bit causes MAC control frames (except for pause
                 frames) to be passed on for processing. This setting has no
                 affect on the operation of the pause frames.
                 This bit affects all packets regardless of RX Parser packet
                 sorting logic.

        Change:  As requested

        Impact:  None

    5.  Request: Use FW 5.1.23.1

        Change:  As requested

        Impact:  None

    6.  Request: Support kernel 2.6.31 (RC2)

        Change:  Use DMA_MAP macros and .ndo_select_queue

        Impact:  None

    7.  Request: (CQ41112) - PHY LED Programming for BCM8481 on BlackBird
                  (BCM957711A1100G) Production Board

        Change:  As requested

        Impact:  None

    8.  Request: Increase DMAE max write size for 57711/57711E

        Change:  As requested

        Impact:  None

    9.  Request: Not handling statistics in panic condition

        Change:  As requested

        Impact:  None

   10.  Request: Enhance bnx2x_panic_dump() - print SB data

        Change:  As requested

        Impact:  None

Version 1.52.2 (Aug 18, 2009)
=============================
    Fixes
    -----
    1.  Problem: (CQ42998) 57711E PF on OS linked even after unassigning
                 network in VC

        Cause:   ethtool reports the physical link status instead of PF OS
                 link status

        Fix:     bnx2x_get_link() returns no link if driver is not in open
                 state

        Impact:  None

    2.  Problem: ethtool displays 57711E PF link speed as 0 in certain
                 scenario

        Cause:   VC assigned network and max bandwidth were not refreshed
                 during driver load

        Fix:     Refresh the VC assigned network and max bandwidth during
                 driver load

        Impact:  None

    3.  Problem: syslog and kernel logs always report 57711E PF speed
                 as 10000 Mbps

        Cause:   bnx2x_link_report() reports the actual physical link speed
                 instead of the max bandwidth assigned to the PF

        Fix:     Report the max bandwidth assigned to the PF

        Impact:  None

    4.  Problem: In some cases FW does not respond in time to driver requests
                 and thus driver load fails

        Cause:   For certain PHYs, FW might need some more time before
                 responding to driver request

        Fix:     Increase the timeout up to 5 sec

        Impact:  None

    Enhancements
    ------------
    1.  Request: Set interrupt coalescing granularity to 4us instead of 12us

        Change:  As requested

        Impact:  None

    2.  Request: Change default interrupt coalescing numbers to supported
                 numbers

        Change:  Since the interrupt coalescing granularity is 4us, a value of
                 25 is actually configured as 24 to the HW

        Impact:  None

    3.  Request: Fix bnx2x_fw_dump() to compute trace start address based on
                 shmem offset

        Change:  As requested

        Impact:  None

Version 1.52.1 (Aug 12, 2009)
=============================
-- Upstream Version --
    Fixes
    -----
    1.  Problem: Link is down with BCM8481 when connected to 1G device after
                 it was connected to 100M device

        Cause:   When link type changes from SGMII to GMII/XGMII, the SGMII
                 configuration wasn't removed

        Fix:     Remove SGMII configuration in non-SGMII link type

        Impact:  None

    2.  Problem: BCM8481 link is down after cable plug out/in

        Cause:   New BCM8481 image required new configuration of the LED4 signal
                 which generate the interrupt

        Fix:     Detect link down using the LED4 signal rather than the BCM8481
                 registers

        Impact:  None


    3.  Problem: (CQ35477) Incorrect display of External Phy Firmware Version
                 for Everest XFP board.

        Cause:   External Phy Firmware Version for BCM8705 PHY used to display
                 0000:0000

        Fix:     Change not to display PHY FW version

        Impact:  None

    4.  Problem: In BCM8727, spirom was loaded first on slave port, rather than
                 on the master port. This may lead to xaui pll issue.

        Cause:   Port-Swap wasn't considered when loading spirom to the BCM8727,
                 hence first the slave port was loaded with the spirom.

        Fix:     First load the SPIROM to the master port.

        Impact:  None

   5.   Problem: Possible FW assert in driver unload/load test case

        Cause:   Possible race on statistics state machine state change

        Fix:     Added a write barrier to ensure that the state change is
                 committed

        Impact:  None

    Enhancements
    ------------
    1.  Request: In promiscuous mode, pass management traffic to the host

        Change:  As Requested

        Impact:  None

    2.  Request: PCI drivers that implement the struct pci_error_handlers'
                 error_detected callback should return PCI_ERS_RESULT_DISCONNECT
                 if the state passed in is pci_channel_io_perm_failure

        Change:  As Requested

        Impact:  None

    3.  Request: (CQ41112) PHY LED Programming for BCM8481 PHY

        Change:  As requested

        Impact:  None

    4.  Request: (CQ41067) Add support for CL73 on XAUI

        Change:  As requested

        Impact:  None

Version 1.52.0 (Jul 28, 2009)
=============================

    Fixes
    -----
     1. Problem: Redundant settings of vlan_features at set_tso

        Cause:   There is no need to change vlan_features at set_tso since this
                 field is a capability field and not current settings

        Fix:     Remove redundant code

        Impact:  None

     2. Problem: (CQ42550) No host traffic when NCSI is enabled on some systems

        Cause:   The driver did not set the required filtering flags and
                 received only traffic which was not intended for the BMC - on
                 some systems, this is not enough and the driver should enable
                 its own masking

        Fix:     Setup the driver mask to receive traffic even when NCSI is
                 enabled

        Impact:  None

Version 1.50.13 (Jul 22, 2009)
==============================

    Enhancements
    ------------
    1.  Request: Update to FW 5.0.21

        Change:  As requested

        Impact:  None

Version 1.50.12 (Jul 16, 2009)
==============================

    Fixes
    -----
    1.  Problem: In some TPA aggregation cases, might go into TCP slow-start
                 instead of fast-retransmit

        Cause:   When TPA is used, pure ACK on open aggregation was aggregated

        Fix:     (FW 5.0.20) Do not aggregate pure ACK packets in TPA

        Impact:  None

Version 1.50.11 (Jul 7, 2009)
=============================

    Fixes
    -----
    1.  Problem: Setting rx-usecs to the value less than 12 causes the
                 traffic to stop

        Cause:   Did not disable HC coalescing when set the coalescing timeout
                 to zero (coalescing timeouts are multiples of 12us)

        Fix:     Disable HC coalescing, when timeout is set to the zero

        Impact:  None

    2.  Problem: Packet descriptors in NIG might get out of sync if management
                 egress traffic is pass through during self test

        Cause:   During loopback test management egress traffic might be routed
                 to the host and will not be cleared when exiting the diag mode

        Fix:     Disable management egress traffic when driver is in diag mode

        Impact:  None

Version 1.50.10 (Jul 1, 2009)
=============================

    Fixes
    -----
    1.  Problem: (CQ42298) Management traffic does not resume after self test

        Cause:   Writing to the egress management FIFO during the memory test
                 interpreted as a start of a management packet and cause the
                 FIFO not to be empty

        Fix:     Remove the write to the egress management FIFO from the self
                 test

        Impact:  None

    2.  Problem: Link up time takes too long with BCM8727 based NICs

        Cause:   EDC mode is not set automatically

        Fix:     Set EDC mode manually according to the SFP+ module type
                 detected (Passive DAC / Active DAC / LC-LRM / LC-SR / LC-LR)

        Impact:  None

    3.  Problem: (CQ41567) In BCM8727 based NICs, when SFP+ module is not
                 plugged, there is continuous messages of Link Down

        Cause:   The EDC tries to process the Rx data/noise because its OPRXLOS
                 input signal is false (low), indicating an Rx signal is
                 present.

        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

Version 1.50.9 (Jun 25, 2009)
=============================

    Fixes
    -----
    1.  Problem: Low throughput when using VLAN on kernel 2.6.26 or above

        Cause:   New VLAN_features field in struct net_device was not
                 initialized hence no offload capabilities were available with
                 VLAN

        Fix:     Initialize VLAN_features field in struct net_device

        Impact:  None

    2.  Problem: No event log in case fan failure occured prior to loading the
                 driver

        Cause:   The event was not detected since it was already set when the
                 driver was loaded

        Fix:     Check for the event on load time

        Impact:  None

    3.  Problem: Loopback test in self test might fail in case NCSI is enabled

        Cause:   NCSI egress traffic is received instead of the loopback test
                 packets

        Fix:     Disable NCSI egress traffic during loopback test

        Impact:  None

    4.  Problem: ethtool reports link up when the device is down

        Cause:   Bug in ethtool_op_get_link()

        Fix:     Use bnx2x_get_link() instead

        Impact:  None

    5.  Problem: 57711E WoL does not work if only one function per port was
                 active prior to shutdown

        Cause:   WoL is configured to work in SF mode

        Fix:     Set the chip back to SF mode (so WoL will work) even if only
                 one function was loaded per port in MF mode

        Impact:  None

Version 1.50.8 (Jun 8, 2009)
============================

    Fixes
    -----
    1.  Problem: When running many TCP connections (>200) on both ports, some
                 connections hangs

        Cause:   When all TPA aggregations are occupied, FW can override the RX
                 CQE consumer of the other port

        Fix:     Fix in FW 5.0.18: reload the RX CQE consumer from RAM after TPA
                 handler breaks to sleep

        Impact:  None

    2.  Problem: CL73 enhancement causes link down

        Cause:   Unknown

        Fix:     Revert CL73 enhancement until problem resolved

        Impact:  None

Version 1.50.7 (Jun 4, 2009)
============================

    Fixes
    -----
    1.  Problem: (CQ41533) Unapproved modules behavior is not enforced according
                 to nvram configuration

        Cause:   In case the module was not approved, the function quit before
                 enabling the Tx laser - so even when set to warning, there was
                 no link. When set to power off the module, there was continues
                 false indication of over current when the module was extracted

        Fix:     When set to warning - enable the module. Validate that the
                 module is present before checking for over current indication

        Impact:  None

    2.  Problem: The coalescing timeout value displayed by `ethtool' is
                 different for the one used by the FW

        Cause:   The limitation for coalescing timeout values in driver's
                 `ethtool -C' callback was wrong

        Fix:     Fix the limitation for coalescing timeout in `ethtool -C'
                 callback

        Impact:  None

    Enhancements
    ------------
    1.  Request: Reduce the number of cache misses in a fast path

        Change:  Avoid extra cache miss by updating `trans_start' from inside
                 start_xmit()  as long as it's done by the core network layer
                 starting from kernel 2.6.31

        Impact:  None

    2.  Request: (CQ41067) Add 5771x CL73 support

        Change:  As requested

        Impact:  Everest is now able to link with devices which operate in CL73
                 alone / CL37 alone / or both

    3.  Request: Make 8727 over-current behavior code more efficient

        Change:  As requested

        Impact:  None

Version 1.50.6 (Jun 1, 2009)
============================

    Fixes
    -----
    1.  Problem: In 8727, after power-fault occurred and the driver is
                 unloaded and then reloaded, the interrupt is not cleared

        Cause:   In this scenario, the mod_abs mode remain in "wait for
                 module plugged in", so interrupt was not cleared

        Fix:     Set module_absent to wait for module absent scenario

        Impact:  None

    2.  Problem: There is no need to read the warning string for un approved
                 modules from the FW/nvram

        Cause:   This is over design that cause unnecessary overhead - a
                 constant string can be used

        Fix:     Use constant warning string instead of receiving it from
                 FW/nvram

        Impact:  Warning message is not to be used in the modules nvram file

    3.  Problem: High CPU usage in bnx2x_free_tx_pkt()

        Cause:   prefetch(skb_shinfo(skb)) implied immediate cache miss when
                 NET_SKBUFF_DATA_USES_OFFSET is enabled

        Fix:     Replaced prefetch(skb_shinfo(skb)) by prefetch(&skb->end).
                 This would prefetch only the first one from two cache misses
                 needed for reading of skb_shinfo(skb)->nr_frags, which is
                 needed by dev_kfree_skb(skb), but it will do it in a
                 background avoiding an immediate CPU stall

        Impact:  None

    Enhancements
    ------------
    1.  Request: Add support for BCM8727 without over current detection
                 (BCM8727_NOC)

        Change:  As requested

        Impact:  None

Version 1.50.5 (May 26, 2009)
=============================

    Fixes
    -----
    1.  Problem: (CQ38975) Failed to setup leading connection after
                 a lot of iterations of "down-up" test. Workaround for CQ37893
                 (Use INTx mode when MSI-X fails due to memory allocation
                 failure) was broken

        Cause:   bnx2x_set_int_mode() wasn't returning a status, thus there
                 was no way to catch a mentioned above memory allocation
                 failure

        Fix:     Return a status from bnx2x_set_int_mode()

        Impact:  None

    2.  Problem: (CQ41349) Linux panic when disabling RX chksum and running RX
                 traffic

        Cause:   TPA enabled option was not controlled per function/queue level

        Fix:     FW fix in version 5.0.16: TPA enabled is now controlled per
                 function/queue level

        Impact:  None

    3.  Problem: (CQ41434) ethtool -S <NIC> was printing junk on kernels with
                 RSS support

        Cause:   There was a bug in function returning number of lines in
                 device statistics bnx2x_get_stats_count - it was returning
                 more than there actually were)

        Fix:     Make bnx2x_get_stats_count return the correct number

        Impact:  None


    Enhancements
    ------------
    1.  Request: Support approved module list and warn if the module is not on
                 the list

        Change:  This feature requires bootcode 5.0.6 or later and a valid
                 optic modules image on the nvram. The feature is controlled by
                 nvram option 81

        Impact:  None

    2.  Request: Allow enabling and disabling the fan failure mechanism for
                 different PHY types

        Change:  Determine if fan failure enforcement is required according to
                 nvram configuration. The configuration can be auto enforcement
                 according to the PHY type, disabled or enabled

        Impact:  None

    3.  Request: Support firmware flow control when consuming SGEs

        Change:  FW change in FW 5.0.16: Added check for Flow control when
                 consuming SGEs from host

        Impact:  None

    4.  Request: Advertise driver DCC capabilities

        Change:  As requested

        Impact:  None


Version 1.50.4 (May 18, 2009)
=============================

    Fixes
    -----
    1.  Problem: (CQ40938, CQ40937, CQ40911, CQ40992)
                 LSO test failure

        Cause:   LSO packets with BDs that point to buffers that are less than
                 MSS size caused the firmware to send illegal bytes within the
                 same LSO packet

        Fix:     FW fix in version 5.0.14

        Impact:  Regression introduced in v1.50.2

    2.  Problem: (CQ41198) modprobe generate error on RH4.6 or 4.7 which will
                 cause kernel panic

        Cause:   pci_register_driver() returns count and not errno

        Fix:     Ignore the return code from pci_register_driver() in kernels
                 below 2.6.10

        Impact:  None

    3.  Problem: (CQ38975,CQ38925) Failed to setup leading connection after
                 a lot of iterations of "down-up" test

        Cause:   There were a few memory barriers missing

        Fix:     Add missing memory barriers

        Impact:  None

    Enhancements
    ------------
    1.  Request: Reduce the time spent in skb_release_data()

        Change:  Add prefetch(&skb->end) before calling dev_kfree_skb in order
                 to bring in the cache line that skb_release_data() will
                 eventually need (based on the bnx2 patch proposed by
                 Eric Dumazet)

        Impact:  None

    2.  Request: (CQ33228) Add required IOCTLs to support PHY FW upgrade

        Change:  Add 3 magic numbers to the ethtool -E (eeprom) command to
                 support PHY FW upgrade init, PHY FW upgrade complete, and PHY
                 re-init after upgrade
                 Add CL45 MDIO IOCTL support

        Impact:  None

    3.  Request: Add support for BCM8481 SPI-ROM upgrade

        Change:  As requested

        Impact:  None

Version 1.50.3 (May 14, 2009)
=============================

    Fixes
    -----
    1.  Problem: (CQ40848,CQ40835) System breaks due to a firmware assert

        Cause:   Firmware asserted when PCI read latency for RX BD ring was
                 longer then 20usec

        Fix:     FW fix in version 5.0.12: Replace the workaround by a flow
                 which polls on the RX BD ring every 4usec

        Impact:  None

    2.  Problem: (CQ36705) Performance on 57711/57711E is lower when flow
                 control is enabled than when flow control is disabled

        Cause:   L2 firmware flow control was enabled for 57711/57711E and
                 caused performance decrease

        Fix:     Disable L2 firmware flow control by default (add new module
                 parameter to enable it)

        Impact:  None

    3.  Problem: Workqueue might not be freed if driver fail to register

        Cause:   Workqueue is not freed if driver fail to register

        Fix:     Free workqueue when driver fail to register

        Impact:  None

    4.  Problem: Negative number of received packages might be returned in
                 STOP_ON_ERROR debug mode

        Cause:   Negative errno is returned in STOP_ON_ERROR debug mode

        Fix:     Do not return negative number of received packages

        Impact:  None

    5.  Problem: Fan failure on BCM8727 was not supported on port 1

        Cause:   The fan failure assertion was tied only to port 0

        Fix:     The fan failure assertion is tied to port 1 also

        Impact:  None

    6.  Problem: BCM8727 shows link up while RX is disabled

        Cause:   When module-compliance enforcement is enabled,
                 and non-compliant module is detected, then the driver
                 disables the TX-Laser for the phy, yet the link keeps
                 showing link up.

        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

    7.  Problem: (CQ41000) Could miss link up event in BCM8727 right after
                 optic module insertion

        Cause:   At the time that SFP+ module plugged-in was triggered,
                 driver enabled the module while ignoring link change

        Fix:     Check for link changes during module plugged in/out

        Impact:  None

    8.  Problem: BCM8727 doesn't link in 10G after changing from 1G

        Cause:   10G default configuration was overwritten after setting 1G
                 configuration. Since the phy is not reset, the configuration
                 for 10G doesn't go back to default after link speed change

        Fix:     When setting 10G, enforce 10G configuration, and not relay
                 on the default configuration.

        Impact:  None


    9.  Problem: (CQ40840) BCM57710 didn't receive multicast packets

        Cause:   BCM57710 was unable to receive multicast packets. This BUG
                 was introduced with transition to the new Rx HSI. It's unlikely
                 that this failure is SuSE 11 specific

        Fix:     Fix BCM57710 specific multicast configuration code

        Impact:  None

    Enhancements
    ------------
    1.  Request: Add dropless_fc module parameter to send pause frames in
                 case where one of the host buffers (when in RSS mode) are
                 exhausted

        Change:  As requested

        Impact:  None

Version 1.50.2 (May 05, 2009)
=============================

    Fixes
    -----
    1.  Problem: (CQ40300) XFP adapter shows link up in network properties
                 with no cable

        Cause:   Link status register was updated long after interrupt was
                 triggered

        Fix:     Check that RX PMD Loss of Sync bit is cleared and RX PMD Sync
                 Acquired bit is set to detect link

        Impact:  None

    2.  Problem: When Over-Current state is established, LASI interrupts are
                 not cleared

        Cause:   In this scenario, the module is powered-off so OPTXFLT/OPRXLOS
                 indications are set. This cause a fixed RX_ALARM indication
                 which cannot be turned off

        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



    Enhancements
    ------------
    1.  Request: Improve Tx packet rate

        Change:  FW 5.0.10

        Impact:  None

    2.  Request: Add support for future chip revisions

        Change:  From now on bnx2x_main.c doesn't include huge X_init_values.h
                 files. Instead X_init_values.h were transformed to
                 X_init_values.c, which also include internal pointers
                 initialization function for the appropriate chip revision

        Impact:  None

    3.  Request: Add additional support for BCM8727

        Change:  Add support module detection, over-current detection and
                 SFP+ EEPROM access

        Impact:  None

    4.  Request: Add fan-failure check for BCM8727

        Change:  As requested

        Impact:  None

Version 1.50.1 (April 27, 2009)
===============================

    Fixes
    -----
    1.  Problem: (CQ39681) Dtape test fails on Dell TL2000 media changer device

        Cause:   Misalignment between driver and firmware

        Fix:     FW fix in version 5.0.8

        Impact:  None

    2.  Problem: When several protocols work together, interrupt rate is the
                 sum of all protocol rates, instead of the maximum between them

        Cause:   State machines in host coalescing code were independent
                 and generated interrupts on their will

        Fix:     FW fix in version 5.0.8: Add dependency between the states
                 machine - when an interrupt
                 is generated then all state machines of this status block
                 are handled as expired, resulting with lower interrupt rate

        Impact:  None

    3.  Problem: Bootcode unable to set phy configuration

        Cause:   When driver is loaded, it sets Serdes to work in CL45 while
                 the bootcode is using CL22 for phy access, so when driver
                 is unloaded, bootcode unable to access the phy.

        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

    4.  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

    5.  Problem: (CQ40392) Build for SLES11 do not autoload on reboot

        Cause:   SLES11 disables modules whose source is not maintained in the
                 kernel.org source tree

        Fix:     Provide "supported: external" modules for SLES11

        Impact:  None

    6.  Problem: BCM8481 is not able to link with 10/100 switch

        Cause:   XGXS was initializaed to work in none-SGMII mode

        Fix:     Set XGXS to work in SGMII mode if link speed is slower the 1G

        Impact:  None

    7.  Problem: Potential error on unload

        Cause:   The ILT could have been freed while a timer scan is in progress

        Fix:     Make sure that the timer scan is done before freeing the ILT

        Impact:  None

    Enhancements
    ------------
    1.  Request: Improve Tx latency

        Change:  Removed taking tx_lock in Tx interrupt flow. This also
                 voided a need for tx_xon_tasklet - Tx is moved to XON state
                 directly from bnx2x_tx_int

        Impact:  None

    2.  Request: Add support for new BMAC HW block for new chip types

        Change:  When accessing the new BMAC, use the new registers.
                 No need to initialize the PBF HW block credits since
                 flow-control is always enable in that block.

        Impact:  None

    3.  Request: Enable support for other chips in more general way.

        Change:  Split init values and FW into 2 different files. Work
                 against pointers in bnx2x struct instead of global arrays.

        Impact:  None

    4.  Request: Add initial support for BCM8727

        Change:  Add support for the new dual-port SFP+ phy

        Impact:  None

    5.  Request: In BigMac2, when PFC enabled, pass pause frames towards the NIG

        Change:  Set the appropriate bit in the bigmac control register

        Impact:  None

    6.  Request: Improve Rx packet rate

        Change:  FW 5.0.8

        Impact:  None

Version 1.50.0 (April 02, 2009)
===============================

    Fixes
    -----
    1.  Problem: Rx was getting stuck on ia64 platform when system page size
                 was configured to be 64KB on the kernels 2.6.27 and later

        Cause:   The implementation on PAGE_ALIGN macro has been changed,
                 which caused downcast in some places in the code and as a
                 result improper HW configuration

        Fix:     Add a proper casting for the argument of SGE_PAGE_ALIGN macro

        Impact:  None

    2.  Problem: (CQ39552) Link LED is turned OFF while running external
                 loopback test

        Cause:   When using phy loopback, the link doesn't actually comes up
                 since there's no link partner

        Fix:     Set link led up on loopback test

    3.  Problem: BCM8481 is not able to link up in 10/100/1000 Mbps

        Cause:   No 10/100/1000 link signal is connected from the BCM8481 to the
                 Everest

        Fix:     BCM8481 will connect LED4 signal to the Everest LASI signal.
                 The Everest will use the NIG latching mechanism which allows to
                 catch a link event even if the link toggles fast

    4.  Problem: SFP+ (BCM8726) boards do not use flow-control

        Cause:   Flow control wasn't set for BCM8726

        Fix:     Set flow control according to configuration in BCM8726

        Impact:  None

    5.  Problem: Flow-control in MF mode should behave like in SF mode

        Cause:   Old restriction which is not necessary

        Fix:     Remove special flow-control configuration in MF mode

        Impact:  None

    6.  Problem: CNIC sanity tests fails

        Cause:   When changing to new dynamic HC code, no RAM line was allocated
                 to default SB so there was a memory corruption

        Fix:     FW fix in version 5.0.3: Add RAM line for default SB to dynamic
                 HC array

        Impact:  None

    7.  Problem: (CQ39503) Transmission stops for 5 second

        Cause:   Confusion in scaling of the receive window of the remote.
                 Sometimes it is taken "as is" as a number of bytes, without
                 scaling

        Fix:     FW fix in version 5.0.3: Scaling added in 3 places in the code

        Impact:  None

    8.  Problem: Low performance on Tx side in UDP test with small packets

        Cause:   Extra memory barrier in Tx flow

        Fix:     Replace mb() to wmb()

        Impact:  None

    Enhancements
    ------------
    1.  Request: Improve FW performance

        Change:  HC coalescing has been moved from USTORM to CSTORM.
                 TSTORM performance has been improved. FW 5.0.3

        Impact:  None

    2.  Request: Add support for DCC

        Change:  As requested

        Impact:  None

    3.  Request: Improve performance

        Change:  Connect Tx and Rx to different interrupt vectors

        Impact:  None

    4.  Request: Add module parameter controlling number of Rx and Tx queues

        Change:  As requested. Number of Tx queues must be not more than
                 number of Rx queues

        Impact:  None

    5.  Request: Add "per function" statistics support for NCSI management

        Change:  As requested

        Impact:  None

Version 1.48.106 (Mar 04, 2009)
===============================

    Fixes
    -----
    1.  Problem: (CQ38925) Unload/Load with netperf TCP traffic test
                 eventually caused a SETUP ramrod failure

        Cause:   ISR discarded a SP interrupt due to weak synchronization of
                 atomic variable that disables interrupt handling (intr_sem)

        Fix:     Add write memory barriers where intr_sem is updated

        Impact:  None

    2.  Problem: Possible problem in pram initialization

        Cause:   There was a bug in init code generation script

        Fix:     Fix the pram initialization

        Impact:  None

Version 1.48.105 (Mar 02, 2009)
===============================
-- Upstream Version --
    Fixes
    -----
    1.  Problem: Unload/Load test under traffic caused kernel panic in
                 skb allocation/freeing functions

        Cause:   Previously added patch (enhancement 6 in release 1.48.100)
                 broke proper usage of net_device object

        Fix:     Remove the mentioned patch

        Impact:  None

Version 1.48.104 (Mar 01, 2009)
===============================

    Fixes
    -----
    1.  Problem: New phy version (P14) of the BCM8726 unable to link up

        Cause:   The new phy version doesn't behave exactly like its
                 previous version (P13), hence requires some adjustments

        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

    Enhancements
    ------------
    1.  Request: Add limited (online) GRC dump using ethtool -d command

        Change:  As Requested

        Impact:  None

Version 1.48.103 (Feb 19, 2009)
===============================

    Fixes
    -----
    1.  Problem: "ext_phy_fw version" command for BCM8705 shows invalid number

        Cause:   BCM8705 has no microcode

        Fix:     Set BCM8705 version to 0

        Impact:  None

    2.  Problem: Potential problem in BCM8726 bit stretching work-around

        Cause:   When module detection option is disabled, module should be
                 transmitting regardless of invalid read from EEPROM

        Fix:     Ignore error code when setting limiting mode

        Impact:  None

    3.  Problem: (CQ38925, CQ38975) "Wait Ramrod" error while running
                 load/unload stress w/ traffic

        Cause:   Tx wasn't properly disabled in the 'close' flow

        Fix:     Properly disable Tx during 'close' flow

        Impact:  None

    Enhancements
    ------------
    1.  Request: Use DMAE to zero the FW internal memory before loading the FW

        Change:  As Requested

        Impact:  None

    2.  Request: Remove "budgeting" in bnx2x_tx_int

        Change:  As Requested

        Impact:  None

    3.  Request: By default, multi_mode is disabled for old NAPI kernels
                 (up to 2.6.24)

        Change:  As Requested

        Impact:  None

Version 1.48.102 (Feb 12, 2009)
===============================
-- Upstream Version --
    Fixes
    -----
    1.  Problem: FW stats counters might not be updated when running heavy
                 stress test

        Cause:   Sending FW stats ramrod query depends on stats_pending flag.
                 This flag might not be cleared by sp_task() under heavy stress.
                 Thus, next FW stats ramrod query will not be send

        Fix:     Clear stats_pending flag at the end of storm_stats_update()

        Impact:  None

Version 1.48.101 (Feb 09, 2009)
===============================

    Fixes
    -----
    1.  Problem: Compilation is broken on kernels >= 2.6.24

        Cause:   FW constant rename was not updated in latest drop

        Fix:     Fix constant name

        Impact:  None

Version 1.48.100 (Feb 09, 2009)
===============================

    Fixes
    -----
    1.  Problem: "ext_phy_fw version" command for BCM8706 sometimes shows
                 invalid version number

        Cause:   The version number is read during init phase. Reading the
                 BCM8706 version during init phase is done premature

        Fix:     During init phase of the BCM8706, wait until the firmware
                 is loaded completely before reading the version number

        Impact:  None

    2.  Problem: When setting pre-emphasis values for external phys, the
                 XGXS is also set

        Cause:   In external-phy boards, when pre-emphasis values were set in
                 the nvram, both the external phy and the XGXS pre-emphasis
                 values were set, while the values fit the external phy only

        Fix:     Set pre-emphasis values in XGXS only for direct type boards

        Impact:  None

    3.  Problem: (CQ37809) loopback test failure

        Cause:   The link was initialized for real work mode and then
                 re-init to loopback mode. During that time, incoming packets
                 might be queued in the rx ring in front of the loopback packet

        Fix:     Always initialize the link to loopback mode if load_mode is
                 LOAD_DIAG

        Impact:  None

    4.  Problem: Possible false error in the idle check section of the
                 self test regarding the CFC_REG_ACTIVITY_COUNTER register

        Cause:   The test was designed to check halted system (after fatal
                 error) and thus assumed that the chip is idle

        Fix:     Change the test to "info" debug print

        Impact:  None

    5.  Problem: (CQ39439) mf_cfg function disabled error message displayed

        Cause:   Putting the driver into disabled mode was considered an error

        Fix:     Change the printed message from error to a notification

        Impact:  None

    6.  Problem: (CQ38925, CQ37645) ifconfig ethX down up may cause a wrong
                 MSI configuration, which will prevent MSI interrupts to arrive

        Cause:   Chip reset function cleared "MSI reconfigure enable" bit

        Fix:     Don't clear the "MSI reconfigure enable" bit

        Impact:  None

    7.  Problem: Uninitialized HW blocks

        Cause:   XCM and BRB1 port init part were missing

        Fix:     Add XCM and BRB1 port init part

        Impact:  None

    8.  Problem: Constant pause is sent to the network if pause is enabled and
                 TPA is disabled

        Cause:   Wrong thresholds were configured

        Fix:     Set the thresholds to 0 if TPA is disabled

        Impact:  None

    9.  Problem: Unloading UNDI by the driver in E1HMF mode might disable
                 interrupts of the wrong function

        Cause:   HC regs are splited by 4

        Fix:     Pritend to write as function 0 when writing to HC regs

        Impact:  None

    10. Problem: BCM8726 MDIO access is not locked as it should be

        Cause:   MDC/MDIO access to BCM8726 is done via single EMAC, hence
                 all MDC/MDIO access to this phy needs to be locked, like
                 BCM8072 and BCM8073

        Fix:     Lock the hardware using MDIO_RESOURCE when accessing the
                 BCM8726 phy via MDIO

        Impact:  None

    Enhancements
    ------------
    1.  Request: Set default WoL state according to nvram settings

        Change:  As Requested

        Impact:  None

    2.  Request: WRR between different COS queues at TX side

        Change:  Added in driver and in FW 4.8.53

        Impact:  None

    3.  Request: Add ability to change BCM8726 TX PreEmphasis using nvram
                 configuration

        Change:  When nvram config "Override pre-emphasis configuration" (75)
                 is set, use Tx pre-emphasis nvram configuration (47), lane0
                 value to set the Main Tap and lane1 to enable TX-PreEmphasis
                 in BCM8726

        Impact:  None

    4.  Request: Add basic support for BCM8481

        Change:  As Requested

        Impact:  None

    5.  Request: Limit Tx queue number to one for kernels 2.6.24 - 2.6.26
                 (non-TSS kernels with new NAPI)

        Change:  As Requested

        Impact:  None

    6.  Request: Add RSS support for old NAPI kernels (up to 2.6.24) that
                 support MSI-X

        Change:  As Requested

        Impact:  multi_mode = 1 is now the default for all kernels

Version 1.48.51 (Jan 26, 2009)
==============================

    Fixes
    -----
    1.  Problem: Load balancing didn't work

        Cause:   Driver assumed that there was Tx work as long as
                 driver packets producer and consumer were not equal

        Fix:     Changed driver's Tx work amount evaluation logic

        Impact:  None

Version 1.48.50 (Jan 22, 2009)
==============================

    Fixes
    -----
    1.  Problem: (CQ38862) modprobe fails to load driver on SuSE 11

        Cause:   SuSE 11 does not allow 3rd party modules to be loaded without
                 toggling a flag in /etc/modprobe.d/unsupported-modules

        Fix:     Toggle the bit during make install

        Impact:  None

    2.  Problem: Accessing nvram while the driver is down caused PCI error

        Cause:   The driver attempted to access the nvram while the device was
                 in D3 since it was disabled

        Fix:     Prevent nvram access when the device is down

        Impact:  None

    3.  Problem: FW assert while running multi_mode=2 with tx MULTI_QUEUE
                 enabled

        Cause:   start_xmit() selected different tx queue than the tx_lock was
                 taken

        Fix:     Implement dev->select_queue() callback so start_xmit() selects
                 the correct tx queue

        Impact:  None

    4.  Problem: Compilation problem with kernel 2.6.29

        Cause:   netif_rx_schedule and netif_rx_complete do not require the
                 device parameter anymore

        Fix:     Do not pass the device paramter for those functions for kernels
                 above 2.6.29

        Impact:  None

    5.  Problem: Invalid presentation of BCM8726 fw version

        Cause:   The register that holds the fw version is used for other
                 functionality as well, and it is run over after firmware is
                 loaded

        Fix:     Save the firmware version of all external phys in shared
                 memory, after firmware is loaded

        Impact:  None

    6.  Problem: BCM8726 may start tx laser before module detection occurs

        Cause:   Module detection used to be done during link update, which
                 probably would be after tx was enabled

        Fix:     From now on use interrupt driven event using GPIO3, to detect
                 module plugged in/out, and execute module detection then

        Impact:  None

    7.  Problem: 1G switch configuration (using the 5th lane) doesn't work

        Cause:   Support for Serdes (5th lane) was not maintained since no
                 production design used it and when switching to CL45 it stopped
                 working

        Fix:     In order for control the Serdes over Clause45, (and not
                 Clause22), it requires first one time register setting in
                 Clause22

        Impact:  None

    8.  Problem: Softlock during remove_one()

        Cause:   NAPI context was not released before unloading

        Fix:     Release NAPI context before unloading

        Impact:  None

    9.  Problem: False self-test failures due to MC_ASSERT

        Cause:   iSCSI FW sometimes report run-time warnings which are
                 acceptable and do not cause any harm

        Fix:     Do not check for MC_ASSERT. A real FW error will cause the
                 interrupt test to fail

        Impact:  None

    10. Problem: Possible miss of FW response on unload

        Cause:   Missing memory barrier while waiting for FW response

        Fix:     Add read memory barrier

        Impact:  None

    11. Problem: (CQ37809) loopback test failure

        Cause:   A link change interrupt might be queued and activated after
                 the loopback was set

        Fix:     Lock all PHY activities while running loopback test

        Impact:  None

    12. Problem: (CQ39057) Everest, 57710 Error message:
                 bnx2x_start_xmit: BUG Tx ring full when queue awake

        Cause:   In kernels 2.6.24 - 2.6.26 (non-TSS kernels with new NAPI)
                 there can be a possibility that NAPI instance (fp instance)
                 other than the one moved Tx to XOFF state will wake the Tx
                 So, this is highly possible that start_xmit is called while
                 the ring is still full
                 In any other kernel this state is an obvious bug

        Fix:     Remove an error message in the code for the mentioned
                 kernels

        Impact:  None

    Enhancements
    ------------
    1.  Request: Use FW 4.8.50

        Change:  As Requested

        Impact:  None

    2.  Request: BCM8726 should be able to link up at 1G

        Change:  Add support for 1G for BCM8726

        Impact:  When requested speed is 1G force, it will try to link in 1G
                 force. When the speed requested is autoneg, and the speed mask
                 capabilities contain 1G, it will try to autoneg in 1G as
                 well as in 10G

    3.  Request: (CQ39048) Add ability to change 8706 XAUI RX Equalizer
                 using nvram configuration

        Change:  When nvram config "Override pre-emphasis configuration" (75)
                 is set, use the 3LSB bits of RX_equalizer nvram configuration
                 (48) to set the BCM8706 XAUI RX Equalizer registers for each
                 lane

        Impact:  None

    4.  Request: Verify external phy image before ROM upgrade

        Change:  New headers will be added to the images of external phys to
                 be upgraded. Currently this list includes BCM8073, BCM8726
                 and SFX7101. The headers will be checked against fixed magic
                 number and specific phy type

        Impact:  From now on, external phy images MUST include image header

Version 1.48.11 (Jan 13, 2009)
==============================

    Fixes
    -----
    1.  Problem: Possible memory overrun on platforms with page size more
                 than 8K

        Cause:   "linearization" should take into an account system page
                 size and run or not run accordingly

        Fix:     Fixed the compilation condition

        Impact:  None

    2.  Problem: Compilation problem with kernel 2.6.28

        Cause:   struct net_device_ops was postponed to next release

        Fix:     Remove struct net_device_ops from compilation

        Impact:  None

    Enhancements
    ------------
    1.  Request: Limit multi_mode to support only regular mode

        Change:  As requested

        Impact:  None

Version 1.48.10 (Jan 07, 2009)
==============================

    Fixes
    -----
    1.  Problem: (CQ39129) driver assert while logging out during iSCSI
                 max sessions test

        Cause:   QM initialization was wrong

        Fix:     Fix QM initialization

        Impact:  None

Version 1.48.9 (Jan 05, 2009)
=============================

    Fixes
    -----

    1.  Problem: (CQ38909) on IA-64 with TPA enabled, kernel memory was
                 sometimes smeared (depending on the MTU size)

        Cause:   The max TPA fragments assumed 4KB pages and that system had
                 16KB pages

        Fix:     Fix the SGE (TPA fragment) size to be system page size

        Impact:  Improved performance on systems with page size > 4KB like PPC
                 and IA-64

Version 1.48.8 (Dec 31, 2008)
=============================

    Fixes
    -----

    1.  Problem: (CQ38992) on IA-64 Driver crash when transmitting on all 8
                 functions in chariot IPv6 with tx checksum disabled scenario

        Cause:   FW read the buffer descriptor (BD) producer and after that the
                 BD itself before the BD content was updated. This is possible
                 on IA-64 due to weak ordered memory module

        Fix:     Add write barrier after updating the BD data and before
                 updating the BD producer

        Impact:  None

Version 1.48.7 (Dec 30, 2008)
=============================

    Fixes
    -----

    1.  Problem: (CQ38985) Port swap is not working for BCM8726

        Cause:   BCM8726 is driven by MDC/MDIO through single EMAC.
                 In case of port swap, the EMAC access was left with EMAC0

        Fix:     In case port-swap is enabled in the NIG, access MDC/MDIO via
                 EMAC1

        Impact:  None

    2.  Problem: BCM8726 was not reset when driver was unloaded

        Cause:   This phy hardware reset affects both ports and thus wasn't
                 used

        Fix:     When link needs to be reset, reboot the micro-controller of the
                 BCM8726

        Impact:  None

    3.  Problem: BCM8726 was not reset during init

        Cause:   This phy is connected using static port-swap, hence the reset
                 should have been triggered through the opposite port from the
                 spec

        Fix:     Set gpio1 during common init from port1 instead of port0

        Impact:  None

    4.  Problem: (CQ38991) In E1HMF mode some interfaces occasionally
                 misreport link speed

        Cause:   Races between interfaces during init cause an interrupt
                 event to be ignored

        Fix:     Flag the device as "ready for interrupts" prior to enabling
                 the interrupts

        Impact:  None

    5.  Problem: (CQ39057) Everest, 57710 Error message :
                 bnx2x_start_xmit: BUG Tx ring full when queue awake.

        Cause:   Tx BD producer update may not be "seen" by bnx2x_tx_int
                 function running on different CPU, thereby bnx2x_tx_int
                 may erroneously conclude that it may wake Tx.

        Fix:     Add smp_mb() after update of Tx producer before putting Tx
                 to XOFF state.

        Impact:  None

    6.  Problem: In E1HMF mode with multi queue, functions 2..7 cannot receive
                 data

        Cause:   Incorrect initialization of indirection table

        Fix:     Initialize correctly the indirection table

        Impact:  None

    7.  Problem: The driver debug crash dump does not handle cyclic rings
                 correctly

        Cause:   The debug prints were simply from start to end and did not
                 print anything in case start < end (cyclic rings)

        Fix:     Enhance the debug prints with cyclic logic

        Impact:  None

    8.  Problem: Packets dropped due to lack of host buffers were counted twice
                 - in good and bad statistics

        Cause:   Firmware does not maintain separate counters for
                 unicast/broadcast/multicast drops, therefore driver cannot
                 subtract these values from the good packet/byte counters

        Fix:     Fixed in FW 4.8.9

        Impact:  None

    9.  Problem: iSCSI FW: High non-paged host memory consumption

        Cause:   Unnecessary optimization of chipset<->memory bandwidth in
                 expense of memory consumption

        Fix:     Fixed in FW 4.8.9

        Impact:  None

Version 1.48.6 (Dec 18, 2008)
=============================

    Fixes
    -----
    1.  Problem: System hangs when running ifconfig on an 8 CPUs system

        Cause:   A loop variable was used again in an inner loop. That caused
                 an endless loop

        Fix:     Use another variable for the inner loop

        Impact:  None

    2.  Problem: Some stats names are not displayed but their values were
                 displayed in other stats

        Cause:   Incorrect condition caused to skip stats names but not their
                 values

        Fix:     Correct the condition

        Impact:  None

    3.  Problem: iSCSI FW: During connection establishment on-chip (option2),
                 in case we receive SYN/ACK with incorrect dst_mac the chip
                 gets stuck

        Cause:   This scenario led to accessing invalid PRAM address which
                 made the chip halt

        Fix:     Fixed in FW 4.8.8

        Impact:  None

    4.  Problem: NAPI poll mode was stopped (netif_rx_complete called) and HW
                 interrupts reenabled even if the whole device quota had been
                 consumed.

        Cause:   There was a bug in NAPI poll-mode canceling logic.

        Fix:     Fix the logic in NAPI poll method.

        Impact:  None

Version 1.48.5 (Dec 11, 2008)
=============================

    Fixes
    -----
    1.  Problem: TCP packets with VLAN weren't handled properly, when received
                 in non-accelerated VLAN traffic mode (when VLAN tag is not
                 stripped by the FW)

        Cause:   Driver didn't support receiving VLAN packets in
                 non-accelerated mode. for TPA packets, there was a wrong
                 IP header offset calculation and, as a result, writing IP
                 checksum to the wrong offset. Non-TPA packets weren't handled
                 right as well: driver always used vlan_hwaccel_receive_skb to
                 pass an skb with VLAN to the stack, while it should use
                 netif_receive_skb in non-accelerated case

        Fix:     Fixed IP header offset calculation for TPA packets. Fixed VLAN
                 skb handling
                 logic.

        Impact:  None

    2.  Problem: (CQ38698, CQ37931) No link when using direct attached copper
                 cable with BRCM8726 PHY

        Cause:   Passive copper cables should always operate in LRM mode rather
                 than in Limiting mode

        Fix:     In case of passive copper cables, link up in LRM mode

        Impact:  None

    3.  Problem: (CQ38815) iSCSI failure during hotplug

        Cause:   Not everything is setup before calling register_netdev().
                 pci_set_drvdata() and bnx2x_init_bp() were called after
                 register_netdev(). This potentially can also affect L2
                 because bnx2x_open() can potentially be called before
                 those 2 calls have successfully completed

        Fix:     Call register_netdev only at the end of successful setup

        Impact:  None

    4.  Problem: (CQ38862) modprobe fails to load driver on SUSE11

        Cause:   SuSE does not allow 3rd party modules to be loaded without
                 toggling a flag in /etc/modprobe.d/unsupported-modules

        Fix:     Toggle the bit through the packaging script

        Impact:  None

    5.  Problem: iSCSI FW: In non-aligned PDUs with data-digest enabled, the
                 data-digest is calculated to a wrong value

        Cause:   The CRC machine was not reset correctly in non-aligned PDUs

        Fix:     Fixed in FW 4.8.6

        Impact:  None

    6.  Problem: iSCSI FW: Connection wasn't initialized with the right
                 parameters for the TX in E1HMF mode

        Cause:   Initialization was done using SF mode

        Fix:     Fixed in FW 4.8.6

        Impact:  None

    7.  Problem: (CQ38886, CQ38888) iSCSI FW: Double-vlan was not supported
                 for iSCSI. The packet was transmitted with bogus IP length
                 and no inner-vlan

        Cause:   The vlan flag and the header builder command size weren't
                 set correctly

        Fix:     Fixed in FW 4.8.6

        Impact:  None

    8.  Problem: Byte counters statistics did not count the 4 FCS bytes

        Cause:   The FCS bytes were not counted

        Fix:     Fixed in FW 4.8.7

        Impact:  None

    Enhancements
    ------------
    1.  Request: SFP+ optical module (MSA) vendor verification should
                 be optional when using BCM8726 PHY

        Change:  Verify the optical module vendor according to nvram
                 configuration option #81: "Optic Module Vendor
                 Enforcement"

        Impact:  The new nvram bit is visible using ediag version 4.8.3
                 or later

    2.  Request: In multi queue mode, separate FW stats per queue

        Change:  As requested

        Impact:  None

    3.  Request: Change some stats names:
                 pause_frames_received is now rx_pause_frames
                 pause_frames_sent is now tx_pause_frames
                 timer_max_events is now rx_constant_pause_events

        Change:  As requested

        Impact:  None

    4.  Request: Align with RMON MIB (rfc 1757):
                 net_device_stats.rx_bytes is total_bytes_received
                 net_device_stats.multicast is total_multicast_packets_received

        Change:  As requested

        Impact:  None

    5.  Request: Use static singlethread_workqueue shared for all bnx2x
                 interfaces

        Change:  As requested

        Impact:  None

Version 1.48.4 (Nov 26, 2008)
=============================

    Fixes
    -----
    1.  Problem: CNIC driver is failing on higher functions of 57711E

        Cause:   The status block ID for the CNIC was not assigned correctly
                 for higher functions

        Fix:     Assign the status block ID according to the function ID

        Impact:  None

Version 1.48.3 (Nov 20, 2008)
=============================

    Fixes
    -----
    1.  Problem: Intermittent MDC/MDIO failures on 8726 PHY

        Cause:   MDIO register access is sometimes broken since PHY is not hard
                 reset

        Fix:     Pull GPIO1 low for 1 ms after power-on. Note that the hard
                 reset is a shared resource on the PHY

        Impact:  None

    2.  Problem: gso_type indication was not set for TPA packets

        Cause:   gso_type wasn not set

        Fix:     Set gso_type accordingly

        Impact:  None

    3.  Problem: Possible false parity indication

        Cause:   When using 5 tuple hash (not used today) the searcher might
                 falsely indicate parity error

        Fix:     Mask bit 6 of the searcher parity errors

        Impact:  None

    4.  Problem: (CQ37809) Intermittent failures in ethtool diagnostic
                 (CQ36771) Calltrace and interface locks up when up/down
                 interface

        Cause:   If sp_task() is queued in the shared work queue after the
                 linkwatch, it will be starved and will not update the link
                 status until ethtool diagnostic ends and frees rtnl that
                 linkwatch is waiting for

        Fix:     Create private workqueue

        Impact:  None

    5.  Problem: (CQ38139) iSCSI FW: Performance < 40% of Peak Advertised

        Cause:   Inefficient implementation of ring management in firmware

        Fix:     Fixed in FW 4.8.4

        Impact:  None

    6.  Problem: (CQ38424) SAFC iperf drop result is 5 times higher than
                 previous build

        Cause:   Mis-configuration of the SAFC timeout

        Fix:     The new SAFC timeout will be 200usec

        Impact:  None

Version 1.48.2 (Nov 10, 2008)
=============================

    Fixes
    -----
    1.  Problem: SAFC packets were not generated periodically by NIG

        Cause:   A HW architecture bug

        Fix:     Fixed in FW 4.8.3

        Impact:  None

    Enhancements
    ------------
    1.  Request: Support iSCSI MAC and VLAN per function in 57711E

        Change:  Added in FW 4.8.3

        Impact:  None

Version 1.48.1 (Nov 06, 2008)
=============================

    Fixes
    -----
    1.  Problem: Possible race between init_one() and open() with calling to
                 netif_carrier_off()

        Cause:   After register_netdev(), open() can be called at any time and
                 the interrupt handler can be called after that. If you get a
                 link change interrupt, the netif_carrier_* call from IRQ or
                 NAPI poll can race with netif_carrier_off() call in probe.

        Fix:     Move netif_carrier_off() to open()

        Impact:  None

    2.  Problem: Possible access to illegal addresses inside the chip during
                 self test

        Cause:   Loop size was given in bytes and not in number of entries

        Fix:     Fix the loop size

        Impact:  None

    Enhancements
    ------------
    1.  Request: Fewer dropped packets when flow control is enabled on
                 57711/57711E

        Change:  As requested

        Impact:  None

Version 1.48.0 (Nov 03, 2008)
=============================

    Fixes
    -----
    1.  Problem: Failures on RH5 when using enabling and disabling the
                 functions one by one on 57711E

        Cause:   Unloaded driver tries to access the PHY to get its FW
                 version since RH calls "ethtool -i" periodically

        Fix:     Clear the PMF indication when the driver is unloaded

        Impact:  The PHY FW is inaccessible when the driver is unloaded

    2.  Problem: Searcher block initialization for 57711E is wrong

        Cause:   The searcher registers are split (same address for all
                 functions)

        Fix:     Use the port offset and not the function offset

        Impact:  None

    3.  Problem: Kernel panic when failing to load the driver

        Cause:   netif_carrier_off was called before making sure that
                 the driver can be loaded

        Fix:     Call netif_carrier_off as last action in the probe

        Impact:  None

    Enhancements
    ------------
    1.  Request: Add iSCSI for 57711E

        Change:  FW 4.8.2 supports iSCSI for 57711E

        Impact:  None

    2.  Request: Add transmit multi queue support

        Change:  As requested

        Impact:  This fetaure is available on 2.6.27 kernel when using MSI-X

Version 1.46.12 (Oct 29, 2008)
==============================

    Fixes
    -----
    1.  Problem: (CQ37832) System crash when running TCP connections on
                 57711

        Cause:   Access to unsupported address in FW PRAM due to
                 increased FW size

        Fix:     Fixed in FW 4.6.21: Moved all operational FW code to
                 legal PRAM addresses

        Impact:  None

    2.  Problem: After some cases of driver failure, driver cannot be
                 re-loaded

        Cause:   The driver took the HW out of reset without making sure
                 that it was indeed in reset state

        Fix:     Reset the HW before taking it out of reset

        Impact:  None

    3.  Problem: (CQ37893) Driver failure when installed on RHEL4.5 from PXE
                 Server

        Cause:   MSI-X fails due to memory allocation failure and though MSI
                 registration succeeded interrupts are not received in MSI mode

        Fix:     Use INTx mode when MSI-X fails due to memory allocation
                 failure

        Impact:  None

    Enhancements
    ------------
    1.  Request: Add debug module parameter to force MRRS value

        Change:  As requested

        Impact:  None

Version 1.46.11 (Oct 23, 2008)
==============================

    Fixes
    -----
    1.  Problem: (CQ37915) On 57710, if self-test is run on port 1, port 0 stops
                 transmitting/receiving traffic unless in promiscuous mode

        Cause:   Primary MAC address of port 0 is lost after the self-test on
                 port 1

        Fix:     Changed self-test to fix the problem

        Impact:  None

    2.  Problem: (CQ37087) iSCSI FW: Data digest error event found in event viewer

        Cause:   Wrong UPB command in non-aligned data that is adjacent to
                 iSCSI header in the TCP segment from the target

        Fix:     Fixed in FW 4.6.17

        Impact:  None

    3.  Problem: (CQ38061) iSCSI FW: Invalid iSCSI PDU seen while running
                 OEM diagnostic to Equallogic target

        Cause:   Misinterpretation of the 3720 RFC regarding data-in sequences
                 definition

        Fix:     Fixed in FW 4.6.17

        Impact:  None

    4.  Problem: (CQ37861) iSCSI FW: BSOD occurred while running iLab's TOE
                 automated tests and iSCSI traffic

        Cause:   Failed to identify task cleanup during processing of a
                 data-in PDU that belong to the same task

        Fix:     Fixed in FW 4.6.17

        Impact:  None

    5.  Problem: (CQ38088) iSCSI FW: FW assert occurred while passing CNIC
                 traffic

        Cause:   Race in iSCSI FW between writing task context entry using
                 the data path and writing R2TQE using the control path

        Fix:     Fixed in FW 4.6.18: Eliminate race, by using R2TQE write
                 through the data path

        Impact:  None

    6.  Problem: When enabling a lot of debug prints on a system with
                 many (more than 6) interfaces, timeout can occur on
                 driver load

        Cause:   Since printk is busy, it can take longer for operations
                 to complete

        Fix:     Increase the timeout value

        Impact:  None

    7.  Problem: After load failure, the driver cannot be re-loaded

        Cause:   The FW was not informed that the driver was unloaded

        Fix:     On load failure, send "unload" notification to the FW

        Impact:  None

    Enhancements
    ------------
    1.  Request: (CQ38040) Do not use crc32c_le symbol

        Change:  Copied the function into the driver

        Impact:  None

Version 1.46.10 (Oct 20, 2008)
==============================

    Fixes
    -----
    1.  Problem: System panic under stress traffic

        Cause:   The alignment to the machine cache size was not calculated
                 correctly for the Rx buffer and so a buffer overrun occurred

        Fix:     Allocate the right amount of memory considering the cache
                 alignment

        Impact:  None

Version 1.46.9 (Oct 16, 2008)
=============================

    Fixes
    -----
    1.  Problem: (CQ37772) iSCSI FW: Bad data digest is transmitted

        Cause:   Missing initialization in FW when going out of slow start

        Fix:     Fixed in FW 4.6.16: Add rxmit parameters init to normal TX
                 flow

        Impact:  None

    2.  Problem: (CQ37809) Intermittent Failures in Ethtool Diagnostic

        Cause:   When setting PHY loopback, it required some time before
                 configuration is actually take place.

        Fix:     Add 200ms after setting the PHY loopback

        Impact:  None

    3.  Problem: Unable to receive packets on the iSCSI MAC address

        Cause:   Promiscuous in rx mode was ran over by resetting the
                 rx mode

        Fix:     Reset the rx mode before setting promiscuous mode

        Impact:  None

    Enhancements
    ------------
    1.  Request: Add the licensing structure to the bnx2x_hsi.h

        Change:  As requested

        Impact:  None

    2.  Request: Set FW to machine cache alignment (up to 256B) for Rx
                 packets L2 data

        Change:  As requested

        Impact:  None

Version 1.46.8 (Oct 07, 2008)
=============================

    Fixes
    -----
    1.  Problem: A potential firmware bug when L2 packet is duplicated to more
                 than one L2 client when TPA is enabled

        Cause:   Buffer could have been released before it was read by all L2
                 clients

        Fix:     Fixed in FW 4.6.15

        Impact:  None

    2.  Problem: (CQ37471) iSCSI FW: (iLab test 5.12) TCP CLOSE timeout issue

        Cause:   Chip halted since handler apparently stuck in the queue

        Fix:     Fixed in FW 4.6.15

        Impact:  None

    3.  Problem: (CQ37244) iSCSI FW: (iLab test 5.10) Chip hangs when receiving
                 SYN+RST+ACK after SYN sent

        Cause:   SYN retransmission with invalid sequence number caused by not
                 rewinding the sequence number after retransmission

        Fix:     Fixed in FW 4.6.15

        Impact:  None

    4.  Problem: iSCSI FW: Chip halts after few unanswered connections attempts

        Cause:   After retransmits were done, the chip didn't return the
                 credits it should have

        Fix:     Fixed in FW 4.6.15

        Impact:  None

    5.  Problem: (CQ37668) iSCSI FW: Chip hangs when trying to connect to
                 iSCSI target with no licenses present

        Cause:   When licensing of new connection fails, there's a credit leak
                 which caused an invalid handler to wake up

        Fix:     Fixed in FW 4.6.15

        Impact:  None

    6.  Problem: (CQ37610) A potential problem if call to register_cnic during
                 MTU change

        Cause:   CNIC and the bnx2x drivers can be trying to setup the chip
                 at the same time

        Fix:     Check for intr_sem in register_cnic to prevent this problem

        Impact:  None

    Enhancements
    ------------
    1.  Request: Allow better response time to SAFC packets

        Change:  Configure max-byte-credit as required for SAFC mode

        Impact:  None

    2.  Request: Add priority mapping table to map SAFC priority to HW queue

        Change:  As Requested

        Impact:  None

Version 1.46.7 (Sep 28, 2008)
=============================

    Fixes
    -----
    1.  Problem: (CQ37161) Running ifconfig down up on one interface can cause
                 other interface to fail

        Cause:   Overriding internal memory that belongs to the other interface

        Fix:     Writing only memory of the correct interface

        Impact:  None

    2.  Problem: (CQ37288) iSCSI FW: iSCSI offload with Everest is extremely
                 slow

        Cause:   PSH flag was not set in last PDU TCP packet

        Fix:     Fixed in FW 4.6.13

        Impact:  None

    3.  Problem: Possible overriding the internal memory and possible failure
                 to work with MSI-X when RSS and CNIC enabled

        Cause:   Allocate 16 queues for RSS + 1 queue for CNIC

        Fix:     Allocate only 15 queues for RSS

        Impact:  None

    4.  Problem: Lower performance on Big-Endian machines

        Cause:   Failure to read correctly the PCI_EXP_DEVCTL on Big-Endian
                 systems. Read PCI_EXP_DEVCTL to u32 variable instaed of u16
                 variable

        Fix:     Read PCI_EXP_DEVCTL to u16 variable

        Impact:  None

Version 1.46.6 (Sep 25, 2008)
=============================

    Fixes
    -----
    1.  Problem: (CQ37398) Issuing ifdown command on one port causes the
                 other port not to respond either

        Cause:   Clearing all entries in the CAM

        Fix:     Clear only the appropriate entries in the CAM

        Impact:  None

    2.  Problem: (CQ37407, CQ37508, CQ37509) Compilation fails on
                 RH 4.5, 4.6, 4.7

        Cause:   A compiler bug

        Fix:     Workaround in the code

        Impact:  None

    3.  Problem: (CQ36673) iSCSI FW: Hardware attention on MaxLuns

        Cause:   Activity count leak in Ustorm microprocessor

        Fix:     Fixed in FW 4.6.12

        Impact:  None

    4.  Problem: (CQ37224) iSCSI FW: (iLab test 5.10) Hardware attention
                 (Microcode assert)

        Cause:   iSCSI FW: SYN+RST drop after SYN sent caused AC leak
                 in TStorm microprocessor in option2

        Fix:     Fixed in FW 4.6.12

        Impact:  None

    5.  Problem: iSCSI FW: (iLab test 6.1) Hardware attention
                 (Microcode assert)

        Cause:   Missing update of R2T buffer offset

        Fix:     Fixed in FW 4.6.12

        Impact:  None

    6.  Problem: Possible false warning (not a failure) in the idle
                 check section of the self test regarding the
                 BRB1_PRTY_STS register

        Cause:   The condition was not masked properly

        Fix:     Fixed the condition check for that register

        Impact:  None

    Enhancements
    ------------
    1.  Request: Add support for BCM8726 (Dual port phy SFP+ ) including
                 MSA module recognition and verification

        Change:  As Requested

        Impact:  None

Version 1.46.5 (Sep 17, 2008)
=============================

    Fixes
    -----
    1.  Problem: (CQ36478) MSI fails on Big-Endian systems

        Cause:   The IGU was configured to swap the data over the PCI

        Fix:     Config IGU not to swap the data and add swap in the driver
                 where it is necessary

        Impact:  None

    2.  Problem: (CQ37309) Can not compile on some old kernels

        Cause:   Call to pci_disable_msi() was not under appropriate #ifdef

        Fix:     Add the appropriate #ifdef

        Impact:  None

    3.  Problem: Self test sometimes indicates on a failure

        Cause:   A test result was declared as an error instead of a warning

        Fix:     Declare the test result as a warning

        Impact:  None

Version 1.46.4 (Sep 16, 2008)
=============================

    Enhancements
    ------------
    1.  Request: CNIC enabled in default compilation

        Change:  As Requested

        Impact:  None

Version 1.46.3 (Sep 11, 2008)
=============================

    Fixes
    -----
    1.  Problem: (CQ34165) High number of pause frames

        Cause:   The thresholds in the receive buffer needed some
                 tuning

        Fix:     Tuned the thresholds in the receive buffer

        Impact:  None

    2.  Problem: (CQ36559, CQ36989) System crash when working on PPC
                 with 64KB page

        Cause:   The allocated buffer was bigger than the PCI mapped
                 buffer, and in the 64KB configuration the buffer is
                 aligned only to 128 bytes and so the packet can
                 overstep the PCI mapped area and cause a fatal error

        Fix:     Map the same size as the allocated buffer size

        Impact:  None

    3.  Problem: (CQ36479) EEH recovery causes system crash

        Cause:   When EEH detects an i/o error it resets the device thus
                 it cannot be accessed. In this case the driver needs to
                 unload its interface only with OS, kernel and network
                 stack but not with the device.

        Fix:     Add a special unload function for EEH recovery that
                 does not access the device

        Impact:  None

    4.  Problem: Option2 RST did not complete

        Cause:   Missing context initialization in FW

        Fix:     Fixed in FW 4.6.10

        Impact:  None

   5.  Problem:  (CQ37090) Placement of RQ data to wrong address

        Cause:   ASM problem

        Fix:     Fixed in FW 4.6.10

        Impact:  None

   6.  Problem:  (CQ36912) BSOD when destroying erroneous connections

        Cause:   Activity count leak

        Fix:     Fixed in FW 4.6.10

        Impact:  None

   7.  Problem:  (CQ 36987) Unable to perform media changer/tape functions

        Cause:   Bad padding calculation in long PDUs

        Fix:     Fixed in FW 4.6.10

        Impact:  None

    Enhancements
    ------------
    1.  Request: Incorporate latest firmware 4.6.10

        Change:  As Requested

        Impact:  None

    2.  Request: Add stats counter for NIG timer max events

        Change:  As Requested

        Impact:  None

    3.  Request: Enable timer scan for CNIC

        Change:  As Requested

        Impact:  None

    4.  Request: Add support for using MSI interrupt mode

        Change:  As Requested

        Impact:  None

    5.  Request: (CQ36758) Firmware now enforces iSCSI licensing and fails
                 the offload if no iSCSI initiator license exists

        Change:  Added in FW 4.6.10

        Impact:  None

Version 1.46.2 (Aug 25, 2008)
=============================

    Fixes
    -----
    1.  Problem: (CQ36510, CQ36583) Link LED does not turn off when 1G
                 link is lost when external PHY is present

        Cause:   The current code manually turned off the 10G LED but
                 did not handle other speeds which are controlled by HW.
                 Since the HW detect link with the external PHY, the
                 link LED stayed on

        Fix:     Turn off the LED for all speeds manually when link goes
                 down

        Impact:  None

    2.  Problem: Packets with bad TCP/UDP checksum error are dropped

        Cause:   Actively dropping packets with bad TCP/UDP checksum in
                 the driver

        Fix:     Do not drop packets with bad TCP/UDP checksum - let the
                 stack decide what to do with them

        Impact:  None

    3.  Problem: Some packets are dropped without showing on any
                 statistics counter

        Cause:   The driver assumed that packets which were identified
                 as bad are counted by the FW, but the FW does not count
                 those when configured to pass them

        Fix:     Add counters in the driver

        Impact:  None

    4.  Problem: (CQ36153) Flow control doesn't work against non KR switches

        Cause:   Missing support for clause-37 auto negotiation

        Fix:     Add support for clause-37 auto negotiation

        Impact:  0.5 seconds delay during autoneg

    5.  Problem: Link dangling during init

        Cause:   no delay after initial link change interrupt

        Fix:     Add 30ms before allowing link update indications

        Impact:  Additional 30ms during init phase

    6.  Problem: Unable to load driver after iSCSI boot under incoming
                 traffic

        Causes:  The reset function after iSCSI boot did not handle
                 closing incoming traffic

        Fix:     Close the port to prevent Rx traffic and clear all
                 buffers

        Impact:  None

    7.  Problem: (CQ36408) Failed driver disk installation with SuSE10
                 and RH4

        Cause:   The CRC module is not part of the Kernel in those
                 distributions

        Fix:     Special driver disk compilation mode to include the CRC
                 routine in the driver though it is an external module
                 in normal installation with those distributions

        Impact:  The driver in the driver disk is less efficient due to
                 the CRC algorithmic implementation and not static tables
                 as in the CRC module which is used when loading the driver
                 normally under SuSE10 and RH4

    8.  Problem: (CQ34921) Possible memory leak

        Cause:   rx_page_ring was not freed

        Change:  free rx_page_ring

        Impact:  None

    9.  Problem: (CQ36242) brb_truncate statistics increments to very
                 high numbers

        Cause:   brb_truncate_discard is a 4 bytes variable but 8 bytes were
                 copied to ethtool

        Change:  use brb_truncate from NIG and extend it to 8 bytes

        Impact:  None

    10. Problem: Tx Pause were not send on 1G link

        Cause:   Missing initialization to the EMAC TX_MODE

        Change:  Set FLOW_EN bit in the TX_MODE in addition to the
                 EXT_PAUSE_EN

        Impact:  None

    11. Problem: (CQ36361) Changing speed to 1G on KR switch side
                 results in no link in OS

        Cause:   When Serdes is configured to 1G, it should remove
                 setting MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL bit in
                 MDIO_REG_BANK_SERDES_DIGITAL

        Change:  Unset MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL bit for
                 every link change

        Impact:  None

    12. Problem: Possible loss of attentions

        Cause:   Attention mask register was manipulated without a proper lock

        Change:  Protect attention mask register using hw lock, use read
                 modify write on this register

        Impact:  None

    13. Problem: HW lock was sometimes not taken

        Cause:   HW lock was not taken per function

        Change:  use lock control per function

        Impact:  None

    14. Problem: (CQ36089) RX counter on all functions are incorrect

        Cause:   tstorm_client.statistics_counter_id was 0 for all functions

        Change:  set tstorm_client.statistics_counter_id to the cl_id of the
                 function

        Impact:  None

    15. Problem: (CQ36090) down/up of the interface during traffic on
                 the other interface caused traffic to stop

        Cause:   Aggregation context must be initialized only at COMMON init
                 block

        Change:  Change initialization code and init-tool output

        Impact:  None

    16. Problem: (CQ35672) Doorbell was arriving after halt and before
                 start ramrod

        Cause:   XON/XOFF flow control should be disabled in NIC close flow

        Change:  Fixed XON/XOFF code

        Impact:  None

    17. Problem: (CQ34555) MSI-x PCI spec aberration

        Cause:   PBA table starts from the middle of a page

        Change:  Use GRC access instead of BAR access

        Impact:  None

    18. Problem: Lost link indication in BCM8073.

        Cause:   During link establishment LASI latched signal
                 wasn't reset and stopped link change indication

        Change:  Fixed flow to clean latched LASI signal

        Impact:  None

    19. Problem: Declaring bootcode timeout too soon

        Cause:   The bootcode can take a while to set a link
                 when a link is needed (for example, WoL is
                 enabled). The driver should allow adaptive
                 scheme to wait for the bootcode

        Change:  Waiting up to 2 seconds in 10ms intervals

        Impact:  In some cases, the driver unload process
                 will take up to 2 seconds

    20. Problem: Wrong WoL capability report

        Cause:   The WoL capability was read from the nvram
                 which was not always updated

        Change:  Determine the WoL capability from the PCI
                 configuration space

        Impact:  None

    21. Problem: (CQ36644, CQ366697, CQ36928, CQ36983) On some cases
                 with low traffic, the computer was irresponsive up to
                 the point of soft-lockup and even hard lockup.
                 Ping-pong latency tests always hit this problem and so
                 get very low result

        Cause:   If the FW was at the end of the Rx page, the driver
                 will already be at the beginning of the next page. In
                 this case the condition of having the driver and the FW
                 on the same pointer was never true and so the driver
                 kept polling until timeout or another packet came in.
                 On driver unload (including intermediate driver unload
                 like in MTU change or self-test) the lockup was fatal

        Fix:     Change the check for "now work" to handle end of page
                 as well

        Impact:  None

    22. Problem: (CQ36697 CQ36771) Interface locks up when up/down interface

        Cause:   In nic_unload(), call to netif_poll_disable() cause to set
                 __LINK_STATE_RX_SCHED flag that is checked in dev_close() in
                 a loop forever. This flag is cleared by netif_rx_complete()
                 called by bnx2x_poll() which is not called if !netif_running()

        Fix:     Reorder nic_unload() - first close interrupts, then only if
                 netif_running() call netif_poll_disable()

        Impact:  None

    23. Problem: (CQ36795) driver fails to load after iSCSI boot

        Cause:   Unloading UNDI by the driver is protected by a HW lock. With
                 a KR (8073) interface, unloading the UNDI takes more than
                 1 sec. Taking the lock by another driver times out after 1 sec
                 then the driver tries also to unload UNDI.

        Fix:     Clear UNDI signature and release the lock. Only the driver
                 who saw UNDI signature will continue to unload UNDI.

        Impact:  None

    24. Problem: Allocate skbs for unused aggregation queues in 57710

        Cause:   Allocate skbs for 64 aggregation queues but 57710 has only 32

        Fix:     Allocate skbs for max_agg_queues according to chip id

        Impact:  None

    25. Problem: Wrong cleanup on exit from nic_load() in case of a failure

        Cause:   Upon some failure nic_load() exits without disabling and
                 freeing the interrupts

        Fix:     Fix to disable and free the interrupts in that case

        Impact:  None

    26. Problem: Potential link problem when loading two ports with 8073
                 PHY

        Cause:   Initializing the 8073 PHY takes more than 1 seconds and
                 the HW lock might expire since it is only trying for 1
                 second

        Fix:     Increase the HW lock timeout to 5 seconds

        Impact:  None

    27. Problem: XAUI link on port0 goes down and then up, when the link
                 on port1 is changed

        Cause:   When master port (port1) is down, it will also cause
                 the blade side down. In turn, PLL will change speed
                 from 10G to 1G. It will cause XAUI clock to both ports
                 down and then up again

        Fix:     Set bit in the BCM8073 that enables the fix

        Impact:  None

    28. Problem: (CQ36772) KR with 8073 PHY sometimes does not establish
                 link

        Cause:   A missing delay between initializing the PHY SPI ROM
                 and inserting the PHY back to low power mode

        Fix:     Add 15ms delay after loading the SPI PHY ROM which is
                 before entering low power mode

        Impact:  None

    29. Problem: Sometimes when unloading the driver a message will
                 appear: "sp_running (j 1)"

        Cause:   Wrong condition, the message should appear only if the
                 counter (j) is greater than 1000. This is a false alarm

        Fix:     Fix the print condition

        Impact:  None

    30. Problem: When upgrading 8073 SPI ROM PHY to version 0103 the
                 link will not come up

        Cause:   Register 0x8370 is no longer required in the new
                 version and writing to it cause the link not to come
                 up

        Fix:     Remove the write to address 0x8370

        Impact:  None

    31. Problem: On some KR boards when loading driver on port0, and
                 port1 is not loaded, sometimes the XAUI link is not
                 coming up

        Cause:   The 8073 PHY has two ports that share a single clock.
                 This clock is routed to a port deemed to be the master
                 (port 1), and then a PLL at the master sets the clock
                 frequency and routes the buffered clock to both the
                 master XAUI interface as well as the slave (port 0)
                 XAUI interface. If port 0 is loaded while the 8073 PHY
                 SPI ROM is not loaded, the PLL for port 0 is not
                 guaranteed to lock

        Fix:     First driver to be loaded reset and download SPI ROM on
                 both ports of the 8073 PHY during one-time
                 initialization

        Impact:  The 8073 PHY is only reset when both ports are brought
                 down

    32. Problem: On some KR boards when unloading driver on port1 port 0
                 might loose link

        Cause:   The 8073 PHY has two ports that share a single clock.
                 This clock is routed to a port deemed to be the master
                 (port 1), and then a PLL at the master sets the clock
                 frequency and routes the buffered clock to both the
                 master XAUI interface as well as the slave (port 0)
                 XAUI interface. If port 1 is unloaded while port 0
                 is in use, the port 0 PLL might loose lock

        Fix:     Do not reset the PHY if either driver is still up

        Impact:  The 8073 PHY is only reset when both ports are brought
                 down

    33. Problem: When loading driver after it was loaded before, packets
                 are getting into the chip before the MAC addresses are
                 configured (but not into the host)

        Cause:   The HW filters are not cleared when the driver is
                 unloaded so previous driver configuration is still
                 present

        Fix:     Clear HW filters so no packet will come in when driver
                 is unloaded

        Impact:  None

    34. Problem: Driver does not pass the last version of checkpatch.pl

        Cause:   Some updates to the script found some coding standard
                 violations in the code

        Fix:     Fixed all reported errors and spelling mistakes

        Impact:  None

    35. Problem: (CQ36492) rx_csum_offload_errors increments for any
                 none TCP/UDP packet

        Cause:   Parsing CQE flags incorrectly

        Fix:     Parse CQE flags according to CQE status bits

        Impact:  None

    36. Problem: Packets with IP checksum error are dropped

        Cause:   Dropping packets with IP checksum error

        Fix:     Pass packets with IP checksum error to the stack. Drop
                 only packets with L2 errors

        Impact:  None

    37. Problem: (CQ46480) The nomcp module parameter is causing kernel
                 panic

        Cause:   This debug parameter was not needed and not maintained

        Fix:     Remove this debug parameter. The driver can detect if
                 the FW is missing and act accordingly

        Impact:  None

    38. Problem: Per function statistics are not cleared on driver load
                 unload

        Cause:   The FW statistics area was not cleared on driver load

        Fix:     Clear FW statistics area when loading the driver

        Impact:  None

    39. Problem: (CQ36204, CQ36423) Self-test memory failures reported
                 intermediately

        Cause:   Did not apply the right mask on the HW report caused
                 some false positives

        Fix:     Use mask to check only the memory errors report

        Impact:  None

    40. Problem: (CQ36497) Self-test idle_check part is failing

        Cause:   Did not apply the right mask on the HW report caused
                 some false positives

        Fix:     Use mask to check only the memory errors report

        Impact:  None

    41. Problem: (CQ36514) Failed to load the driver after iSCSI boot on
                 SuSE10 SP2

        Cause:   The built-in driver from the SuSE10 SP2 (1.42.3) was
                 loaded after the iSCSI-boot

        Fix:     Added update.post file to SuSE10 SP2 dd.iso

        Impact:  None

    42. Problem: (CQ36382) Low 1G UDP performance with one connection
                 with flow control disabled

        Cause:   The credits in the transmitter HW caused too much gap
                 between UDP packets in case the flow control was
                 disabled

        Fix:     Use the same HW credit as if the flow-control is
                 enabled when the line speed is 2.5G or less

        Impact:  None

    43. Problem: (CQ35662) NVRAM pre-emphasis support does not take
                 effect

        Cause:   Current nvm values didn't actually affect the phy

        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

    44. Problem: Prevent possible glitch due to speed change without
                 link down in the middle

        Cause:   Currently the NIG goes into drain mode only after link
                 down. If the only the speed was changed from 1G to
                 100Mb, for example, without link-down indication then
                 the FIFO isn't cleaned and glitch due to clk change may
                 occur

        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

    45. Problem: Fix EMAC initialization setting

        Fix:     Currently it is configured inside the enable emac
                 before configuring the EMAC mode. Changed to be after
                 that and should be disabled (with the drain mode
                 setting) at the entrance of the link_update function.
                 In addition, in link down, after putting the nig into
                 drain mode this register should also be disabled.

                 After configuring the mode and before opening the
                 nig_emac#_en, reset the EMAC_REG_EMAC_RX_MODE and
                 EMAC_REG_EMAC_TX_MODE

        Impact:  None

    Enhancements
    ------------
    1.  Request: Error messages might be displayed in unload

        Change:  Check work only on the tx fast path and call bnx2x_tx_int()
                 to handle it. Rx work is handled during halt ramrod

        Impact:  None

    2.  Request: Indicate that there is no WoL support for functions higher
                 than 1 (only 0 and 1 should support WoL)

        Change:  As Requested

        Impact:  None

    3.  Request: Pause in 57711E mode always advertise both Rx and Tx
                 regardless of frame size

        Change:  As Requested

        Impact:  None

    4.  Request: Skb's marked as CHECKSUM_UNNECESSARY (TPA'ed) were
                 passed to the net stack even if user disabled checksum
                 offloading.

        Change:  Disable TPA if Rx checksum offloading is disabled.

        Impact:  There is no way to enabling TPA in kernels older than
                 2.6.26 except unloading and loading the driver

    5.  Request: Do not display internal FW version and enhance
                 readability of the bootcode version

        Change:  As requested

        Impact:  None

    6.  Request: Optimize link setup and support 2.5G

        Change:  Link will be configured on the external PHY before
                 setting up the internal PHY. When needed, only the
                 external PHY will be configured to autoneg. The
                 internal PHY will be set to the obtained speed

        Impact:  None

    7.  Request: Skb's marked as CHECKSUM_UNNECESSARY (TPA'ed) were
                 passed to the net stack even if user disabled checksum
                 offloading.

        Change:  Disable TPA if Rx checksum offloading is disabled.

        Impact:  None

    8.  Request: Incorporated latest firmware 4.6.7 - Add support for
                 priority-based ETH TX queues and enable SAFC pausing
                 per queue

        Change:  As requested

        Impact:  None

Version 1.46.1 (June 25, 2008)
==============================

    Enhancements
    ------------
    1.  Request: Use FW version 4.6.2

        Change:  As Requested

        Impact:  None

Version 1.45.6 (June 23, 2008)
==============================

    Fixes
    -----
    1.  Problem: (CQ35672, CQ35818) Changing MTU under traffic causes
                 driver hang

        Cause:   A rare case of LSO packet alignment, relatively to MSS,
                 caused a HW debug checking for end of packet to fail

        Change:  In computing the end of packet flag, the calculation
                 of the total packet length was modified

        Impact:  None

    2.  Problem: Possible memory corruption on kernels with 64K page size

        Cause:   Inconsistency in using page macros

        Change:  Use only BCM page macros

        Impact:  None

    Enhancements
    ------------
    1.  Request: Add support for TPA (LRO) setting via ethtool

        Change:  As Requested

        Impact:  Kernels after 2.6.26 use this interface to turn off TPA
                 when forwarding enabled due to the limitation of no
                 forwarding (bridging) and TPA together

Version 1.45.5 (June 17, 2008)
==============================

    Fixes
    -----
    1.  Problem: (CQ35691) Undefined symbol __udivdi3 when compiled on
                 32-bit platforms.

        Cause:   There was 64-bit division

        Change:  Reordered the arithmetic expression in order to eliminate the
                 64-bit division

        Impact:  None.

    2.  Problem: (CQ35644) Tx mulicast counter does not increment

        Cause:   start_xmit sets the unicast flag for all packet types

        Change:  Remove the broadcast and mulicast counters

        Impact:  None

    3.  Problem: (CQ35836) Ethtool reports wrong speed when set via CLP

        Cause:   get_settings returns always the max BW set via CLP without
                 considering the actual link speed

        Change:  Return the min between the max BW set via CLP and the actual
                 link speed

        Impact:  None

    4.  Problem: (CQ35859) Ethtool -S reports many jumbo tx packets
                 with MTU set to 1500

        Cause:   There is a different in tx histogram statistics between
                 EMAC and BigMAC

        Change:  Use NIG stats counters instead

        Impact:  None

    5.  Problem: (CQ35114) Self test failure on some systems

        Cause:   pcie_rst_b test can be set and should not be categorized as
                 ERROR

        Change:  Change pcie_rst_b test priority from ERROR to WARNING

        Impact:  None

    Enhancements
    ------------
    1.  Request: Remove non-coherent stats in 57711E

        Change:  As Requested

        Impact:  None

    2.  Request: Remove xSEM_REG_INT_TABLE from memory test

        Change:  As Requested

        Impact:  None

Version 1.45.4 (June 10, 2008)
==============================

    Fixes
    -----
     1.  Problem: (CQ34905) load/unload causes link detect failure

         Cause:   Handling of link events during load wasn't protected

         Change:  Add synchronization in handling of link events during
                  driver load

         Impact:  None

     2.  Problem: (CQ35114) ethtool -t displays idle_check errors

         Cause:   Some idle_check tests were not adopted to support
                  57711

         Change:  Adopt the idle_check

         Impact:  None

     3.  Problem: (CQ35188) ethtool -t displays mc_assert

         Cause:   The mc_assert was checked at incorrect address

         Change:  Fix mc_assert to use different offsets per MC
                  processor

         Impact:  None

     4.  Problem: (CQ35611) CLP min throttling disables throttled
                  functions

         Cause:   Credit delta must be less than two times the
                  threshold

         Change:  credit delta must never be less than two times threshold

         Impact:  None

     5.  Problem: (CQ35184, CQ35364, CQ35575) Compilation problems on
                  SuSE9/10

         Cause:   Some changes for the upstream kernel were not
                  backwards compatible

         Change:  Added backwards compatibility code

         Impact:  None

     6.  Problem: (CQ35571) When running dozens of connections
                  on both ports, receiver freezes

         Cause:   A race between the aggregation timer and the swapping
                  of aggregated connections

         Change:  The timers are saved to RAM at each possible swap of
                  handlers in the FW, to avoid the race

         Impact:  None

    Enhancements
    ------------
    1.  Request: Activate SNR over 8073A1, version 102

        Change:  As Requested

        Impact:  None

    2.  Request: Support CLP speed configuration to establish link up to
                 the requested speed (allow 1G when 10G is requested)

        Change:  As Requested

        Impact:  None

    3.  Request: Do not set XAUI low power on 8073A0

        Change:  As Requested

        Impact:  None

    4.  Request: Set flow-control for 8073

        Change:  As Requested

        Impact:  None

Version 1.45.2 (May 29, 2008)
=============================

    Fixes
    -----
     1.  Problem: Style changes for open source submission

         Cause:   Making sure we pass SPARS and checkpatch.pl

         Change:  Whitespace changes

         Impact:  None

    Enhancements
    ------------
    1.  Request: Add PCI-E EEH handlers

        Change:  As Requested

        Impact:  None

Version 1.45.1 (May 26, 2008)
=============================

    Fixes
    -----
     1.  Problem: (CQ34964) ethtool -a/A is broken

         Cause:   The autoneg define changed to value of zero and broke
                  the code

         Change:  Use comparison instead of bit-wise logical and

         Impact:  None

     2.  Problem: (CQ35123) Support for 32bit Kernels is broken

         Cause:   The TPA code had a 64 bit address that broke the
                  32bits support

         Change:  Fixed the upper 32bits of the address to zero in 32bit
                  Kernel

         Impact:  None

     3.  Problem: (CQ35123) Support for Big-endian is broken

         Cause:   The TPA and SGE code was not big-endian compliant

         Change:  The necessary le_to_cpu were added

         Impact:  None

     4.  Problem: Failed to work on emulation with MCP

         Cause:   The time interval between the pulses towards the MCP
                  was the same for ASIC and emulation

         Change:  Increased the time interval between MCP pulses for
                  emulation/FPGA

         Impact:  None

     5.  Problem: (CQ34313) Compilation error on SuSE

         Cause:   Broken in last drops

         Change:  Fix the errors

         Impact:  None

     6.  Problem: (CQ35124) Kernel panic when unloading NIC with shared
                  INTA

         Cause:   The interrupts were masked when unloading, but the
                  handler was still present. In case of shared INTA
                  line, the handler was called after freeing the
                  resources due to other device interrupt

         Change:  Free the interrupt handler when masking all
                  interrupts on unload. Clear old interrupt before
                  registering the IRQ on load.

         Impact:  None

     7.  Problem: Failed to re-load the driver (after unload) on the
                  upstream kernel

         Cause:   The fast path structures which are used by NAPI where
                  released on unload and re-allocated on load

         Change:  Use static allocation for the fast-path structures

         Impact:  None

    Enhancements
    ------------
    1.  Request: (CQ34895) Change Linux Driver Disk Images from Floppy
                 to ISO Format

        Change:  As Requested

        Impact:  None

    2.  Request: (CQ34931, CQ34976) Replace RH4.5 binaries with RH4.6

        Change:  As Requested

        Impact:  None

    3.  Request: Link down indication should be at error level and
                 not information

        Change:  As Requested

        Impact:  None

    4.  Request: BCM57711E Support MIN/MAX bandwidth control

        Change:  As Requested

        Impact:  None

    5.  Request: Support BCM8073A1 external PHY

        Change:  As Requested

        Impact:  None

    6.  Request: Support Transparent Packet Aggregation (TPA) for 57711E

        Change:  As Requested

        Impact:  None

    7.  Request: Support WoL

        Change:  As Requested. This feature requires bootcode 4.4.7 or
                 later

        Impact:  None

    8.  Request: Not allowing any ethtool link change (speed and flow
                 control) in 57711E

        Change:  As Requested

        Impact:  None

    9.  Request: Reporting the function max speed as the current speed
                 (and not the port speed) for 57711E

        Change:  As Requested

        Impact:  None

   10.  Request: Only the port master driver can run the link test (part
                 of the self-test)

        Change:  As Requested

        Impact:  None

Version 1.46.0 (May 01, 2008)
=============================
**** This version should have been named 1.45.0 (and not 1.46.0) ****

    Fixes
    -----
     1.  Problem: Possible bug on DMAE reads (write from the chip to the
                  host)

         Cause:   HW limitation that was not obeyed

         Change:  DMAE reads (write from the chip to the host) is
                  limited to 128 DWORDS

         Impact:  None

    Enhancements
    ------------
    1.  Request: Support approximate match for multicast MACs

        Change:  As Requested

        Impact:  New module dependency for bnx2x driver
                 Run 'modprobe crc32c' before 'insmode bnx2x.ko'

    2.  Request: Support statistics on 57711

        Change:  As Requested

        Impact:  None

Version 1.44.12 (April 21, 2008)
================================

    Fixes
    -----
     1.  Problem: (CQ34845) Autoneg flow-control is broken

         Cause:   Broken in last drops - wrong check of the autoneg
                  result

         Change:  Fixed the autoneg result check

         Impact:  None

     2.  Problem: (CQ34313) Compilation error on SuSE10

         Cause:   Broken in last drops

         Change:  Fix the errors

         Impact:  None

Version 1.44.11 (April 16, 2008)
================================

    Fixes
    -----
     1.  Problem: PHY loopback was not performed as part of the
                  self-test

         Cause:   The PHY loopback did not wait for the link to be
                  established

         Change:  Wait for loopback to establish link before starting
                  the test

         Impact:  None

     2.  Problem: (CQ34313) Compilation error on SuSE9 SP3

         Cause:   Broken in last drops

         Change:  Fix the errors

         Impact:  None

Version 1.44.10 (April 15, 2008)
================================

    Fixes
    -----
     1.  Problem: Occasional failures in the self-test

         Cause:   Few registers should not have been included in the
                  registers test. The PHY loopback test fails on some
                  systems

         Change:  Removed some of the registers that should not have
                  been included in the first place from the
                  registers test. Removed the PHY loopback test - only
                  the MAC loopback test is executed

         Impact:  None

Version 1.44.9 (April 14, 2008)
===============================

    Fixes
    -----
     1.  Problem: Kernel panic after stressing bi-directional data over
                  night

         Cause:   A bug in the none-TSO fragmented Tx packets

         Change:  Fix the Aggregation rule of none-TSO packets

         Impact:  None

     2.  Problem: Possible bug when unloading and reloading the driver:
                  we are not guarantee to allocate all IRQs

         Cause:   The allocation is not guaranteed

         Change:  Force every nic_unload to release the IRQs

         Impact:  None

     3.  Problem: Possible bug on low memory systems

         Cause:   Number of BDs must be at least equal to number of CQEs

         Change:  Force the rule on init

         Impact:  None

     4.  Problem: Failures on rmmod

         Cause:   Sleep in timer context

         Change:  No sleep on timer context - simply wait for next tick

         Impact:  None

     5.  Problem: DMAE timeout problem on 57711

         Cause:   DMAE needs to be configured differently

         Change:  Reduce the MPS of the DMAE client

         Impact:  None

     6.  Problem: No link on some functions on 57711

         Cause:   A link report call was missing after link update

         Change:  Added link report after link update

         Impact:  None

    Enhancements
    ------------
    1.  Request: Adding internal PHY and MAC loopback tests to
                 ethtool -t (no external PHY and no cable PHY loopback)

        Change:  As Requested

        Impact:  None

    2.  Request: Update idle_check in self test

        Change:  As Requested

        Impact:  None

Version 1.44.8 (April 09, 2008)
===============================
**** Starting from this version, there are 2 C files ****

    Fixes
    -----
     1.  Problem: (CQ34604) Kernel panic after stressing Tx Data over
                  night

         Cause:   The driver did not handle fragmented Tx packets

         Change:  Aggregating packets which are too fragmented for the
                  FW

         Impact:  None

     2.  Problem: (CQ34586) Warning message after configuring eth port

         Cause:   Did not synchronized the DMAE of the statistics with
                  load/unload operations

         Change:  Changed the statistics mechanism to a state machine
                  which is aware of the device state and DMAE state

         Impact:  None

     3.  Problem: (CQ34313) Compilation error on SuSE9 SP3 x86-64

         Cause:   Compatibility issue

         Change:  Fixed

         Impact:  None

     4.  Problem: (CQ34067) Debug prints are displayed when using the
                  use_multi compilation flag

         Cause:   The debug level of the prints was high

         Change:  Reduced the prints debug level so they will not be
                  displayed by default

         Impact:  None

    Enhancements
    ------------
    1.  Request: (CQ33897) Support BCM8073 PHY

        Change:  As Requested

        Impact:  This is still an initial HW revision of the BCM8073 PHY
                 so changes might be needed as the PHY HW or FW evolve

    2.  Request: (CQ33845) Turn off link LED when link is not active

        Change:  As Requested

        Impact:  None

    3.  Request: Displaying PHY FW (when applicable) at ethtool -i

        Change:  As Requested

        Impact:  None

    4.  Request: Upgrading the SFG10 FW from ethtool -E

        Change:  As Requested

        Impact:  None

    5.  Request: Adding Registers test to ethtool -t

        Change:  As Requested

        Impact:  None

    6.  Request: Adding Memory test to ethtool -t

        Change:  As Requested

        Impact:  None

Version 1.44.7 (March 31, 2008)
===============================

    Fixes
    -----
     1.  Problem: (CQ34445) Interface got stuck when stress with UDP
                  and TCP simultaneously

         Cause:   Wrong CQE size initialization

         Change:  Fixed CQE ring initialization

         Impact:  None

     2.  Problem: No traffic on higher functions on 57711

         Cause:   Need to send the client ID in messages to FW

         Change:  Add client ID to the required messages

         Impact:  None

     3.  Problem: Wrong link indication on 57711

         Cause:   The link was not updated correctly on 57711

         Change:  Update the link indication mechanism in 57711

         Impact:  None

     4.  Problem: Update coalescing is not working

         Cause:   Wrong parameter was used

         Change:  Changed to the required parameter

         Impact:  None

Version 1.44.6 (March 26, 2008)
===============================

    Fixes
    -----
     1.  Problem: (CQ34445) Interface got stuck when stress with UDP
                  and TCP simultaneously

         Cause:   The BD producer that was passed to the FW was wrapped
                  according to the size of the BD ring and not 16 bits
                  range as expected

         Change:  Wrap the BD producer according to 16 bits range

         Impact:  None

    Enhancements
    ------------
    1.  Request: full TPA support

        Change:  TPA is now fully supported with the expected
                 performance

        Impact:  None

Version 1.44.5 (March 24, 2008)
===============================

    Enhancements
    ------------
    1.  Request: Initial support for TPA

        Change:  TPA is now supported, but the throughput is still lower
                 than in the DEMO_TPA version - a new version with
                 enhanced throughput is being constructed

        Impact:  None

    2.  Request: (CQ34011) Add module parameter to disable TPA

        Change:  As requested. For now, TPA is always disabled on 57711

        Impact:  None

    3.  Request: CNIC Support

        Change:  As requested. By default, CNIC support is not part of
                 the bnx2x - BCM_CNIC should be defined to enable it.

        Impact:  None

Version 1.44.4 (March 20, 2008)
===============================

    Fixes
    -----
     1.  Problem: DEMO_TPA was broken on 0.44.3

         Cause:   Compilation problem due to MACRO rename

         Change:  Rename the MACRO for DEMO_TPA as well

         Impact:  None

     2.  Problem: (CQ43424) Cannot link SFP module at 1G with Dell
                  PowerConnect 6224

         Cause:   The Dell switch supports only autoneg and not forced
                  1G

         Change:  Changed the 1G implementation to autoneg with only 1G
                  advertisement

         Impact:  When choosing 1G speed, the speed is achieved via
                  autoneg and not forced

    Enhancements
    ------------
    1.  Request: Support Emulation, FPGA and ASIC in a single module
                 file

        Change:  Changed the init values and the init routine to support
                 all the compilation of 57710/57711 ASIC/CHIP/EMUL

        Impact:  The size of the binary and the source code is bigger
                 mainly due to having two ASM images

    2.  Request: Add link update support for 57711

        Change:  Added

        Impact:  None

    3.  Request: Add HW statistics for 57711

        Change:  Added

        Impact:  Only HW (errors) statistics will be displayed since the
                 feature is not yet supported by FW

    4.  Request: Add nvram test

        Change:  Added

        Impact:  None

    5.  Request: Add link test

        Change:  Added

        Impact:  None

    6.  Request: Add interrupt test

        Change:  Added

        Impact:  None

Version 0.44.3 (March 12, 2008)
===============================
*** TPA is not functional on this release ***

    Fixes
    -----
     1.  Problem: (CQ #34103) DKMS driver diskette update.tar.gz do not
                  have smp directory

         Cause:   DKMS driver diskette was created only for the default
                  SuSE kernels

         Change:  Add all supported SUSE kernels into the DKMS driver
                  diskette Note: The size of the DKMS driver diskette
                  for the SUSE distributions is 14400 kb. This size is
                  appropriate for USB or CD devices

         Impact:  None

    Enhancements
    ------------
    1.  Request: Add support for 57711

        Change:  Added preliminary support

        Impact:  None

    2.  Request: Remove module param 57711E

        Change:  Move to bp and initialized from analyzing CLP
                 information

        Impact:  None

    3.  Request: Add fw_dump() to panic_dump()

        Change:  Call fw_dump() before idle_chk()

        Impact:  None

    4.  Request: Separate bp information to fast-path/common/port/
                 function

        Change:  Divide bp structure into common/port/function
                 structures Divide get_hwinfo() into common/port/
                 function. Initialize outer VLAN and MAC from CLP
                 information in 57711E mode Note: CLP FUNC_DISABLED
                 is not handled correctly

        Impact:  None

    5.  Request: Set link_status according to link_up status

        Change:  link_status was set according to phy_link_up status

        Impact:  None

    6.  Request: Add is_pmf flag

        Change:  is_pmf flag is initialized from MCP load_code and by
                 general attention from MCP

        Impact:  None

    7.  Request: Fix attentions in 57711

        Change:  Init MISC_REG_AEU_MASK_ATTN according to 57711E
                 status Handle attention bits in IGU per function

        Impact:  None

    8.  Request: Clear HW blocks attentions

        Change:  Clear HW blocks attentions and call panic()

        Impact:  None

    9.  Request: Call fw_dump() on MCP assert

        Change:  Call fw_dump() instaed of mc_assert() on MCP assert

        Impact:  None

    10. Request: Do not send STAT_QUERY ramrod if previous stat ramrod
                 didn't return

        Change:  Do not send STAT_QUERY ramrod if previous stat ramrod
                 didn't return Call panic() if stats didn't updated for
                 3 times

        Impact:  None

    11. Request: Separate init_board() into init_dev() and init_bp()

        Change:  Divide init_board() into init_dev() and init_bp()

        Impact:  None

    12. Request: Fix directory name for SuSE

        Change:  Add sles9 and sles10 to the names

        Impact:  None


Version 1.42.3 (February 28, 2008)
==================================

   Fixes
   -----
   1.  Problem: Changing the link speed to "autoneg on" the A1022G will
                cause driver failure

       Cause:   This board is using TP for the 10G interface, but the command
                was interpreted as a request to move to the 1G interface which
                is inactive on this board

       Change:  Do not support switching interfaces since no production board
                has this feature

       Impact:  A user will not be able to switch between the two valid
                interfaces of the T1001 test board without changing the nvram
                configuration


Version 1.42.2 (February 20, 2008)
==================================

   Fixes
   -----
   1.  Problem: TSO is not working against some none Linux clients

       Cause:   TCP flags were not transmitted correctly on TSO packets

       Change:  Corrected bit extraction in tcp_flag_word()

       Impact:  None


Version 0.42.1 (February 14, 2008)
==================================

    Fixes
    -----
     1.  Problem: (CQ #33344) Remove warnings from ethtool -t

         Cause:   The warnings were just debug prints

         Change:  Print is depended on msglevel.
                  Set msglevel in bnx2x_panic_dump() before calling bnx2x_idle_chk()

         Impact:  None

     2.  Problem: (CQ #33638) Remove warnings when failing to enable MSI-X

         Cause:   The warnings was just a debug print

         Change:  Print is depended on msglevel.
                  Change the printed message from error/failure to a notification

         Impact:  None

     3.  Problem: (CQ #33547) Flow control does not work on A1022G board

         Cause:   The flow control was not configured/read at the PHY

         Change:  Implemented the flow control code at the PHY

         Impact:  flow control is now working via autoneg. Please force it if
                  the link partner does not support flow control autoneg

    Enhancements
    ------------
    1.  Request: (CQ #33425) RPM installation fails on some machines

        Change:  Fix installation - copy bnx2x.ko from extra to kernel/drivers/net

        Impact:  None


Version 0.42.0 (February 04, 2008)
==================================
*** This version requires bootcode 4.2.0 or later ***

    Fixes
    -----
     1.  Problem: (CQ #33344) Remove warnings from ethtool -t

         Cause:   The warnings were just debug prints

         Change:  Changed the debug level so by default nothing will be printed

         Impact:  None

     2.  Problem: (CQ #33638) Remove warnings when failing to enable MSI-X

         Cause:   The warnings was just a debug print

         Change:  Changed the debug level so by default nothing will be printed

         Impact:  None

     3.  Problem: (CQ #33533) Failed to install A1022G on 32bits machines

         Cause:   The board is requesting 128MB for BAR2 and the memory
                  allocation fails

         Change:  Allocate only the required amount of memory and not the
                  entire BAR

         Impact:  None

    Enhancements
    ------------
    1.  Request: (CQ33571) new 'shared memory' layout for T4.0E/T4.2 that will
                 be compatible with T4.4 new features

        Change:  As requested

        Impact:  Requires bootcode 4.2.0 or later

    2.  Request: (CQ #33214) Add placeholder to be compatible with the BMPI

        Change:  Added placeholders - the full implementation is scheduled
                 for T4.4

        Impact:  None

    3.  Request: Update the KR code

        Change:  Added placeholders - the full implementation is scheduled
                 for T4.4

        Impact:  None


Version 0.40.19 (January 14, 2008)
==================================

    Fixes
    -----
     1.  Problem: (CQ #31090) Rx pause remains ON after autoneg is retuned
                  back to ON even if MTU > 4500.

         Cause:   Autoneg flow control flag was not considered for
                  advertisement and resolve of the pause mode.

         Change:  Fix the advertisement and the resolve of the pause mode to
                  consider user requests and system constraints.

         Impact:  None

     2.  Problem: Autoneg flow control is ON for XFP cards.

         Cause:   Autoneg flow control from NVRAM is considered without check
                  if autoneg is supported.

         Change:  Autoneg flow control from NVRAM is considered only if
                  autoneg is supported.

         Impact:  None

     3.  Problem: ethtool shows 'Port: FIBRE' for the 10GbaseT interface.

         Cause:   Resolve the port type according to XGXS flag.

         Change:  get settings resolves the XGXS port type in use according to
                  external phy config.

         Impact:  None

     4.  Problem: (CQ #33092, #33215) Unload/load sequence under UDP traffic
                  (receiver) hanged slow path

         Cause:   Wrong flow in resetting HW blocks

         Change:  HW blocks reset flow has been changed

         Impact:  None

     5.  Problem: (CQ #33305) Changing MTU to 9000 was jamming TCP traffic

         Cause:   LSO wasn't properly enabled on some Kernels

         Change:  Fixed LSO enabling code for all kernels

         Impact:  None

    Enhancements
    ------------
    1.  Feature: Wait for completion for ramrods sent during nic unload was
                 only by polling and not by an interrupt.

        Change:  stop multi and stop leading are using poll if netif is not
                 running and interrupt otherwise.

        Impact:  None

    2.  Request: Add workaround for bug in PXP that causes PXP attention on
                 stress scenarios due to under run situation between PXP and
                 USDM

        Change:  The workaround was added

        Impact:  None


Version 0.40.18 (January 03, 2008)
==================================

    Fixes
    -----
     1.  Problem: (CQ #33148) After "make install" command 'modprobe bnx2x'
                  displays "Module bnx2x not found".

         Cause:   Linux Makefile runs depmod automatically only if System.map
                  exists.

         Change:  Run depmod after modules_install.

         Impact:  None

     2.  Problem: (CQ #33054) Link is not detected after configuring BCM57710
                  port with Suse 10Sp1.

         Cause:   HW fails to use INTA after using MSI-X.

         Change:  Set MSI_MSIX_INT_EN bit in HC_CONFIG REG to use INTA after
                  MSI-X.

         Impact:  None

     3.  Problem: (CQ #33190) ifconfig command showed errors received. But
                  ethtool -S ethx did not show any errors.

         Cause:   Some error counters did not have a bin to be printed by
                  ethtool -S command.

         Change:  Add appropriate bins for the missed counters.

         Impact:  None


      4. Problem: BSOD on T1002 boards.

         Cause:   A new code was added that manipulate GPIO 1 for external phy
                  reset. On T1002 board this GPIO control the PERST_L_BYPASS.

         Change:  Do not manipulate GPIO 1 on T1002 boards

         Impact:  None

    Enhancements
    ------------
    1.  Feature: Add support for IPv6 checksum and IPv6 TSO.

        Change:  The support was added

        Impact:  None

    2.  Feature: Add fan failure detection and external PHY power down for the
                 A1022G

        Change:  When a fan failure is detected (indicated by SPIO5) on the
                 A1022G, the driver will shutdown the PHY (reset and low power
                 mode, using GPIO1+2) and issue a warning message

        Impact:  When fan failure occurs the link will go down until server
                 reset


Version 0.40.17 (December 17, 2007)
===================================

    Fixes
    -----
     1.  Problem: (CQ #33023) Pause RX is on when driver is loaded with
                  MTU > 4500.

         Cause:   Pause mode was computed from the requested flow control
                  parameter in NVRAM without considering the MTU size.

         Change:  Resolve the pause mode only before advertising the flow
                  control.

         Impact:  None

     2.  Problem: Pause autoneg can be set on for XFP cards.

         Cause:   Pause autoneg mode was always accepted from user.

         Change:  Pause autoneg is not supported if speed autoneg is not
                  supported (e.g. XFP cards).

         Impact:  None

     3.  Problem: (CQ #33044) make install fail.

         Cause:   No make install target in Makefile.

         Change:  Add make install target to Makefile.

         Impact:  None

     4.  Problem: (CQ #33057) No README.TXT in driver release folder.

         Cause:   No README.TXT in driver project.

         Change:  Add README.TXT in driver release folder.

         Impact:  None

     5.  Problem: (CQ #32541) No README.TXT in driver tarball.

         Cause:   No README.TXT in driver project.

         Change:  Add README.TXT to driver tarball and change the directory
                  name.

         Impact:  None

    Enhancements
    ------------
    1.  Request: Add parity and assert regs for idle check.

        Change:  The check was added

        Impact:  None

    2.  Request: Add workaround for threshold mechanism for usdm-dp

        Change:  The workaround was added

        Impact:  None

    3.  Request: Add workaround for full Tetris buffer bug.

        Change:  The workaround was added

        Impact:  None

    4.  Request: Add support for the SFG10 PHY

        Change:  The support was added

        Impact:  None

    5.  Request: Add support for the BCM8072 PHY

        Change:  The support was added. The code is still not 100% functional

        Impact:  None

    6.  Request: Change the MDC/MDIO CL45 scheme

        Change:  The functions are more generic:
                 - Supports different MDC/MDIO controller
                 - Reduce the clock to 2.5MHz
                 - Less PIO writes (writing all the required information at
                   one attempt)

        Impact:  All external PHY access are using a slower (standard)
                 MDC/MDIO clock

    7.  Request: Hard reset external PHYs

        Change:  The external PHYs are now reset via GPIO. Before working with
                 an external PHY, a reset pulse of 1ms is generated, and when
                 the driver is down, the external PHY is kept in reset

        Impact:  Link partner should always see link down when the link is down

Version 0.40.16 (November 29, 2007)
==================================

    Fixes
    -----
     1.  Problem: (CQ #32296) VLAN broken on older Kernels.

         Cause:   vlan_kill_vid() removed in newer versions is needed by older
                  kernels to allow loading.

         Change:  Re added function.

         Impact:  None

     2.  Problem: (CQ #29543) System panicked if receiving UDP data while load
                  and unload

         Cause:   sp_task work was not synchronized with int_disable_sync()

         Change:  move sp_task to work_queue element

         Impact:  None


     3.  Problem: (CQ #32430) XFP port showed link lights on and link
                  detected = yes when configured port up with no cable
                  attached

         Cause:   Link_up was declared by local phy (XGXS) link up without
                  the external phy (8705) link status

         Change:  Link up is now the combination of local phy (XGXS) link up
                  and external phy (8705) link up

         Impact:  None

    Enhancements
    ------------
    1.  Request: Print PCI link properties upon load.

        Change:  The print was added

        Impact:  None

Version 0.40.15 (November 15, 2007)
==================================

    Fixes
    -----
     1.  Problem: On heavy traffic scenarios, the machine halted due to
                  PCI problem

         Cause:   A HW change in A1 boards requires some registers that
                  controls the PCI credit to be changed as well

         Change:  Updating the PXP credit registers

         Impact:  None

     2.  Problem: (CQ #31120) The traffic LED was not active for lower
                  speeds

         Cause:   A new bootcode is required to set the traffic LED
                  when the speed is less then 10G (using the emac and
                  not the bmac)

         Change:  The set LED routine was updated and bootcode 4.0.10
                  or above is required to have the LED functional

         Impact:  None

     3.  Problem: Found a bug when doing ifconfig down/up during
                  traffic. In this case FW can assert

         Cause:   A packet that was received before unloading driver
                  stayed in Pbuff, and was processed after loading the
                  driver again

         Fix:     Added the reordering mechanism to slow path handlers

         Impact:  Implementation of all L2 slow-path commands was modified

     4.  Problem: (CQ #30160) Removed false positives from the self test
                  (ethtool -t)

         Cause:   Many tests in the self test were designed to check halted
                  system (after fatal error) and the test assumed that the
                  chip is idle

         Fix:     Any test that can happen while the chip is operational was
                  changed to "info" debug print and is not counted as warning
                  or error

         Impact:  The self test is more reliable

    Enhancements
    ------------
    1.  Request: Forward preparation in the code for 57711

        Change:  Using only two DMAE clients per port. Using "port" instead of
                 "function".

        Impact:  Not visible to the user

    2.  Request: Block RX Pause if Auto-pause was selected and the MTU > 4500
                 to prevent performance retrogression when using PAUSE with big
                 packets

        Change:  The auto-pause resolution will be only TX pause if the MTU
                 is larger than 4500. Force pause mode will be obeyed as
                 requested

        Impact:  Jumbo frames with auto-pause will achieve higher throughput

    3.  Request: Report HW errors

        Change:  Parity and blocks errors attentions code was added to the
                 driver. Not all indications are enabled.

        Impact:  In case of an assert in the chip, the user will get an
                 error notification

    4.  Request: Added the ability to support multi interrupt queues from
                 kernel 2.6.24 and above

        Change:  Allow ISR and NAPI (the stack processing) to run on several
                 CPUs. The new feature is disabled by default

        Impact:  Can reduce latency in some cases

    5.  Request: Move slow-path to work-queue to allow sleeps

        Change:  The slow-path is now implemented as work queue

        Impact:  Better fairness to other host drivers

    6.  Request: Changes with statistics requirements due to
                 performance enhancement and preparation for next
                 features.

        Change:  a. Removed rcv_error_bytes
                 b. Replaced errors_discard stat by: mac_discard stat,
                    checksum_discard stat and packet_too_big_discard
                    stat
                 c. Removed statistics histogram

        Impact:  The displayed statistics format was changed

    7.  Request  Remove FW interrupts that are not needed

        Change:  FW no longer interrupts the driver for reading a new slow-path
                 element (it updates driver only when completing processing it)

        Impact:  None

    8.  Request: Support easier SuSE compilation

        Change:  In previous version, a flag in bnx2x.c was required
                 in order to compile under SUSE. In the new implementation
                 the make file can be used in the following way:
                 SLES9  command: make EXTRA_CFLAGS+=-DBNX2X_SLES_9
                 SLES10 command: make EXTRA_CFLAGS+=-DBNX2X_SLES_10

        Impact:  SLES compilation procedure is different now

Version 0.40.14 (November 06, 2007)
==================================

    Enhancements
    ------------
    1. Naming the TCP performance improvement feature TPA (still for demos only)

Version 0.40.13 (November 05, 2007)
==================================

   Enhancements
   ------------
    1. Added support for L2 Rx TCP performance improvements in a special mode
       (implementation for demos only). This support is disabled by default and
       requires a change of compilation flag to enable.
    2. Added support for vanilla kernel 2.6.18.5, SLES9, and RHES4

Version 0.40.12 (October 29, 2007)
==================================

   Fixes
   -----
    1.  Problem: A fragmented Tcp/Udp packet might have been wrongly dropped

        Cause:   parser doesn't checks tcp/udp checksum for fragmented
                 packets

        Fix:     FW will report to driver the tcp/udp checksum wasn't
                 Validated if the packet was fragmented

    2.  Problem: ethtool -S|r|t eth[x] on un-configured port causes
                 errors/panic

        Cause:   When port is un-configured memory is not allocated and
                 blocks in chip can be in reset

        Fix:     Check driver state in nway_reset() and self_test() and
                 check memory pointer in get_ethtool_stats()

   Enhancements
   ------------
   1. Supporting the upstream Kernel including new NAPI approach
   2. Open source coding standard modifications throughout the code,
      including new init code, new HSI header files, new registers
      definitions, SPARSE fixes and checkpatch.pl fixes
   3. Replaced patches mechanism with #ifdefs
   4. Supporting big-endian machines
   5. Supporting nVidia chipsets with MCP55
   6. Support checksum offload for A1 boards (modification with some flag in
      PBF command)

Version 0.40.10 (August 27, 2007)
=================================

       Bug fix version, no new features



Version 4.0.9 (August 10, 2007)
===============================

       New features:
       -------------

       1. Updated to firmware version 4.0.7.

       2. Added support for ethtool EEPROM options.




Version 4.0.7 (July 23, 2007)
=============================


       New features:
       -------------

       1. Added support for flow control.

       2. Added patch for Kernel 2.6.22.x.




Version 4.0.6 (July 11, 2007)
=============================


       New features:
       -------------

       1. Added support for new bootcode 4.0.2.



Version 4.0.5 (June 29, 2007)
=============================


       Fixes:
       ------

       1. Problem:
               Linux stack rechecked the RX checksum.

          Cause:
               In most cases, the indication of RX checksum was wrong
               causing the Linux stack to recheck.

          Fix:
               Indication mistake was fixed.

       2. Problem:
               NFS UDP test failed writing to server.

          Cause:
               Incorrect HW init values.

          Fix:
               HW init values were corrected in the driver.

       3. Problem:
               MTU change cause system to assert.

          Cause:
               Memory leak in the ifconfig up/down sequence.

          Fix:
               Memory leak fixed in driver.



Version 4.0.1 (June 15, 2007)
=============================

       New features:
       -------------

       1. Added Power management is support.

       2. Added WoL is support.

       3. Auto-negotiation and speed & duplex is supported.

       4. Updated firmware version to v4.0.2.

       5. Support for Ethtool.

       6. Changing MTU can be done when link is up.



Version 0.30.1 (June 4, 2007)
============================

       New features:
       -------------

       1. Updated firmware version to v0.30.0.


Version 0.29.1 (May 21, 2007)
============================

       New features:
       -------------

       1. Updated firmware version to v0.29.0.



Version 0.27.5 (May 7, 2007)
============================

       New features:
       -------------

       1. Interrupt coalescing values have been optimized.

       2. Updated to Linux Kernel 2.6.20.7.


       Fixes:
       ------

       1. Problem:
               High performance scenarios involving many threads could have
               caused tx ring overrun.

          Cause:
               SNP concurrency driver bug.

          Fix:
               Driver related code was fixed.




Version 0.27.1 (Apr 23, 2007)
============================

       New features:
       -------------

       1. Added speed and activity support for LEDs.



       Fixes:
       ------

       1. Problem:
               Low performance when running Netperf TCP_RR.

          Cause:
               Driver bug caused a the driver to enter a busy loop in
               certain cases when there was no RX processing queued.

          Fix:
               The logic used to decide if there is pending RX work was
               corrected.


       2. Problem:
               XFP link detection problem - intermittent issue.

          Cause:
               Driver would not get link change interrupt.

          Fix:
               Corrected the setting of the link change interrupt.
