                              Release Notes
                        Broadcom bnx2 Linux Driver
                             Version 2.1.12b
                                10/14/2011
                        Broadcom cnic Linux Driver
                             Version 2.5.7g
                                09/23/2011

                          Broadcom Corporation
                         5300 California Avenue,
                            Irvine, CA 92617

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

bnx2 2.1.12b (Oct 14, 2011)
===========================
   Fixes
   -----
   1. Problem: (CQ59255) iSCSI warning messages appear and performance
               drops when connected to a lefthand target.

      Cause:   Packets with invalid TTT generate warnings and exception
               handling.

      Change: Updated to 6.2.3 firmware for 5706 and 6.2.1.b for 5709

      Impact: iSCSI

cnic 2.5.7g (Sep 23, 2011)
==========================
   Enhancements
   ------------
   1. Change: Added cnic_register_driver()/cnic_unregister_driver stubs
              so that depmod will not return errors if native bnx2i/bnx2fc
              drivers have not been updated.

      Impact: None.

bnx2 2.1.11e (Sept 19, 2011)
===========================
   Enhancements
   ------------
   1. Change: Set the feature, NETIF_F_NO_SCHED, for ESX 5.0 and
              greater releases only

      Impact: ESX only

   Fixes
   -----
   1. Problem: Compile errors on some older kernels.

      Cause: Compatibility API pci_is_pcie() requires bool type which may
             not be defined on older kernels.

      Change: Moved bool type compatibility definition above pci_is_pcie().

      Impact: None.

bnx2 2.1.11d (Aug 30, 2011)
===========================
   Enhancements
   ------------
   1. Change: Integrate Code Review Comments from VMware
              * Add feature flag to reflect if a device is
                compliant with network scheduling.
              * Conditionally move bnx2 drivers to high memory
	      * Remove unused field/code

      Impact: ESX only

   2. Change: Remove unnecessary read of PCI_CAP_ID_EXP from upstream.

      Impact: minor (5709 only).

cnic 2.5.7f (Sep 13, 2011)
=========================
   Fixes
   -----
   1. Problem: Duplicate cp local variable in cnic_shutdown_rings().

      Cause: Coding error.

      Change: Removed duplicate variable.

      Impact: None.

cnic 2.5.7e (Aug 8, 2011)
=========================
   Fixes
   -----
   1. Problem: (CQ57498) System hangs during bnx2x parity error recovery.

      Cause: cnic waits for RAMRODs to complete without timeout.  During
             parity error recovery, all DMAs will stop.

      Change: Added timeouts to all RAMRODs.

      Impact: iSCSI and FCoE on bnx2x

cnic 2.5.7d (July 28, 2011)
===========================
   Enhancements
   ------------
   1. Change: Increased the max number of FCoE sessions to 1024.

      Impact: FCoE.

bnx2 v2.1.11c (July 26, 2011)
============================
   Enhancements
   ------------
   1. Change: Upstream sync to use ethtool_cmd_speed API.

      Impact: None.

   2. Change: Added memory barrier to sync transmit descriptor before updating
              TX mailbox.  We believe that this may fix some very rare panics
              reported by VMWare.

      Impact: bnx2 packet transmit.

cnic 2.5.7c (July 26, 2011)
===========================
   Fixes
   -----
   1. Problem: FCOE_DESTROY_FUNC ramrod not completing, causing timeout
               and OOO cleanup timeout during MTU change.

      Cause: FCOE_DESTROY_FUNC was sent before all FCoE CIDs have been
             deleted.

      Change: Wait for all (2 seconds delayed) FCoE CFC_DELETE ramrods to
              be completed before sending FCOE_DESTROY_FUNC.

      Impact: FCoE only.


cnic 2.5.7b (July 19, 2011)
===========================
   Enhancements
   ------------
   1. Change: Re-instated vlan_id in ->indicate_netevent().  It is needed
              by bnx2fc to handle NETDEV_UNREGISTER on VLAN devices.

      Impact: bnx2fc.

   2. Change: Allocate FCoE CID space only on E2+ devices.

      Impact: None.

bnx2 v2.1.11b (July 19, 2011)
============================
   Enhancements
   ------------
   1. Change: Added tx_timeout error handling and made it common with
              VMWare code.

      Impact: bnx2 NETDEV WATCHDOG error handling

   2. Change: Fix compile errors on the latest net-next upstream kernel.

      Impact: compilation

cnic 2.5.6d (July 13, 2011)
===========================
   Enhancements
   ------------
   1. Change: Removed vlan_id from ->indicate_netevent().

      Impact: None.

bnx2 v2.1.10d (July 12, 2011) cnic 2.5.6c (July 12, 2011)
=========================================================
   Fixes
   -----
   1. Problem: Not compiling on 3.0.0 kernel.

      Cause: Makefile not recognizing the 3.0.x kernel

      Change: Modified Makefile and sync'ed with upstream drivers.

      Impact: None.

bnx2 v2.1.10c (July 1, 2011)
============================
   Fixes
   -----
   1. Problem: Not compiling on older kernels (such as RHEL5.4) and newer
               kernels (such as 2.6.36)

      Cause: Problems with compatibility code.

      Change: Fixed compatibility code.

      Impact: None.

bnx2 v2.1.10b (June 30, 2011)
============================
   Enhancements
   ------------
   1. Change: Added more complete MCP dump during error conditions.

      Impact: None.

   2. Change: Modified driver messages slightly to match upstream format
              (by using netdev_printk, netdev_err, etc).

      Impact: None.

   Fixes
   -----
   1. Problem: Not reading iSCSI license on 570x devices reliably.

      Cause: We were reading from the CP scratch pad before the CP firmware
             is loaded.

      Change: Read from MCP shmem location instead.

      Impact: 1G iSCSI on bnx2 devices.

