                              Release Notes
                        Broadcom bnx2 Linux Driver
                             Version 2.0.8b
                                12/16/2009

                          Broadcom Corporation
                         5300 California Avenue,
                            Irvine, CA 92617

               Copyright (c) 2004 - 2009 Broadcom Corporation
                           All rights reserved

bnx2 v2.0.8b (Dec 16, 2009) cnic 1.9.13b (Dec 16, 2009)
=======================================================
   Fixes
   -----
   1. Problem: (CQ44964) RHEL5.4 crashes when bnx2 driver is updated with
               out-of-tree version.

      Cause: Newer out-of-tree driver's cnic_eth_dev structure has been
             updated, making it incompatible with RHEL5.4's cnic driver.

      Change: Reverted the structure update for RHEL5.4.

      Impact: None.

   Enhancements
   ------------
   1. Change: Improved the reset logic to prevent NETDEV WATCHDOG when
              TSS is enabled.

      Impact: MTU change, ring size change, selftest, etc.

   2. Change: Fixed some compiler warnings when compiling bnx2 and cnic
              drivers.

      Impact: None.

bnx2 v2.0.7b (Dec 7, 2009) cnic 1.9.12b (Dec 7, 2009)
=======================================================
   Fixes
   -----
   1. Problem: (CQ44620) Spurious KCQ entries leading to bnx2x assert.

      Cause: Stale status block with old KCQ index after restarting hardware.

      Change: Added some additional cleanup and initialization steps including
              zeroing the status block.

      Impact: None.

   Enhancements
   ------------
   1. Change: Updated RV2P P1 for 5709 to 5.0.0.j10 to address a flow control
              issue that can lead to context corruption.  Flow control
              watermarks have also been optimized.

      Impact: 5709 flow control.

bnx2 v2.0.6b (Dec 4, 2009) cnic 1.9.11b (Nov 19, 2009)
=======================================================
   Fixes
   -----
   1. Problem: (CQ44801) Unable to compile bnx2 on most 2.6 kernels.

      Cause: print_mac() kernel compatibility not defined correctly.

      Fix: Simple compatibility fix.

      Impact: None.

bnx2 v2.0.5b (Dec 4, 2009) cnic 1.9.11b (Nov 19, 2009)
=======================================================
   Enhancements
   ------------
   1. Change: Sync'ed up with latest upstream bnx2 driver.  Please see
              ChangeLog for details.

      Impact: Yes, Linux and VMWare.

bnx2 v1.9.42b (Dec 1, 2009)
=======================================================
   Fixes
   -----
   1. Problem: Compile error against the VMware ESX 4.0 DDK

      Cause: vmk_IscsiNetHandle is not defined with the
             VMware ESX 4.0 DDK

      Change: Added compile flag

      Impact: None.


   Enhancements
   ------------

   1. Change: Add BMAPILNX ioctl to allow for FW upgrade

      Impact: bnx2 VMware ESX 4.0


bnx2 v1.9.41b (Nov 19, 2009) cnic 1.9.11b (Nov 19, 2009)
=======================================================
   Fixes
   -----
   1. Problem: (CQ44617) Compile error on SLES10 and RHEL4 kernels.

      Cause: bool not defined on older kernels.

      Change: Added compatibility code.

      Impact: None.

   2. Problem: (CQ42096) iSCSI sessions do not recover after running
               selftest/ifdown/etc with max sessions connected.

      Cause: cnic_lock mutex has circular dependency, causing deadlock
             when iscsid tries to cleanup connections.

      Change: Merged in upstream cnic patches to avoid circular
              dependency.

      Impact: None.

   Enhancements
   ------------
      Change: (CQ43088) Changed the firmware version string format.

      Impact: None.

bnx2 v1.9.40b (Nov 18, 2009) cnic 1.9.10b (Nov 12, 2009)
=======================================================
   Fixes
   -----
   1. Problem: (CQ44528) Kernel runs out of memory after load/unload bnx2.

      Cause: RX SKB buffers were not freed.

      Change: Fixed the regression introduced by VMWare development.

      Impact: None.

   2. Problem: (CQ44399) iLAB 5.10 connection establishment test failure.

      Cause: Firmware SYN-ACK handling issue.

      Change: Updated firmware to 5.0.0.j6 in bnx2_fw.h and 5.0.0.j9 in
              bnx2_fw2.h. 

      Impact: iSCSI.

   Enhancements
   ------------
      Change: (CQ43088) Added VPD-R V0 firmware version string to ethtool -i.

      Impact: None.

bnx2 v1.9.39b (Nov 6, 2009) cnic 1.9.10b (Nov 12, 2009)
=======================================================
   Fixes
   -----
   1. Problem: (CQ44470) Kernel panics when bnx2/bnx2x is unloaded with
               active iSCSI sessions.

      Cause: NETDEV_UNREGISTER will cause bcm570x_* transport to be
             destroyed while sessions may still be active.

      Change: Use module referencing to prevent bnx2/bnx2x from unloading.
              This is a simple interim solution to revert back to the
              old behavior.  In T6.0, we will migrate to the upstream
              driver architecture and network drivers will be able to be
              unloaded again.

      Impact: None.

   Enhancements
   ------------
      Change: Added a short register dump during NETDEV_WATCHDOG.

      Impact: None.

bnx2 v1.9.38b (Nov 6, 2009) cnic 1.9.9b (Nov 6, 2009)
=====================================================
   Fixes
   -----
   1. Problem: (CQ44446) cnic panics during 10G iSCSI initialization.

      Cause: Recent interface changes introduced this regression.
             cnic_service_bnx2x() panics when accessing uninitialized
             status block pointer.

      Change: Added state checking in cnic_service_bnx2x().

      Impact: None.

   2. Problem: (CQ44439) bnx2 does not compile on older 2.6 kernels.

      Cause: mutex not defined on older kernels.

      Change: Use rtnl_lock() to protect bnx2_reset_task().

      Impact: None.

bnx2 v1.9.37b (Nov 4, 2009) cnic 1.9.8b (Nov 3, 2009)
=====================================================
   Enhancements
   ------------

   1. Change: Updated 5708/5706 firmware to 5.0.0.j5 for better small packet
              performance.

      Impact: 5706/5708.

   Fixes
   -----
   1. Problem: (CQ43280) Cannot unload cnic after bnx2/bnx2x is loaded.

      Cause: module referencing.

      Change: Changed module referencing scheme.

      Impact: None.

bnx2 v1.9.36b (Oct 22, 2009)
=======================================================
   Enhancements
   ------------

   1. Change: Expand on NetQueue module parameters.

      Impact: bnx2 VMware NetQ.

bnx2 v1.9.35b (Oct 22, 2009)
=======================================================
   Fixes
   -----
   1. Problem: If only 1 queue is used on VMware ESX, iSCSI
               offload would fail.

      Cause: The inboxed VMware driver would only use
             1 MSI-X vector.  Because of this the driver
             would not setup MSI-X

      Change: Always setup MSI-X reguardless of the
              number of MSI-X vectors used.

      Impact: 5709 iSCSI on VMware

bnx2 v1.9.34b (Oct 20, 2009)
=======================================================
   Fixes
   -----
   1. Change: Updated xinan firmware to 5.0.0.j8
              Nop timeout tuning (VMware PR467194)
              Added a new data fw heartbeat to work with
              the new bootcode and also handle older
              bootcode.

      Impact: 5709.

bnx2 v1.9.33b (Oct 8, 2009)
=======================================================
   Enhancements
   ------------

   1. Change: Make NetQueue module parameters more explict.

      Impact: bnx2 VMware NetQ.

bnx2 v1.9.32b (Oct 8, 2009) cnic v1.9.7c (Oct 8, 2009)
=======================================================
   Fixes
   -----
   1. Problem: CNIC unable to handle an unsolicited
               RESET COMPLETE which would result in a hung
               session.

      Cause: The CNIC driver couldn't handle unexpected SYN.

      Change: The CNIC driver will now handle an unsolicited
              RESET COMPLETE and cleanup properly.

      Impact: cnic

   Enhancements
   ------------

   1. Change: Allow the default NetQueue options to be
              controlled through the macro,
              BNX2_ENABLE_NETQUEUE.

      Impact: bnx2 VMware NetQ.

bnx2 v1.9.31b (Oct 6, 2009)
=======================================================
   Fixes
   -----
   1. Problem: PSOD would occur when alloc()'ing NetQueue's

      Cause: With the removal of the global 'disable_netq' 
             parameters, the NetQueue CID's weren't being
             mapped in some cases

      Change: Always map the NetQueue CID's

      Impact: bnx2 VMware ESX NetQueue

bnx2 v1.9.30b (Oct 5, 2009)
=======================================================
   Fixes
   -----
   1. Problem: PSOD would occur because of TX timeouts

      Cause: The VMware netdev watchdog timer was ran before
             the reset task got a chance to run on a loaded
             system. 

      Change: Elongated the TX timeout value for VMware ESX
              only to allow for the reset task to run.

      Impact: bnx2 VMware ESX


   Enhancements
   ------------

   1. Change: Updated vmkernel module parameter, 'force_netq',
              to allow NetQueue setting to be adjusted per
              function rather then globally for all functions.

      Impact: bnx2 VMware ESX


bnx2 v1.9.29b (Oct 1, 2009)
=======================================================
   Fixes
   -----
   1. Change: Updated xinan firmware to 5.0.0.j7 and
              teton firmware to 5.0.0.j4 which will fix
              L2 hang due to iSCSI PDU's padding byte
              extended to another TCP segment

      Impact: 5706/5708/5709.


bnx2 v1.9.28b (Sep 25, 2009)
=======================================================
   Fixes
   -----
   1. Change: Updated firmware to 5.0.0.j6 which will add
              the corresponding flow control trip point.

      Impact: 5709.


bnx2 v1.9.27b (Sep 24, 2009) cnic v1.9.7b (Sep 24, 2009)
=======================================================
   Fixes
   -----
   1. Problem: For the cnic users would see in the kernel logs:

               "kcq abs(hw_prod(0) - sw_prod(65534)) >
                MAX_KCQ_IDX(2047)"

      Cause: The function was not taking into account the
             wrapping of the software and hardware producer
             indexes.

      Change: Recaculate the difference between the index with
              wrapping taken into account.

      Impact: cnic


   Enhancements
   ------------

   1. Change: Updated firmware to 5.0.0.j5 which increased the
              rxpq depth from 32 to 256 to enhance the performance 
              on systems without flow control.

      Impact: 5709.


bnx2 v1.9.26c (Sep 17, 2009)
=======================================================
   Enhancements
   ------------
   1. Change: Cleanup the VMware NetQueue code.  Eliminate unneeded
              RX flush routine, fix the number of queues to be the
              same on 1500 and 9000 MTU sized packets.

      Impact: bnx2 VMware NetQ.

bnx2 v1.9.26b (Sep 14, 2009)
=======================================================
   Fixes
   -----
   1. Problem: VMware PSOD on MTU change

      Cause: MSI-X window was remapped to the beginning of the PCI
             config space.  The driver would disable the bar space
             because the MSI-X window was remapped incorrectly.  This
             would eventually cause a PSOD.

      Change: Before the chip reset, the driver would disable MSI-X,
              after the chip reset, MSI-X is re-enabled.

      Impact: VMware NetQueue


bnx2 v1.9.25b (Aug 21, 2009) cnic v1.9.6 (Aug 21, 2009)
=======================================================
   Fixes
   -----
   1. Problem: (CQ 43182/43252) Compile error on RHEL4

      Cause: struct mutex not defined on older kernels.

      Change: Wrap cnic_lock mutex structure and code with #ifdef BCM_CNIC.

      Impact: None.

   2. Problem: Unloading cnic after ifdown may crash.

      Cause: cnic unregisters with bnx2/bnx2x twice.

      Change: Fixed logic to unregister only once.

      Impact: None.

bnx2 v1.9.24b (Aug 13, 2009) cnic v1.9.6 (Aug 13, 2009)
=======================================================
   Fixes
   -----
   1. Problem: (CQ 42778) Kernel occasionally panics when enabling jumbo
               frames.

      Cause: If the driver is unable to allocate memory for the buffers,
             the device is not properly shutdown.

      Change: Added logic to shutdown device if unable to allocate buffers
              and complete the setup of the device.

      Impact: bnx2, changing MTU and ring sizes.

   Enhancements
   ------------
   1. Change: Updated firmware to 5.0.0.j3 for better small packet rx
              performance.  Firmware also fixes header digest error during
              I/O.

      Impact: All bnx2 devices.

bnx2 v1.9.23b (July 29, 2009) cnic v1.9.5 (July 29, 2009)
==========================================================

   Fixes
   -----
   1. Problem: (CQ 42723) KCQ not resetting to 0 problem

      Cause:   RCU deadlock during shutdown

      Change:  Move the bnx2_register_cnic() call out of the
               above sequence. Instead, register and
               unregister during NETDEV_UP/NETDEV_DOWN events.

               Change all slow path RCU read locks to mutex.
               In cnic, we also use reference counting to
               protect some slow paths.

      Impact: bnx2 iSCSI, bnx2x iSCSI


