Broadcom BNX2 driver version bnx2-2.0.23b for RHEL 5 - IBM System x and BladeCenter

Supported systems:

  • IBM BladeCenter HC10 (7996)
  • IBM BladeCenter HS12 (8014, 8028, 1916)
  • IBM BladeCenter HS21 (8853, 1885, 7995)
  • IBM BladeCenter HS21 XM (7995, 1915)
  • IBM BladeCenter HS22 (7870, 1936, 1911, 7809)
  • IBM BladeCenter HS22V (1949, 7871)
  • IBM BladeCenter HX5 (7873, 7872, 1910, 1909)
  • IBM BladeCenter LS21 (7971)
  • IBM BladeCenter LS22 (7901)
  • IBM BladeCenter LS41 (7972)
  • IBM BladeCenter LS42 (7902)
  • IBM System x3100 (4348)
  • IBM System x3100 M4 (2582)
  • IBM System x3200 M2 (4368, 4367)
  • IBM System x3200 M3 (7327, 7328)
  • IBM System x3250 M2 (4191, 4190, 4194)
  • IBM System x3250 M3 (4251, 4252, 4261)
  • IBM System x3250 M4 (2583)
  • IBM System x3350 (4192, 4193)
  • IBM System x3400 (7973, 7974, 7976, 7975)
  • IBM System x3400 M2 (7836, 7837)
  • IBM System x3400 M3 (7379, 7378)
  • IBM System x3455 (7986, 7941, 7940, 7984)
  • IBM System x3500 (7977)
  • IBM System x3500 M2 (7839)
  • IBM System x3500 M3 (7944, 7380)
  • IBM System x3550 (7978, 1913)
  • IBM System x3550 M2 (7946, 4198)
  • IBM System x3550 M3 (4254, 7944)
  • IBM System x3610 (7942)
  • IBM System x3620 M3 (7376)
  • IBM System x3630 M3 (7377)
  • IBM System x3650 (7979, 1914)
  • IBM System x3650 M2 (7947, 4199)
  • IBM System x3650 M3 (4255, 5454, 7945, 7376)
  • IBM System x3650 NAS (7979)
  • IBM System x3655 (7943, 7985)
  • IBM System x3690 X5 (7192, 7147, 7149, 7148)
  • IBM System x3755 (8877, 7163)
  • IBM System x3755 M3 (7164)
  • IBM System x3850 M2 (7141, 7144, 7233, 7234)
  • IBM System x3850 X5 (7143, 7191, 7146, 7145)
  • IBM System x3950 M2 (7141, 7233, 7234)
  • IBM System x3950 X5 (7143, 7145)
  • IBM System x iDataPlex dx320 server (6388)
  • IBM System x iDataPlex dx340 server (7832, 6389)
  • IBM System x iDataPlex dx360 M2 server (7323, 6380, 7321)
  • IBM System x iDataPlex dx360 M3 server (6391)
  • IBM Smart Business (9233)

Change history

Broadcom Linux bnx2 and 10GigE Virtual Bus Drivers(VBD)

Version 2.0.23b - 03/17/2011


  1. These driver files are the original files from the vendor. They include multiple driver change histories for multiple Linux Operating Systems. Some drivers may or may not pertain to all Linux Operating Systems but are part of this file for references.
  2. This package may or may not contain iSCSI driver support even though there may be mention of iSCSI support in the documentation.

Highlighted Fixes:

  • 1g/10g Mezzanine cards lose TOE capability when BOFM MAC address is applied to card
  • Addressed 10g Linux driver compilation errors on some older vanilla kernels
  • Linux iSCSI - TCP connection erroneously closed
  • 10g Linux driver - MSI-X configuration was not properly cleared when MSI-X was disabled.

Feature Additions:

  • Non-switch dependent NIC Partitioning support added to all components for 57712 based mezzanine cards.
  • BOFM support added for NIC Partitioned devices
  • Added support for Red Hat 5.6, SLES 10 SP4, and SLES 11 SP1

