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

                    Broadcom BCM570X/BCM577XX/BCM578X 1/10 GigE VBD
                                  For VMware ESX

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

Version 2.74.07 (Sept 05, 2012)
===============================
  Fixes
  =====
    1. Problem: CQ65452 - Connection to VM is lost when 
		removing/adding iSCSI session with heaving 
		traffic.
	Cause:  bnx2i driver didn't cleanup active cmds when
                a iSCSi session is removed. 
	
	Change: Add code logic to cleanup active cmds during
		bnx2i_conn_destroy().
	
	Impact: ESX bnx2i driver. 
	
Version 2.74.06 (Aug 30, 2012)
===============================
  Fixes
  =====
    1. Problem: CQ65410-[BDKL147] [Modified] [PR 857847] 
                PSOD # PF Exception 14 @bnx2i_ep_connect, 
                iscsilinux_ep_connect_extended.
       Cause:   bnx2i driver could still register itself with
                ESX stack even when the cnic driver hasn't
                start up properly.
       Change:  bnx2i should check whether cnic has been 
                start up properly before registration.
       Impact:  All ESX drivers.

Version 2.74.05 (Aug 20, 2012)
===============================
  Enhancements
  ============
    1. Sync'ed with the latest cnic_if.h header file
    2. Make changes made in bnx2i-2.74.04 to be ESX 6.0 specific

Version 2.74.04 (July 20, 2012)
===============================
  Fixes
  =====
    1. Problem: Cont64452 - ESX60:iscsi-SUT PSOD when adding
                iscsi sessions
       Cause:   The PSOD is only occuring on beta builds because the
                DMA'able memory is not associted with a device which
                is being caught by the IOMMU validator.
       Change:  Associate the bnx2i memory with the bnx2x PCI device.
       Impact:  All ESX drivers


Version 2.74.03 (July 3, 2012)
===============================
  Fixes
  =====
    1. Problem: Cont00064273 - PSOD with error messages bnx2i on
                ESX 5.1
       Cause:   The netdev->base_addr was deprecated from the bnx2
                L2 driver.  This is used by bnx2i for the BARn
                io mapping.
       Change:  Changed the iomapping to use the pci_resource_start
                routine dire

  Enhancements
  ============
    1. Backported error_mask1 fix from upstream

Version 2.74.02 (July 2, 2012)
===============================
  Fixes
  =====
    1. Problem: Cont00064367 - BCM5709 (bnx2i) cannot connect 
		to iSCSI targets.
       Cause:   hba->reg_base was not initialized properly. 
       Change:  Make sure to initialize the reg_base.
       Impact:  ESX
 
Enhancements
  ============
    1. Backported error_mask1 fix from upstream

Version 2.74.01 (Jun 27, 2012)
===============================
  Fixes
  =====
    1. Problem: Cont00064273 - PSOD with error messages bnx2i on
                ESX 5.1
       Cause:   The netdev->base_addr was deprecated from the bnx2
                L2 driver.  This is used by bnx2i for the BARn
                io mapping.
       Change:  Changed the iomapping to use the pci_resource_start
                routine directly
       Impact:  All

Version 2.74.00 (June 26, 2012)
==========================
   Enhancements
   ------------
   1. Sync cnic_if.h header file

Version 2.72.10 (Mar. 13, 2012)
==========================
   Enhancements
   ------------
   1. Change: Default MAX MTU support to 9000 for iSCSi offload
              for ESX5.0.  (Approved by VMware)

Version 2.72.9 (Mar. 09, 2012)
==========================
   Enhancements
   ------------
   1. Change: Default MAX MTU support to 1500 for iSCSi offload
              for ESX5.0. 
 
Version 2.72.8 (Feb. 20, 2012)
==========================
   Enhancements
   ------------
   1. Change: Coverity Cleanup

Version 2.72.7 (Feb. 1, 2012)
==========================
  Fixes
  =====
    1. Problem: Cont00061303 - error_mask1 and error_mask2 module
                parameters do not work.
       Cause:   The error_mask overriding mechanism has a bug which
                didn't allow it to work properly.
       Change:  Fixed the bug and also changed the error_mask1/2
                type attribute from int to uint so the MSB of the
                parameters can be set.
       Impact:  All