bnx2 v1.9.22b (July 23, 2009) cnic v1.9.4 (July 23, 2009)
==========================================================

   Enhancements
   ------------
   1. Change: If a TX timeout occurs, there could be the possiblity that the
              chip is hung. By printing chip state into the kernel ring buffer,
              it will be easier to determine this.

      Impact: bnx2 iSCSI.

   2. Change: The bnx2 firmware should always be matched with the proper bnx2
              driver. The bnx2 firmware version string are now printed.
              It will be easier to identify the running firmware.

      Impact: bnx2

   3. Change: When a TX timeout occurs and the chip is reset, the ability to
              debug the chip further is lost.  This is because the chip state
              information is lost during the reset.  The users have a choice
              to prevent the chip reset.

      Impact: bnx2

   4. Change: Add a check to see if there was a KCQ overflow was
              in the bnx2x firmware.  Now this check has been moved to the
              CNIC so that the driver could control the cleanup/recovery.
              
      Impact: bnx2 iSCSI.


bnx2 v1.9.21b (July 16, 2009)
==========================================================
   Enhancements
   ------------
   1. Change: Updated firmware to 5.0.0.j2  to fix remote reset problem

      Impact: bnx2 iSCSI.


bnx2 v1.9.20b (July 09, 2009), cnic v1.9.3 (July 09, 2009)
==========================================================
   Fixes
   -----
   1. Problem: (CQ42534) cnic.c does not compile on older kernels.

      Cause:   Some iscsi_proto constants not defined in <scsi/iscsi_proto.h>

      Change:  Added the constant definitions if not already defined.

      Impact: None.

   Enhancements
   ------------
   1. Change: Updated firmware to 5.0.0.j to fix TMF releated iSCSI issues.

      Impact: bnx2 iSCSI.

bnx2 v1.9.19b (July 01, 2009), cnic v1.9.2 (July 01, 2009)
==========================================================
   Fixes
   -----
   1. Problem: (CQ42399) 10G iSCSI fails when initiator and target MTUs
               don't match.

      Cause: cnic driver sets the MSS without knowing the actual MSS
             option and timestamp option during TCP connection.

      Change: Changed driver to set MSS to 0xffff so that firmware can
              calculate MSS on its own.

      Impact: bnx2x iSCSI.

   2. Problem: 1G iSCSI fails when initiator and target MTUs don't
               match and timestamp is enabled.

      Cause: Firmware was not adjusting for the 12-byte timestamp option
             if MSS was reduced by MSS option.

      Change Updated firmware to 5.0.0.i

      Impact: bnx2 iSCSI.

   3. Problem: (CQ42353) Unable to disable TCP timestamp on 10G iSCSI.

      Cause: Timestamp was hardcoded to be enabled for 10G.

      Change: Update global timestamp option during each TCP connection.

      Impact: bnx2x iSCSI.

   4. Problem: (CQ42329) bnx2x MC assert during IPv6 login/logout.

      Cause: EQ filled with more than 128 L4 kcqes without MSI-X interrupt
             for 2 seconds.  The driver can only buffer 128 L4 kcqes.

      Change: Increased L4 kcqe buffer to 256 entries as a temporary solution.
              Need to understand the delayed interrupt issue.

      Impact: None.

bnx2 v1.9.18b (June 25, 2009), cnic v1.9.1 (June 24, 2009)
==========================================================
   Enhancements
   ------------
   1. Change: Added FTQDiscard counter to the list of counters being
              reported.  During small packet test, there may be FTQ
              overflow and this counter is very useful.

      Impact: None.

   2. Change: Updated firmware to 5.0.0.h to improve small packet L2
              performance and to enhance iSCSI TMF handling.

      Impact: 5706/5708/5709.

bnx2 v1.9.17b (June 24, 2009), cnic v1.9.1 (June 24, 2009)
==========================================
   Fixes
   -----
   1. Problem: Leaking NetQueues if the firmware did not respond in time

      Cause: System might be clogged and there is not enough time to 
             process the KCQ

      Change: Updated driver/firmware to allow the calling of the free RX
              queue request before a RX alloc request is issued

      Impact: 5709

   2. Problem: An offloaded iSCSI connection would get stuck

      Cause: Issing an offload request might fail, and this was not handled
             properly.

      Change: Updated driver/firmware to return the proper return code and
              handle offload connection failures.

      Impact: 5706/5708/5709

   3. Problem: tasklet_init() is being called on a task that is scheduled

      Cause: When the CNIC calls register_device(), that task might already
             be schedled.

      Change: tasklet_disable() is insufficient because the tasklet remains
              scheduled and stays on the tasklet list, instead tasklet_kill() 
              is now used.

      Impact: 5706/5708/5709



bnx2 v1.9.16b (June 10, 2009), cnic v1.9.0 (June 10, 2009)
==========================================================
   Enhancements
   ------------
   1. Change: (CQ38228) Use symbol_get() for ipv6 symbols so that the
              cnic driver will load without necessarily loading ipv6
              modules.

      Impact: iSCSI over IPv6.

   2. Change: Updated 5706/08/09 MIPS firmware to 5.0.0.g.

      Impact: 5706/08/09.

   3. Change: Backported some dma_mapping_error() checking.

      Impact: None.

bnx2 v1.9.15b (June 1, 2009), cnic v1.8.6 (June 1, 2009)
========================================================
   Enhancements
   ------------
   1. Change: Upstream bnx2 tx path optimizations.  Please see ChangeLog.

      Impact: bnx2 tx path.

   2. Change: In the cnic driver, save the last allocated TCP port during
              unregistration so that previously used TCP ports will not
              be immediately re-used.

      Impact: iSCSI.

   3. Change: VMWare TCP port allocation changes.

      Impact: VMWare iSCSI.

bnx2 v1.9.14b (May 21, 2009)
==========================================
   Fixes
   -----
   1. Problem: NOPOUT timeouts on 570x iSCSI connections.

      Cause: Bugs in TCP timestamp implementation.

      Change: Updated MIPS firmware to 5.0.0.f.

      Impact: 5706/5708/5709.

bnx2 v1.9.13b (May 18, 2009)
==========================================
   Fixes
   -----
   1. Problem: Potentially exceeding the NetQueue limit recommendations
               by VMware which could stress system resources

      Cause:  When system resources are strained.

      Change: There are now limits on the number of NetQueues which the
              driver will request:
              When the MTU is 1500 the max number of queues per port is 8
              When the MTU is 9000 the max number of queues per port is 4

      Impact: NetQueue enabled version of VMware ESX

   2. Problem: Getting conflicting NetQueue and iSCSI completions

      Cause:  When MSI-X is not used on a 5709, NetQueue is still enabled

      Change: NetQueue is not disabled is MSI-X is not used.

      Impact: NetQueue enabled version of VMware ESX


bnx2 v1.9.12b (May 13, 2009)
==========================================
   Fixes
   -----
   1. Problem: Potentially returning a negative number of NetQueues

      Cause: When calculating the number of rings, we use the calculation from
             the number of msi-x vectors returned,  The number of NetQueues
             returned could potentially be negitive if only 1 vector was
             returned.  This is because the driver was subtracting 2
             instead of subtracting 1 (for the default queue) from the total
             number of rings.

      Change: Return the proper number of queues not including the default
              queue.

      Impact: NetQueue enabled version of VMware ESX

bnx2 v1.9.11b (May 12, 2009), cnic v1.8.5 (May 13, 2009)
========================================================
   Fixes
   -----
   1. Problem: TCP Delay ACK not working on bnx2x iSCSI

      Cause: Disabled in cnic driver.

      Change: Fixed csk->tcp_flags definitions and enabled the proper storm
              bit for delay ACK.

      Impact: bnx2x iSCSI.

bnx2 v1.9.11b (May 12, 2009)
==========================================
   Fixes
   -----
   1. Problem: iSCSI timestamp TCP option not working.

      Cause: Disabled in firmware.

      Change: Updated to 5.0.0e MIPS firmware.

      Impact: 5709.

bnx2 v1.9.10b, cnic v1.8.4 (May 11, 2009)
==========================================
   Fixes
   -----
   1. Problem: NetQ and iSCSI do not work in Vmware environment.

      Cause: 1. cnic driver is overwriting CP and COM mailbox bit values newly
                defined to support multiple kcqs.

             2. Firmware is completing some iSCSI kcqes on the NetQ's kcq.

      Change: Fixed cnic driver to only set and clear bit 0 of the CP
              and COM mailbox.

              Firmware has been updated to 5.0.0d. This firmware also
              supports TCP timestamp option for iSCSI connections.

      Impact: 5706/5708/5709 iSCSI, NetQ.

bnx2 v1.9.9b (May 1, 2009)
==========================================
   Fixes
   -----
   1. Problem: There is link, but can't pass traffic on ESXi

      Cause: Bits in the RX context are being trampled during the
             renegotiation of the link.

      Change:  RX context offset 0x6 should only be initialized once
               during init and not be updated during run-time.  Offset
               4 contains the BIDX that's mapped to the mailbox.

      Impact: VMware with NetQueue

bnx2 v1.9.8b, cnic v1.8.2 (April 27, 2009)
==========================================
   Enhancements
   ------------
   1. Change: Updated cnic driver to support 1.50.x HSI as well as the older
              1.48.107 HSI.  A compile flag will be used to select one or the
              other.

      Impact: iSCSI on bnx2x.

   2. Change: Spec file and Makefile changes detect the proper module
              install directory.

      Impact: installation.

bnx2 v1.9.7b, cnic v1.8.1 (April 22, 2009)
==========================================
   Fixes
   -----
   1. Problem: Compile error with redfinition of struct kwqe.

      Cause: Both the CNIC and bnx2 defined this structure.

      Change: Because the bnx2 definition is L2 specific, it was renamed to
              struct l2_kwqe.

      Impact: None.

   2. Problem: Add context memory DMA alignment for 57710.

      Cause: For the 57710 context memory needs to be 16k aligned.
             Without this alignment you will see errors when trying to
             establish more then 5 iSCSI connections on VMware ESX 4.0 U1.

      Change: Properly aligned the context memory by allocating a bigger 
              chunk of memory and then finding the proper alignment.
              This reduces the number of possible connections in half
              but now we can properly establish more then 5 connections
              on VMware.

      Impact: iSCSI.


bnx2 v1.9.6b (April 17, 2009)
=============================
   Enhancements
   ------------
   1. Change: Added NetQueue support for VMware.

      Impact: 5709.

bnx2 v1.9.5b (April 17, 2009)
=============================
   Enhancements
   ------------
   1. Change: Updated to 5.0.0.a firmware with NetQ support and iSCSI max
              connection license information. RV2P firmware unchanged:
              4.6.16 for 5706, 4.6.15 for 5709.

      Impact: All chips.

   2. Change: Set USE_INT_PARAM on 5709.  This will switch the chip in
              use "interrupt mode" coalescing after MSI/MSI-X.

      Impact: 5709.

   3. Change: Included 5706 when doing statistics block DMA workaround.

      Impact: 5706.

bnx2 v1.8.8b (March 12, 2009)
=============================
   Enhancements
   ------------
   1. Change: Updated to latest 4.6.17 CP firmware for 5709.

      Impact: iSCSI licensing on 5709.

bnx2 v1.8.7b, cnic v1.7.8 (March 10, 2009)
==========================================
   Enhancements
   ------------
   1. Change: Reverted 5706/5708 firmware to 4.6.16.  Low latency interrupt
              mode does not work on 5706/5708.

      Impact: None.

   2. Change: VMWare changes to expose max. number of iSCSI connections in
              the cnic_device structure.

      Impact: VMware iSCSI.

   Fixes
   -----
   1. Problem: (CQ39867) Compile error on RHEL5.3 Xen kernel.

      Cause: msi related symbols undefined because CONFIG_PCI_MSI is not
             enabled on Xen kernels.

      Change: Added CONFIG_PCI_MSI around the msi related code.

      Impact: None.

   2. Problem: (CQ39818) iSCSI targets do not reconnect after running self test.

      Cause: Interrupt is disabled by bnx2 before notifying CNIC to clean up
             and stop.  As a result, bnx2i will not receive interrupts when
             closing the connections if sharing INTA/MSI with network.

      Change: Disable interrupt after notifying CNIC to stop.

      Impact: iSCSI.

bnx2 v1.8.6b, cnic v1.7.7 (March 2, 2009)
=========================================
   Enhancements
   ------------
   1. Change: Updated to new 5706 firmware (4.6.17) and 5709 firmware (4.6.16).
              New interrupt coalescing mode for improved latency and iSCSI
              cache line fix on 5709.

      Impact: All bnx2 chips.

   2. Change: CNIC iSCSI changes for VMWare.

      Impact: VMWare only.