cnic 2.5.6b (June 30, 2011)
============================
   1. Problem: (CQ56522, CQ56259) Unable to connect to iSCSI target, bnx2x
               firmware assert during iSCSI connection

      Cause: iSCSI L2 ring CID has been changed in bnx2x 1.70.14.  uIP is
             using a hardcoded value of 0x11.

      Change: cnic now passes the CID to uIP.

      Impact: iSCSI on bnx2x devices.

   2. Problem: (CQ56230) Cannot compile on some 32-bit systems.

      Cause: Passing 64-bit NULL pointer as 32-bit 0 dma_addr_t value.

      Change: Use 0 instead of NULL for dma_addr_t values.

      Impact: None.

cnic 2.5.5b (June 22, 2011)
============================
   Enhancements
   ------------
   1. Change: Added WWN info to cnic_eth_dev.  This is a temporary solution
              until ndo_fcoe_get_wwn() is implemented.

      Impact: None.

bnx2 v2.1.9b (June 22, 2011)
============================
   Enhancements
   ------------
   1. Change: Added del_timer_sync() in bnx2_remove_one() from upstream
              commit 8333a46ad3877485e4d67ef499c6dda36bfd1f9a. See
              ChangeLog for details.
   
      Impact: None.

bnx2 v2.1.8c (June 16, 2011)
============================
   Enhancements
   ------------
   1. Change: In ESX, bnx2 will setup int mode during .probe time.
              However, the dev->name will be finalized only when
              pci_announce_device is done. So, we assign irq->name
              in bnx2_request_irq instead of in bnx2_setup_int_mode.
   
      Impact: ESX only.

cnic 2.5.4b (June 1, 2011)
============================
   Fixes
   -----
   1. Problem: (CQ55915) iSCSI does not connect on 57800 in 4-port mode.

      Cause: cl_qzone_id was wrong on the 3rd and 4th port.  uIP also has
             some problems determining 4-port mode.

      Change: Fixed the QZONE_ID macro.

      Impact: bnx2x iSCSI.

bnx2 2.1.8b (June 1, 2011)
============================
   Fixes
   -----
   1. Problem: (CQ55422) NCSI firmware version displayed backwards on PPC.

      Cause: Endian bug when reading the data from shared memory.

      Change: Fixed byte swapping issue.

      Impact: None.

   2. Problem: bnx2 does not compile on some PPC distros.

      Cause: pci_enable_pcie_error_reporting() not properly defined in some
             distros.

      Cause: Added #ifdef to prevent compiling
             pci_enable_pcie_error_reporting() on PPC since it uses EEH
             instead of AER.

      Impact: None.

cnic 2.5.3b (May 24, 2011)
============================
   Enhancements
   ------------
   1. Change: Updated to FW 7.0.18 HSI.

      Impact: iSCSI and FCoE on bnx2x.

bnx2 2.1.7b (May 24, 2011)
============================
   Enhancements
   ------------
   1. Change: Added register read write functions for VMWare gdb

      Impact: None.

   2. Change: Fixed compile issues on VMWare by resolving KWQ symbol
              conflicts between netq code and cnic code.

      Impact: None.

cnic 2.5.2b (April 21, 2011)
============================
   Enhancements
   ------------
   1. Change: Updated 2.4.2b cnic to T7.0.

      Impact: iSCSI and FCoE on bnx2x.

cnic 2.4.5b (May 16, 2011)
==========================
   Enhancements
   ------------
   1. Change: Check CFC delete error code during completion.  If it is set,
              do not reuse the CID.  This change is only compatible with
              bnx2x 1.64.30 or newer.

      Impact: iSCSI and FCoE.

cnic 2.4.4b (May 04, 2011)
==========================
   Fixes
   -----
   1. Problem: (CQ54938) iSCSI timeout during async logout.

      Cause: TCP reset request may not complete if there is a race with
             firmware receiving a remote RST.

      Change: Added code to handle TCP reset racing with remote RST and
              TCP close racing with remote FIN.

      Impact: iSCSI

cnic 2.4.3b (April 28, 2011)
============================
   Fixes
   -----
   1. Problem: cnic may lose interrupts after processing 64 kcq entries.

      Cause: The driver handles a maximum of 64 entries before calling
             the ulp drivers.  If the chip has more entries, the driver
             does not handle the rest but acknowledges the latest
             status block index.

      Change: Changed the logic to keep looping until all kcq entries
              are handled.

      Impact: iSCSI and FCoE on all devices.
   
cnic 2.4.2b (April 21, 2011)
============================
   Fixes
   -----
   1. Problem: (CQ54715, CQ54717) XSEMI parity error detected during iSCSI
               login on 57712 in NPAR mode.

      Cause: Statistic counter ID greater than MAX_STAT_COUNTER_ID_E2 in
             client init data for iSCSI L2 ring.

      Change: Check client ID against MAX_STAT_COUNTER_ID_EXX before enabling
              statistics.

      Impact: iSCSI on bnx2x.

cnic 2.4.1d (April 14, 2011)
============================
   Enhancements
   ------------
   1. Change: Added silent VLAN 0 removal on iSCSI ring.

      Impact: iSCSI on bnx2x.

cnic 2.4.1c (April 11, 2011)
============================
   Fixes
   -----
   1. Problem: (CQ49586) iSCSI reboot test fails after a few iterations.

      Cause: TCP port 60000 is used every time during boot.  During reset,
             the TCP connection is never terminated so using the same port
             to connect to the target during reboot will not work.

      Change: Added randomization of the first TCP port to use.

      Impact: iSCSI.

bnx2 v2.1.6b (April 6, 2011)
============================
   Enhancements
   ------------
   1. Change: Get iSCSI license information to prevent cnic from registering
              if there is no license.  This will make it consistent with 10G
              behavior.

      Impact: iSCSI only.

cnic 2.4.1b (April 6, 2011)
===========================
   Fixes
   -----
   1. Problem: (CQ53236) FCoE HBA not functional after reloading bnx2x.

      Cause: In some distros, NETDEV_UP can happen immediately after
             NETDEV_REGISTER while bnx2x module is still in init state.
             At this time, cnic will not be able to symbol_get() from
             bnx2x, preventing the cnic from registering.

      Change: Check all events, and we should be able to catch NETDEV_CHANGE
              abd register cnic.

      Impact: iSCSI and FCoE.

   Enhancements
   ------------
   1. Change: Updated 10G HSI to firmware 6.4.32 (bnx2x 1.64.23)

      Impact: iSCSI and FCoE.