Currently known issues and limitations with Broadcom NetXtreme drivers and devices.

  1. When loading drivers through the PNP (Plug and Play) method, users can occasionally end up loading the RIS drivers accidentally. Generally this occurs when a user is asked to point to the proper driver for the device, and the user selects the folder containing the RIS drivers as the driver for the device. This can result in network connections that fail to communicate across the network, as the NDIS driver will fail to bind to the devices. The most obvious way to identify the problem scenario is to open BACS and look at the network adapters displayed. Adapters that have the RIS drivers installed will be grayed out. Observing the driver loaded for the System Device portion of the Broadcom NetXtreme II devices will show that the RIS driver is loaded. Additionally, attempts to load the drivers using the installer will result in NDIS drivers displaying a yellow bang, as they?re not able to bind to the VBD driver. The easiest way to correct the problem is to run add/remove programs on all installed Broadcom devices, and then re-run the installer.
  2. Network Teaming limitation with iSCSI offload: When iSCSI offload is enabled on Broadcom NetXtreme II NIC's or LOM's, only SLB teaming mode is supported. In order to create other teaming modes like 802.3ad and FEC/GEC, you will need to disable iSCSI offload. You can disable the iSCSI offload by
    1. launching the Broadcom Advanced Control Suite 3 (BACS 3).
    2. select the adapter you want to add to the team
    3. click the configurations tab, extend resource reservations.
    4. Uncheck iSCSI resource.
  3. Restoring the team configuration with static IPv6 addresses may fail. Use either DHCP addresses for team configuration, or restore the team and re-apply the IP address manually if this issue is encountered.
  4. Flow control statistics (MAC Sent X-ON, MAC Sent X-OFF and MAC Rx w/ no Pause Command) are reported incorrectly within BACS for 57710 based adapters. There is no functional impact and device is working as expected.
  5. WoL with NPar: When using Wake on LAN (WoL) with NIC Partitioning, all of the devices that comprise a port must be shut down to cause the WoL configuration to be written to the controller during operating system shutdown. If only a single function is shut down, the WoL configuration might not be written to the controller, and the controller might not wake.
  6. NC-SI with IOMMU: There is a known problem using NC-SI with IOMMU enabled, that can cause link down/up under stress conditions. If this occurs, disabled IOMMU in the BIOS.

Software Compatibility

This release of software supports:

  • BCM5706 NetXtreme II Gigabit Ethernet Adapter
  • BCM5706S NetXtreme II Gigabit Ethernet Adapter
  • BCM5708 NetXtreme II Gigabit Ethernet Adapter
  • BCM5708S NetXtreme II Gigabit Ethernet Adapter
  • BCM5709 NetXtreme II Gigabit Ethernet Adapter
  • BCM5709S NetXtreme II Gigabit Ethernet Adapter
  • BCM57710 NetXtreme II Gigabit Ethernet Adapter
  • BCM57711 NetXtreme II Gigabit Ethernet Adapter
  • BCM57712 NetXtreme II Gigabit Ethernet Adapter

Files included are:

  1. Broadcom bnx2 Linux Driver
  2. Broadcom BCM57710/BCM57711/BCM57711E 10 GigE VBD for Linux
  3. Broadcom NetXtreme II iSCSI Driver For Linux


A. Broadcom bnx2 Linux Driver

Version 2.0.23b - 02/01/2011

Broadcom Corporation
5300 California Avenue, Irvine, CA 92617

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


bnx2 v2.0.23b (Feb 01, 2011) cnic v2.2.13b (Feb 01, 2011)


  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)


  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)


  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.0.12d (Jan 11, 2011)


  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)


  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)


  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.
  5. Change: Removed VLAN_ID from the parameters of ulp_ops->indicate_netevent(). Upstream code no longer uses this parameter.
    Impact: None.


  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)


  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.


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

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


Version 1.62.15 (Feb 10, 2011)


  1. Problem: (CQ52536) Extra bytes might be added in the middle of the payload when a packet with padding after the TCP payload is received, while TPA is enabled.
    Cause: Firmware wrongly places padding bytes on RX SGEs.
    Change: (In FW 6.2.7) Fixed relevant firmware flow.
    Impact: The problem will be exposed only in very rare case in which a device on the network pads the Ethernet packet to longer than 72 bytes.


  1. Request: Use FW 6.2.7
    Change: As requested.

Version 1.62.14 (Feb 03, 2011)


  1. Problem: (CQ52402) In NPAR mode setting some speed via ethtool -s causes device to hang.
    Cause: FW configured with illegal configuration.
    Change: Limit allowed speed to range from 1%-100% of actual line speed.
    Impact: NPAR mode only.

Version 1.62.13 (Feb 01, 2011)


  1. Problem: (CQ52656) In NPAR mode "ethtool -t ethX" does not report error on some partitions while no link.
    Cause: Link is not tested for non PMF partitions.
    Change: Allow link testing for non PMF partitions.
    Impact: NPAR mode only.
  2. Problem: Unresolved bnx2x_invalidate_uc_list symbol on kernels below 2.6.23.
    Cause: Missing #if block preventing the usage of the above function while it's only implemented for kernels above 2.6.23 (including).
    Change: Added a missing #if block.
    Impact: Kernels below 2.6.23.

Version 1.62.12 (Feb 01, 2011)


  1. Problem: (CQ52402) In NPAR mode "ethtool -s ethX speed 0" causes device to hang.
    Cause: FW configured with illegal configuration.
    Change: Do not allow speed 0.
    Impact: NPAR mode only.


  1. Request: Add support for dev_uc_add()/dev_mc_add().
    Change: As requested.