bnx2 v1.8.5b, cnic v1.7.6 (Feb 9, 2009)
=======================================
   Fixes
   -----
   1. Problem: (CQ39380) bnx2x iSCSI license not read correctly.

      Cause: Using wrong variable to check the license.

      Change: Fixed the logic.

      Impact: bnx2x iSCSI.

   2. Problem: Driver accesing MMIO registers during VLAN operations when
               the device is in D3hot state in older kernels.

      Cause: VLAN registration functions do not check for device state.

      Change: Added if_running check before MMIO access in VLAN registration
              functions.

      Impact: VLAN operations on all bnx2 chips.

   Enhancements
   -----------
   1. Problem: Updated 5706/5708 firmware to 4.6.16.

      Impact: 5706/5708.

bnx2 v1.8.4b, cnic v1.7.5 (Jan 30, 2009)
========================================
   Fixes
   -----
   1. Problem: (CQ39281) Management firmware stops passing traffic when
               bnx2 driver is loaded with jumbo frames enabled.

      Cause: Firmware bug.

      Change: Updated to 4.6.15 firmware.

      Impact: 5706/5708/5709.

   2. Problem: iSCSI does not work on 57711 in single function mode.

      Cause: Driver only allows iSCSI on 57711 if iSCSI is enabled.

      Change: iSCSI config. not required in single function mode.

      Impact: bnx2x iSCSI.

   Enhancements
   ------------
   1. Change: (CQ38576) Add 5709 to bnx2.4 man page.

      Impact: None.

bnx2 v1.8.3b, cnic v1.7.4 (Jan 23, 2009)
========================================
   Fixes
   -----
   1. Problem: (CQ38610, CQ39000, CQ39015, CQ39071, CQ39133) Various Jumbo
               frames related data corruption issues.

      Cause: Bug in RV2P firmware causing jumbo frames to be DMA'ed without
             the frame header control structure occasionally.

      Change: New firmware.

      Impact: 5706/5708/5709.

bnx2 v1.8.2c, cnic v1.7.4 (Dec 30, 2008)
========================================
   Fixes
   -----
   1. Problem: (CQ38955) Xen kernel panic when unloading bnx2 with jumbo MTU.

      Cause: Bug in bnx2_free_rx_mem().  The jumbo page ring memory was
             freed incorrectly using the wrong local variable as array
             index.

      Change: Fixed bug by using the correct variable as array index.

      Impact: Jumbo frames.

   2. Problem: (CQ38965) iSCSI connection timeout on bnx2x.

      Cause: During CFC Delete RAMROD completion handling, the wrong (older)
             iSCSI connection ID can sometimes be retrieved using the
             harware CID.  The CID in the mapping table was not cleared
             after the CID was freed. 

      Fix: Adding clearing of the CID in the data structure after a CID
           is freed.

      Impact: bnx2x iSCSI.

   Enhancements
   ------------
   1. Change: (CQ38744) Reduced R2TQ memory usage to match new firmware
              interface (firmware 4.8.9). This reduces the amount of
              kernel memory substantially for each iSCSI connection on
              bnx2x.

      Impact: bnx2x iSCSI.

bnx2 v1.8.2b, cnic v1.7.3 (Dec 17, 2008)
========================================
   Enhancements
   ------------
   1. Change: Added iSCSI configuration check on 57711E devices before
              allowing iSCSI connections.

      Impact: bnx2x iSCSI.

bnx2 v1.8.2b, cnic v1.7.2 (Nov 25, 2008)
========================================
   Fixes
   -----
   1. Problem: bnx2x iSCSI does not work on functions 2 or above.

      Cause: This was caused by multiple problems:
             a) Status block ID specified by bnx2x was wrong.
             b) MSI-X vector assigned to CNIC was wrong.
             c) New method to ack. status block using HC register was not
                implemented.
             d) Status block ID in CSTORM status block is always 0, and
                as a result, the status block ID used to ack. the status
                block was wrong.

             All these problems only affect functions 2 and above.

     Change: All problems fixed in bnx2x and cnic.

     Impact: bnx2x iSCSI.

bnx2 v1.8.2b, cnic v1.7.1 (Nov 15, 2008)
========================================
   Enhancements
   ------------
   1. Change: Added CNIC support for Multi function bnx2x iSCSI.

      Impact: bnx2x iSCSI.

bnx2 v1.8.2b, cnic v1.6.2 (Nov 12, 2008)
========================================
   Enhancements
   ------------
   1. Change: Updated to latest 4.6.13 5709 firmware to fix context corruption
              with flow control enabled.

      Impact: 5709.

   2. Change: Added support for 5716S PCI ID.

      Impact: None.

   Fixes
   -----
   1. Problem: (CQ35904) Netdump does not work.

      Cause: Problem introduced by MSI-X multiqueue.  IRQ handlers were
             changed to take bnx2_napi parameter instead of netdev parameter.

      Change: Fixed by passing proper parameter to IRQ handler from netpoll.
              All IRQ handlers are called when using multiple MSI-X vectors.

      Impact: 5709 netpoll.

bnx2 v1.8.1f, cnic v1.6.1 (Nov 5, 2008)
========================================
   Fixes
   -----
   1. Problem: All TSO packets corrupted on 5706/5708.

      Cause: Firmware bug zeroing the wrong field in IP header.

      Change: Updated to latest 4.6.11 5706/5708 firmware and 4.6.12 5709
              Firmware.

      Impact: 5706/5708/5709.

   2. Problem: bnx2x chip asserts when trying to make iSCSI connection
               to an unknown IP address.

      Cause: When connection fails, the driver sends a command to an
             unitialized CID.

      Change: Added logic to only send deletion commands to initialized
              CIDs.

      Impact: bnx2x iSCSI.

   Enhancements
   ------------
   1. Change: Added support for one single VLAN to a bnx2x iSCSI interface.

      Impact: bnx2x iSCSI.

bnx2 v1.8.1e, cnic v1.6.0 (Oct 27, 2008)
========================================
   1. Change: Updated to latest 5709 firmware to fix iSCSI data integrity
              problem.

      Impact: 5709.

bnx2 v1.8.1d, cnic v1.6.0 (Oct 23, 2008)
========================================
   Enhancements
   ------------
   1. Change: Updated to latest bnx2 firmware to fix iSCSI data integrity
              problem.

      Impact: 5706/5708/5709.

   2. Change: Updated to the latest bnx2x HSI files.

      Impact: bnx2x iSCSI.

bnx2 v1.8.1c, cnic v1.5.9 (Oct 13, 2008)
========================================
   Fixes
   -----
   1. Problem: (CQ37905) Unable to compile on SLES10 SP2.

      Cause: DIV_ROUND_UP macro not defined in this kernel.

      Change: Added it for compatibility.

      Impact: None.

   Enhancements
   ------------
   1. Change: Updated to latest 5709 firmware that fixes an NCSI problem.

      Impact: 5709.

   2. Change: Handle TCP reset in the middle of TCP close more appropriately.

      Impact: iSCSI.

   3. Change: Handle iSCSI license checking in the same way as 5708/5709.

      Impact: iSCSI on bnx2x.

bnx2 v1.8.1b, cnic v1.5.8 (Oct 13, 2008)
========================================
   Fixes
   -----
   1. Problem: bnx2x iSCSI CIDs may be allocated outside the range of allocated
               host memory.

      Cause: CID range bigger than the amount of allocated host context
             memory.

      Change: Changed to match the CID range with memory range.

      Impact: bnx2x iSCSI.

   Enhancements
   ------------
   1. Change: Sync'ed with the latest upstream driver bnx2 1.8.1.

      Impact: None.

   2. Change: Implemented iSCSI connection license enforcement for bnx2x
              devices.

      Impact: bnx2x iSCSI.

bnx2 v1.8.0j, cnic v1.5.7 (Oct 6, 2008)
========================================
   Fixes
   -----
   1. Problem: (CQ37610) Chip hangs when changing MTU with active iSCSI
               connections.

      Cause: Both cnic and bnx2 drivers setting up the chip at the same
             time.

      Change: Added check so that the register_cnic function will fail
              if the bnx2 driver is in reset.

      Impact: iSCSI.

   2. Problem: (CQ37762) Able to unload bnx2/bnx2x drivers while there are
               active iSCSI connections.

      Cause: CNIC driver does not have a reference count on the BNX2/BNX2X
             drivers.

      Change: This became a problem after the register_cnic function was
              no longer exported.  To solve the problem, the CNIC driver
              will now get an explicit reference during register_cnic.

      Impact: iSCSI.

   3. Problem: (CQ37429) MMIO access while the chip is in D3hot state.

      Cause: The driver does not check if_running state consistently during
             ethtool operations.

      Change: Added proper checks to all ethtool and multicast change
              functions.

      Impact: ethtool operations and multicast operations.

   Enhancements
   ------------
   1. Change: Simplified ipv4 TSO logic in the driver.  This was made
              possible with newer 5708 firmware.

      Impact: 5708 TSO and other traffic.

   2. Change: ethtool -p now blinks forever.  This is the standard behavior
              in most other net drivers.

      Impact: ethtool -p.

bnx2 v1.8.0i, cnic v1.5.5 (Sep 30, 2008)
========================================
   Fixes
   -----
   1. Problem: (CQ36787) iSCSI login/logout commands fail on 5709 after a
               while.

      Cause: Not handling the KWQ completion properly on 5709 in INTA/MSI
             mode.

      Change: Changed to handle KWQ completions by checking the
              cmd_consumer_index instead of the rx_quick_index15.

      Impact: 5709 ISCSI in INTA/MSI mode.

   2. Problem: (CQ37497) CNIC driver does not compile on powerpc.

      Cause: csum_ipv6_magic() not defined.

      Change: Added #include <net/ip6_checksum.h>

      Impact: None.

v1.8.0g (Sep 24, 2008)
========================
   Fixes
   -----
   1. Problem: (CQ37511) System locks up when loading cnic driver on 2.6.16
               kernel.

      Cause: symbol_put_addr() in 2.6.16 tries to acquire the same lock twice.

      Change: Workaround by using __symbol_put() which does not have the same
              problem.

      Impact: None.

v1.8.0f (Sep 23, 2008)
========================
   Fixes
   -----
   1. Problem: (CQ37405) Kernel panic when performing ifup/ifdown with iSCSI
               connections on bnx2x devices.

      Cause: Sending searcher delete to bnx2x devices when connection was
             not established (due to Spanning Tree or other reasons).

      Change: Check PG offload state before sending searcher delete.

      Impact: iSCSI on bnx2x.

v1.8.0e (Sep 22, 2008)
========================
   Enhancement
   -----------
   1. Change: Updated to latest driver firmware 4.6.6 for 5709.

      Impact: 5709.

   2. Change: Updated cnic so that it will not crash even if using older
              bnx2/bnx2x drivers without CNIC support.  The net driver
              can also be loaded after cnic and it will still work without
              crashing.

      Impact: iSCSI.

   3. Change: (CQ 37381) Updated driver to check Vaux PRESET before allowing
              WoL.  This is needed to support 5709 quad-port boards.

      Impact: WoL on all devices.

v1.8.0d (Sep 15, 2008)
========================
   Enhancements
   ------------
   1. Change: Updated CNIC iSCSI setup for bnx2x devices.

      Impact: iSCSI on bnx2x devices.

v1.8.0c (Aug 25, 2008)
========================
   Fixes
   -----
   1. Problem: Does not compile on older kernels.

      Cause: "__maybe_unused" undefined on older kernels.  "num_online_cpus()"
              undefined on 2.4 kernels.

      Change: Added compatibility code to workaround.

      Impact: None.

v1.8.0b (Aug 25, 2008)
========================
   Enhancement
   -----------
   1. Change: Updated to latest driver firmware 4.6.2 for 5709.

      Impact: 5709.

v1.7.9c (Aug 5, 2008)
========================
   Fixes
   -----
   1. Problem: bnx2 does not compile on older kernels.

      Cause: <linux/log2.h> is missing on 2.6.19 and older kernels.

      Change: Added compatibility code to check for kernel version before
              including the file.

      Impact: none.

v1.7.9b (Aug 5, 2008)
========================
   Enhancements
   ------------
   1. Change: Added multi-tx ring for 5709.  This fetaure is available on
              2.6.27 kernel when using MSI-X.

      Impact: 5709

   2. Change: Added support for 57710 iSCSI in the CNIC driver.

      Impact: iSCSI.

v1.7.7c (July 14, 2008)
========================
   Fixes
   -----
   1. Problem: Source RPM fails to build.

      Cause: New file missing in tarball.

      Change: Added missing file.

      Impact: None.

v1.7.7b (July 9, 2008)
========================
   Enhancements
   ------------
   1. Change:  Added probe function so that the CNIC driver can get the
               pci_device pointer earlier before registration.

      Impact:  iSCSI.

   2. Change:  Added support for 5716.

      Impact:  None.

v1.7.6c (June 6, 2008)
========================
   Enhancements
   ------------
   1. Change:  Added multi-ring RX support on 5709 using MSI-X.  This feature
               is only available on 2.6.24 and newer kernels running on SMP
               machines.

      Impact:  5709.

   2. Change:  Added secondary unicast address support.  We now support up
               to 5 unicast addresses.  This feature is only available on
               2.6.23 and newer kernels.

      Impact:  All chips.