cnic 2.4.0b (Mar 29, 2011)
==========================
   Enhancements
   ------------
   1. Change: Updated cnic to with with bnx2x 1.70.x and added support
              for 578xx devices.

      Impact: iSCSI and FCoE.

bnx2 v2.1.5d (Feb 28, 2011) cnic 2.3.5d (Feb 28, 2011)
======================================================
   Fixes
   -----
   1. Problem: (CQ53174) iSCSI detected conn error and ping timeout.

      Cause: Race condition between cnic driver and hardware DMA'ing a
             new status block with new iSCSI events.  The bug was
             introduced when adding FCoE support.

      Change: 1. Add proper memory barrier after reading status block.
              2. After servicing FCoE EQ, we must loop back and check the
                 iSCSI EQ again because we may have a newer status block
                 index that is read after servicing the iSCSI EQ.

      Impact: 57712 iSCSI and FCoE.

bnx2 v2.1.5c (Feb 15, 2011) cnic 2.3.5c (Feb 15, 2011)
======================================================
   Enhancements
   ------------
   1. Change: Updated 5709 firmware to 6.2.1a, with netq fixes and iSCSI
              performance regression fixes.

      Impact: 5709.

bnx2 v2.1.5b (Feb 08, 2011) cnic 2.3.5b (Feb 08, 2011)
======================================================
   Fixes
   -----
   1. Problem: iSCSI does not connect in DCB environment.

      Cause: iSCSI packets are tagged with the wrong ethertype.

      Change: Added initialization of xstorm's reserved_vlan_type field.

      Impact: bnx2x iSCSI.

bnx2 v2.1.4h (Jan 27, 2011) cnic 2.3.4h (Jan 27, 2011)
======================================================

   Enhancements
   ------------
   1. Change: Ported T6.4 HSI changes to support iSCSI.

      Impact: bnx2x iSCSI.

   2. Change: Fixed endian bug in setting up page table addresses.

      Impact: iSCSI.

bnx2 v2.1.4g (Jan 20, 2011) cnic 2.3.4g (Jan 20, 2011)
=========================================================

   Enhancements
   ------------
   1. Change: Removed shared mem logic to read iSCSI and FCoE info.
              This logic is now in the bnx2x driver.

      Impact: iSCSI and FCoE on bnx2x.

   2. Change: Removed FCoE support on 57711.  This is no longer supported
              by the HSI.

      Impact: None.

bnx2 v2.1.4b (Jan 05, 2011) cnic 2.3.4b (Jan 05, 2011)
=========================================================

   Enhancements
   ------------
   1. Change: Merged with bnx2 2.0.22b.

bnx2 v2.1.3b (Dec 22, 2010) cnic 2.3.3b (Dec 22, 2010)
=========================================================

   Enhancements
   ------------
   1. Change: Merged with bnx2 2.0.21b.