Version 1.62.11 (Jan 24, 2011)


  1. Problem: ifup returned error when device has illegal iSCSI mac.
    Cause: FCoE/iSCSI features were enabled even with illegal mac.
    Change: Disable the features if mac is illegal.
    Impact: 57712 SF mode.
  2. Problem: CQ52212 8073PHY intermittently exhibits signs of disconnected devices upon loading/unloading.
    Cause: Microcontroller and Driver both controlling Xaui Low Power Mode.
    Change: Remove Driver control of Xaui Low Power Mode.
    Impact: 8073 PHY based boards.
  3. Problem: CQ51624 PHY TXONOFF_PWRDN_DIS bit set to "1" instead of default 0 to prevent reset & power down of PHY.
    Cause: When GPIO controls TX Laser on 8727 and 8706, turning off laser will put PHY in low power mode.
    Change: Set TXONOFF_PWRDN_DIS accordingly.
    Impact: 8727PHY and 8706PHY based boards with TX laser controlled by GPIO_0.
  4. Problem: Potential wrong PHY initialization when loading the first function on a port, after another function from this port was unloaded.
    Cause: In this case, the driver won't lock PHY access, which may cause MDC/MDIO collision.
    Change: Initialize the lock flag on the init driver stage, instead of the common and port init stage.
    Impact: Multi-function mode.

Version 1.62.10 (Jan 17, 2011)


  1. Problem: "Statistics sequence counter out of order" strom assert.
    Cause: Race between the LINK_UP event handler and the timer which both are calling the bnx2x_storm_stats_post() thus sending consequent statistics ramrods without waiting for a completion of the first. Therefore FW will read the ramrod data of the second ramrod while handling the first one, which will cause the above assert.
    Change: Prevent the above race.
  2. Problem: (FCoE) There was no licensing for FCoE.
    Cause: Missing FCoE licensing handling code.
    Change: Added the missing code.
    Impact: FCoE only.
  3. Problem: The module date was not updated since 2010/08/01.
    Cause: The date was moved to another source file which did not updated it automatically on submission to the version control system.
    Change: Update the file properties so the version control system will update the date automatically.
    Impact: Introduced in 1.60.32.
  4. Problem: Compilation error on some older vanilla kernels.
    Cause: Improperly handling gso v6 feature by compat.
    Change: Fix handling in bnx2x_compat.h.
    Impact: Introduced in 1.62.06.
  5. Problem: ESX - When there's a single netqueue (num_queues=2), it can never be allocated for RX.
    Cause: When there's a single netqueue it is set aside as an LRO queue, but ESX does not put any queues in the LRO pool.
    Change: Set aside queues 2 and 4 for LRO instead of 1 and 3.
    Impact: ESX only.
  6. Problem: (CQ52276) Unable to bring up device when iSCSI is not allowed.
    Cause: Driver tried to enable feature, but failed due to illegal mac.
    Change: Disable the feature if not allowed.
    Impact: 57712 SF mode. Introduced in 1.62.09.

Version 1.62.09 (Jan 03, 2011)


  1. Problem: All multicast packets were arriving to all L2 clients.
    Cause: All queues were configured to accept all multicast packets in NPAR.
    Change: Fix Rx mode configuration code in bnx2x driver.
    Impact: NPAR only. Introduced in 1.60.09.
  2. Problem: (CQ51731) Kernel paniced after "ethtool -d" test.
    Cause: Registers dump caused MCP SPAD parity error, which caused "close the gates" flow in HW, which in line caused undefined behaviour of the whole system.
    Change: Prevent HW blocks parity attentions during registers dump routine.
  3. Problem: ESX - CNIC 'change MTU' would fail or result in a PSOD.
    Cause: Mismatched module IDs for request/free IRQ.
    Change: Masquerade as CNIC when cnic ops are called form bnx2x.
    Impact: ESX only.
  4. Problem: Possible sending of a spurious MSI-X message after MSI-X is disabled.
    Cause: MSI-X configuration wasn't properly cleared when MSI-X was disabled.
    Change: Properly clear MSI-X configuration.
    Impact: Introduced in 1.60.28.
  5. Problem: (NPAR, FCoE) FCoE MAC wasn't read in NPAR mode.
    Cause: Missing code.
    Change: Add the missing code.
    Impact: FCoE in NPAR mode only.
  6. Problem: (iSCSI) If iSCSI offload is requested in switch dependent MF mode zero MAC would be configured for iSCSI L2 queue.
    Cause: Bug in a driver.
    Change: Prevent the configuration of an illegal MAC.
    Impact: iSCSI in switch dependent mode only.


  1. Request: (CQ51889) Add Common Mode Sense (CMS) enable/disable functionality.
    Change: Adding field 156 to nvm cfg, as well as support in eLink.
    Impact: NVM config and Common Mode Sense capable PHYs.
  2. Request: Add dcbnl implementation supporting the FW DCBX engine.
    Change: As requested.
    Impact: 57712 only.