v1.7.6b.1 (Aug 14, 2008)
========================
   Fixes
   -----
   1. Problem: (CQ36808) VLAN tagged packets received by host stack without
               the VLAN tag.

      Cause: If no VLANs are set up using vconfig, and if the driver
             configures the chip to strip the VLAN tag, the problem can
             happen.  With IPMI or UMP enabled, the driver is likely to
             configure the chip to strip the VLAN tag.

      Change: Modified the driver to re-insert the VLAN tag when necessary.
              I.e. when IPMI/UMP is enabled and vconfig has not setup any
              VLANs.

      Impact: All chips receiving VLAN traffic.

v1.7.6b (May 29, 2008)
========================
   Fixes
   -----
   1. Problem: IPv4 TSO generates bad packet when the TSO packet size
               is 1-MSS.

      Cause: Probably firmware does not expect this boundary condition.

      Change: Detect this 1-MSS condition in driver and skip the TSO logic.
              1-MSS TSO packet will be treated like a regular TX checksum
              offload packet.

      Impact: TSO on all chips.

   2. Problem: Cannot disable VLAN stripping even when management firmware
               is disabled.

      Cause: The new logic to check firmware VLAN stripping capability
             was buggy.

      Change: Fixed the code so that VLAN stripping can always be disabled
              if management firmware is disabled.

      Impact: VLAN/management firmware.

v1.7.5d (May 13, 2008)
========================
   Enhancements
   ------------
   1. Change: Incorporated latest firmware 4.4.18. Bug fix is in
              RV2P.

      Impact: All chips.

v1.7.5c (May 7, 2008)
========================
   Enhancements
   ------------
   1. Change: Incorporated latest firmware 4.4.17. Bug fix is in
              RV2P.

      Impact: All chips.

v1.7.5b (May 5, 2008)
========================
   Fixes
   -----
   1. Problem: (CQ35080) Hard lock when running ethtool -s on the device
               that is in the down state.

      Cause: I/O to the device to set link speed in D3-hot state can cause
             lockup because the chip does not respond to I/O.

      Change: ethtool -s will just store the new settings without configuring
              the new speed.  When the device is later brought up, the new
              speed will be set as part of chip init.

      Impact: All chips.

   2. Problem: (CQ35075 CQ35042) Various compile errors on SuSE SLES 9 and SLES
               10 distro kernels.

      Cause: ip_hdr() and __le32/__le32 backported to the distro kernels.

      Change: Adjusted compatibility defines.

      Impact: None.

   Enhancements
   ------------
   1. Change: Incorporated latest 5709 firmware 4.4.16.  Timer context
              scanning is reduced with this firmware to 500us.  With this,
              the temporary enhancement in 1.7.4c #2 has been removed.

      Impact: 5709 iSCSI.

v1.7.4e (April 26, 2008)
========================
   Fixes
   -----
   1. Problem: (CQ34841) 5709 does not link up on some remote PHY systems.

      Cause: No initial link interrupt.

      Change: Added code to poll for link when remote PHY is present.

      Impact: Remote PHY systems.

   2. Problem: (CQ34767) Kernel panic on 5709 when using jumbo frames
               with NCSI traffic.

      Cause: RV2P bug causing RX packets to overwrite kernel memory.

      Change: Updated to latest RV2P code for 5709 and 5708.

      Impact: 5706/5708/5709.
               
v1.7.4d (April 17, 2008)
========================
   Fixes
   -----
   1. Problem: IPv6 iSCSI does not work.

      Cause: Added code in the last version 1.7.3c to check for CONFIG_IPV6
             before enabling the IPv6 CNIC support.  This failed to check
             for CONFIG_IPV6_MODULE if IPv6 is configured as module in the
             kernel configuration.

      Change: Changed the checking to CONFIG_IPV6 or CONFIG_IPV6_MODULE.

      Impact: None.

v1.7.4c (April 16, 2008)
========================
   Fixes
   -----
   1. Problem: (CQ34814, CQ33984) Driver does not compile on 2.4 kernels.

      Cause: __le32 and __be32 not defined in 2.4 kernels.

      Change: Defined these as u32 on 2.4 kernels.

      Impact: 2.4 kernels.

   Enhancements
   ------------
   1. Change:  Incorporated latest 5709 4.4.12 firmware to fix various iSCSI
               problems.

      Impact:  5709.

   2. Change:  Slowed down the timer block reload time.  It was noticed that
               after the CNIC driver was unloaded, the timer context memory
               was reloaded in a tight loop by the chip.  This issue needs
               to be properly addressed in the firmware at a future date.

      Impact:  iSCSI.

v1.7.4b (April 11, 2008)
=======================
   Enhancements
   ------------
   1. Change:  Incorporated latest 5709 4.4.11 firmware to fix various iSCSI
               problems.

      Impact:  5709.

v1.7.3k (April 9, 2008)
=======================
   Enhancements
   ------------
   1. Change:  Incorporated latest 5709 4.4.10 firmware to fix various iSCSI
               problems.  CID ranges are now read directly from shared memory.

      Impact:  5709.

v1.7.3j (April 7, 2008)
=======================
   Fixes
   -----
   1. Problem: (CQ33967) Ethtool register test fails.

      Cause: Register 0x1004 context status register should not be tested.

      Change: Removed 0x1004 from register test.

      Impact: None.
 
   Enhancements
   ------------
   1. Change:  Incorporated latest 5709 4.4.9 firmware to fix various iSCSI
               problems.

      Impact:  5709.

v1.7.3i (April 4, 2008)
=======================
   Fixes
   -----
   1. Problem: (CQ33948) iSCSI over IPv6 does not work on SLES10.

      Cause: The CNIC driver does not handle IPv6 on older kernels without
             NETEVENTS support.

      Change: Modified the logic to support older kernels.

      Impact: All iSCSI connections using IPv4 or IPv6.

   2. Problem: (CQ34315) Scanning iSCSI disks during max sessions test causes
               connection problems.

      Cause: 5709 context memeory allocated by CNIC driver does not match
             the iSCSI and PG CID range used by the firmware.

      Change: Changed to the matching CID range.

      Impact: 5709 iSCSI.

v1.7.3h (March 28, 2008)
=======================
   Fixes
   -----
   1. Problem: (CQ33984, CQ34210, CQ34310, CQ34597) Various compiler warnings
               and errors on RHEL, SuSE, and 2.4 kernels.

      Cause: New features not compatible with older kernels, or older
             vendor kernels backported with newer features.

      Change: Fine-tuned compatibility compiler directives.

      Impact: All kernels.

v1.7.3g (March 10, 2008)
=======================
   Enhancements
   ------------
   1. Change: Updated to latest 5709 firmware version 4.4.7.

      Impact: 5709.

v1.7.3f (March 10, 2008)
=======================
   Fixes
   -----
   1. Problem: CNIC takes a long time to resolve ARP, causing iSCSI to fail.

      Cause: NETEVENT_NEIGH_UPDATE event notifier sometimes takes a long time
             to be called.

      Change: This is under investigation.  For now, the workaround is to
              use the existing neighbour entry if it is in NUD_VALID state.
              Previously, we would only use it if it was in NUD_CONNECTED
              state.

      Impact: iSCSI neighbour resolution.

   2. Problem: iSCSI sometimes fails to initialize.

      Cause: The KWQ is in full condition and prevents any KWQE to be sent
             to the firmware.  This is caused by the KWQ consumer index in
             the status block not initializing to 0.

      Change: Added workaround to skip the KWQ full condition check when
              sending the first KWQE.  This should be properly fixed in
              firmware.

      Impact: None.

v1.7.3d (February 15, 2008)
============================
   Fixes
   -----
   1. Problem: System hangs with iSCSI traffic.

      Cause: Infinite loop in NAPI poll.

      Change: Fixed the problem of not comparing the CNIC tag properly when
              determining whether there is more work in NAPI poll.

      Impact: None.

   2. Problem: iSCSI does not work on 5709

      Cause: Not initializing 5709 properly for iSCSI.  The chip_id field was
             not propagated to the CNIC driver.

      Change: Fixed the chip_id field.

      Impact: None.

v1.7.3c (February 09, 2008)
============================
   Enhancements
   ------------
   1. Change: Updated 5708 and 5709 firmware to version 4.4.2.

      Impact: All devices.

   2. Change: Updated RV2P firmware to the latest.  This may fix the jumbo
              frame issue.

      Impact: All devices, especially jumbo frames on 5709 Bx.

   3. Change: Modified CNIC interface in preparation for 57710 devices.

      Impact: iSCSI.

v1.7.2f (February 04, 2008)
============================
   Fixes
   -----
   1. Problem: Temporary workaround for one prototype 5709S mezz. card not
               working.

      Cause: The driver was looking at the wrong shared memory location to
             identify the card.

      Change: Fixed the code to check the correct BNX2_SHARED_HW_CFG_CONFIG
              location.

      Impact: 5709S.

v1.7.2e (January 31, 2008)
============================
   Fixes
   -----
   1. Problem: (CQ33704) CNIC driver fails MSI-X mode on 5709.

      Cause: When implementing the fix, the wrong constant was used
             for the CNIC MSI-X vector.

      Change: Corrected to use the correct constant BNX2_CNIC_VEC.

      Impact: None.

   2. Problem: iSCSI outgoing packets over IPv6 are bigger than 1518 bytes.

      Cause: MSS calculation was based on IPv4 and did not accout for the
             IPv6 header size.

      Change: Adjusted MSS calculation for IPv6.

      Impact: None.

v1.7.2c (January 30, 2008)
============================
   Fixes
   -----
   1. Problem: CNIC driver does not work in MSI-X mode on 5709.

      Cause:  This is a regression caused by moving the CNIC MSI-X
              vector from 8 to 2.  The context memory did not get
              updated with the new vector.

      Change: Changed the definition.  All bits that depend on the
              MSI-X vector will now have the proper definitions automatically.

      Impact: None.

v1.7.2b (January 30, 2008)
============================
   Enhancements
   ------------
   1. Change: Updated 5709 firmware to 4.4.1.

      Impact: 5709.

   2. Change: Added temporary workaround for one prototype 5709S mezz. card.
              The workaround will be removed once newer cards are available.

      Impact: 5709S.

v1.7.1e (January 14, 2008)
============================
   Enhancements
   ------------
   1. Change: Updated 5709 firmware to 4.1.1 for IPv6 iSCSI support.

      Impact: 5709.

   2. Change: Updated 5708 RXP firmware to 4.1.1.

      Impact: 5706/5708.

   3. Change: Updated RV2P firmware for 5709.

      Impact: 5709.

   4. Change: Added IPv6 support to CNIC driver.

      Impact: New BNX2I driver must be used with this new CNIC driver.

v1.7.1d.3 (February 7, 2008)
============================
   Fixes
   -----
   1. Problem: 5706S continues to not link down occasionally on some blade
               systems.

      Cause:  In some cases, even turning off the tx current does not
              cause the link to go down.

      Change: Link transition can be triggered based on the SYNC_FAILED bit
              in the AN_DEBUG register when all else fails.

      Impact: 5706S.

v1.7.1d.1 (February 1, 2008)
============================
   Fixes
   -----
   1. Problem: 5706S still not linking down occasionally on some blade
               systems when the switch blade is disconnected.

      Cause:  Occasionally, all the bits that we check will falsely
              indicate link up and trigger the parallel detect logic on
              this blade platform. Once in parallel detect mode with
              autoneg disabled, the driver will never detect link down.

      Change: Disabled parallel detect on this platform by checking
              PCI sub IDs to identify the device.

      Impact: Parallel detect not supported on this vendor device.

v1.7.1d (January 25, 2008)
============================
   Fixes
   -----
   1. Problem: 5706S still not linking down on some blade systems when the
               switch blade is disconnected.

      Cause:  This is the same problem that was fixed in 1.7.0b.  After
              switch module is removed, the SYNC_FAILED bit sometimes
              toggles low, and this causes the parallel detect logic in the
              driver to trigger and disable autoneg.  Disabling autoneg
              causes false link to come up immediately.

      Change: It seems that the RUDI_INVALID bit can be used to prevent the
              above from happening.  Modified parallel detect code to
              additionally check the RUDI_INVALID bit and trigger only when
              the bit is cleared.

      Impact: Parallel detect logic in 5706S.

v1.7.1c (December 27, 2007)
============================
   Fixes
   -----
   1. Problem: Driver crashes when adding VLAN and bonding.

      Cause: Bonding calls driver's VLAN function in interrupt context with lock
             held.  We recently added a VLAN feature in 1.6.8b which requires
             chip reset when VLANs are added or removed.  The reset will call
             vmalloc/vfree which must not be called in interrupt context.

      Change: Reverted the VLAN feature for now.  Will workaround it in the
              future.

      Impact: 5709 only. This new VLAN feature is no longer available.

v1.7.1b (December 24, 2007)
============================
   Fixes
   -----
   1. Problem: Driver crashes when using jumbo frames on 5709 A1.

      Cause: RV2P firmware problem.

      Change: Disabled jumbo page ring on 5709 Ax chips.

      Impact: Jumbo receive page rings not supported on 5709 Ax.

   2. Problem: CNIC driver prints "Failed waiting for ref count to go to zero"
               when unloading the driver. This is a minor cosmetic issue.

      Cause: Minor bug in driver comparing ref_count to 1 instead of zero
             during exit.

      Change: Fixed the code to check for ref_count == 0.

      Impact: None.