bnx2 v2.1.2f (Dec 13, 2010) cnic 2.3.2f (Dec 13, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Added NPAR FCoE offload checking.

      Impact: FCoE.

bnx2 v2.1.2c (Oct 28, 2010) cnic 2.3.2c (Oct 28, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Updated cnic to the latest 6.4.9 HSI.

      Impact: bnx2x iSCSI and FCoE.

bnx2 v2.1.2b (Oct 12, 2010) cnic 2.3.2b (Oct 12, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Updated cnic to the latest 6.4.7 HSI.

      Impact: bnx2x iSCSI - requires bnx2x 1.64.03 or above.

bnx2 v2.1.1b (Sep 28, 2010) cnic 2.3.1b (Sep 28, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Updated cnic to the latest 6.4.x HSI.

      Impact: bnx2x iSCSI - requires bnx2x 1.64.02 or above.

bnx2 v2.0.23b (Feb 01, 2011) cnic v2.2.13b (Feb 01, 2011)
=========================================================
   Fixes
   -----
   1. Problem: EEH errors on PPC when loading bnx2i

      Cause: KWQ page tables set up in wrong endian order, causing EEH
             errors when sending the first KWQ message.

      Change: Fixes page tables endian order.

      Impact: PPC only.

bnx2 v2.0.22f (Jan 18, 2011) cnic v2.2.12f (Jan 18, 2011)
=========================================================
   Enhancements
   ------------
   1. Prevent AER error messages on PPC.  PPC does not support AER.

      Impact: 5709 only.

   2. Integrated with bnx2x 1.62.10.

      Impact: bnx2x iSCSI only.

bnx2 v2.0.22e (Jan 12, 2011)
=========================================================
   Fixes
   -----
   1.  Problem: change MTU would fail for the CNIC IRQ.

       Cause:   Mismatched module IDs for request/free IRQ.

       Change:  Masquerade as CNIC when cnic ops are called from bnx2.

       Impact:  ESX only.

bnx2 v2.0.22d (Jan 11, 2011) cnic v2.2.12d (Jan 11, 2011)
=========================================================
   Fixes
   -----
   1. Problem: NetQueue would not properly allocate RX queue

      Cause: BNX2_NETQ_HW_OPENED bit was not properly set.

      Change: When the NetQueue device is openned properly set the
              BNX2_NETQ_HW_OPENED bit in the netq_flags field.

      Impact: ESX NetQueue

   2. Problem: NetQueue could possibly get out of sync with the uppper
               layers

      Cause: The queue cleanup code between the driver and upper layer
             is not synchronized

      Change: Introduce the NetQueue lock to synchronize the cleaning
              of the queues between the vmkernel and the bnx2 driver.

      Impact: ESX NetQueue

   3. Problem: iSCSI may not work if multi-function is disabled in NPAR NICs.

      Cause: Bug in logic in detecting NPAR mode.

      Change: Offload bit should not be checked if iSCSI MAC address is invalid.

      Impact: iSCSI on 57712 NPAR NIC.

bnx2 v2.0.22c (Jan 6, 2011) cnic 2.2.12c (Jan 6, 2011)
=========================================================
   Enhancements
   ------------
   1. Change: Updated to 6.2.1a firmware for 5709.  It has fixes for
              CQ51953 (ESX netqueue issue) and CQ51894 (iSCSI performance).

      Impact: 5709 iSCSI and L2.

bnx2 v2.0.22b (Jan 4, 2011) cnic 2.2.12b (Jan 4, 2011)
=========================================================
   Enhancements
   ------------
   1. Change: Send netlink IF_DOWN message during cnic_unregister_device().
              This fixes the problem of bnx2i referencing freed hba when we
              used to send the netlink message during cnic_unregister_driver().

      Impact: iSCSI.

   2. Change: Upstream fix for memory leak in cnic_alloc_uio_rings() when
              we cannot allocate all the memory.

      Impact: None.

   3. Change: Upstream fix to remove flush_scheduled_work() since it is
              obsolete.

      Impact: None.

   4. Change: Do not allow iSCSI on bnx2x devices in MF mode.  The
              hardware does not yet support it.

      Impact: iSCSI.

   Fixes
   -----
   1. Problem: SPQ RAMROD type field does not consistently contain the
               function ID.

      Change: Fixed in cnic_submit_kwqe_16() for HSI 6.0 and above.

      Impact: iSCSI in NPAR mode.

bnx2 v2.0.21b (Dec 21, 2010) cnic 2.2.11b (Dec 21, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Call cm_connect_complete() when an invalid path_response
              netlink message is received.  This will speed up iscsid in
              disconnecting the connection.  This helps to resolve
              CQ49665.

      Impact: iSCSI.

bnx2 v2.0.20g (Dec 17, 2010) cnic 2.2.10g (Dec 17, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ51766) cnic driver panics in cnic_service_bnx2() during
               iscsid restart.

      Cause: Referencing the cp->kcq1 pointer before checking that the device
             is up.

      Change: Fixed logic so that the cp->kcq1 pointer will only be
              refernced after checking the device is up.

      Impact: iSCSI.

   Enhancements
   ------------
   1. Change: Added retry logic in iscsi_nl_send_msg() to retry netlink
              messages to userspace.

      Impact: iSCSI.

bnx2 v2.0.20f (Dec 09, 2010) cnic 2.2.10f (Dec 09, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ51544) Unable to connect to iSCSI targets on 57712 NPAR
               LOMs with NPAR disabled.

      Cause: ff:ff:ff:ff:ff:ff iSCSI MAC address was used in this case.

      Change: Add code to detect invalid MAC address and use port MAC address
              instead.  That's the only to determine NPAR is disabled.

      Impact: 57712 iSCSI.
 
   2. Problem: MTU change in INTA mode crashes occasionally.

      Cause: Status block may be accessed if INTA is shared with another
             device during reset.  There is a short period that the status
             block is freed.

      Change: Free IRQ before freeing status block.

      Impact: bnx2 MTU change/ring size change.

   3. Problem: Heap corruption reported by VMWare.

      Cause: list_del() is called after kfree() in OOO code.

      Fix: call list_del() before kfree().

      Impact: iSCSI OOO.

bnx2 v2.0.20e (Dec 06, 2010) cnic 2.2.10e (Dec 06, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Adjusted hc timeout for EQ to use the T6.0 value of 4.  This
              will match T5.x HC timeout values.

      Impact: 10G iSCSI only.

   2. Change: Minor changes to match upstream code.

      Impact: None.

bnx2 v2.0.20d (Nov 16, 2010) cnic 2.2.10d (Nov 16, 2010)
=========================================================
   Fixes
   -----
   1. Problem: VMware NetQueue not working properly on 5709.

      Cause: HSI mismatch.

      Change: Updated HSI to match T6.0 bnx2 firmware.

      Impact: NetQueue on 5709.

   Enhancements
   ------------
   1. Change: Adjusted kernel compatibility code to compile on RHEL5.6.

      Impact: bnx2 and cnic.

bnx2 v2.0.20c (Oct 28, 2010) cnic 2.2.10c (Oct 28, 2010)
=========================================================
   Fixes
   -----
   1. Problem: NMI occurs during repeated load/unload of bnx2 driver on
               5709.

      Cause: The 5709 chip's DMA block wasn't stopped properly before reset.

      Change: Fixed by clearing DMA_ENABLE in NEW_CORE_CTL register and
              polling for pending bus transactions to stop.

      Impact: 5709.

   Enhancements
   ------------
   1. Change: Update 5706/5708/5709 firmware to 6.2.1.

      Impact: All 1G devices.

   2. Change: Fixed one circular lock dependency issue with bnx2i when making
              up call to send iSCSI NL message.

      Impact: None.

bnx2 v2.0.20b (Oct 13, 2010) cnic 2.2.10b (Oct 13, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ49481) pci_enable_pcie_error_reporting failed on
               5706 and 5709.

      Cause: AER not supported on non-PCIE devices.

      Change: Enable AER only on PCIE devices (5709).

      Impact: None.

   Enhancements
   ------------
   1. Change: (CQ49858) Support KVM pass-through mode by eliminating
              config cycles to non-standard PCI registers
              (PCICFG_MISC_CONFIG, PCICFG_REG_WINDOW*).

      Impact: All chips.

bnx2 v2.0.18c (Sep 13, 2010) cnic 2.2.6c (Sep 13, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ49832) bnx2 flow control not working

      Cause: Mistakenly disabled in firmware in 2.0.17j to fix CQ46393.

      Change: Re-enabled RV2P flow control with additional fixes to
              for a number of odd flow control issues.  New firmware
              versions are 6.0.15 for 5706/5708 and 6.0.17 for 5709.

      Impact: 5706/5708/5709.

   Enhancements
   ------------
   1. Change: Added zeroing of the iSCSI L2 ring's RX BD page to help
              signal ring shutdown to uIP.

      Impact: iSCSI.

   2. Change: Fix compile issues on 2.6.36 kernel.

      Impact: None.

bnx2 v2.0.18b (Sep 02, 2010) cnic 2.2.6b (Sep 02, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Slightly improve the cnic Netlink fix in cnic 2.2.5k.

      Impact: iSCSI.

bnx2 v2.0.17l (Aug 19, 2010) cnic 2.2.5l (Aug 19, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ49502) - bnx2x_panic_dump doing DHCP and Data/Header Digest

      Cause: A mismatch was found in the txbd where the hw prod idx did not
             match the sw prod idx (via the vlan_id field).  The problem will
             show when uIP restarts without cnic reload.  Since uIP restarted,
             it has lost all previous history about the uio ring.

      Change: Added cnic_shutdown_rings to the uio_close path so whenever
              uio_open is called from uIP, the rings will start off fresh.
     
      Impact: 570X/5771X iSCSI.

   2. Problem: (CQ49211) Connection via bnx2i path fails in SuSE 11 SP1

      Cause: For 5708/09, the previous firmware set did not take the l2 frame
             header length into account in the placement filter.

      Change: Updated to 5706/08 fw 6.0.14 and 5709 fw 6.0.16 which addresses
              this issue.
     
      Impact: 570X iSCSI.
    

bnx2 v2.0.17k (Aug 18, 2010) cnic 2.2.5k (Aug 18, 2010)
=========================================================
   Fixes
   -----
   1. Problem: iSCSI sessions do not recover when running under
               heavy stress conditions with the socket layer.

      Cause: The NetLink buffer would get congested, so that the response
             to the PATH_UPDATE back to uIP would not be delivered.

      Change: Use CNIC to throttle the number of outstanding PATH_REQ's
              to uIP, easing the congestion on the Netlink buffer.

      Impact: 570X/5771X iSCSI.

bnx2 v2.0.17j (Aug 15, 2010) cnic 2.2.5j (Aug 15, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ49395) Session recovery occurs during heavy traffic.

      Cause: The mapping of the 10g hw context id to l5 cid didn't consider
             the port/vfid.

      Change: Fixed the 10g hw context id to l5 cid mapping in TCP OOO
     
      Impact: 5771X iSCSI.

   2. Problem: (CQ49111) System freezes when unloading bnx2x drivers while
               having active sessions.

      Cause: The iro_arr was not initialized before deferencing which led to
             a kernel panic.  This is caused by a race condition between uIP
             and cnic.

      Change: Moved the initialization of the iro_arr to before uIP can call
              uio open.

      Impact: 5771X iSCSI.

   3. Problem: (CQ49211) 5708/09 Connection via bnx2i path fails SuSE 11 sp1

      Cause: For 5709, the fast coalescing algorithm had a bug in the fw.

      Change: Updated 5709 MIPS firmware to 6.0.14 which contains a fix for
              this issue.

      Impact: 5709 iSCSI.

   4. Problem: (CQ46393) 5706/08/09 NC-SI Traffic Stops After Host Kernel Panic

      Cause: RV2P firmware was set to drop input packets at a rate which is
             slower than input line rate when the host stops posting buffers.
             This has caused the rxp ftq to backup which eventually led to the
             rxp ftq hw to assert PAUSE and flood the network.

      Change: RV2P firmware was modified to disable any waiting before dropping
              the input packet when the host doesn't post buffers.

      Impact: 5706/08/09.


bnx2 v2.0.17i (Aug 09, 2010) cnic 2.2.5i (Aug 09, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ49159) 57710 firmware asserts running disktest.

      Cause: CSTORM memory corruption.

      Change: Do not initialize and use the FCoE EQ on 57710.  The memory
              offsets for the FCoE EQ ring are not defined on 57710.

      Impact: 57710 iSCSI.

   2. Problem: (CQ49271) Soft lockup during ifup/ifdown test with active iSCSI
               connections.

      Cause: rtnl_lock may have a circular dependency with another filesystem
             mutex during uio_close().

      Change: Removed rtnl_lock() in cnic_uio_close().

      Impact: All iSCSI.

bnx2 v2.0.17h (Aug 03, 2010) cnic 2.2.5h (Aug 02, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Enabled new RV2P flow control on all bnx2 devices.

      Impact: All bnx2 devices.

   2. Change: Suppressed "OOO CQE is empty" kernel message.

      Impact: None.

bnx2 v2.0.17g (Aug 02, 2010) cnic 2.2.5g (Aug 02, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ49152) cnic driver crashes during iscsid restart.

      Cause: cnic_wq destroyed while cnic_delete_task() is still queued
             in the workqueue.

      Change: Call destroy_workqueue() after cnic_release() which waits
              for the cnic_delete_task() to finish.

      Impact: 10G iSCSI.

bnx2 v2.0.17f (July 30, 2010) cnic 2.2.5f (July 30, 2010)
=========================================================
   Fixes
   -----
   1. Problem: iSCSI license not read correctly on 57712 in NIC partitioning
               mode.

      Cause: Missing NIC partitioning license logic.

      Change: Added NIC partitioning license logic.

      Impact: 10G iSCSI.

   Enhancements
   ------------
   1. Change: Updated 5709 firmware to 6.0.13.  The new 5709 firmware
              has additional rx and tx performance improvements.

      Impact: 5709.

bnx2 v2.0.17e (July 29, 2010) cnic 2.2.5e (July 29, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ49117, CQ49111) Soft locup when unloading bnx2x with cnic
               and bnx2fc/bnx2i loaded.

      Cause: cnic_cm_stop_bnx2x_hw() thread under rtnl_lock() and pci_bus_sem
             has to wait for cnic_delete_task() to finish the 2-second wait
             and CFC DELETE of every FCoE or iSCSI connection.  There may
             be work structs scheduled on the common workqueue ahead of
             cnic_delete_task() that require the same semaphores, leading
             to the soft lockup.

      Change: Use a dedicated workqueue for cnic_delete_task().

      Impact: 10G iSCSI and FCoE.

   2. Problem: (CQ49113) Compilation error with bnx2x 1.60.30.
               (CQ48828) lediag fails with cnic loaded.

      Cause: license_key structure changed to use all 32-bit fields.  This
             change is to fix CQ48828 (lediag fails with cnic loaded).
             16-bit access causes lediag failure.

      Change: Made corresponding change to read 32-bit values for the
              iSCSI license.

      Impact: 10G iSCSI.

   3. Problem: (CQ49097) cnic panics when loading on 5708.

      Cause: The driver uses NULL OOO ring pointers to initialize OOO
             for 5708.

      Change: Skip OOO completely on 5708.

      Impact: bnx2 iSCSI.

bnx2 v2.0.17d (July 28, 2010) cnic 2.2.5d (July 28, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ49071) Soft lockup during system shutdown after logging
               in to 10G iSCSI sessions.

      Cause: This was introduced in 2.2.5c when fixing CQ49003.
             flush_scheduled_work() can deadlock because we're
             holding rtnl_lock and linkwatch_event may be on the
             workqueue.

      Change: Fixed by using flags to wait for the cnic_delete_task()
              to finish.

      Impact: 10G iSCSI.

   2. Problem: cnic driver does not load on 5708 devices.

      Cause: Bug in driver that skips devices without OOO support.

      Change: OOO setup has been changed so that cnic initialization will
              continue even if OOO fails for whatever reason on all chips.

      Impact: iSCSI.

   Enhancements
   ------------
   1. Change: Updated 5708 firmware to 6.0.11 and 5709 firmware to
              6.0.12.  The new 5709 firmware fixes small packet rx
              performance issue.  Some adiitional fixes for iSCSI
              and OOO.

      Impact: All bnx2 chips.

bnx2 v2.0.17c (July 23, 2010) cnic 2.2.5c (July 23, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ49003) Panic in cnic_free_bnx2x_conn_resc() during
               ifdown with many 10G iSCSI active sessions.

      Cause: cancel_work_sync() is not available in RHEL5.x kernels to
             wait for cnic_delete_task() to finish before freeing
             the device's data structures (in particular the csk table).

      Change: Use flush_scheduled_work() to wait instead.

      Impact: 10G iSCSI on older kernels (e.g. RHEL5.x)

   Enhancements
   ------------
   1. Change: Added AER (Advanced Error Reporting) on bnx2.

      Impact: None.

bnx2 v2.0.17b (July 20, 2010) cnic 2.2.5b (July 20, 2010)
=========================================================
   Fixes
   -----
   1. Problem: Still seeing uio_release panics during ifup/ifdown test.

      Cause: UIO device unregistered prematurely.

      Change: Do not unregister UIO devices until rmmod.

      Impact: iSCSI.

   Enhancements
   ------------
   1. Change: Various upstream patches.  Please see ChangeLog for details.
 
bnx2 v2.0.16d (July 14, 2010) cnic 2.2.4d (July 14, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ44916) Unload bnx2/bnx2x fails after connecting to
               iSCSI targets.

      Cause: UIO device deleted before userspace has closed the device,
             causing various failures including kernel panic.

      Change: Separated UIO structure from cnic_dev structure so that
              we can wait until UIO is closed before unregister and deleting
              UIO.

      Impact: iSCSI. This change should have possitive impact on ifup/ifdown,
              MTU change/selftest/hotplug/etc with active iSCSI sessions.

   Enhancements
   ------------
   1. Change: Allocate the actual number of MSI-X vectors instead of always
              9.  Also, keep trying if the number of vectors is less than
              the desired number.

      Impact: 5709 networking and iSCSI.

bnx2 v2.0.16c (July 12, 2010) cnic 2.2.4c (July 12, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Added VLAN_TAG_PRESENT to distinguish between physical and
              VLAN netevents in cnic.

      Impact: FCoE.

bnx2 v2.0.16b (July 8, 2010) cnic 2.2.4b (July 8, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ48753) cnic will not compile with bnx2x 1.60.27.

      Cause: IGU symbols not defined without ELINK_DEBUG defined.

      Change: Added ELINK_DEBUG.

      Impact: None.

   2. Problem: (CQ48717) Kernel panic in bnx2x during ifdown with active iSCSI
               sessions.

      Cause: uio_close() is called after the device is already down.  bnx2x
             will crash when we try to shutdown the iSCSI ring.

      Change: Shutdown the iSCSI ring even if uio_close() is not called in
              the shutdown path.

      Impact: 10G iSCSI.

   Enhancements
   ------------
   1. Change: Always run in MSI-X mode on 5709.

      Impact: 5709.

   2. Change: Added wait of 2 seconds when sending PATH_REQ if UIO has not
              been opened yet.  This improves the liklihood of login success
              during the first login if using older iscsid.

      Impact: iSCSI.

bnx2 v2.0.15k (July 1, 2010) cnic 2.2.3k (July 1, 2010)
=========================================================
   Fixes
   -----
   1. Problem: Compile problems on various older kernels.

      Cause: pci_save_state()/pci_restore_state incompatibility in older
             kernel.  DECLARE_PCI_UNMAP_ADDR() caused dma mapping
             field to be undefined on kernels not using IOMMU.

      Change: Do not use pci_save_state()/pci_restore_state() on older
              kernels.  Use dma_addr_t to declare mapping fields.

      Impact: None.

bnx2 v2.0.15j (June 30, 2010) cnic 2.2.3j (June 30, 2010)
=========================================================
   Fixes
   -----
   1. Problem: bnx2x firmware asserts if cnic is loaded on 57711E (MF)
               functions 2 and higher and the device is brought up.
 
      Cause: Statistics for iSCSI ring not implemented, casuing firmware to
             assert when the iSCSI ring is initialized.

      Change: Do not enable statistics if the clien ID is bigger than
              MAX_STAT_COUNTER_ID.

      Impact: bnx2x iSCSI on 57711E.

   2. Problem: cnic terminations for iSCSI and FCoE connections may panic or
               hang during repeated ifdown/ifup.

      Cause: Data structures may be freed while cnic is still waiting for the
             2 second CFC_DELETE wait time.

      Change: Use cancel_work_sync() to wait for the completion of the
              cnic_delete_task().  Check that the CTX_FL_DELETE_WAIT flag
              has been set before waiting.

      Impact: bnx2x iSCSI and FCoE.

   3. Problem: (CQ48642) Compile errors on older kernels.

      Cause: VMWARE_ESX_DDK_VERSION not defined in Linux.

      Change: Added check for VMKLNX.

      Impatc: None.

bnx2 v2.0.15i (June 30, 2010) cnic 2.2.3i (June 30, 2010)
=========================================================

   Enhancements
   ------------
   1. Change: Added iSCSI out-of-order support.

      Impact: iSCSI.

bnx2 v2.0.15h (June 18, 2010) cnic 2.2.3g (June 10, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Enabled HW RSS indirection table on 5709.

      Impact: RSS on 5709.

   2. Change: Updated to 6.0.10 firmware.

      Impact: all chips.

bnx2 v2.0.15g (June 10, 2010) cnic 2.2.3g (June 10, 2010)
=========================================================
   Enhancements
   ------------
   1. Change: Added FCoE statistics SPQ command.

      Impact: FCoE.

bnx2 v2.0.15f (June 4, 2010) cnic 2.2.3f (June 4, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ46648) CID leaks while running iLAB 5.12 connection closure
               test.

      Cause: Race condition between bnx2i initiated TCP close and an
             asynchronous RESET_COMP from firmware.

      Change: Re-structured cnic code that handles close, abort, and various
              completion events to ensure all scenarios are accounted for
              with no race conditions.

      Impact: All iSCSI connection termination scenarios.

   Enhancements
   ------------
   1. Change: Added host iSCSI IP address to the cnic_dev structure so that
              bnx2i can report it to sysfs.  This is needed for iSCSI boot
              during pivot_root.

      Impact: iSCSI boot.

bnx2 v2.0.15e (June 3, 2010) cnic 2.2.3d (June 2, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ48133) bnx2 fails to compile on older 2.6 kernels.

      Cause: PCI MSIX attributes not defined in kernel .h files.

      Change: Added compatibility code.

      Impact: None.

bnx2 v2.0.15d (June 2, 2010) cnic 2.2.3d (June 2, 2010)
=========================================================
   Fixes
   -----
   1. Problem: (CQ47942) rmmod hangs if the device has been opened and closed
               more than once.

      Cause: netif_napi_add() called once during every ->open().
             netif_napi_del() is only called once during rmmod.

      Change: Call netif_napi_del() in ->close().

      Impact: None.

bnx2 v2.0.15c (May 21, 2010) cnic 2.2.3c (April 21, 2010)
=========================================================
   Fixes
   -----
   1. Problem: service iscsid restart on 5709 does not work.

      Cause: Not restarting KWQ correctly due to stale context.

      Change: Fixed by correctly zeroing KWQ/KCQ/RX context
              memory.

      Impact: bnx2 iSCSI.

   2. Problem: iSCSI license not read correctly on 57711E in single
               function mode.

      Cause: Bug in reading the mf_cfg block.

      Change: Bug fixed.

      Change: 57711E iSCSI.

   Enhancements
   ------------
   1. Change: Added GRO support.

      Impact: All devices on kernels supporting GRO.

bnx2 v2.0.15b (May 12, 2010) cnic 2.2.3b (April 12, 2010)
=========================================================
   Fixes
   -----
   1. Problem: iSCSI does not work on 57712.

      Cause: License checking always disabled on 57712.

      Change: Added proper checking for 57712 iSCSI license.

      Impact: None.

   2. Problem: (CQ47360) Compile errors on older kernels not supporting
               UIO and latest iSCSI.

      Cause: New cnic driver will only compile on kernels newer than
             2.6.31 and some selected distros that have the backport.

      Change: Makefile changes to compile cnic only on supported kernels.

      Impact: None.

   Enhancements
   ------------
   1. Change: Changed bnx2_cnic_probe() to bnx2_cnic_probe2() so
              that out-of-tree driver componenets will not inter-
              operate with upstream components.  This avoids
              compatibility problems that often lead to kernel
              crashes.

      Impact: Out-of-tree cnic will not operate with upstream
              L2 drivers and vice versa.

   2. Change: Revert the PRS_REG_NIC_MODE change done in 2.0.11h.  Newer
              bnx2x driver (1.60.18+) do not require this setting.

      Impact: None.

bnx2 v2.0.14b (April 28, 2010) cnic 2.2.2b (April 28, 2010)
============================================================
   Enhancements
   ------------
   1. Change: Added compatibility code for RHEL5.4+ kernels.

      Impact: None.

   2. Change: Added VLAN ID to netdev event callback.

      Impact: bnx2i.

bnx2 v2.0.13b (April 22, 2010) cnic 2.2.1c (April 30, 2010)
============================================================
   Enhancements
   ------------
	Add debug code to dump all KWQE's (RAMROD) posted to 5771x chipset.
	This feature can be enabled/disabled using module parameter, by default
	this feature is disabled. Also a exported function is introduced to
	dump 3 pages worth of KCQE's

bnx2 v2.0.13b (April 22, 2010) cnic 2.2.1b (April 22, 2010)
============================================================
   Enhancements
   ------------
   1. Change: cnic has been updated to be similar to the upstream versions
              using UIO with added T6.0 iSCSI support for 10G and other bug
              fixes.

      Impact: iSCSI now requires UIO, new bnx2i, and bnx2x 1.60.16+.

bnx2 v2.0.11j (April 22, 2010) cnic 1.10.2j (April 22, 2010)
============================================================
   Fixes
   -----
   1. Problem: (CQ47298) Does not compile with bnx2x 1.60.16.

      Cause: cnic_if.h has changed.

      Change: Updated code to be compatible with new cnic_if.h.

      Impact: None.

bnx2 v2.0.11i (April 15, 2010) cnic 1.10.2i (April 15, 2010)
============================================================
   Fixes
   -----
   1. Problem: (RHBZ 511368) Driver loses one MSI-X vector after many hours
               of traffic.

      Cause: Chip timing out on write cycle to the MSI-X mask bit, causing
             the unmask operation to be dropped.

      Change: Increase GRC timeout in register 0x8cc.
              (Same fix from 2.0.8e).

      Impact: bnx2x MSI-X mode.

   2. Problem: (RHBZ 554706) scheduling while atomic warning when bonding and
               VLANs are used with cnic loaded.

      Cause: bond_del_vlans_from_slave() holds bond->lock when calling
             ndo_vlan_rx_register().  bnx2 calls bnx2_netif_stop() to
             stop the rx handling while changing the vlgrp.  The call
             also calls bnx2_cnic_stop() which has many sleeping functions.

      Change: Do not stop cnic when VLANs are changed.  Since there is no
              reset during VLAN change, there is no need to stop cnic.
              (Same fix from 2.0.8e).

      Impact: VLAN and iSCSI.

   3. Problem: (CQ46940) Poor small packet performance on 5709.

      Cause: FTQ discards caused by bottlenecks in firmware.

      Change: Upgraded to 5.0.0.j15 MIPS firmware for 5709.
              (Same fix from 2.0.8c)

      Impact: 5709.

   Enhancements
   ------------
   1. Change: Improved rx performance by prefetching next entry's descriptor
              header and SKB.

      Impact: All chips.

   2. Change: Updated cnic interface to support out-of-order processing.  This
              is needed for bnx2x 1.60.15 but the feature is not available in
              cnic yet.

      Impact: None.

bnx2 v2.0.11h (Mar 29, 2010) cnic 1.10.2h (Mar 29, 2010)
========================================================
   Fixes
   -----
   1. Problem: iSCSI not functional with bnx2x 1.60.11.

      Cause: PRS_REG_NIC_MODE set to 1, causing L2 to receive iSCSI traffic.

      Change: Cleared PRS_REG_NIC_MODE.

      Impact: bnx2x iSCSI.

bnx2 v2.0.11g (Mar 17, 2010) cnic 1.10.2g (Mar 17, 2010)
========================================================
   Enhancements
   ------------
   1. Problem: iSCSI not functional on 57712.

      Cause: Bugs and incomplete support of 57712 in cnic driver.

      Change: Fixed and completed 57712 support.

      Impact: iSCSI.

bnx2 v2.0.11f (Mar 15, 2010) cnic 1.10.2f (Mar 15, 2010)
======================================================
   Fixes
   -----
   1. Change: More 6.0.12 firmware HSI changes (bnx2x 1.60.10).

      Impact: bnx2x iSCSI.

bnx2 v2.0.11e (Mar 9, 2010) cnic 1.10.2e (Mar 9, 2010)
======================================================
   Enhancements
   ------------
   1. Change: Updated to 6.0.12 firmware HSI (bnx2x 1.60.10).

      Impact: bnx2x iSCSI.

bnx2 v2.0.11d (Feb 25, 2010) cnic 1.10.2d (Feb 25, 2010)
========================================================
   Enhancements
   ------------
   1. Change: Fixed shared memory base checking for T6.0 bnx2x HSI.

      Impact: bnx2x iSCSI.

   2. Change: Added new igu status block ID to handle iSCSI status
              block acknowledgement in T6.0 HSI.

      Impact: bnx2x iSCSI.

   3. Change: Allow multiple ethtool speed advertisments when using
              newer ethtool 6.

      Impact: ethtool -s.

   Fixes
   -----
   1. Problem: Statistics 64-bit counters may not be accurate after MTU
               change.

      Cause: Bug missing the carry when summing 64-bit counters.

      Change: Fixed the missing carry.

      Impact: statistics.

bnx2 v2.0.11c (Feb 04, 2010) cnic 1.10.2c (Feb 04, 2010)
========================================================
   Enhancements
   ------------
   2. Change: Added 57712 support in cnic driver.

      Impact: None.
 
bnx2 v2.0.11b (Jan 28, 2010) cnic 1.10.2b (Jan 27, 2010)
========================================================
   Enhancements
   ------------
   1. Change: Saved bnx2 statistics block before MTU change, ring change,
              etc.

      Impact: bnx2 statistics.

bnx2 v2.0.10b (Jan 12, 2010) cnic 1.10.1b (Jan 12, 2010)
========================================================
   Enhancements
   ------------
   1. Change: Improved cnic's MTU change/reset logic to fix multiple problems
              in VMWare.

      Impact: iSCSI.

   2. Change: Converted to bnx2x T6.0 HSI.

      Impact: bnx2x iSCSI.
 
bnx2 v2.0.8e (April 13, 2010) cnic 1.9.13b (Dec 16, 2009)
=========================================================
   Fixes
   -----
   1. Problem: (RHBZ 511368) Driver loses one MSI-X vector after many hours
               of traffic.

      Cause: Chip timing out on write cycle to the MSI-X mask bit, causing
             the unmask operation to be dropped.

      Change: Increase GRC timeout in register 0x8cc.

      Impact: bnx2x MSI-X mode.

   2. Problem: (RHBZ 554706) scheduling while atomic warning when bonding and
               VLANs are used with cnic loaded.

      Cause: bond_del_vlans_from_slave() holds bond->lock when calling
             ndo_vlan_rx_register().  bnx2 calls bnx2_netif_stop() to
             stop the rx handling while changing the vlgrp.  The call
             also calls bnx2_cnic_stop() which has many sleeping functions.

      Change: Do not stop cnic when VLANs are changed.  Since there is no
              reset during VLAN change, there is no need to stop cnic.

      Impact: VLAN and iSCSI.

bnx2 v2.0.8d (April 02, 2010) cnic 1.9.13b (Dec 16, 2009)
=========================================================
   Enhancements
   ------------
   1. Change: Improved rx performance by prefetching next entry's descriptor
              header and SKB.

      Impact: All chips.

bnx2 v2.0.8c (Mar 31, 2010) cnic 1.9.13b (Dec 16, 2009)
=======================================================
   Fixes
   -----
   1. Problem: (CQ46940) Poor small packet performance on 5709.

      Cause: FTQ discards caused by bottlenecks in firmware.

      Change: Upgraded to 5.0.0.j15 MIPS firmware for 5709.

      Impact: 5709.

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