Version 1.62.08 (Dec 20, 2010)


  1. Problem: (CQ51134) NC-SI functionality dependant on Port initialization Sequence
    Cause: When the driver loads the first port, some PHYs require reset and loading their microcode on both ports. In case NCSI was enabled on the other port, the traffic was stopped since PHY was reset
    Change: Load PHY microcode during common init, only if the PHY microcode wasn't loaded
    Impact: Requires bootcode 6.2.9 to resolve this problem PHY firmware upgrade will require reboot from now on
  2. Request: Increase RX ring size to 512 when using Jumbo Frames
    Change: As requested
    Impact: ESX only
  3. Request: Enable OOO by default and have the OOO ring match in size with a RX ring
    Change: As requested
    Impact: ESX only
  4. Problem: (CQ51367) - BCM84823/84833 activity LED blinks at lower rate on 10G link
    Cause: The activity LED control registers are not configured right
    Change: Enabled activity LED stretch_en bit. Made activity LED blink on source
    Impact: BCM57712 + BCM84823/84833 based boards
  5. Problem: (CQ51413) Driver crashed, when number of queues was set to a value smaller than a default one due to SAFC configuration
    Cause: Broken connection between an SAFC initialization and a memory allocation code
    Change: Fixed the above flaw
    Impact: SAFC only. Introduced in 1.62.06


  1. Request: CQ51710 - Disable CMS (common mode sense) feature in 84823 PHY, as this reduces power consumption and allows a better 10G link stability
    Change: Clear the CMS bit in PHY register in PHY configuration routine
    Impact: BCM84823B based boards
  2. Request: Re-introduce the dropless_fc vmkernel module parameter
    Change: As requested
    Impact: ESX only
  3. Request: BCM8727 Link LED not funtioning properly during BACS LED test
    Change: Not blinking correct link light
    Impact: BCM57712 + BCM8727 based boards


C. Broadcom NetXtreme II iSCSI Driver For Linux

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


Version (Feb 01, 2011)


  1. Problem: Cont00052673 - iLab failed test6_14 - delayed iSCSI response
    Cause: A bug was found in the ep_disconnect routine where the session variable did not get initialized correctly. This bug will cause TCP abortive disconnect to be requested unconditionally.
    Change: Fixed the initialization bug
    Impact: All

Version (Jan 14, 2011)


  1. Problem: Cont00052132 - iSCSI has poor write IOPS at 1K block size
    Cause: A soft lockup for 10s was observed with this and various different I/O size test where as soon as the bh is released, the scsi_next_command routine will trigger and the queue lock will get stuck.
    - Restored all CQE processing back to the cnic tasklet bh and modified the session lock granularity
    - Modified the event coalesce algorithm to include the cmd_cmpl_per_work module param
    Impact: All
  2. Problem: Cont00052131 - Cannot establish solid offload connection to Dell MD3220i target from SLES11sp1 (RHELS is okay)
    Cause: The problem was caused by the deferred CQE processing to workqueue scheme which caused nop timeouts during logouts.
    Change: The new CQE processing scheme no longer uses workqueue.
    Impact: All
  3. Problem: Cont00051479 - bnx2 unable to compile under RH5.6ss3
    Cause: The bnx2i makefile did not accommodate for native RHELS5.6 installations either.
    Change: Modified the bnx2i Makefile which will now examine the ...kernel.../linux/include/version.h file for the corresponding RHEL version that it is compiling against.
    Impact: All


  1. Updated README for Cont00052157 to update the open-iscsi util

Version (Jan 04, 2011)


  1. Problem: Cont00051896 - iSCSI Read throughput underperforms at lower request sizes with higher qdepths for 5771X
    Cause: The new workqueue CQE processing mechanism was not tuned for this scenario
    Change: Various modification has been included for performance optimization
    Impact: All


  1. Feature: Removed the scsi_flush_workqueue call and use a hba workqueue array instead. This eliminates the potential libiscsi softlock that one connection is performing scsi cleanup while the other is undergoing scsi_flush_workqueue.
    Impact: All

Version (Dec 20, 2010)


  1. Problem: Cont00051815 - kernel BUG - logging into EMC NX4
    Cause: This target uncover a timing bug in the CQE processing call in the mtask transmission. The nopin response got processed before the nopout request was returned to the stack. This causes the nopout request to timeout all the time as the nopin responses would never get processed.
    Change: Removed the CQE processing in mtask requests. This is not necessary.
    Impact: All


To view PDF files you must have the latest version of Adobe Acrobat installed on your system.

Supported products

Supported systems


Supported options


Supported operating systems


Applicable countries and regions


Document id:  MIGR-5088043
Last modified:  2011-06-29
Copyright © 2015 IBM Corporation