v1.7.0b (December 12, 2007)
============================
   Fixes
   -----
   1. Problem: (CQ33032) CPU utilization increases dramatically when TSO
               is enabled.

      Cause: Driver is spending a lot of unnecessary time in TX handling
             code when TSO is enabled.  This regression was introduced when
             the TX handling code was changed to match the RX handling code.
             The RX handling code was changed to fix a packet rot problem.
             When TSO is enabled, the tx index can stop at non-packet
             boundaries and the code will keep waiting until it gets to the
             next packet boundary.

      Change: Fixed it to handle this condition properly.

      Impact: None.

   2. Problem:  5706S does not link down in some blade systems.

      Cause: Hardware problem.

      Change: Added workaround logic to check periodically and force a
              link down when the PHY reports SYNC status failed.  This
              only works when autoneg is enabled.

      Impact: 5706S.

v1.6.8e (December 10, 2007)
============================
   Fixes
   -----
   1. Problem: When using jumbo MTU with large RX ring sizes, system will
               crash or the driver won't load.

      Cause: Bug in driver where the page descriptor array was declared
             too small.

      Change: Fixed the array size.

      Impact: None.

   2. Problem: CNIC driver won't compile on kernels without CONFIG_PCI_MSI.

      Cause: Some code needs to be conditionally compiled only when
             CONFIG_PCI_MSI is set.

      Change: Added #ifdef CONFIG_PCI_MSI where necessary.

      Impact: None.

   3. Change: Disabled iSCSI on 5709 until next release.

      Impact: None.

v1.6.8d (December 07, 2007)
============================
   Change: Reverted the 5706S workaround made in 1.6.8c because it was
           unreliable.

   Impact: None.

v1.6.8c (December 07, 2007)
============================
   Fixes
   -----
   1. Problem: (CQ32794) Kernel panic (skb_over_panic) with jumbo frames.

      Cause: RV2P firmware incorrectly placed jumbo data into SKB.

      Change: New RV2P firmware.

      Impact: Jumbo frames on all hardware.

   2. Problem: (CQ32817) ethtool loopback test fails.
   3. Problem: (CQ32842) Chariot test fails.

      Cause: RX buffer size too small to contain MTU-sized frame.
             This was introduced by the new Jumbo RX logic.

      Change: Fixed RX buffer size logic.

      Impact: Traffic on all hardware.

   4. Problem: (CQ32862) Fails to compile on RH9u9.

      Cause: Kernel API skb_fill_page_desc() backported to RH kernel
             causing duplicate definition.

      Change: Adjusted compatibility code.

      Impact: None.

   5. Problem: (CQ32866) ISCSI driver fails to compile with 1.6.8b.

      Cause: print_mac() multiply defined when bnx2.h is included
             in the bnx2i driver.

      Change: Changed print_mac() to static inline.

      Impact: None.

   6. Problem:  5706S does not link down in some blade systems.

      Cause: Hardware problem.

      Change: Added workaround logic to check periodically.

      Impact: 5706S.

   Enhancements
   ------------
   1. Change: Added flow control logic on 5709.

      Impact: 5709.

   2. Change: Updated all firmware to 4.0.5.

      Impact: All hardware.

v1.6.8b (November 28, 2007)
============================
   Enhancements
   ------------
   1. Change:  Added MSIX support for 5709 B0.

      Impact: 5709 B0.

   2. Change:  Added multi-page buffer support for Receive Jumbo frames.

      Impact: All chips.  This feature is experimental at this point.

   3. Change:  Allow VLAN tags in receive packets when management firmware
               is enabled.

      Impact: 5709 only. This feature is experimental and requires new
              boot code and UMP/IPMI code.

   4. Change: Updated firmware to 4.0.3.

      Impact:  All chips.

v1.6.7b (October 16, 2007)
============================
   Fixes
   -----
   1. Problem: (CQ31861) Remote copper PHY does not link up if WoL is enabled.

      Cause: bnx2_set_power_state() assumes that only copper devices support
             WoL and proceeds to configure the copper PHY to 10/100 Mbps.
             This assumption is no longer valid after Serdes WoL support
             was added in 1.6.3c.

      Change: Fixed the code to take check for Serdes and copper when setting
              up the PHY for WoL.

      Impact: WoL.

v1.6.6b (October 10, 2007)
============================
   1. Change: Update 5708 firmware to 3.7.19.

v1.6.5k (October 10, 2007)
============================
   1. Problem: Will not compile on 2.6.23 kernel.

      Cause: get_perm_addr no longer defined in struct ethtool_ops

      Change: Adjusted kernel compatibility #ifdef.

      Impact: None.

v1.6.5j (October 10, 2007)
============================
   No change to bnx2.  Updated cnic driver to 1.1.24.

v1.6.5i (October 8, 2007)
============================
   Enhancements
   ------------
   1. Change: Update 5708 firmware to 3.7.18.

v1.6.5h (October 4, 2007)
============================
   Enhancements
   ------------
   1. Change: Update 5708 firmware to 3.7.17.

v1.6.5g (October 1, 2007)
============================
   Enhancements
   ------------
   1. Change: Update 5708 firmware to 3.7.16.

v1.6.5f (September 30, 2007)
============================
   Enhancements
   ------------
   1. Change: Update 5708 firmware to newer 3.7.15.

v1.6.5e (September 29, 2007)
============================
   Enhancements
   ------------
   1. Change: Update 5708 firmware to 3.7.15.

v1.6.5d (September 28, 2007)
============================
   Enhancements
   ------------
   1. Change: Combined RPM package and tar file with CNIC driver.

v1.6.5c (September 26, 2007)
============================
   Enhancements
   ------------
   1. Change: Update 5708 firmware to 3.7.14.

v1.6.5b (September 25, 2007)
============================
   Fixes
   -----
   1. Problem: (CQ30086) 5709 A1 does not link up when connected to
               some Broadcom devices.

      Cause: Early DAC wakeup workaround needed for 5709 A1.

      Change: Added workaround.

      Impact: None.

   Enhancements
   ------------
   1. Change: Added CNIC support for iSCSI.

      Impact: Only enabled on 2.6.16 and newer kernels.

v1.6.3c (July 23, 2007)
=======================
   Fixes
   -----
   1. Problem: (CQ30591) ethtool -t fails on remote PHY systems.

      Cause: Link test and loopback test were not modified to support
             remote PHY.

      Change: Added remote PHY support to link test and changed the code
              to skip PHY loopback on remote PHY since it's not supported.

      Impact: None.

   2. Problem: (CQ30625) ethtool speed settings are lost after ifdown.

      Cause: The remote PHY settings stored in firmware is not the same
             as the driver's last setting.

      Change: Modified the code to keep the driver's setting unless there's
              is change in the remote PHY media.

      Impact: ethtool -s on remote PHY systems.

   Enhancements
   ------------
   1. Change: Change ethtool's wol setting to NVRAM's default and
              add support for Serdes WoL if NVRAM supports it.

      Impact: ethtool wol's default setting.

v1.6.3b (July 13, 2007)
=======================
   1. Problem: Problems reading and writing flash on 5709.

      Cause: Hardware changes in 5709.

      Change: Rearranged current flash code to properly support 5709.

      Impact: Changes will impact flash operations on 5706/5708/5709 devices.

   2. Problem: (CQ30516) Management firmware version string disappears
               on 2nd modprobe of the driver.

      Cause:  The 2nd modprobe will program the device back to D0 from D3hot.
              This causes a reset and it will take some time before the
              management firmware information will be available.

      Change: Added a proper wait loop to wait for the firmware information
              to be deposited in shared memory.

      Impact: None.

v1.6.2f (July 3, 2007)
=======================
   1. Problem: The fix for CQ29488 in the previous version is problematic
               and needs to be reverted.

      Cause: Adding the netif_carrier_off() call before register_netdev()
             in bnx2_init_one() can cause problems if register_netdev()
             fails.  netif_carrier_off() can queue a link watch event
             that can run later.  If register_netdev() fails, the netdev
             structure will be freed and the link watch event may panic
             when it is scheduled to run.

      Change: Moving the netif_carrier_off() to after register_netdev()
              also will not work as it can cause race conditions with
              the interrupt handler.  So the best thing to do is to
              revert the earlier fix and not address the CQ29488 issue.

      Impact: CQ29488 is not fixed.

v1.6.2e (July 3, 2007)
=======================
   Fixes:
   ------
   1. Problem: (CQ29528) Link does not come up using remote PHY (continued).

      Cause: ifup script may be using mii-tool to obtain link status,
             and interfering with remote PHY firmware.

      Change: Block mii-tool ioctl access when remote PHY firmware is present.

      Impact: None.

   2. Problem: (CQ29488) Driver reports link up in ethtool before the interface
               is brought up.

      Cause: The netdevice structure's initial link setting is up and that
             gets reported directly by ethtool.

      Change: Added netif_carrier_off() call in bnx2_init_one().

      Impact: None.

v1.6.2d (June 22, 2007)
=======================
   Fixes:
   ------
   1. Problem: (CQ29528) Link does not come up using remote PHY.

      Cause: The fix in 1.6.2b still has a problem.  The copper or Serdes
             default link setting does not follow the correct port when
             the port is changed during chip reset.

      Change: Fix the code to always refresh the port and link setting
              during chip reset.

      Impact: None.

   2. Problem: (CQ30181) Cannot compile on 2.4 kernels.

      Cause: USEC_TO_SEC constant is not defined on older kernels.

      Change: Added conditional #define for this constant on older kernels.

      Impact: None.

   Enhancements:
   -------------
   1. Change: Update 5709 firmware to 3.7.1.

      Impact: 5709 devices.

v1.6.2b (June 21, 2007)
=======================
   Enhancements:
   -------------
   1. Change: Added management firmware version to ethtool -i.

      Impact: None.

   Fixes:
   ------
   1. Problem: (CQ29528) Link does not come up using remote PHY.

      Cause: The driver is using the wrong port when setting up the remote
             PHY link.

      Change: Fixed bug to always use the correct requested port or
              default port when setting remote PHY link.

      Impact: None.

   2. Problem: (CQ30028) Advertised Autoneg not set in ethtool.

      Cause: Remote PHY code is not setting the flag which is for
             information only.

      Change: Added code the set the flag for consistency.

      Impact: None.

v1.6.1c (May 22, 2007)
=====================
   Enhancements:
   -------------
   1. Change: (CQ28907) Added support for setting copper and fibre speeds.

      Impact: Only available on Remote PHY systems.

v1.6.1b (May 7, 2007)
=====================
   Fixes:
   ------
   1. Problem: (CQ29301) Setting invalid speed setting causes driver to
               crash.

      Cause: Lock taken without unlock when exiting iwith error the
             procedure to set speed.

      Change: Fixed the code with proper unlock.

      Impact: None.

v1.6.0b (April 30, 2007)
========================
   Enhancements:
   -------------
   1. Change: Improved handshake with remote PHY firmware.

      Impact: None.

v1.5.10c (May 4 , 2007)
=======================
   Fixes:
   ------
   1. Problem: Extremely low TSO performance when destination has a
               smaller MSS than the source.

      Cause: Packets smaller than MTU are not processed as TSO packets.

      Change: Removed the SKB length check when doing TSO.

      Impact: None.

v1.5.10b (May 1, 2007)
=========================
   Enhancements:
   -------------
   1. Change: Removed Remote PHY until next release.

      Impact: No Remote PHY support.

   2. Change: Added check for 2.5G capability before enabling 2.5G on
              5709S.

      Impact: None.

   Fixes:
   ------
   1. Problem: (CQ28438) NETDEV WATCHDOG after OS boot.

      Cause:  The mailbox queue is halted after the OS reads config.
              register 0x94.

      Change: Set MQ_CONFIG_HALT_DIS in register MQ_CONFIG on 5709 A0 and
              A1.

      Impact: None.

v1.5.9b (April 20, 2007)
=======================
   Enhancements:
   -------------
   1. Change: Enhanced remote PHY support for 5708S.

      Impact: None.

   Fixes:
   ------
   1. Problem: (CQ29056) Driver does not compile on SLES 10 SP1 kernel.

      Cause:   Backported netif_tx_lock() causes compatibility problem.

      Change:  Adjuested compatibility #ifdef.

      Impact:  None.

   2. Problem: (CQ28880) Driver fails register test after running traffic.

      Cause:   A reserved register 0x500c was mistakenly included in the test.

      Change:  Removed this register from the test.

      Impact: None.

v1.5.8b (March 13, 2007)
=======================
   Enhancements:
   -------------
   1. Change: Added remote PHY support for 5708S.

      Impact: None.

v1.5.7b (March 2, 2007)
=======================
   Enhancements:
   -------------
   1. Change: Added IPV6 TSO for 5709.

      Impact: None.

   2. Change: Added 2.5G parallel detection for 5709s.

      Impact: None.