Version 2.72.6 (Jan. 24, 2012)
==========================
  Fixes
  -----
  1. Problem: CQ55707- ESX41-iSCSI: "syslog display " please submit grc Dump" 
              when running async logout test.
     Cause:   Under heavy loaded scenario, the disconnect completion could
              take longer than the disconnect timeout to get proessed by
              the driver and resulted in erroreous warning. 
     Fix:     set aside these connections and let a separate thread to 
              wait for the completion and process the connection cleanup.
     Impact:  Problem exists since day one and impact all device families
              that support iscsi. 

  2. Problem: CQ60976 - ESX50-iscsi ; Session drop and do not recover after 
              running error recovery test.
     Cause:   Under certain condition, vmkiscsid could call ep_disconnect()
              on the same ep multiple times without ep getting reconnect in
              between. This resulted in bnx2i driver decrement the ofld_conns_active 
              counter erroneously. This causes ulp_stop to remain in the while
              loop forever. 
     Fix:     Add reference counter to keep track ep disconnect calls and
              prevent bnx2i go through ep disconnect mutliple times.
     Impact:  newly introduced from 2.72.5.  

   Enhancements
   ------------
   1. Change: Added compiler hint unlikely() to error path's taken by
              KCQ completion routines.

Version 2.72.5 (Jan. 11, 2012)
==========================
  Fixes
  -----
  1. Problem: BDKL89: PSOD in cnic_cm_abort.
     Cause:   Under extreme condition, the ulp_stop could timeout early
              and allow cnic to clean up all the cnic sockets resources. 
              This leads to cnic to access NULL pointer when bnx2i still 
              tries to cleanup the connections.
     Fix:     Get rid of timeout in ulp_stop and ulp_stop only exit when
              all active connections get cleaned up. 

     Impact:  Problem exists since day one and impact all device families
              that support iscsi. 

   Enhancements
   ------------
   1. Change: Redefined wmb() to use the proper memory barrier
              instruction

   2. Change: Add Jumbo Frame Support for ESX 5.0+ only

Version 2.72.4 (Jan. 04, 2012)
==========================
   Enhancements
   ------------
   1. Change: Update copyright headers to 2012

   2. Sync'ed cnic_if.h header file

Version 2.72.3 (Dec 22, 2011)
======================================================
  Enhancement:
     1. Added extended iSCSi stats support. 

Version 2.72.2 (Nov 21, 2011)
======================================================
  Fixes
  -----
  1. Problem: CQ59844 - ESX 5.0 iSCSI: Server PSOD after running 
              traffic + login/logout and rescaned HBA's.
     Cause:   Periodic rescan could post scsi cmd to bnx2i driver
              when connection is in recovery. The conn and ep state
              pointer could be NULL and deferencing it will lead 
              PSOD. 
     Fix:     Check for NULL pointer before continue to process the
              scsi command.
     Impact:  Problem exists since day one and impact all device
              families that support iscsi. 

Version 2.72.l (Nov 14, 2011)
======================================================
  Initial Branch

Version 2.70.1l (Nov 4, 2011)
======================================================
  Fixes
  -----
  1. Problem: CQ59259 - SUT PSOD when running Traffic on 2 
              functions and running login logout on other 2 
              functions.
     Cause:   Unexpected SCSI cmd is posted to driver during
              login phase and lead to firmware to indicate 
	      wrong opcode rcvd event. This eventually lead to
              race condition where session block and ep disconnect
              step over each other and resulted in PSOD.
      Fix:    Reject unexpected SCSI cmd when ep state is not 
              in EP_STATE_ULP_UPDATE_COMPL state.
      Impact: problem exists since day one and impact all device
              families that support iSCSi. 

Version 2.70.1k (Oct 06, 2011)
======================================================
  Fixes
  -----
   1. Problem: CQ59101 - error messages "unable to allocate iSCSi
               context resources" seen after driver load.
      Cause:   sq_size didn't get setup properly.
      Change:  check sq_size against min/max values allowed.
      Impact:  newly introduced and impact all device families.
  
  Enhancements
  ============
    Add pmtu mismatch counter to sysfs. 

Version 2.70.1j (Oct 05, 2011)
======================================================
  Enhancements
  ============
    Add range / zero value checks to relevant module parameters


Version 2.70.1i (Sept 22, 2011)
======================================================
  Enhancements
  ============
    1.  Remove Jumbo Frame Support