v1.5.6b (February 28, 2007)
===========================
   Enhancements:
   -------------
   1. Change: Added Serdes support for 5709.

      Impact: None.

   Fixes:
   ------
   1. Problem: (CQ28433) Driver does not compile on some early 2.6 and
               2.4 kernels.

      Cause: Kernel compatibility issue.

      Change: Added some missing #ifdef CONFIG_PCI_MSI.

      Impact: None.

   2. Problem: (CQ28527) System hangs when running bonding scripts on 5709.

      Cause: Bonding driver reads MDIO registers after the device is in
             D3hot state.

      Change: Added check to disallow MDIO access after the device is down.

      Impact: None.

v1.5.5b (January 31, 2007)
===========================
   Fixes:
   ------
   1. Problem: (CQ28252) Driver reports the same MAC address for both
               ports of 5709.

      Cause: The driver was obtaining the MAC address from the same
             shared memory area for both ports.

      Change: Updated driver to read from the deicated shared memory
              area for each port.

      Impact: None.

   2. Problem: (CQ28226) 5709C does not link up when connected to Dell
               5324 and some other switches.

      Cause:  PHY's Early DAC Wakeup Enable bit's strapped value is set.

      Change: Disable Early DAC Wakeup enable on 5709 A0 after PHY reset.

      Impact: None.

v1.5.4b (January 8, 2006)
===========================
   Fixes:
   ------
   1. Problem: 5709 copper device detected as serdes.

      Cause:  Media detection code not complete.

      Change: Added complete media detection code.

      Impact: None.

   Enhancement:
   ------------
   1. Change: Add IPv6 checksum support.

      Impact: None.

v1.5.2b (December 22, 2006)
===========================
   Merged in all latest changes.

v1.5.1c (November 30, 2006)
===========================
   Enhancement:
   ------------
   1. Change: Remove 5709 FPGA code.

      Impact: None.

v1.5.1b (November 15, 2006)
===========================
   Enhancement:
   ------------
   1. Change: Added support for 5709.

      Impact: None.

v1.4.52c (March 07, 2007)
=========================
   Enhancement:
   ------------
   1. Change: Increase maximum receive ring size to 4080.
              The default is kept the same at 255.

      Impact: None.

v1.4.51b (December 21, 2006)
============================
   Fixes:
   ------
   1. Problem: (CQ27802) Cannot enable flow control in some cases.

      Cause:  In some cases when flow control is forced to on, the
              driver detects no changes in advertisement, and as a
              result, will not re-autoneg.  Without the link change,
              flow control settings will not change.

      Change:  Added some code to setup flow control when no other
               PHY settings are made.  This will ensure that flow
               control changes will take effect immediately.

      Impact: None.

v1.4.50b (December 15, 2006)
============================
   Fixes:
   ------
   1. Problem: (CQ27424) Panic when writing to nvram.

      Cause:  Bug in driver when an alignment buffer is used

      Change: Fixed the bug so that the alignment buffer is freed with the
              correct pointer.

      Impact: None.

v1.4.49b (December 13, 2006)
============================
   Fixes:
   ------
   1. Problem: (CQ27459) Driver reports link down when link is up.

      Cause:  Hotplug scripts can cause bnx2_open() to be called immediately
              after bnx2_init_one() calls register_netdev().  The initial
              link state set after register_netdev() may overwrite the actual
              link state set by the link handler on SMP systems.

      Change:  Move all initial state setup code to before calling
               register_netdev().

      Impact : None.

v1.4.48b (December 08, 2006)
============================
   Fixes:
   ------
   1. Problem: (RHBZ 212055)  Panic in bnx2_poll().

      Cause: Bug in determining tx ring space when the tx ring is
             completely full.

      Change: Fixed the flawed logic in bnx2_tx_avail().

      Impact: None.

   2. Problem: (CQ27424) Buffer overflow when writing to nvram.

      Cause:  Bug in driver when the beginning NVRAM offset is
              not 4-byte aligned.

      Change: Fixed the bug to allocate enough buffer space.

      Impact: None.

   3. Problem: (CQ27543) Loopback failed if MAC address is changed.

      Cause: Driver uses permanent MAC address for loopback which may
             be different from a locally administered address.

      Change: Fixed by alwaysing using the current MAC address in the
              netdevice structure.

      Impact: None.

v1.4.47b (November 02, 2006)
===========================
   Fixes:
   ------
   1. Problem: (CQ25922) 5708S does not pass PHY loopback test on
               some blade servers.

      Cause:  It takes longer (about 100msec) to link up in some
              backplane environments when the Serdes is set to PHY
              loopback mode.

      Change: Increase delay loop to up to 1 sec when waiting for
              link up after PHY loopback.  Previous wait time was
              100usec.

      Impact: None.

v1.4.46b (October 30, 2006)
===========================
   Fixes:
   ------
   1. Problem: (CQ25916) Device does not receive packets when configured
               by the Xen bridge script and when IPMI is enabled.

      Cause: Firmware does not forward packets to the host when the
             device is in promiscuous mode in some cases.

      Change: Firmware change and driver change to enable the
              BNX2_RPM_SORT_USER0_PROM_VLAN bit when going into
              promiscuous mode.

      Impact: None.
             
v1.4.45b (October 19, 2006)
===========================
   Enhancement:
   ------------
   1. Change: Added software parallel detection on 5708S to link at
              1000Mbps or 2500Mbps automatically if the link partner is
              forced at 2500Mbps.

      Impact: None.

   2. Change: Added 2500Mbps forced speed setting.  Setting it requires
              a future version of ethtool or custom apps.

      Impact: None.

   3. Change: Port driver to compile on 2.6.19 kernel.

      Impact: None.

   Fixes:
   ------
   1. Problem: Driver does not complile on 2.4 kernels.

      Cause: TSO symbols not defined in 2.4 kernels.

      Change: Added #ifdef for compatibility.

      Impact: None.

   2. Problem: MSI doesn't work on 5706 when the host bridge is AMD8132.

      Cause: Compatibility issue.

      Change: Added code to disable MSI when 5706 is on a systems with
              AMD8132.

      Impact: 5706 cannot use MSI on such systems.

v1.4.44b (August 10, 2006)
==========================
   Fixes:
   ------
   1. Problem: A rare tx race window exists in the tx path.

      Cause: CPU re-ordering can cause the tx queue to be stopped
             forever when the tx ring is full in a very rare
             condition.  See ChangeLog for more details.

      Change: Fixed the race condition with memory barriers.
              See ChangeLog for more details.

      Impact: None.

   Enhancement:
   ------------
   1. Change: Increase default rx ring size to 255 to prevent
              packet drops under heavy load.

      Impact: Higher memory usage.

   2. Change: Port driver to run on 2.6.18 kernel.

      Impact: None.


v1.4.43b (June 26, 2006)
=======================
   Enhancement:
   ------------
   1. Change: (CQ25508) Use DRV_MSG_CODE_UNLOAD_LNK_DN message on
              5708 B1 and older chips so that the link will turn
              off after ifdown.

      Impact: None.

v1.4.42b (June 2, 2006)
=======================
   Fixes:
   ------
   1. Problem: (CQ22585) WoL cannot be enabled on 5708 B2.

      Cause: Hardware limitation in previous 5708 versions required
             driver to always disable driver WoL on 5708.

      Change: With the issue fixed in B2, the driver was changed to
              allow 5708 B2 and above to support driver WoL.

      Impact: None.

   2. Problem: (CQ21779) Driver does not report dropped receive packets.

      Cause: Packets dropped by firmware are reported in a scratch pad
             location in memory separate from other counters.

      Change: Added code to report this firmware counter.

      Impact: None.

   Enhancements:
   -------------
   1. Change: (CQ24690) Allow driver to be compiled for non-running kernels.

      Impact: None.

v1.4.41b (May 17, 2006)
=======================
   Fixes:
   ------
   1. Problem: Driver writes wrong data to non-buffered flash.

      Cause: Bug in driver causing the unchanged portion of the page
             to be corrupted.

      Change: Fixed bug.

      Impact: None.

v1.4.40b (April 17, 2006)
=========================
   Enhancements:
   -------------
   1. Change: Combine 2 small memory allocations into 1.

      Impact: None.

   2. Change: Separate tx consumer and producer entries into separate
              cache lines for better performance.

      Impact: None.

   3. Change: Compress firmware data to reduce driver size.

      Impact: Driver now requires zib_inflate library which should be
              available on most vendor kernels.

v1.4.39b (Mar. 10, 2006)
=======================
   Fixes:
   ------
   1. Problem: (CQ23181) Driver loses track of link changes in some cases.

      Cause: In some cases, the status block gets a link change indication
             that contradicts with the MII link status. This is due to
             transient link signals during link changes.

      Change: Add coalesce_now at the end of link change interrupt to flush
              out the transient behavior.

      Impact: None.

   2. Problem: 5708 only supports 40-bit DMA addresses.

      Cause: Limitation of the built-in PCIE-to-PCIX bridge.

      Change: Add workaround code to make sure all DMA addresses are
              less than 40 bits.

      Impact: Some minor impact on performance on some 64-bits systems.
              There should be practically no performance impact on i386 and
              x86_64 systems.

   3. Problem: "Copyright" deprecated in RPM spec file.

      Change: Changed to "License".

      Impact: Should be none on the distributions that we support.

v1.4.38b (Feb. 10, 2006)
=======================
   Fixes:
   ------
   1. Problem: Setting rx ring size to 255 causes memory allocation errors.

      Cause: Multiple bugs that do not handle the full ring properly.

      Change: Fixed all bugs related to full ring handling and changed
              maximum ring size from 4080 to 1020 after discussion with
              Dave Miller.

      Impact: Maximum rx ring size is now smaller.

   2. Problem: Compile warnings and panic on IA64.

      Cause: <vmalloc.h> not included.

      Change: Added include <vmalloc.h>.

      Impact: None.

v1.4.36b (Jan. 19, 2006)
=======================
   Version number update.

v1.3.36 (Jan. 17, 2006)
=======================
   Fixes:
   ------
   1. Problem: (CQ22827) bnx2 does not compile on 2.6.6 and earlier
               kernels. 

      Cause: Introduced bug while fixing CQ22666.

      Change: Fix compatibility code.

      Impact: None.

   2. Problem: (CQ22823) bnx2 reports extra .5 at the end of firmware
               version string.

      Change: Skip the last digit in the firmware version string.

      Impact: None.

   3. Problem: (CQ22585) WoL still does not work on 5708.

      Cause: New WoL mechanism introduced in 1.3.34 has a flaw.

      Change: Removed the workaround code and disabled WoL support
              on 5708. During shutdown and suspend, the driver will
              shutdown the device and WoL will be setup by the
              bootcode according to the nvram's out-of-box WoL
              setting.

      Impact: 5708 will not support driver-initiated (ethtool-intiated)
              WoL.
              
v1.3.35 (Jan. 17, 2006)
=======================
   Fixes:
   ------
   1. Problem: (CQ22666) bnx2 driver does not compile on RHEL3 U7.

      Cause: if_mii() back-ported to RHEL3 U7.

      Change: Adjusted the compatibility code.

      Impact: None.

   2. Problem: (CQ22718) UMP connection is lost after enabling WoL.

      Cause: FORCE LINK was mistakenly set during WoL setup.

      Change: Do not set FORCE LINK.

      Impact: None.

v1.3.34 (Jan. 13, 2006)
=======================
   Fixes:
   ------
   1. Problem: (CQ22585) WoL does not work on 5708.

      Cause: Internal bridge not in proper PME state.

      Change: Added new firmware message to allow bootcode to help set up
              WoL.

      Impact: None.

   Enhancements:
   -------------
   1. Change: Added compile option to include crc32 function for RH2.4
              boot kernels.

      Impact: None.

   2. Change: Updated TSO firmware to handle ECN.

      Impact: None.

v1.3.33 (Dec. 12, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Increased firmware hand-shake timeout from 50 msec to
              100 msec. Also changed the delay from busy-wait udelay
              to non-busy-wait msleep.

      Impact: None.

   2. Change: Added code to read nvram size from shared memory if
              available. Otherwise, the size will come from the
              flash table which only gives the smallest size for
              that type of flash.

      Impact: None.

   3. Change: Added workaround to issue 2 separate IOs for interrupt
              acknowledgement. The workaround is only used for INTA
              (non-MSI) interrupts.

      Impact: Slightly higher overhead for INTA interrupts.

v1.3.32 (Dec. 01, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Added PHY loopback to the loopback selftest.

      Impact: None.

   2. Change: (CQ21810) Added ethtool -d register dump.

      Impact: None.

   3. Change: Reduce the number of registers tested in selftest to make
              the driver smaller.

      Impact: None.

   4. Change: Increased maximum rx ring size to 4080.

      Impact: None.

   5. Change: Changed rx checksum logic for better reliability.

      Impact: None.

   6. Change: Added 5708 B1 workarounds.

      Impact: None.

v1.3.31 (Nov. 18, 2005)
=======================
   Fixes:
   ------
   1. Problem: (CQTO2080) Cannot pass traffic during 2nd ifup if IPMI
               is enabled.

      Cause: A flaw in driver/firmware handshake.

      Change: Changed driver/firmware handshake by doing WAIT0 first before
              writing the first signature.

      Impact: None.

   2. Problem: (CQTO2056) VLAN-tagged IPMI traffic fails after driver is
               loaded.

      Cause: Driver configures the NIC to keep the VLAN tag by default,
             causing VLAN-tagged IPMI traffic to fail.

      Change: Changed driver to always strip VLAN tags if IPMI is enabled.

      Impact: VLAN will always be stripped when IPMI is enabled. This may
              affect some applications that rely on raw VLAN packets.

   Enhancements:
   -------------
   1. Change: Sync'ed up with latest upstream bnx2.

v1.3.29 (Oct. 6, 2005)
=======================
   Fixes:
   ------
   1. Problem: (CQTO1929) Traffic stops when MTU is greater than 1500
               with TSO enabled.

      Cause: TSO firmware bug.

      Change: Updated to latest firmware.

      Impact: None.

v1.3.28 (Sep. 29, 2005)
=======================
   Fixes:
   ------
   1. Problem: (CQTO1875) Traffic stops when running Nettack with TSO
               turned on.

      Cause: TSO firmware bug.

      Change: Updated to latest firmware.

      Impact: None.

   2. Problem: (CQTO1575) ethtool -S shows non-zero rx_error_bytes.

      Cause: Hardware errata.

      Change: Ignore this counter and always report zero.

      Impact: None.

v1.3.27 (Sep. 21, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Enabled ethernet@wirespeed on copper devices.

      Impact: None.

   2. Change: Enabled customized pre-emphasis and other serdes control
              settings on 5708S backplane devices. A special PHY
              register will be programmed according to the NVRAM value.

      Impact: None.

   3. Change: Modified Makefile to check for the source symbolic link
              in the kbuild environment.

      Impact: None.

   4. Change: Improved NAPI poll processing so that all events will be
              processed before interrupts are re-enabled. This will
              reduce the number of unnecessary interrupts.

      Impact: None.

   5. Change: Add support for ETHTOOL_GPERMADDR (from John Linville)

      Impact: None.

   Fixes:
   ------
   1. Problem: Bug in irq handler causing extra register read.

      Cause: Bug in bnx2_interrupt() reading BNX2_PCICFG_MISC_STATUS
             register when it is not necessary.

      Change: Fixed the logic bug and added prefetch of status block in
              msi handler.

      Impact: None. 

v1.3.25 (Aug. 22, 2005)
=======================
   Fixes:
   ------
   1. Problem: Ethtool register and memory tests fail on 5708.

      Cause: Some code was not merged properly many versions ago.

      Change: Merged in properly code.

      Impact: None.

   Enhancements:
   -------------
   1. Change: Slow down flash clock speeds

      Impact: None.

   2. Change: Code re-sync'ed with upstream driver.

      Impact: None.

v1.3.24 (Aug. 16, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Changed all spin_lock_irqsave locks to spin_lock_bh for
              better overall system performance. All code requiring
              spin_lock runs in BH or user context.

      Impact: None.

   2. Change: Removed atomic operations in the transmit fast path.
              Code should run a bit faster as atomic operations can be
              quite slow.

      Impact: None.

v1.3.23 (Aug. 10, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Added reporting of link speed to firmware.

      Impact: None.

   2. Change: Added shared memory base look-up.

      Impact: None.

   3. Change: Possible sparse fixes (from Peter Hagervall)
              - use C99 struct initializers
              - make a few arrays and structs static
              - remove a few uses of literal 0 as NULL pointer
              - use convenience function instead of cast+dereference in
                bnx2_ioctl()
              - remove superfluous casts to u8 * in calls to readl/writel

      Impact: None.

   4. Change: Updated documentation with the crc32 library requirement and
              other minor updates.

      Impact: None.

v1.3.22 (July 25, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Added check for default link speed setting in shared memory.
              This allows some blade servers that don't support autoneg to
              default to forced speed to speed up link-up time.

      Impact: None.

   2. Change: Changed timer code to speed up the timer after serdes autoneg.
              This speeds up the time for parallel detection when the link
              partner does not autoneg. After autoneg or parallel detction
              completes, timer goes back to normal 1 HZ interval. With the
              new scheme, link should be detected up using parallel detection
              in less than 0.7 seconds. Autoneg normally completes in 120
              msec exchanging base pages and 3 next pages. 

      Impact: None.

v1.3.21 (July 21, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Updated firmware to properly handle TSO packets with ECN
              bits set.

      Impact: None.

   2. Change: Updated to latest rxp firmware.

      Impact: None.

   3. Change: Added check for the 2.5G capability in shared memory.

      Impact: None.

   4. Change: Expanded nvram support for 5708.

      Impact: None.

   Fixes:
   ------
   1. Problem: (CQTO1511) Downing a team of bnx2 adapters causes hang.

      Cause: Deadlock when the second adapter's close routine calls
             flush_scheduled_work() because the linkwatch_event
             is scheduled on the work queue when the first adapter
             is closed. The linkwatch_event will try to get the rtnl_lock
             which is already held by the bnx2_close routine.

      Change: Fixed by not calling flush_scheduled_work(). Instead,
              use a flag to indicate work is pending and wait until
              the flag is cleared.

      Impact: None.

   2. Problem: (CQTO1439) ethtool -S on 5708 causes oops.

      Cause: A pointer is not initialized if the device is 5708.

      Change: Added proper initialization.

      Impact: None.

   3. Problem: Some error counters are mis-reporting.

      Cause: The workaround for the hw errata is not applied properly
             on the chips with the errata.

      Change: Added proper checks for the workaround.

      Impact: None.

   4. Problem: High BER on 5708 SerDes.

      Cause: hardware errata.

      Change: Added workaround for 5708 A0 and B0.

      Impact: None.

v1.3.19 (May 27, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Merged 5708 code with the latest 1.1.19.

      Impact: None.

   Fixes:
   ------
   1. Problem: (CQTO1260) 5708S does not link at 1000Mbps when forced. It
               links at 2500Mbps when connected back-to-back with another
               5708S.

      Cause: 2.5G bit is still turned on.

      Change: Fixed by turning off 2.5G when the speed is forced.

      Impact: None.

v1.1.19 (May 26, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Made significant changes to merge into the kernel. Among
              them, consolidate all source files into bnx2.[ch] and
              bnx2_fw.h, change structure style register definitions
              to offset based.

      Impact: None.

   Fixes:
   ------
   1. Problem: Excessive stack usage.

      Cause: Use of local variable array.

      Change: Fix excessive stack usage in bnx2_alloc_bad_rbuf() by
              replacing local variable array with kmalloc array. Also
              changed function to return error code, and changed some
              of the callers to check for the return code.

      Impact: None.

   2. Problem: Bug in receive checksum.

      Cause: Software bug.

      Change: Fix bug in rx checksum by indicating CHECKSUM_UNNECESSARY
              only when the hw calculated checksum is 0xffff.

      Impact: None.

   3. Problem: Excessive busy loop.

      Cause: Software bug.

      Change: Replaced one excessive udelay of 15msec with msleep since
              the calling context is always process.

      Impact: None.

  4.  Problem: Need to call flush_scheduled_work() and bnx2_netif_stop().

      Cause: Bug in bnx2_close().

      Change: Fix bug in bnx2_close() by calling flush_scheduled_work()
              since we are using a work queue in netdev watchdog. Also
              added bnx2_netif_stop() call in bnx2_close().

      Impact: None.

   5. Problem: Some symbols do not have bnx2 prefix and are not static.

      Change: Add bnx2_ prefix to some remaining names and mark some
              remaining names static.

      Impact: None.

v1.1.17 (Apr. 7, 2005)
=======================
   Fixes:
   ------
   1. Problem: Driver does not compile on 2.6.12 kernel.

      Cause: pci_dev->slot_name has been deprecated.

      Change: replaced with pci_name.

      Impact: None. All kernels supported by bnx2 including 2.4.21-*EL have
              pci_name defined.

v1.1.16 (Mar. 16, 2005)
=======================
   Fixes:
   ------
   1. Problem: (CQTO936 & 1004) Tx carrier and rx_byte_errors reported
               during normal operations.

      Cause: 5706 hardware errata on these 2 statistics counters.

      Change: Modified driver to skip these 2 counters.

      Impact: These 2 counters will always report 0 and not the true
              statistics.

v1.3.15 (Mar. 11, 2005)
======================
   Enhancements:
   -------------
   1. Change: Added SGMII 10/100/1000 Mbps and fiber mode 1000/2500 Mbps
              support.

      Impact: None.

v1.1.15 (Mar. 09, 2005)
=======================
   Enhancements:
   -------------
   1. Change: Added code to program proper phy settings for jumbo
              frames on copper and serdes devices.

      Impact: None.

   2. Change: Changed INTx ISR to handle a valid case where INTx
              arrives before status block update.

      Impact: None.

   3. Change: Added a separate ISR for MSI to handle subtle differences
              between INTx and MSI.

      Impact: None.

v1.1.14 (Mar. 03, 2005)
======================
   Fixes:
   ------
   1. Problem: netdump does not work on latest RH3EL errata kernel.

      Cause: #define RED_HAT_LINUX_KERNEL removed from kernel
             include files, causing netdump poll function to
             be compiled wrong for RH kernels.

      Change: Changed Makefile to workaround the problem.

      Impact: None.

v1.1.12 (Feb. 25, 2005)
======================
   Fixes:
   ------
   1. Problem: (CQTO1062) Driver allows ethtool to set illegal speed/duplex
               on fiber cards.

      Cause: Missing checks for the case where autoneg is off.

      Change: Added proper checks.

      Impact: No.

v1.1.11 (Feb. 18, 2005)
======================
   Enhancements:
   -------------
   1. Change: (CQTO901) Added bnx2(4) man page.

      Impact: None.

v1.1.10 (Feb. 16, 2005)
======================
   Fixes:
   ------
   1. Problem: Wrong device ID in pci_dev_id table.

      Change: Fixed ID.

      Impact: None.

v1.1.9 (Feb. 10, 2005)
======================
   Fixes:
   ------
   1. Problem: (CQTO771) Driver fails to compile on RHEL3 update 4.

      Cause: The RH kernel has back-ported some netif functions
             not found in the same vanilla kernel version. Duplicate
             function names are defined.

      Change: Added intelligence in Makefile to detect such conditions
              and change the CFLAGS accordingly.

      Impact: None.

   2. Problem: (CQTO1017) Driver allows 1000 half duplex autoneg off.

      Cause: Missing validity check.

      Change: Added check.

      Impact: None.

   Enhancements:
   -------------
   1. Change: The code to handle tx queue full condition was redone
              to properly handle all boundary and race conditions.

      Impact: Minimum tx ring size is now MAX_SKB_FRAGS+1.

   2. Change: Tx timeout code was changed to work queue context.
              This allows netif to be shutdown gracefully before
              chip reset.

      Impact: None.

   3. Change: Added memory barriers to ISR and NAPI poll for
              correctness.

      Impact: None.

v1.1.8 (Feb. 01, 2005)
======================
   Fixes:
   ------
   1. Problem: (CQTO969) No interupts on a system that does not
               support MSI.

      Cause: On this system, the MSI generated in the MSI test
             terminates with Master Abort which is a fatal
             condition for the chip.

      Change: A chip reset is added when MSI test fails to bring
              the chip back to normal operations again (in INTx mode).

      Impact: None.

   Enhancements:
   -------------
   1. Change: Removed register 0x84 from the ethtool register test.
              This is an interrupt control register that should
              not be touched to prevent unwanted interrupts.

      Impact: None.

v1.1.7 (Jan. 28, 2005)
======================
   Enhancements:
   -------------
   1. Change: Added interrupt test when MSI is enabled. If MSI test
              fails, driver will fallback to INTx mode.

      Impact: None.

   2. Change: Added test for certain chipsets where MSI is known
              to fail, and disable MSI unconditionally when
              such chipsets are found.

      Impact: None.

   3. Change: Removed support for 1000 Mbps half duplex.

      Impact: 1000 Mbps half duplex will no longer work.

v1.1.6 (Jan. 26, 2005)
======================
   Fixes:
   ------
   1. Problem: (CQTO940) MTU size not set properly when device is down.

      Cause: bnx2_change_mtu only handled the "up" case.

      Change: Simple fix to handle the "down" case as well.

      Impact: None

   2. Problem: (CQTO926) 5706S does not autoneg properly after the
                tx cable is pulled.

      Cause: If the link partner is autonegotiating, autoneg will
             fail when the tx cable is pulled. The software will
             turn off autoneg seeing that the rx cable is still
             attached with SIGNAL_DETECT. When the tx cable is
             re-attached, autoneg is still off and the link partner
             will not establish link.

      Change: Added code to poll another PHY register to check if
              configs are received when autoneg is disabled.
              
      Impact: None
              
   Enhancements:
   -------------
   1. Change: Added OEM product name strings.

      Impact: None.

v1.1.5 (Jan. 25, 2005)
======================
   Fixes:
   ------
   1. Problem: PCI-X bus speed may not be detected correctly by the driver,
               causing failure because certain register settings are done
               based on bus speed.

      Cause: hardware problem.
 
      Change: Use a different register to detect PCI-X speed.

      Impact: None.

v1.1.4 (Jan. 17, 2005)
======================
   Fixes:
   ------
   1. Problem: 5706S does not reliably detect link up or down.

      Cause: hardware problem.

      Change: Enabled hardware workaround which is effective in
              A2 and newer chips only.

      Impact: None.

v1.1.3 (Jan. 13, 2005)
======================
   Fixes:
   ------
   1. Problem: netdump does not work.

      Cause: poll_controller routine does not work in NAPI mode.

      Change: Fixed poll_controller routine for NAPI mode.

      Impact: None.

   Enhancements:
   -------------
   1. Change: Added the new mmiowb macro which is used mainly in NUMA
              machines to guarantee PCI ordering.

      Impact: None.

   2. Change: Added OEM product name strings.

      Impact: None.

   3. Change: Changed ONE_TDMA workaround on systems with P64H bridge to
              PING_PONG_DMA on all systems using PCI.

      Impact: Better performance and better compatibility on all PCI
              systems.

   4. Change: Added "disable_msi" parameter to allow disabling MSI.

      Impact: None.

   5. Change: Reduced default tx coalescing parameters for better
              tx only performance such as ttcp.

      Impact: None.

   6. Change: Changed NIC detection console message to display more
              information.

      Impact: None.

   7. Change: Cleaned up some Linux .h files that are not needed.

      Impact: None.

   8. Change: Cleaned up the nvram routines.

      Impact: None.

v1.1.2 (Nov. 11, 2004)
======================
   Fixes:
   ------
   1. Problem: Unable to load the driver on more than 2 or 3 devices.

      Cause: Default register space is too big. System fails to map
             the register space on the 3rd or 4th device.

      Change: Changed driver to map a smaller register space as the higher
              registers are not needed for standard operations.

      Impact: None.

v1.1.1 (Nov. 9, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO656) One remaining ethtool parameter can be set out of
               range.

      Cause: Wrong upper bounds in code.

      Change: Fixed upper bound.

      Impact: None.

   1. Problem: 5706 A1 cannot be run on a PCI bus.

      Cause: Hardware errata.

      Change: Added workaround to detect 5706 A1 on PCI bus and abort.

      Impact: Driver will not load 5706 A1 on PCI bus.

v1.1.0 (Oct. 29, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO663) No link on fiber NIC set to autoneg when
               the link partner is set to forced speed.

      Cause: No code to handle this case.

      Change: Added code to check SIGNAL DETECT when autoneg fails,
              and turn off autoneg when appropriate. Also added code
              to force a link down when speed settings are changed.

      Impact: None.

    2. Problem: (CQTO649) ifconfig up/down can cause system to
                hang on 2.6 kernels using mmconfig.

       Cause: Dummy read in the kernel's pci_mmcfg_write routine
              may cause system to hang during D3hot -> D0
              transition. The PLL may lose lock during the internal
              D0 transition chip reset and cause the dummy read to
              hang.

       Change: The PLL problem will be fixed in A2. Meanwhile, the
               driver is changed to go into D3hot only if wol is
               enabled.

       Impact: Minor impact in increased power consumption when
               the driver is shutdown with wol disabled.
              
    3. Change: Changed to use pci_get_device as pci_find_device
               will be deprecated soon.

       Impact: None.

    4. Problem: (CQTO656) Some ethtool parameters can be set out of range.

       Cause: Wrong upper bounds in code or documentation.

       Change: Fixed code and documentation.

       Impact: None.

v1.0.15 (Oct. 15, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO644) Data corruption when sending FTP traffic on
               Dell Precision 530MT.

      Cause: PCI bridge errata.

      Change: Added code to enable ONE_TDMA workaround when P64H
              PCI bridge is detected.

      Impact: Slower tx performance on systems using P64H bridge.

   2. Problem: (CQTO643) Driver allows MTU to be set up to 9004.

      Cause: Driver used the wrong upper bound limit.

      Change: Fixed the upper bound.

      Impact: None.

   3. Problem: Driver does not support forced speed on 5706S.

      Cause: Missing software logic.

      Change: Added code to support forced 1000 Full and Half duplex.

      Impact: None.

   4. Change: Added workaround to disable PERR generation on
              5706 A1 when it is in PCI 64-bit slot.

      Impact: None.

v1.0.14 (Oct. 05, 2004)
======================
   Fixes:
   ------
   1. Problem: Driver load/unload hangs on some machines.

      Cause: Transition delay required during D3hot -> D0 transition.

      Change: Added necessary delay.

      Impact: None.

v1.0.12 (Oct. 04, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO609) New flow control parameter does not take
               effect until ifdown/ifup or link down/up.

      Cause: New flow control settings are only configured during
             link up. The driver did not check flow control
             advertisement changes and therefore no re-negotiation
             and no link down.

      Change: Fixed logic so that link will always go down whenever
              there is a change a flow control advertisement.

      Impact: None.

   2. Problem: (CQTO612) VLAN packet reception not working.

      Cause: VLAN #define not setup properly.

      Change: Fixed #define for VLAN.

      Impact: None.

   3. Problem: (CQTO628) WoL not functioning correctly.

      Cause: Multiple problems in the WoL code.

      Change: Fixed by:
                 1. using sort mode.
                 2. setting up mac address correctly.

      Impact: None.

   Enhancements:
   -------------
   1. Change: Added support for non-dword and non-aligned write access
              to eeprom, allowing ethtool -E to work.

      Impact: None.

v1.0.11 (Sep. 24, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO600) Kernel panic when attempting to ftp on
               Fedora kernel.

      Cause: skbuffs are 4-byte aligned on Fedora, causing
             the rx headers to be misaligned. skbuffs are
             16-byte aligned on other standard kernels.

      Change: Removed any assumptions about skbuff alignment
              and added code to align all rx skbuffs to 8-byte
              boundaries.

      Impact: None.

   Enhancements:
   -------------
   1. Change: Added netif_carrier_off to Driver init code so that
              the initial link state is off.

      Impact: None.

v1.0.10 (Sep. 23, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO599) Driver fails to compile on RH 3.0ES.

      Cause: Bug in poll_bcm5706 where bp is referenced without
             being defined.

      Change: Fixed the minor bug.

      Impact: None.

v1.0.9 (Sep. 23, 2004)
======================
   Fixes:
   ------
   1. Problem: Jumbo frames not working reliably.

      Cause: Bug in bcm5706_reuse_rx_skb.

      Change: Fixed the bug so that the host address is properly
              copied from one BD to the other.

      Impact: None.

   Enhancements:
   -------------
   1. Change: Change the locking scheme for more reliable open/close/ioctl
              operations where the spinlock is needed.

      Impact: None.

   2. Change: Added minimum MTU size check for MTU changes.

      Impact: None.

v1.0.8 (Sep. 20, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO561) Kernel panic on RH30EL after repeated
               driver load/unload.

      Cause: Occasionally, the system is unable to map device
             registers, causing subsequent register access to fail.

      Change: Added check for the return value from ioremap, and exit
              gracefully if it fails.

      Impact: None.

   2. Problem: (CQTO574) NETDEV WATCHDOG when running 5706 A1 on
               PCIX 133MHz slot.

      Cause: Some hw register setup required for 133 Mhz.

      Change: Added the register setup code.

      Impact: None.

   3. Problem: (CQTO468) Link does not go down after changing from
               10Mbps full (forced) to 10Mbps half (forced) and vice versa
               when the link partner is also using forced speed. 

      Cause: Delay not long enough for the link to go down.

      Change: Not practical to increase delay as a very long delay is
              needed for the link to go down. Added code to record the
              proper link speed and duplex when speed is forced so that
              ethtool will return the proper speed without the link going
              down. Note that the link will go down if the link partner
              has autoneg turned on, ensuring that the link partner will
              see the link change.

      Impact: None.

   Enhancements:
   -------------
   1. Change: Added power management and WOL during device close. This
              will allow WOL to work after Linux shutdown.

      Impact: None.

   2. Change: Changed driver so that ethtool will report invalid
              speed after ifdown.

      Impact: None.

   3. Change: Updated tpatfw.h

      Impact: None.

v1.0.7 (Sep. 14, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO523) 5706 A1 hangs after a thousand iterations of
               load/ifup/ifdown/unload.

      Cause: The driver may be servicing an interrupt
             within 15 msec of chip reset, causing the chip to hang.
             The problem was aggravated by the timer mode
             coalescing which created an excessive number of
             interrupts (hardware problem).

             The Driver may also occasionally see
             the wrong firmware signature that will cause it to abort.

      Change: Added synchronization to make sure all pending interrupts
              are serviced before resetting the chip. Also changed to
              collect mode coalescing. The firmware signature problem
              will be fixed in boot code.

      Impact: The use of collect mode coalescing may affect performance.

   2. Problem: (CQTO558) Unable to load driver on some early 2.6 kernels.

      Cause: pci_dma_sync_single_for_* routines not defined on early
             2.6 kernels.

      Change: Added compatibility defines for earlier kernels.

      Impact: None.

v1.0.6 (Sep. 08, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO523) 5706 A1 hangs during repeated driver ifup/down. 

      Cause: No delay after chip reset for A1.

      Change: Added 15 msec delay after chip reset for A1.

      Impact: None.

   2. Problem: (CQTO468) Link does not go down after changing from
               10Mbps full (forced) to 10Mbps half (forced) and vice versa. 

      Cause: Not enough delay after forcing link down.

      Change: Added proper delay for link to go down.

      Impact: None.

v1.0.5 (Sep. 02, 2004)
======================
   Enhancements:
   -------------
   1. Change: Added support for ethtool -c, ethtool -C, ethtool -p,
              and firmware version for ethtool -i.

      Impact: None.

   Fixes:
   ------
   1. Problem: 5706C not advertising 1000 half duplex.

      Cause: 1000 full duplex overwrites 1000 half duplex.

      Change: Fixed the bug so that the 2 bits are or'ed together.

      Impact: None.

    2. Problem: ethtool -A does not change the flow control settings
                in all cases.

       Cause: Flow control settings not zeroed out before setting new
              values.

       Change: Minor bug fix to zero out the value.

       Impact: None.

v1.0.4 (Sep. 02, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO504) Multiple NFS transfers will hang some
               connections.

      Cause: Driver discards some receive packets when the
             error status is non-zero.

      Change: Changed the driver to only discard receive packets
              when the defined error bits in the error status are
              non-zero.

      Impact: None.

v1.0.3 (Sep. 01, 2004)
======================
   Enhancements:
   -------------
   1. Problem: Driver does not support ethtool -t self test and
               ethtool -S statistics.

      Change: Added ethtool self test and statistics.

      Impact: None.

   Fixes:
   ------
   1. Problem: (CQTO478) Kernel still panics when transmitting certain
               files using NFS after many iterations

      Cause: Tx DMA stalls on certain UDP packets, causing NFS
             client to stall.

      Change: More fixes made in firmware.

      Impact: None.

v1.0.2 (Aug. 26, 2004)
======================
   Enhancements:
   -------------
   1. Problem: Driver does not work on big endian machines.

      Change: Ported and tested on SPARC64 machine.

      Impact: None.

   Fixes:
   ------
   1. Problem: (CQTO478) Kernel panics when transmitting certain
               files using NFS.

      Cause: Tx DMA stalls on certain UDP packets, causing NFS
             client to stall.

      Change: Fixed in firmware.

      Impact: None.

   2. Problem: (CQTO469) Unable to modify flow control parameters

      Cause: Did not call setup_phy after the parameters are changed.

      Change: Added call to setup_phy after parameters are changed.

      Impact: None.

   3. Problem: (CQTO467) 5706 does not autonegotiate properly after
               changing settings with ethtool.

      Cause: This is an ethtool limitation as the proper advertising
             parameters are not passed to the driver properly.

      Change: Implemented a new scheme to work around the problem to
              allow users to specify full autoneg, single speed autoneg,
              and fixed speed.

      Impact: None.

   4. Problem: ethtool -e does not work.

      Cause: Various bugs in the nvram routines.

      Change: Fixed and tested nvram routines on little endian and big endian
              machines.

      Impact: None.

v1.0.1 (Aug. 18, 2004)
======================
   Fixes:
   ------
   1. Problem: (CQTO459) 5706 NIC does not get link.

      Cause: Boot code timing out in WAIT2 state before driver is ready.

      Change: Moved the WAIT2 state ahead in the driver reset sequence
              as a temporary workaround until it is fixed in boot code.

      Impact: None.

   2. Problem: (CQTO463) Kernel panics when loading the driver on
               RH30EL (2.4.21-4.EL)

      Cause: Older kernel used different API to allocate and register
             netdev.

      Change: Added older APIs to be used on older kernels.

      Impact: None.

v1.0.0 (Aug. 13, 2004)
======================
    Initial release