Version 2.70.1h (Sept 13, 2011)
======================================================
  Enhancements
  ============
    1.  Update README.TXT in Caveat section 'iSCSI and FCoE offload
        coexistence (For ESX 5.0 and greater)'
    2.  Removed BCM57840 support

Version 2.70.1g (Aug 16, 2011)
======================================================
  Enhancements
  ============
    1.  Update README.TXT section 'Important information while working
        with Linux iET Targets' on choosing proper SCSISN for ESX 5.0.
    2.  Added versioning to the CNIC ULP structure to help futher
        prevent the mismatching and mixing of cnic/bnx2i/bnx2fc
        drivers.

Version 2.70.1f (July 15, 2011)
======================================================
   Fixes
   -----
    1. Problem: CQ56779 - E3-NPAR iscsi ESX41:Unable to setup an offload 
                iscsi connection when npar is enabled.
       Cause:  bnx2i driver didn't recognize the E3 NPAR device ids. 
       Change: Added checking of E3 NPAR device ids.
       Impact: 578xx device family.

Version 2.70.1e (June 23, 2011)
======================================================
  Enhancements
  ============
    1.  Add stats counters to keep track of failed TASK_CLEANUP requests,
        iSCSI ERROR and TCP ERROR Notification KCQEs
    2.  Force connection cleanup when the system is going down

Version 2.70.1d (June 22, 2011)
======================================================
  Enhancements
  -----
    1.  Update README.TXT with the proper bnx2i text

Version 2.70.1c (May 2, 2011)
======================================================
  Enhancements
  -----
    1.  Add Jumbo Frame Support

Version 2.70.1a.v41.1 (Mar 29, 2011)
======================================================
   Fixes
   -----
   1.  Backported from Linux bnx2i driver to support the new devices
       BCM57800/BCM57810/BCM57840
   2.  Remove BCM57713/BCM57713E


Version 1.9.2c (Mar 22, 2011)
======================================================
   Fixes
   -----
    1. Problem: CQ53805 - ESX41-iSCSI: iscsi sessions stop droping when
               bnx2x load with ooo disabled 
       Cause:   When remote FIN/RST is recived by cnic, it will initiate
               SRC_DEL and TERM_OFLD RAMRODs to reset option-2 state machine.
               If ep_disconnect() is called after cnic goes through option-2
               cleanup, cm_close() and cm_abort() will return -EALREADY to
               indicate L4 connection is already reset and current bnx2i was
               not checking for return status, if cm_close() and cm_abort()
               calls complete with -EALREADY, there will not be any further
               indication from cnic and will cause bnx2i to timeout waiting
               cm_close_cmpl() callback.
       Change:  bnx2i will not wait and proceed with connection upload when
               cm_close() and cm_abort() calls complete with -EALREADY
       Impact:  57710/5771/57711E


Version 1.9.2b.v41.2 (Mar 14, 2011)
======================================================
  Enhancements
  -----
    1.  Add initial support for BCM57800/BCM57810/BCM57840


Version 1.9.2b (Mar. 11, 2011)
==============================
    Fixes
    -----
    1.  Problem: Under a heavy load (ie. powering on VM's from an iSCSI
                 target would cause the system to crash.)

        Cause:  The RQ DB were out of sync between the firmware and the
                driver.

        Fix:    Align the RQ DB strctures to be 64 bytes in both the
                firmware and the driver.


Version 1.9.2a (Mar. 08, 2011)
==============================
    Fixes
    -----
    1.  Problem: Could not connect to iET and the following messages were
                 seen in the vmkernel log:

                 ALERT: LinScsi: SCSILinuxProcessCompletions: Error
                 BytesXferred > Requested Length but
		 HOST_OK/DEVICE_GOOD!vmhba = vmhba36,
		 Driver Name = bnx2i, Requested length = 4, Resid = 116 

        Cause:  Check in the vmkernel fails the command because the
	        vmkernel thinks the number of bytes transfer is greater
		then resid 

        Fix:    Detect this condition and only pass resid is the scsi
	        buffer length  < resid

Version 1.9.1t (Jan. 13, 2011)
==============================
  Enhancements
  ============
    1.  Update copyright headers to 2011

Version 1.9.1s (Jan. 10, 2011)
==============================
  Enhancements
  ============
    1.  Code Review Comments from VMware
        *  backported PR# 515157: [iBFT] Getting host to shutdown
	   takes a many minutes to finish
        *  backported PR#632150 bnx2i does not cleanup behind itself
	*  Remove unnecessary #ifdef's

Version 1.9.1r (Jan. 4, 2011)
==============================
  Enhancements
  ============
    1.  Print the CID and chip CID via sysfs

Version 1.9.1q (Dec. 6, 2010)
==============================
    Fixes
    -----
    1.  Problem: 10G Firmware would panic during a warm reboot with
                 pre-existing iSCSI sessions

        Cause:  cm_abort() was only allowed to be called when the
                ep state is at conn start for 1g.

        Fix:    Allow cm_abort() to be called when the ep state
                is at conn start both both 1g and 10g.  The idea is
                to allow cnic, instead of bnx2i, to decide to do SRC_DEL
                or not based on its own tracking.

Version 1.9.1o (Dec. 1, 2010)
==============================
  Enhancements
  ============
    1.  Expand debug printk to during connection update to 
        include conn_flags and exp_stat_sn for debug purposes.

Version 1.9.1n (Dec. 1, 2010)
==============================
  Enhancements
  ============
    1. Properly bump the BNX2I_SYSFS_VERSION variable

Version 1.9.1m (Nov. 30, 2010)
==============================
  Enhancements
  ============
    1. Increased default maximum sessions supported on 10G devices
        to 128 from 64
    2. Added debug statistics to visualize iSCSI OOO code being executed

Version 1.9.1l (Nov. 3, 2010)
==============================
  Enhancements
  ============
    1. Added OOO(Out-of-Order) support

Version 1.9.1k (Aug 25, 2010)
==============================
    Fixes
    -----
    1.  Problem: Symbol vmk_MemPoolLegacyCreate() is missing with
                 ESX 5.0 DDK Build 291687

        Cause:   vmkMemPool API has changed

        Fix:     Replace vmk_MemPoolLegacyCreate() with the ESX 5.0
	         equivalents.

Version 1.9.1j (Aug 25, 2010)
==============================
    Fixes
    -----
    1.  Problem: Code Doesn't compile on ESX build 291687

        Fix:     1. Backported changes from inbox bnx2i driver so 
	            that the bnx2i can compile


Version 1.9.1i (Aug 12, 2010)
==============================
    Fixes
    -----
    1.  Problem: VMware Code review comments

        Fix:     1.  Update copyright headers to 2010
                 2.  Backport fix for PR 570447 only for ESX5.0 and greater
                 3.  Only expose the ISID for ESX5.0

Version 1.9.1h (Aug 6, 2010)
==============================
    Fixes
    -----
    1.  Problem: Does not compile with VMware ESX 5.0(MN) DDK build #283126

        Cause:   vmkMemPool API has changed

        Fix:     Use the VMware ESX 5.0(MN) DDK build #283126 vmkMemPool API


Version 1.9.1g (Aug 3, 2010)
==============================
    Fixes
    -----
    1.  Problem: Does not compile with VMware ESX 5.0(MN) DDK build #281332

        Cause:   vmkMemPool API has changed

        Fix:     Use the VMware ESX 5.0(MN) DDK build #281332 vmkMemPool API


Version 1.9.1f (July 15, 2010)
==============================
    Fixes
    -----
    1.  Problem: PSOD during boot with a heavily loaded machine.

        Cause:   Cleanup exit routes in hba initialization code path
	         which could cause invalid pointer access,

        Fix:     Fixed via the following:

		    1. 'hba' memory should not be accessed after
                       scsi_host_put() which would have freed the hba
                       memory if host reference drops to '0'
                    2. Also exit hba init code path if memory pool
                       allocation fails


Version 1.9.1e (July 15, 2010)
==============================
    Fixes
    -----
    1.  Problem: VMware PR 570447: Returning BAD_TARGET breaks
                 VMware Pluggable Storage Architecture (PSA) assumptions.

        Cause:   Returning inproper error code.

        Fix:     Returning DID_OK with CC to indicate specific error.

Version 1.9.1d (June 10, 2010)
==============================

  Enhancements
  ============
    1.  Changes to fix bnx2i to compile with the latest ESX 5.0
    
       * Adding RESID for ESX 4.1 compiles
       * vmk_MemPools have been renamed as vmk_MemPoolLegacyAllocPropsq

Version 1.9.1b (May 11, 2010)
==============================

  Enhancements
  ============
    1. Added support for 57712
    2. Updated 577XX doorbell offset to adapt to t6.0 firmware


