blob: ba5dd6d443971e38576ea34b8549346602f4d4c8 [file] [log] [blame]
Release Notes
Broadcom bnx2 Linux Driver
Version 2.0.8b
12/16/2009
Broadcom Corporation
5300 California Avenue,
Irvine, CA 92617
Copyright (c) 2004 - 2009 Broadcom Corporation
All rights reserved
bnx2 v2.0.8b (Dec 16, 2009) cnic 1.9.13b (Dec 16, 2009)
=======================================================
Fixes
-----
1. Problem: (CQ44964) RHEL5.4 crashes when bnx2 driver is updated with
out-of-tree version.
Cause: Newer out-of-tree driver's cnic_eth_dev structure has been
updated, making it incompatible with RHEL5.4's cnic driver.
Change: Reverted the structure update for RHEL5.4.
Impact: None.
Enhancements
------------
1. Change: Improved the reset logic to prevent NETDEV WATCHDOG when
TSS is enabled.
Impact: MTU change, ring size change, selftest, etc.
2. Change: Fixed some compiler warnings when compiling bnx2 and cnic
drivers.
Impact: None.
bnx2 v2.0.7b (Dec 7, 2009) cnic 1.9.12b (Dec 7, 2009)
=======================================================
Fixes
-----
1. Problem: (CQ44620) Spurious KCQ entries leading to bnx2x assert.
Cause: Stale status block with old KCQ index after restarting hardware.
Change: Added some additional cleanup and initialization steps including
zeroing the status block.
Impact: None.
Enhancements
------------
1. Change: Updated RV2P P1 for 5709 to 5.0.0.j10 to address a flow control
issue that can lead to context corruption. Flow control
watermarks have also been optimized.
Impact: 5709 flow control.
bnx2 v2.0.6b (Dec 4, 2009) cnic 1.9.11b (Nov 19, 2009)
=======================================================
Fixes
-----
1. Problem: (CQ44801) Unable to compile bnx2 on most 2.6 kernels.
Cause: print_mac() kernel compatibility not defined correctly.
Fix: Simple compatibility fix.
Impact: None.
bnx2 v2.0.5b (Dec 4, 2009) cnic 1.9.11b (Nov 19, 2009)
=======================================================
Enhancements
------------
1. Change: Sync'ed up with latest upstream bnx2 driver. Please see
ChangeLog for details.
Impact: Yes, Linux and VMWare.
bnx2 v1.9.42b (Dec 1, 2009)
=======================================================
Fixes
-----
1. Problem: Compile error against the VMware ESX 4.0 DDK
Cause: vmk_IscsiNetHandle is not defined with the
VMware ESX 4.0 DDK
Change: Added compile flag
Impact: None.
Enhancements
------------
1. Change: Add BMAPILNX ioctl to allow for FW upgrade
Impact: bnx2 VMware ESX 4.0
bnx2 v1.9.41b (Nov 19, 2009) cnic 1.9.11b (Nov 19, 2009)
=======================================================
Fixes
-----
1. Problem: (CQ44617) Compile error on SLES10 and RHEL4 kernels.
Cause: bool not defined on older kernels.
Change: Added compatibility code.
Impact: None.
2. Problem: (CQ42096) iSCSI sessions do not recover after running
selftest/ifdown/etc with max sessions connected.
Cause: cnic_lock mutex has circular dependency, causing deadlock
when iscsid tries to cleanup connections.
Change: Merged in upstream cnic patches to avoid circular
dependency.
Impact: None.
Enhancements
------------
Change: (CQ43088) Changed the firmware version string format.
Impact: None.
bnx2 v1.9.40b (Nov 18, 2009) cnic 1.9.10b (Nov 12, 2009)
=======================================================
Fixes
-----
1. Problem: (CQ44528) Kernel runs out of memory after load/unload bnx2.
Cause: RX SKB buffers were not freed.
Change: Fixed the regression introduced by VMWare development.
Impact: None.
2. Problem: (CQ44399) iLAB 5.10 connection establishment test failure.
Cause: Firmware SYN-ACK handling issue.
Change: Updated firmware to 5.0.0.j6 in bnx2_fw.h and 5.0.0.j9 in
bnx2_fw2.h.
Impact: iSCSI.
Enhancements
------------
Change: (CQ43088) Added VPD-R V0 firmware version string to ethtool -i.
Impact: None.
bnx2 v1.9.39b (Nov 6, 2009) cnic 1.9.10b (Nov 12, 2009)
=======================================================
Fixes
-----
1. Problem: (CQ44470) Kernel panics when bnx2/bnx2x is unloaded with
active iSCSI sessions.
Cause: NETDEV_UNREGISTER will cause bcm570x_* transport to be
destroyed while sessions may still be active.
Change: Use module referencing to prevent bnx2/bnx2x from unloading.
This is a simple interim solution to revert back to the
old behavior. In T6.0, we will migrate to the upstream
driver architecture and network drivers will be able to be
unloaded again.
Impact: None.
Enhancements
------------
Change: Added a short register dump during NETDEV_WATCHDOG.
Impact: None.
bnx2 v1.9.38b (Nov 6, 2009) cnic 1.9.9b (Nov 6, 2009)
=====================================================
Fixes
-----
1. Problem: (CQ44446) cnic panics during 10G iSCSI initialization.
Cause: Recent interface changes introduced this regression.
cnic_service_bnx2x() panics when accessing uninitialized
status block pointer.
Change: Added state checking in cnic_service_bnx2x().
Impact: None.
2. Problem: (CQ44439) bnx2 does not compile on older 2.6 kernels.
Cause: mutex not defined on older kernels.
Change: Use rtnl_lock() to protect bnx2_reset_task().
Impact: None.
bnx2 v1.9.37b (Nov 4, 2009) cnic 1.9.8b (Nov 3, 2009)
=====================================================
Enhancements
------------
1. Change: Updated 5708/5706 firmware to 5.0.0.j5 for better small packet
performance.
Impact: 5706/5708.
Fixes
-----
1. Problem: (CQ43280) Cannot unload cnic after bnx2/bnx2x is loaded.
Cause: module referencing.
Change: Changed module referencing scheme.
Impact: None.
bnx2 v1.9.36b (Oct 22, 2009)
=======================================================
Enhancements
------------
1. Change: Expand on NetQueue module parameters.
Impact: bnx2 VMware NetQ.
bnx2 v1.9.35b (Oct 22, 2009)
=======================================================
Fixes
-----
1. Problem: If only 1 queue is used on VMware ESX, iSCSI
offload would fail.
Cause: The inboxed VMware driver would only use
1 MSI-X vector. Because of this the driver
would not setup MSI-X
Change: Always setup MSI-X reguardless of the
number of MSI-X vectors used.
Impact: 5709 iSCSI on VMware
bnx2 v1.9.34b (Oct 20, 2009)
=======================================================
Fixes
-----
1. Change: Updated xinan firmware to 5.0.0.j8
Nop timeout tuning (VMware PR467194)
Added a new data fw heartbeat to work with
the new bootcode and also handle older
bootcode.
Impact: 5709.
bnx2 v1.9.33b (Oct 8, 2009)
=======================================================
Enhancements
------------
1. Change: Make NetQueue module parameters more explict.
Impact: bnx2 VMware NetQ.
bnx2 v1.9.32b (Oct 8, 2009) cnic v1.9.7c (Oct 8, 2009)
=======================================================
Fixes
-----
1. Problem: CNIC unable to handle an unsolicited
RESET COMPLETE which would result in a hung
session.
Cause: The CNIC driver couldn't handle unexpected SYN.
Change: The CNIC driver will now handle an unsolicited
RESET COMPLETE and cleanup properly.
Impact: cnic
Enhancements
------------
1. Change: Allow the default NetQueue options to be
controlled through the macro,
BNX2_ENABLE_NETQUEUE.
Impact: bnx2 VMware NetQ.
bnx2 v1.9.31b (Oct 6, 2009)
=======================================================
Fixes
-----
1. Problem: PSOD would occur when alloc()'ing NetQueue's
Cause: With the removal of the global 'disable_netq'
parameters, the NetQueue CID's weren't being
mapped in some cases
Change: Always map the NetQueue CID's
Impact: bnx2 VMware ESX NetQueue
bnx2 v1.9.30b (Oct 5, 2009)
=======================================================
Fixes
-----
1. Problem: PSOD would occur because of TX timeouts
Cause: The VMware netdev watchdog timer was ran before
the reset task got a chance to run on a loaded
system.
Change: Elongated the TX timeout value for VMware ESX
only to allow for the reset task to run.
Impact: bnx2 VMware ESX
Enhancements
------------
1. Change: Updated vmkernel module parameter, 'force_netq',
to allow NetQueue setting to be adjusted per
function rather then globally for all functions.
Impact: bnx2 VMware ESX
bnx2 v1.9.29b (Oct 1, 2009)
=======================================================
Fixes
-----
1. Change: Updated xinan firmware to 5.0.0.j7 and
teton firmware to 5.0.0.j4 which will fix
L2 hang due to iSCSI PDU's padding byte
extended to another TCP segment
Impact: 5706/5708/5709.
bnx2 v1.9.28b (Sep 25, 2009)
=======================================================
Fixes
-----
1. Change: Updated firmware to 5.0.0.j6 which will add
the corresponding flow control trip point.
Impact: 5709.
bnx2 v1.9.27b (Sep 24, 2009) cnic v1.9.7b (Sep 24, 2009)
=======================================================
Fixes
-----
1. Problem: For the cnic users would see in the kernel logs:
"kcq abs(hw_prod(0) - sw_prod(65534)) >
MAX_KCQ_IDX(2047)"
Cause: The function was not taking into account the
wrapping of the software and hardware producer
indexes.
Change: Recaculate the difference between the index with
wrapping taken into account.
Impact: cnic
Enhancements
------------
1. Change: Updated firmware to 5.0.0.j5 which increased the
rxpq depth from 32 to 256 to enhance the performance
on systems without flow control.
Impact: 5709.
bnx2 v1.9.26c (Sep 17, 2009)
=======================================================
Enhancements
------------
1. Change: Cleanup the VMware NetQueue code. Eliminate unneeded
RX flush routine, fix the number of queues to be the
same on 1500 and 9000 MTU sized packets.
Impact: bnx2 VMware NetQ.
bnx2 v1.9.26b (Sep 14, 2009)
=======================================================
Fixes
-----
1. Problem: VMware PSOD on MTU change
Cause: MSI-X window was remapped to the beginning of the PCI
config space. The driver would disable the bar space
because the MSI-X window was remapped incorrectly. This
would eventually cause a PSOD.
Change: Before the chip reset, the driver would disable MSI-X,
after the chip reset, MSI-X is re-enabled.
Impact: VMware NetQueue
bnx2 v1.9.25b (Aug 21, 2009) cnic v1.9.6 (Aug 21, 2009)
=======================================================
Fixes
-----
1. Problem: (CQ 43182/43252) Compile error on RHEL4
Cause: struct mutex not defined on older kernels.
Change: Wrap cnic_lock mutex structure and code with #ifdef BCM_CNIC.
Impact: None.
2. Problem: Unloading cnic after ifdown may crash.
Cause: cnic unregisters with bnx2/bnx2x twice.
Change: Fixed logic to unregister only once.
Impact: None.
bnx2 v1.9.24b (Aug 13, 2009) cnic v1.9.6 (Aug 13, 2009)
=======================================================
Fixes
-----
1. Problem: (CQ 42778) Kernel occasionally panics when enabling jumbo
frames.
Cause: If the driver is unable to allocate memory for the buffers,
the device is not properly shutdown.
Change: Added logic to shutdown device if unable to allocate buffers
and complete the setup of the device.
Impact: bnx2, changing MTU and ring sizes.
Enhancements
------------
1. Change: Updated firmware to 5.0.0.j3 for better small packet rx
performance. Firmware also fixes header digest error during
I/O.
Impact: All bnx2 devices.
bnx2 v1.9.23b (July 29, 2009) cnic v1.9.5 (July 29, 2009)
==========================================================
Fixes
-----
1. Problem: (CQ 42723) KCQ not resetting to 0 problem
Cause: RCU deadlock during shutdown
Change: Move the bnx2_register_cnic() call out of the
above sequence. Instead, register and
unregister during NETDEV_UP/NETDEV_DOWN events.
Change all slow path RCU read locks to mutex.
In cnic, we also use reference counting to
protect some slow paths.
Impact: bnx2 iSCSI, bnx2x iSCSI
bnx2 v1.9.22b (July 23, 2009) cnic v1.9.4 (July 23, 2009)
==========================================================
Enhancements
------------
1. Change: If a TX timeout occurs, there could be the possiblity that the
chip is hung. By printing chip state into the kernel ring buffer,
it will be easier to determine this.
Impact: bnx2 iSCSI.
2. Change: The bnx2 firmware should always be matched with the proper bnx2
driver. The bnx2 firmware version string are now printed.
It will be easier to identify the running firmware.
Impact: bnx2
3. Change: When a TX timeout occurs and the chip is reset, the ability to
debug the chip further is lost. This is because the chip state
information is lost during the reset. The users have a choice
to prevent the chip reset.
Impact: bnx2
4. Change: Add a check to see if there was a KCQ overflow was
in the bnx2x firmware. Now this check has been moved to the
CNIC so that the driver could control the cleanup/recovery.
Impact: bnx2 iSCSI.
bnx2 v1.9.21b (July 16, 2009)
==========================================================
Enhancements
------------
1. Change: Updated firmware to 5.0.0.j2 to fix remote reset problem
Impact: bnx2 iSCSI.
bnx2 v1.9.20b (July 09, 2009), cnic v1.9.3 (July 09, 2009)
==========================================================
Fixes
-----
1. Problem: (CQ42534) cnic.c does not compile on older kernels.
Cause: Some iscsi_proto constants not defined in <scsi/iscsi_proto.h>
Change: Added the constant definitions if not already defined.
Impact: None.
Enhancements
------------
1. Change: Updated firmware to 5.0.0.j to fix TMF releated iSCSI issues.
Impact: bnx2 iSCSI.
bnx2 v1.9.19b (July 01, 2009), cnic v1.9.2 (July 01, 2009)
==========================================================
Fixes
-----
1. Problem: (CQ42399) 10G iSCSI fails when initiator and target MTUs
don't match.
Cause: cnic driver sets the MSS without knowing the actual MSS
option and timestamp option during TCP connection.
Change: Changed driver to set MSS to 0xffff so that firmware can
calculate MSS on its own.
Impact: bnx2x iSCSI.
2. Problem: 1G iSCSI fails when initiator and target MTUs don't
match and timestamp is enabled.
Cause: Firmware was not adjusting for the 12-byte timestamp option
if MSS was reduced by MSS option.
Change Updated firmware to 5.0.0.i
Impact: bnx2 iSCSI.
3. Problem: (CQ42353) Unable to disable TCP timestamp on 10G iSCSI.
Cause: Timestamp was hardcoded to be enabled for 10G.
Change: Update global timestamp option during each TCP connection.
Impact: bnx2x iSCSI.
4. Problem: (CQ42329) bnx2x MC assert during IPv6 login/logout.
Cause: EQ filled with more than 128 L4 kcqes without MSI-X interrupt
for 2 seconds. The driver can only buffer 128 L4 kcqes.
Change: Increased L4 kcqe buffer to 256 entries as a temporary solution.
Need to understand the delayed interrupt issue.
Impact: None.
bnx2 v1.9.18b (June 25, 2009), cnic v1.9.1 (June 24, 2009)
==========================================================
Enhancements
------------
1. Change: Added FTQDiscard counter to the list of counters being
reported. During small packet test, there may be FTQ
overflow and this counter is very useful.
Impact: None.
2. Change: Updated firmware to 5.0.0.h to improve small packet L2
performance and to enhance iSCSI TMF handling.
Impact: 5706/5708/5709.
bnx2 v1.9.17b (June 24, 2009), cnic v1.9.1 (June 24, 2009)
==========================================
Fixes
-----
1. Problem: Leaking NetQueues if the firmware did not respond in time
Cause: System might be clogged and there is not enough time to
process the KCQ
Change: Updated driver/firmware to allow the calling of the free RX
queue request before a RX alloc request is issued
Impact: 5709
2. Problem: An offloaded iSCSI connection would get stuck
Cause: Issing an offload request might fail, and this was not handled
properly.
Change: Updated driver/firmware to return the proper return code and
handle offload connection failures.
Impact: 5706/5708/5709
3. Problem: tasklet_init() is being called on a task that is scheduled
Cause: When the CNIC calls register_device(), that task might already
be schedled.
Change: tasklet_disable() is insufficient because the tasklet remains
scheduled and stays on the tasklet list, instead tasklet_kill()
is now used.
Impact: 5706/5708/5709
bnx2 v1.9.16b (June 10, 2009), cnic v1.9.0 (June 10, 2009)
==========================================================
Enhancements
------------
1. Change: (CQ38228) Use symbol_get() for ipv6 symbols so that the
cnic driver will load without necessarily loading ipv6
modules.
Impact: iSCSI over IPv6.
2. Change: Updated 5706/08/09 MIPS firmware to 5.0.0.g.
Impact: 5706/08/09.
3. Change: Backported some dma_mapping_error() checking.
Impact: None.
bnx2 v1.9.15b (June 1, 2009), cnic v1.8.6 (June 1, 2009)
========================================================
Enhancements
------------
1. Change: Upstream bnx2 tx path optimizations. Please see ChangeLog.
Impact: bnx2 tx path.
2. Change: In the cnic driver, save the last allocated TCP port during
unregistration so that previously used TCP ports will not
be immediately re-used.
Impact: iSCSI.
3. Change: VMWare TCP port allocation changes.
Impact: VMWare iSCSI.
bnx2 v1.9.14b (May 21, 2009)
==========================================
Fixes
-----
1. Problem: NOPOUT timeouts on 570x iSCSI connections.
Cause: Bugs in TCP timestamp implementation.
Change: Updated MIPS firmware to 5.0.0.f.
Impact: 5706/5708/5709.
bnx2 v1.9.13b (May 18, 2009)
==========================================
Fixes
-----
1. Problem: Potentially exceeding the NetQueue limit recommendations
by VMware which could stress system resources
Cause: When system resources are strained.
Change: There are now limits on the number of NetQueues which the
driver will request:
When the MTU is 1500 the max number of queues per port is 8
When the MTU is 9000 the max number of queues per port is 4
Impact: NetQueue enabled version of VMware ESX
2. Problem: Getting conflicting NetQueue and iSCSI completions
Cause: When MSI-X is not used on a 5709, NetQueue is still enabled
Change: NetQueue is not disabled is MSI-X is not used.
Impact: NetQueue enabled version of VMware ESX
bnx2 v1.9.12b (May 13, 2009)
==========================================
Fixes
-----
1. Problem: Potentially returning a negative number of NetQueues
Cause: When calculating the number of rings, we use the calculation from
the number of msi-x vectors returned, The number of NetQueues
returned could potentially be negitive if only 1 vector was
returned. This is because the driver was subtracting 2
instead of subtracting 1 (for the default queue) from the total
number of rings.
Change: Return the proper number of queues not including the default
queue.
Impact: NetQueue enabled version of VMware ESX
bnx2 v1.9.11b (May 12, 2009), cnic v1.8.5 (May 13, 2009)
========================================================
Fixes
-----
1. Problem: TCP Delay ACK not working on bnx2x iSCSI
Cause: Disabled in cnic driver.
Change: Fixed csk->tcp_flags definitions and enabled the proper storm
bit for delay ACK.
Impact: bnx2x iSCSI.
bnx2 v1.9.11b (May 12, 2009)
==========================================
Fixes
-----
1. Problem: iSCSI timestamp TCP option not working.
Cause: Disabled in firmware.
Change: Updated to 5.0.0e MIPS firmware.
Impact: 5709.
bnx2 v1.9.10b, cnic v1.8.4 (May 11, 2009)
==========================================
Fixes
-----
1. Problem: NetQ and iSCSI do not work in Vmware environment.
Cause: 1. cnic driver is overwriting CP and COM mailbox bit values newly
defined to support multiple kcqs.
2. Firmware is completing some iSCSI kcqes on the NetQ's kcq.
Change: Fixed cnic driver to only set and clear bit 0 of the CP
and COM mailbox.
Firmware has been updated to 5.0.0d. This firmware also
supports TCP timestamp option for iSCSI connections.
Impact: 5706/5708/5709 iSCSI, NetQ.
bnx2 v1.9.9b (May 1, 2009)
==========================================
Fixes
-----
1. Problem: There is link, but can't pass traffic on ESXi
Cause: Bits in the RX context are being trampled during the
renegotiation of the link.
Change: RX context offset 0x6 should only be initialized once
during init and not be updated during run-time. Offset
4 contains the BIDX that's mapped to the mailbox.
Impact: VMware with NetQueue
bnx2 v1.9.8b, cnic v1.8.2 (April 27, 2009)
==========================================
Enhancements
------------
1. Change: Updated cnic driver to support 1.50.x HSI as well as the older
1.48.107 HSI. A compile flag will be used to select one or the
other.
Impact: iSCSI on bnx2x.
2. Change: Spec file and Makefile changes detect the proper module
install directory.
Impact: installation.
bnx2 v1.9.7b, cnic v1.8.1 (April 22, 2009)
==========================================
Fixes
-----
1. Problem: Compile error with redfinition of struct kwqe.
Cause: Both the CNIC and bnx2 defined this structure.
Change: Because the bnx2 definition is L2 specific, it was renamed to
struct l2_kwqe.
Impact: None.
2. Problem: Add context memory DMA alignment for 57710.
Cause: For the 57710 context memory needs to be 16k aligned.
Without this alignment you will see errors when trying to
establish more then 5 iSCSI connections on VMware ESX 4.0 U1.
Change: Properly aligned the context memory by allocating a bigger
chunk of memory and then finding the proper alignment.
This reduces the number of possible connections in half
but now we can properly establish more then 5 connections
on VMware.
Impact: iSCSI.
bnx2 v1.9.6b (April 17, 2009)
=============================
Enhancements
------------
1. Change: Added NetQueue support for VMware.
Impact: 5709.
bnx2 v1.9.5b (April 17, 2009)
=============================
Enhancements
------------
1. Change: Updated to 5.0.0.a firmware with NetQ support and iSCSI max
connection license information. RV2P firmware unchanged:
4.6.16 for 5706, 4.6.15 for 5709.
Impact: All chips.
2. Change: Set USE_INT_PARAM on 5709. This will switch the chip in
use "interrupt mode" coalescing after MSI/MSI-X.
Impact: 5709.
3. Change: Included 5706 when doing statistics block DMA workaround.
Impact: 5706.
bnx2 v1.8.8b (March 12, 2009)
=============================
Enhancements
------------
1. Change: Updated to latest 4.6.17 CP firmware for 5709.
Impact: iSCSI licensing on 5709.
bnx2 v1.8.7b, cnic v1.7.8 (March 10, 2009)
==========================================
Enhancements
------------
1. Change: Reverted 5706/5708 firmware to 4.6.16. Low latency interrupt
mode does not work on 5706/5708.
Impact: None.
2. Change: VMWare changes to expose max. number of iSCSI connections in
the cnic_device structure.
Impact: VMware iSCSI.
Fixes
-----
1. Problem: (CQ39867) Compile error on RHEL5.3 Xen kernel.
Cause: msi related symbols undefined because CONFIG_PCI_MSI is not
enabled on Xen kernels.
Change: Added CONFIG_PCI_MSI around the msi related code.
Impact: None.
2. Problem: (CQ39818) iSCSI targets do not reconnect after running self test.
Cause: Interrupt is disabled by bnx2 before notifying CNIC to clean up
and stop. As a result, bnx2i will not receive interrupts when
closing the connections if sharing INTA/MSI with network.
Change: Disable interrupt after notifying CNIC to stop.
Impact: iSCSI.
bnx2 v1.8.6b, cnic v1.7.7 (March 2, 2009)
=========================================
Enhancements
------------
1. Change: Updated to new 5706 firmware (4.6.17) and 5709 firmware (4.6.16).
New interrupt coalescing mode for improved latency and iSCSI
cache line fix on 5709.
Impact: All bnx2 chips.
2. Change: CNIC iSCSI changes for VMWare.
Impact: VMWare only.
bnx2 v1.8.5b, cnic v1.7.6 (Feb 9, 2009)
=======================================
Fixes
-----
1. Problem: (CQ39380) bnx2x iSCSI license not read correctly.
Cause: Using wrong variable to check the license.
Change: Fixed the logic.
Impact: bnx2x iSCSI.
2. Problem: Driver accesing MMIO registers during VLAN operations when
the device is in D3hot state in older kernels.
Cause: VLAN registration functions do not check for device state.
Change: Added if_running check before MMIO access in VLAN registration
functions.
Impact: VLAN operations on all bnx2 chips.
Enhancements
-----------
1. Problem: Updated 5706/5708 firmware to 4.6.16.
Impact: 5706/5708.
bnx2 v1.8.4b, cnic v1.7.5 (Jan 30, 2009)
========================================
Fixes
-----
1. Problem: (CQ39281) Management firmware stops passing traffic when
bnx2 driver is loaded with jumbo frames enabled.
Cause: Firmware bug.
Change: Updated to 4.6.15 firmware.
Impact: 5706/5708/5709.
2. Problem: iSCSI does not work on 57711 in single function mode.
Cause: Driver only allows iSCSI on 57711 if iSCSI is enabled.
Change: iSCSI config. not required in single function mode.
Impact: bnx2x iSCSI.
Enhancements
------------
1. Change: (CQ38576) Add 5709 to bnx2.4 man page.
Impact: None.
bnx2 v1.8.3b, cnic v1.7.4 (Jan 23, 2009)
========================================
Fixes
-----
1. Problem: (CQ38610, CQ39000, CQ39015, CQ39071, CQ39133) Various Jumbo
frames related data corruption issues.
Cause: Bug in RV2P firmware causing jumbo frames to be DMA'ed without
the frame header control structure occasionally.
Change: New firmware.
Impact: 5706/5708/5709.
bnx2 v1.8.2c, cnic v1.7.4 (Dec 30, 2008)
========================================
Fixes
-----
1. Problem: (CQ38955) Xen kernel panic when unloading bnx2 with jumbo MTU.
Cause: Bug in bnx2_free_rx_mem(). The jumbo page ring memory was
freed incorrectly using the wrong local variable as array
index.
Change: Fixed bug by using the correct variable as array index.
Impact: Jumbo frames.
2. Problem: (CQ38965) iSCSI connection timeout on bnx2x.
Cause: During CFC Delete RAMROD completion handling, the wrong (older)
iSCSI connection ID can sometimes be retrieved using the
harware CID. The CID in the mapping table was not cleared
after the CID was freed.
Fix: Adding clearing of the CID in the data structure after a CID
is freed.
Impact: bnx2x iSCSI.
Enhancements
------------
1. Change: (CQ38744) Reduced R2TQ memory usage to match new firmware
interface (firmware 4.8.9). This reduces the amount of
kernel memory substantially for each iSCSI connection on
bnx2x.
Impact: bnx2x iSCSI.
bnx2 v1.8.2b, cnic v1.7.3 (Dec 17, 2008)
========================================
Enhancements
------------
1. Change: Added iSCSI configuration check on 57711E devices before
allowing iSCSI connections.
Impact: bnx2x iSCSI.
bnx2 v1.8.2b, cnic v1.7.2 (Nov 25, 2008)
========================================
Fixes
-----
1. Problem: bnx2x iSCSI does not work on functions 2 or above.
Cause: This was caused by multiple problems:
a) Status block ID specified by bnx2x was wrong.
b) MSI-X vector assigned to CNIC was wrong.
c) New method to ack. status block using HC register was not
implemented.
d) Status block ID in CSTORM status block is always 0, and
as a result, the status block ID used to ack. the status
block was wrong.
All these problems only affect functions 2 and above.
Change: All problems fixed in bnx2x and cnic.
Impact: bnx2x iSCSI.
bnx2 v1.8.2b, cnic v1.7.1 (Nov 15, 2008)
========================================
Enhancements
------------
1. Change: Added CNIC support for Multi function bnx2x iSCSI.
Impact: bnx2x iSCSI.
bnx2 v1.8.2b, cnic v1.6.2 (Nov 12, 2008)
========================================
Enhancements
------------
1. Change: Updated to latest 4.6.13 5709 firmware to fix context corruption
with flow control enabled.
Impact: 5709.
2. Change: Added support for 5716S PCI ID.
Impact: None.
Fixes
-----
1. Problem: (CQ35904) Netdump does not work.
Cause: Problem introduced by MSI-X multiqueue. IRQ handlers were
changed to take bnx2_napi parameter instead of netdev parameter.
Change: Fixed by passing proper parameter to IRQ handler from netpoll.
All IRQ handlers are called when using multiple MSI-X vectors.
Impact: 5709 netpoll.
bnx2 v1.8.1f, cnic v1.6.1 (Nov 5, 2008)
========================================
Fixes
-----
1. Problem: All TSO packets corrupted on 5706/5708.
Cause: Firmware bug zeroing the wrong field in IP header.
Change: Updated to latest 4.6.11 5706/5708 firmware and 4.6.12 5709
Firmware.
Impact: 5706/5708/5709.
2. Problem: bnx2x chip asserts when trying to make iSCSI connection
to an unknown IP address.
Cause: When connection fails, the driver sends a command to an
unitialized CID.
Change: Added logic to only send deletion commands to initialized
CIDs.
Impact: bnx2x iSCSI.
Enhancements
------------
1. Change: Added support for one single VLAN to a bnx2x iSCSI interface.
Impact: bnx2x iSCSI.
bnx2 v1.8.1e, cnic v1.6.0 (Oct 27, 2008)
========================================
1. Change: Updated to latest 5709 firmware to fix iSCSI data integrity
problem.
Impact: 5709.
bnx2 v1.8.1d, cnic v1.6.0 (Oct 23, 2008)
========================================
Enhancements
------------
1. Change: Updated to latest bnx2 firmware to fix iSCSI data integrity
problem.
Impact: 5706/5708/5709.
2. Change: Updated to the latest bnx2x HSI files.
Impact: bnx2x iSCSI.
bnx2 v1.8.1c, cnic v1.5.9 (Oct 13, 2008)
========================================
Fixes
-----
1. Problem: (CQ37905) Unable to compile on SLES10 SP2.
Cause: DIV_ROUND_UP macro not defined in this kernel.
Change: Added it for compatibility.
Impact: None.
Enhancements
------------
1. Change: Updated to latest 5709 firmware that fixes an NCSI problem.
Impact: 5709.
2. Change: Handle TCP reset in the middle of TCP close more appropriately.
Impact: iSCSI.
3. Change: Handle iSCSI license checking in the same way as 5708/5709.
Impact: iSCSI on bnx2x.
bnx2 v1.8.1b, cnic v1.5.8 (Oct 13, 2008)
========================================
Fixes
-----
1. Problem: bnx2x iSCSI CIDs may be allocated outside the range of allocated
host memory.
Cause: CID range bigger than the amount of allocated host context
memory.
Change: Changed to match the CID range with memory range.
Impact: bnx2x iSCSI.
Enhancements
------------
1. Change: Sync'ed with the latest upstream driver bnx2 1.8.1.
Impact: None.
2. Change: Implemented iSCSI connection license enforcement for bnx2x
devices.
Impact: bnx2x iSCSI.
bnx2 v1.8.0j, cnic v1.5.7 (Oct 6, 2008)
========================================
Fixes
-----
1. Problem: (CQ37610) Chip hangs when changing MTU with active iSCSI
connections.
Cause: Both cnic and bnx2 drivers setting up the chip at the same
time.
Change: Added check so that the register_cnic function will fail
if the bnx2 driver is in reset.
Impact: iSCSI.
2. Problem: (CQ37762) Able to unload bnx2/bnx2x drivers while there are
active iSCSI connections.
Cause: CNIC driver does not have a reference count on the BNX2/BNX2X
drivers.
Change: This became a problem after the register_cnic function was
no longer exported. To solve the problem, the CNIC driver
will now get an explicit reference during register_cnic.
Impact: iSCSI.
3. Problem: (CQ37429) MMIO access while the chip is in D3hot state.
Cause: The driver does not check if_running state consistently during
ethtool operations.
Change: Added proper checks to all ethtool and multicast change
functions.
Impact: ethtool operations and multicast operations.
Enhancements
------------
1. Change: Simplified ipv4 TSO logic in the driver. This was made
possible with newer 5708 firmware.
Impact: 5708 TSO and other traffic.
2. Change: ethtool -p now blinks forever. This is the standard behavior
in most other net drivers.
Impact: ethtool -p.
bnx2 v1.8.0i, cnic v1.5.5 (Sep 30, 2008)
========================================
Fixes
-----
1. Problem: (CQ36787) iSCSI login/logout commands fail on 5709 after a
while.
Cause: Not handling the KWQ completion properly on 5709 in INTA/MSI
mode.
Change: Changed to handle KWQ completions by checking the
cmd_consumer_index instead of the rx_quick_index15.
Impact: 5709 ISCSI in INTA/MSI mode.
2. Problem: (CQ37497) CNIC driver does not compile on powerpc.
Cause: csum_ipv6_magic() not defined.
Change: Added #include <net/ip6_checksum.h>
Impact: None.
v1.8.0g (Sep 24, 2008)
========================
Fixes
-----
1. Problem: (CQ37511) System locks up when loading cnic driver on 2.6.16
kernel.
Cause: symbol_put_addr() in 2.6.16 tries to acquire the same lock twice.
Change: Workaround by using __symbol_put() which does not have the same
problem.
Impact: None.
v1.8.0f (Sep 23, 2008)
========================
Fixes
-----
1. Problem: (CQ37405) Kernel panic when performing ifup/ifdown with iSCSI
connections on bnx2x devices.
Cause: Sending searcher delete to bnx2x devices when connection was
not established (due to Spanning Tree or other reasons).
Change: Check PG offload state before sending searcher delete.
Impact: iSCSI on bnx2x.
v1.8.0e (Sep 22, 2008)
========================
Enhancement
-----------
1. Change: Updated to latest driver firmware 4.6.6 for 5709.
Impact: 5709.
2. Change: Updated cnic so that it will not crash even if using older
bnx2/bnx2x drivers without CNIC support. The net driver
can also be loaded after cnic and it will still work without
crashing.
Impact: iSCSI.
3. Change: (CQ 37381) Updated driver to check Vaux PRESET before allowing
WoL. This is needed to support 5709 quad-port boards.
Impact: WoL on all devices.
v1.8.0d (Sep 15, 2008)
========================
Enhancements
------------
1. Change: Updated CNIC iSCSI setup for bnx2x devices.
Impact: iSCSI on bnx2x devices.
v1.8.0c (Aug 25, 2008)
========================
Fixes
-----
1. Problem: Does not compile on older kernels.
Cause: "__maybe_unused" undefined on older kernels. "num_online_cpus()"
undefined on 2.4 kernels.
Change: Added compatibility code to workaround.
Impact: None.
v1.8.0b (Aug 25, 2008)
========================
Enhancement
-----------
1. Change: Updated to latest driver firmware 4.6.2 for 5709.
Impact: 5709.
v1.7.9c (Aug 5, 2008)
========================
Fixes
-----
1. Problem: bnx2 does not compile on older kernels.
Cause: <linux/log2.h> is missing on 2.6.19 and older kernels.
Change: Added compatibility code to check for kernel version before
including the file.
Impact: none.
v1.7.9b (Aug 5, 2008)
========================
Enhancements
------------
1. Change: Added multi-tx ring for 5709. This fetaure is available on
2.6.27 kernel when using MSI-X.
Impact: 5709
2. Change: Added support for 57710 iSCSI in the CNIC driver.
Impact: iSCSI.
v1.7.7c (July 14, 2008)
========================
Fixes
-----
1. Problem: Source RPM fails to build.
Cause: New file missing in tarball.
Change: Added missing file.
Impact: None.
v1.7.7b (July 9, 2008)
========================
Enhancements
------------
1. Change: Added probe function so that the CNIC driver can get the
pci_device pointer earlier before registration.
Impact: iSCSI.
2. Change: Added support for 5716.
Impact: None.
v1.7.6c (June 6, 2008)
========================
Enhancements
------------
1. Change: Added multi-ring RX support on 5709 using MSI-X. This feature
is only available on 2.6.24 and newer kernels running on SMP
machines.
Impact: 5709.
2. Change: Added secondary unicast address support. We now support up
to 5 unicast addresses. This feature is only available on
2.6.23 and newer kernels.
Impact: All chips.
v1.7.6b.1 (Aug 14, 2008)
========================
Fixes
-----
1. Problem: (CQ36808) VLAN tagged packets received by host stack without
the VLAN tag.
Cause: If no VLANs are set up using vconfig, and if the driver
configures the chip to strip the VLAN tag, the problem can
happen. With IPMI or UMP enabled, the driver is likely to
configure the chip to strip the VLAN tag.
Change: Modified the driver to re-insert the VLAN tag when necessary.
I.e. when IPMI/UMP is enabled and vconfig has not setup any
VLANs.
Impact: All chips receiving VLAN traffic.
v1.7.6b (May 29, 2008)
========================
Fixes
-----
1. Problem: IPv4 TSO generates bad packet when the TSO packet size
is 1-MSS.
Cause: Probably firmware does not expect this boundary condition.
Change: Detect this 1-MSS condition in driver and skip the TSO logic.
1-MSS TSO packet will be treated like a regular TX checksum
offload packet.
Impact: TSO on all chips.
2. Problem: Cannot disable VLAN stripping even when management firmware
is disabled.
Cause: The new logic to check firmware VLAN stripping capability
was buggy.
Change: Fixed the code so that VLAN stripping can always be disabled
if management firmware is disabled.
Impact: VLAN/management firmware.
v1.7.5d (May 13, 2008)
========================
Enhancements
------------
1. Change: Incorporated latest firmware 4.4.18. Bug fix is in
RV2P.
Impact: All chips.
v1.7.5c (May 7, 2008)
========================
Enhancements
------------
1. Change: Incorporated latest firmware 4.4.17. Bug fix is in
RV2P.
Impact: All chips.
v1.7.5b (May 5, 2008)
========================
Fixes
-----
1. Problem: (CQ35080) Hard lock when running ethtool -s on the device
that is in the down state.
Cause: I/O to the device to set link speed in D3-hot state can cause
lockup because the chip does not respond to I/O.
Change: ethtool -s will just store the new settings without configuring
the new speed. When the device is later brought up, the new
speed will be set as part of chip init.
Impact: All chips.
2. Problem: (CQ35075 CQ35042) Various compile errors on SuSE SLES 9 and SLES
10 distro kernels.
Cause: ip_hdr() and __le32/__le32 backported to the distro kernels.
Change: Adjusted compatibility defines.
Impact: None.
Enhancements
------------
1. Change: Incorporated latest 5709 firmware 4.4.16. Timer context
scanning is reduced with this firmware to 500us. With this,
the temporary enhancement in 1.7.4c #2 has been removed.
Impact: 5709 iSCSI.
v1.7.4e (April 26, 2008)
========================
Fixes
-----
1. Problem: (CQ34841) 5709 does not link up on some remote PHY systems.
Cause: No initial link interrupt.
Change: Added code to poll for link when remote PHY is present.
Impact: Remote PHY systems.
2. Problem: (CQ34767) Kernel panic on 5709 when using jumbo frames
with NCSI traffic.
Cause: RV2P bug causing RX packets to overwrite kernel memory.
Change: Updated to latest RV2P code for 5709 and 5708.
Impact: 5706/5708/5709.
v1.7.4d (April 17, 2008)
========================
Fixes
-----
1. Problem: IPv6 iSCSI does not work.
Cause: Added code in the last version 1.7.3c to check for CONFIG_IPV6
before enabling the IPv6 CNIC support. This failed to check
for CONFIG_IPV6_MODULE if IPv6 is configured as module in the
kernel configuration.
Change: Changed the checking to CONFIG_IPV6 or CONFIG_IPV6_MODULE.
Impact: None.
v1.7.4c (April 16, 2008)
========================
Fixes
-----
1. Problem: (CQ34814, CQ33984) Driver does not compile on 2.4 kernels.
Cause: __le32 and __be32 not defined in 2.4 kernels.
Change: Defined these as u32 on 2.4 kernels.
Impact: 2.4 kernels.
Enhancements
------------
1. Change: Incorporated latest 5709 4.4.12 firmware to fix various iSCSI
problems.
Impact: 5709.
2. Change: Slowed down the timer block reload time. It was noticed that
after the CNIC driver was unloaded, the timer context memory
was reloaded in a tight loop by the chip. This issue needs
to be properly addressed in the firmware at a future date.
Impact: iSCSI.
v1.7.4b (April 11, 2008)
=======================
Enhancements
------------
1. Change: Incorporated latest 5709 4.4.11 firmware to fix various iSCSI
problems.
Impact: 5709.
v1.7.3k (April 9, 2008)
=======================
Enhancements
------------
1. Change: Incorporated latest 5709 4.4.10 firmware to fix various iSCSI
problems. CID ranges are now read directly from shared memory.
Impact: 5709.
v1.7.3j (April 7, 2008)
=======================
Fixes
-----
1. Problem: (CQ33967) Ethtool register test fails.
Cause: Register 0x1004 context status register should not be tested.
Change: Removed 0x1004 from register test.
Impact: None.
Enhancements
------------
1. Change: Incorporated latest 5709 4.4.9 firmware to fix various iSCSI
problems.
Impact: 5709.
v1.7.3i (April 4, 2008)
=======================
Fixes
-----
1. Problem: (CQ33948) iSCSI over IPv6 does not work on SLES10.
Cause: The CNIC driver does not handle IPv6 on older kernels without
NETEVENTS support.
Change: Modified the logic to support older kernels.
Impact: All iSCSI connections using IPv4 or IPv6.
2. Problem: (CQ34315) Scanning iSCSI disks during max sessions test causes
connection problems.
Cause: 5709 context memeory allocated by CNIC driver does not match
the iSCSI and PG CID range used by the firmware.
Change: Changed to the matching CID range.
Impact: 5709 iSCSI.
v1.7.3h (March 28, 2008)
=======================
Fixes
-----
1. Problem: (CQ33984, CQ34210, CQ34310, CQ34597) Various compiler warnings
and errors on RHEL, SuSE, and 2.4 kernels.
Cause: New features not compatible with older kernels, or older
vendor kernels backported with newer features.
Change: Fine-tuned compatibility compiler directives.
Impact: All kernels.
v1.7.3g (March 10, 2008)
=======================
Enhancements
------------
1. Change: Updated to latest 5709 firmware version 4.4.7.
Impact: 5709.
v1.7.3f (March 10, 2008)
=======================
Fixes
-----
1. Problem: CNIC takes a long time to resolve ARP, causing iSCSI to fail.
Cause: NETEVENT_NEIGH_UPDATE event notifier sometimes takes a long time
to be called.
Change: This is under investigation. For now, the workaround is to
use the existing neighbour entry if it is in NUD_VALID state.
Previously, we would only use it if it was in NUD_CONNECTED
state.
Impact: iSCSI neighbour resolution.
2. Problem: iSCSI sometimes fails to initialize.
Cause: The KWQ is in full condition and prevents any KWQE to be sent
to the firmware. This is caused by the KWQ consumer index in
the status block not initializing to 0.
Change: Added workaround to skip the KWQ full condition check when
sending the first KWQE. This should be properly fixed in
firmware.
Impact: None.
v1.7.3d (February 15, 2008)
============================
Fixes
-----
1. Problem: System hangs with iSCSI traffic.
Cause: Infinite loop in NAPI poll.
Change: Fixed the problem of not comparing the CNIC tag properly when
determining whether there is more work in NAPI poll.
Impact: None.
2. Problem: iSCSI does not work on 5709
Cause: Not initializing 5709 properly for iSCSI. The chip_id field was
not propagated to the CNIC driver.
Change: Fixed the chip_id field.
Impact: None.
v1.7.3c (February 09, 2008)
============================
Enhancements
------------
1. Change: Updated 5708 and 5709 firmware to version 4.4.2.
Impact: All devices.
2. Change: Updated RV2P firmware to the latest. This may fix the jumbo
frame issue.
Impact: All devices, especially jumbo frames on 5709 Bx.
3. Change: Modified CNIC interface in preparation for 57710 devices.
Impact: iSCSI.
v1.7.2f (February 04, 2008)
============================
Fixes
-----
1. Problem: Temporary workaround for one prototype 5709S mezz. card not
working.
Cause: The driver was looking at the wrong shared memory location to
identify the card.
Change: Fixed the code to check the correct BNX2_SHARED_HW_CFG_CONFIG
location.
Impact: 5709S.
v1.7.2e (January 31, 2008)
============================
Fixes
-----
1. Problem: (CQ33704) CNIC driver fails MSI-X mode on 5709.
Cause: When implementing the fix, the wrong constant was used
for the CNIC MSI-X vector.
Change: Corrected to use the correct constant BNX2_CNIC_VEC.
Impact: None.
2. Problem: iSCSI outgoing packets over IPv6 are bigger than 1518 bytes.
Cause: MSS calculation was based on IPv4 and did not accout for the
IPv6 header size.
Change: Adjusted MSS calculation for IPv6.
Impact: None.
v1.7.2c (January 30, 2008)
============================
Fixes
-----
1. Problem: CNIC driver does not work in MSI-X mode on 5709.
Cause: This is a regression caused by moving the CNIC MSI-X
vector from 8 to 2. The context memory did not get
updated with the new vector.
Change: Changed the definition. All bits that depend on the
MSI-X vector will now have the proper definitions automatically.
Impact: None.
v1.7.2b (January 30, 2008)
============================
Enhancements
------------
1. Change: Updated 5709 firmware to 4.4.1.
Impact: 5709.
2. Change: Added temporary workaround for one prototype 5709S mezz. card.
The workaround will be removed once newer cards are available.
Impact: 5709S.
v1.7.1e (January 14, 2008)
============================
Enhancements
------------
1. Change: Updated 5709 firmware to 4.1.1 for IPv6 iSCSI support.
Impact: 5709.
2. Change: Updated 5708 RXP firmware to 4.1.1.
Impact: 5706/5708.
3. Change: Updated RV2P firmware for 5709.
Impact: 5709.
4. Change: Added IPv6 support to CNIC driver.
Impact: New BNX2I driver must be used with this new CNIC driver.
v1.7.1d.3 (February 7, 2008)
============================
Fixes
-----
1. Problem: 5706S continues to not link down occasionally on some blade
systems.
Cause: In some cases, even turning off the tx current does not
cause the link to go down.
Change: Link transition can be triggered based on the SYNC_FAILED bit
in the AN_DEBUG register when all else fails.
Impact: 5706S.
v1.7.1d.1 (February 1, 2008)
============================
Fixes
-----
1. Problem: 5706S still not linking down occasionally on some blade
systems when the switch blade is disconnected.
Cause: Occasionally, all the bits that we check will falsely
indicate link up and trigger the parallel detect logic on
this blade platform. Once in parallel detect mode with
autoneg disabled, the driver will never detect link down.
Change: Disabled parallel detect on this platform by checking
PCI sub IDs to identify the device.
Impact: Parallel detect not supported on this vendor device.
v1.7.1d (January 25, 2008)
============================
Fixes
-----
1. Problem: 5706S still not linking down on some blade systems when the
switch blade is disconnected.
Cause: This is the same problem that was fixed in 1.7.0b. After
switch module is removed, the SYNC_FAILED bit sometimes
toggles low, and this causes the parallel detect logic in the
driver to trigger and disable autoneg. Disabling autoneg
causes false link to come up immediately.
Change: It seems that the RUDI_INVALID bit can be used to prevent the
above from happening. Modified parallel detect code to
additionally check the RUDI_INVALID bit and trigger only when
the bit is cleared.
Impact: Parallel detect logic in 5706S.
v1.7.1c (December 27, 2007)
============================
Fixes
-----
1. Problem: Driver crashes when adding VLAN and bonding.
Cause: Bonding calls driver's VLAN function in interrupt context with lock
held. We recently added a VLAN feature in 1.6.8b which requires
chip reset when VLANs are added or removed. The reset will call
vmalloc/vfree which must not be called in interrupt context.
Change: Reverted the VLAN feature for now. Will workaround it in the
future.
Impact: 5709 only. This new VLAN feature is no longer available.
v1.7.1b (December 24, 2007)
============================
Fixes
-----
1. Problem: Driver crashes when using jumbo frames on 5709 A1.
Cause: RV2P firmware problem.
Change: Disabled jumbo page ring on 5709 Ax chips.
Impact: Jumbo receive page rings not supported on 5709 Ax.
2. Problem: CNIC driver prints "Failed waiting for ref count to go to zero"
when unloading the driver. This is a minor cosmetic issue.
Cause: Minor bug in driver comparing ref_count to 1 instead of zero
during exit.
Change: Fixed the code to check for ref_count == 0.
Impact: None.
v1.7.0b (December 12, 2007)
============================
Fixes
-----
1. Problem: (CQ33032) CPU utilization increases dramatically when TSO
is enabled.
Cause: Driver is spending a lot of unnecessary time in TX handling
code when TSO is enabled. This regression was introduced when
the TX handling code was changed to match the RX handling code.
The RX handling code was changed to fix a packet rot problem.
When TSO is enabled, the tx index can stop at non-packet
boundaries and the code will keep waiting until it gets to the
next packet boundary.
Change: Fixed it to handle this condition properly.
Impact: None.
2. Problem: 5706S does not link down in some blade systems.
Cause: Hardware problem.
Change: Added workaround logic to check periodically and force a
link down when the PHY reports SYNC status failed. This
only works when autoneg is enabled.
Impact: 5706S.
v1.6.8e (December 10, 2007)
============================
Fixes
-----
1. Problem: When using jumbo MTU with large RX ring sizes, system will
crash or the driver won't load.
Cause: Bug in driver where the page descriptor array was declared
too small.
Change: Fixed the array size.
Impact: None.
2. Problem: CNIC driver won't compile on kernels without CONFIG_PCI_MSI.
Cause: Some code needs to be conditionally compiled only when
CONFIG_PCI_MSI is set.
Change: Added #ifdef CONFIG_PCI_MSI where necessary.
Impact: None.
3. Change: Disabled iSCSI on 5709 until next release.
Impact: None.
v1.6.8d (December 07, 2007)
============================
Change: Reverted the 5706S workaround made in 1.6.8c because it was
unreliable.
Impact: None.
v1.6.8c (December 07, 2007)
============================
Fixes
-----
1. Problem: (CQ32794) Kernel panic (skb_over_panic) with jumbo frames.
Cause: RV2P firmware incorrectly placed jumbo data into SKB.
Change: New RV2P firmware.
Impact: Jumbo frames on all hardware.
2. Problem: (CQ32817) ethtool loopback test fails.
3. Problem: (CQ32842) Chariot test fails.
Cause: RX buffer size too small to contain MTU-sized frame.
This was introduced by the new Jumbo RX logic.
Change: Fixed RX buffer size logic.
Impact: Traffic on all hardware.
4. Problem: (CQ32862) Fails to compile on RH9u9.
Cause: Kernel API skb_fill_page_desc() backported to RH kernel
causing duplicate definition.
Change: Adjusted compatibility code.
Impact: None.
5. Problem: (CQ32866) ISCSI driver fails to compile with 1.6.8b.
Cause: print_mac() multiply defined when bnx2.h is included
in the bnx2i driver.
Change: Changed print_mac() to static inline.
Impact: None.
6. Problem: 5706S does not link down in some blade systems.
Cause: Hardware problem.
Change: Added workaround logic to check periodically.
Impact: 5706S.
Enhancements
------------
1. Change: Added flow control logic on 5709.
Impact: 5709.
2. Change: Updated all firmware to 4.0.5.
Impact: All hardware.
v1.6.8b (November 28, 2007)
============================
Enhancements
------------
1. Change: Added MSIX support for 5709 B0.
Impact: 5709 B0.
2. Change: Added multi-page buffer support for Receive Jumbo frames.
Impact: All chips. This feature is experimental at this point.
3. Change: Allow VLAN tags in receive packets when management firmware
is enabled.
Impact: 5709 only. This feature is experimental and requires new
boot code and UMP/IPMI code.
4. Change: Updated firmware to 4.0.3.
Impact: All chips.
v1.6.7b (October 16, 2007)
============================
Fixes
-----
1. Problem: (CQ31861) Remote copper PHY does not link up if WoL is enabled.
Cause: bnx2_set_power_state() assumes that only copper devices support
WoL and proceeds to configure the copper PHY to 10/100 Mbps.
This assumption is no longer valid after Serdes WoL support
was added in 1.6.3c.
Change: Fixed the code to take check for Serdes and copper when setting
up the PHY for WoL.
Impact: WoL.
v1.6.6b (October 10, 2007)
============================
1. Change: Update 5708 firmware to 3.7.19.
v1.6.5k (October 10, 2007)
============================
1. Problem: Will not compile on 2.6.23 kernel.
Cause: get_perm_addr no longer defined in struct ethtool_ops
Change: Adjusted kernel compatibility #ifdef.
Impact: None.
v1.6.5j (October 10, 2007)
============================
No change to bnx2. Updated cnic driver to 1.1.24.
v1.6.5i (October 8, 2007)
============================
Enhancements
------------
1. Change: Update 5708 firmware to 3.7.18.
v1.6.5h (October 4, 2007)
============================
Enhancements
------------
1. Change: Update 5708 firmware to 3.7.17.
v1.6.5g (October 1, 2007)
============================
Enhancements
------------
1. Change: Update 5708 firmware to 3.7.16.
v1.6.5f (September 30, 2007)
============================
Enhancements
------------
1. Change: Update 5708 firmware to newer 3.7.15.
v1.6.5e (September 29, 2007)
============================
Enhancements
------------
1. Change: Update 5708 firmware to 3.7.15.
v1.6.5d (September 28, 2007)
============================
Enhancements
------------
1. Change: Combined RPM package and tar file with CNIC driver.
v1.6.5c (September 26, 2007)
============================
Enhancements
------------
1. Change: Update 5708 firmware to 3.7.14.
v1.6.5b (September 25, 2007)
============================
Fixes
-----
1. Problem: (CQ30086) 5709 A1 does not link up when connected to
some Broadcom devices.
Cause: Early DAC wakeup workaround needed for 5709 A1.
Change: Added workaround.
Impact: None.
Enhancements
------------
1. Change: Added CNIC support for iSCSI.
Impact: Only enabled on 2.6.16 and newer kernels.
v1.6.3c (July 23, 2007)
=======================
Fixes
-----
1. Problem: (CQ30591) ethtool -t fails on remote PHY systems.
Cause: Link test and loopback test were not modified to support
remote PHY.
Change: Added remote PHY support to link test and changed the code
to skip PHY loopback on remote PHY since it's not supported.
Impact: None.
2. Problem: (CQ30625) ethtool speed settings are lost after ifdown.
Cause: The remote PHY settings stored in firmware is not the same
as the driver's last setting.
Change: Modified the code to keep the driver's setting unless there's
is change in the remote PHY media.
Impact: ethtool -s on remote PHY systems.
Enhancements
------------
1. Change: Change ethtool's wol setting to NVRAM's default and
add support for Serdes WoL if NVRAM supports it.
Impact: ethtool wol's default setting.
v1.6.3b (July 13, 2007)
=======================
1. Problem: Problems reading and writing flash on 5709.
Cause: Hardware changes in 5709.
Change: Rearranged current flash code to properly support 5709.
Impact: Changes will impact flash operations on 5706/5708/5709 devices.
2. Problem: (CQ30516) Management firmware version string disappears
on 2nd modprobe of the driver.
Cause: The 2nd modprobe will program the device back to D0 from D3hot.
This causes a reset and it will take some time before the
management firmware information will be available.
Change: Added a proper wait loop to wait for the firmware information
to be deposited in shared memory.
Impact: None.
v1.6.2f (July 3, 2007)
=======================
1. Problem: The fix for CQ29488 in the previous version is problematic
and needs to be reverted.
Cause: Adding the netif_carrier_off() call before register_netdev()
in bnx2_init_one() can cause problems if register_netdev()
fails. netif_carrier_off() can queue a link watch event
that can run later. If register_netdev() fails, the netdev
structure will be freed and the link watch event may panic
when it is scheduled to run.
Change: Moving the netif_carrier_off() to after register_netdev()
also will not work as it can cause race conditions with
the interrupt handler. So the best thing to do is to
revert the earlier fix and not address the CQ29488 issue.
Impact: CQ29488 is not fixed.
v1.6.2e (July 3, 2007)
=======================
Fixes:
------
1. Problem: (CQ29528) Link does not come up using remote PHY (continued).
Cause: ifup script may be using mii-tool to obtain link status,
and interfering with remote PHY firmware.
Change: Block mii-tool ioctl access when remote PHY firmware is present.
Impact: None.
2. Problem: (CQ29488) Driver reports link up in ethtool before the interface
is brought up.
Cause: The netdevice structure's initial link setting is up and that
gets reported directly by ethtool.
Change: Added netif_carrier_off() call in bnx2_init_one().
Impact: None.
v1.6.2d (June 22, 2007)
=======================
Fixes:
------
1. Problem: (CQ29528) Link does not come up using remote PHY.
Cause: The fix in 1.6.2b still has a problem. The copper or Serdes
default link setting does not follow the correct port when
the port is changed during chip reset.
Change: Fix the code to always refresh the port and link setting
during chip reset.
Impact: None.
2. Problem: (CQ30181) Cannot compile on 2.4 kernels.
Cause: USEC_TO_SEC constant is not defined on older kernels.
Change: Added conditional #define for this constant on older kernels.
Impact: None.
Enhancements:
-------------
1. Change: Update 5709 firmware to 3.7.1.
Impact: 5709 devices.
v1.6.2b (June 21, 2007)
=======================
Enhancements:
-------------
1. Change: Added management firmware version to ethtool -i.
Impact: None.
Fixes:
------
1. Problem: (CQ29528) Link does not come up using remote PHY.
Cause: The driver is using the wrong port when setting up the remote
PHY link.
Change: Fixed bug to always use the correct requested port or
default port when setting remote PHY link.
Impact: None.
2. Problem: (CQ30028) Advertised Autoneg not set in ethtool.
Cause: Remote PHY code is not setting the flag which is for
information only.
Change: Added code the set the flag for consistency.
Impact: None.
v1.6.1c (May 22, 2007)
=====================
Enhancements:
-------------
1. Change: (CQ28907) Added support for setting copper and fibre speeds.
Impact: Only available on Remote PHY systems.
v1.6.1b (May 7, 2007)
=====================
Fixes:
------
1. Problem: (CQ29301) Setting invalid speed setting causes driver to
crash.
Cause: Lock taken without unlock when exiting iwith error the
procedure to set speed.
Change: Fixed the code with proper unlock.
Impact: None.
v1.6.0b (April 30, 2007)
========================
Enhancements:
-------------
1. Change: Improved handshake with remote PHY firmware.
Impact: None.
v1.5.10c (May 4 , 2007)
=======================
Fixes:
------
1. Problem: Extremely low TSO performance when destination has a
smaller MSS than the source.
Cause: Packets smaller than MTU are not processed as TSO packets.
Change: Removed the SKB length check when doing TSO.
Impact: None.
v1.5.10b (May 1, 2007)
=========================
Enhancements:
-------------
1. Change: Removed Remote PHY until next release.
Impact: No Remote PHY support.
2. Change: Added check for 2.5G capability before enabling 2.5G on
5709S.
Impact: None.
Fixes:
------
1. Problem: (CQ28438) NETDEV WATCHDOG after OS boot.
Cause: The mailbox queue is halted after the OS reads config.
register 0x94.
Change: Set MQ_CONFIG_HALT_DIS in register MQ_CONFIG on 5709 A0 and
A1.
Impact: None.
v1.5.9b (April 20, 2007)
=======================
Enhancements:
-------------
1. Change: Enhanced remote PHY support for 5708S.
Impact: None.
Fixes:
------
1. Problem: (CQ29056) Driver does not compile on SLES 10 SP1 kernel.
Cause: Backported netif_tx_lock() causes compatibility problem.
Change: Adjuested compatibility #ifdef.
Impact: None.
2. Problem: (CQ28880) Driver fails register test after running traffic.
Cause: A reserved register 0x500c was mistakenly included in the test.
Change: Removed this register from the test.
Impact: None.
v1.5.8b (March 13, 2007)
=======================
Enhancements:
-------------
1. Change: Added remote PHY support for 5708S.
Impact: None.
v1.5.7b (March 2, 2007)
=======================
Enhancements:
-------------
1. Change: Added IPV6 TSO for 5709.
Impact: None.
2. Change: Added 2.5G parallel detection for 5709s.
Impact: None.
v1.5.6b (February 28, 2007)
===========================
Enhancements:
-------------
1. Change: Added Serdes support for 5709.
Impact: None.
Fixes:
------
1. Problem: (CQ28433) Driver does not compile on some early 2.6 and
2.4 kernels.
Cause: Kernel compatibility issue.
Change: Added some missing #ifdef CONFIG_PCI_MSI.
Impact: None.
2. Problem: (CQ28527) System hangs when running bonding scripts on 5709.
Cause: Bonding driver reads MDIO registers after the device is in
D3hot state.
Change: Added check to disallow MDIO access after the device is down.
Impact: None.
v1.5.5b (January 31, 2007)
===========================
Fixes:
------
1. Problem: (CQ28252) Driver reports the same MAC address for both
ports of 5709.
Cause: The driver was obtaining the MAC address from the same
shared memory area for both ports.
Change: Updated driver to read from the deicated shared memory
area for each port.
Impact: None.
2. Problem: (CQ28226) 5709C does not link up when connected to Dell
5324 and some other switches.
Cause: PHY's Early DAC Wakeup Enable bit's strapped value is set.
Change: Disable Early DAC Wakeup enable on 5709 A0 after PHY reset.
Impact: None.
v1.5.4b (January 8, 2006)
===========================
Fixes:
------
1. Problem: 5709 copper device detected as serdes.
Cause: Media detection code not complete.
Change: Added complete media detection code.
Impact: None.
Enhancement:
------------
1. Change: Add IPv6 checksum support.
Impact: None.
v1.5.2b (December 22, 2006)
===========================
Merged in all latest changes.
v1.5.1c (November 30, 2006)
===========================
Enhancement:
------------
1. Change: Remove 5709 FPGA code.
Impact: None.
v1.5.1b (November 15, 2006)
===========================
Enhancement:
------------
1. Change: Added support for 5709.
Impact: None.
v1.4.52c (March 07, 2007)
=========================
Enhancement:
------------
1. Change: Increase maximum receive ring size to 4080.
The default is kept the same at 255.
Impact: None.
v1.4.51b (December 21, 2006)
============================
Fixes:
------
1. Problem: (CQ27802) Cannot enable flow control in some cases.
Cause: In some cases when flow control is forced to on, the
driver detects no changes in advertisement, and as a
result, will not re-autoneg. Without the link change,
flow control settings will not change.
Change: Added some code to setup flow control when no other
PHY settings are made. This will ensure that flow
control changes will take effect immediately.
Impact: None.
v1.4.50b (December 15, 2006)
============================
Fixes:
------
1. Problem: (CQ27424) Panic when writing to nvram.
Cause: Bug in driver when an alignment buffer is used
Change: Fixed the bug so that the alignment buffer is freed with the
correct pointer.
Impact: None.
v1.4.49b (December 13, 2006)
============================
Fixes:
------
1. Problem: (CQ27459) Driver reports link down when link is up.
Cause: Hotplug scripts can cause bnx2_open() to be called immediately
after bnx2_init_one() calls register_netdev(). The initial
link state set after register_netdev() may overwrite the actual
link state set by the link handler on SMP systems.
Change: Move all initial state setup code to before calling
register_netdev().
Impact : None.
v1.4.48b (December 08, 2006)
============================
Fixes:
------
1. Problem: (RHBZ 212055) Panic in bnx2_poll().
Cause: Bug in determining tx ring space when the tx ring is
completely full.
Change: Fixed the flawed logic in bnx2_tx_avail().
Impact: None.
2. Problem: (CQ27424) Buffer overflow when writing to nvram.
Cause: Bug in driver when the beginning NVRAM offset is
not 4-byte aligned.
Change: Fixed the bug to allocate enough buffer space.
Impact: None.
3. Problem: (CQ27543) Loopback failed if MAC address is changed.
Cause: Driver uses permanent MAC address for loopback which may
be different from a locally administered address.
Change: Fixed by alwaysing using the current MAC address in the
netdevice structure.
Impact: None.
v1.4.47b (November 02, 2006)
===========================
Fixes:
------
1. Problem: (CQ25922) 5708S does not pass PHY loopback test on
some blade servers.
Cause: It takes longer (about 100msec) to link up in some
backplane environments when the Serdes is set to PHY
loopback mode.
Change: Increase delay loop to up to 1 sec when waiting for
link up after PHY loopback. Previous wait time was
100usec.
Impact: None.
v1.4.46b (October 30, 2006)
===========================
Fixes:
------
1. Problem: (CQ25916) Device does not receive packets when configured
by the Xen bridge script and when IPMI is enabled.
Cause: Firmware does not forward packets to the host when the
device is in promiscuous mode in some cases.
Change: Firmware change and driver change to enable the
BNX2_RPM_SORT_USER0_PROM_VLAN bit when going into
promiscuous mode.
Impact: None.
v1.4.45b (October 19, 2006)
===========================
Enhancement:
------------
1. Change: Added software parallel detection on 5708S to link at
1000Mbps or 2500Mbps automatically if the link partner is
forced at 2500Mbps.
Impact: None.
2. Change: Added 2500Mbps forced speed setting. Setting it requires
a future version of ethtool or custom apps.
Impact: None.
3. Change: Port driver to compile on 2.6.19 kernel.
Impact: None.
Fixes:
------
1. Problem: Driver does not complile on 2.4 kernels.
Cause: TSO symbols not defined in 2.4 kernels.
Change: Added #ifdef for compatibility.
Impact: None.
2. Problem: MSI doesn't work on 5706 when the host bridge is AMD8132.
Cause: Compatibility issue.
Change: Added code to disable MSI when 5706 is on a systems with
AMD8132.
Impact: 5706 cannot use MSI on such systems.
v1.4.44b (August 10, 2006)
==========================
Fixes:
------
1. Problem: A rare tx race window exists in the tx path.
Cause: CPU re-ordering can cause the tx queue to be stopped
forever when the tx ring is full in a very rare
condition. See ChangeLog for more details.
Change: Fixed the race condition with memory barriers.
See ChangeLog for more details.
Impact: None.
Enhancement:
------------
1. Change: Increase default rx ring size to 255 to prevent
packet drops under heavy load.
Impact: Higher memory usage.
2. Change: Port driver to run on 2.6.18 kernel.
Impact: None.
v1.4.43b (June 26, 2006)
=======================
Enhancement:
------------
1. Change: (CQ25508) Use DRV_MSG_CODE_UNLOAD_LNK_DN message on
5708 B1 and older chips so that the link will turn
off after ifdown.
Impact: None.
v1.4.42b (June 2, 2006)
=======================
Fixes:
------
1. Problem: (CQ22585) WoL cannot be enabled on 5708 B2.
Cause: Hardware limitation in previous 5708 versions required
driver to always disable driver WoL on 5708.
Change: With the issue fixed in B2, the driver was changed to
allow 5708 B2 and above to support driver WoL.
Impact: None.
2. Problem: (CQ21779) Driver does not report dropped receive packets.
Cause: Packets dropped by firmware are reported in a scratch pad
location in memory separate from other counters.
Change: Added code to report this firmware counter.
Impact: None.
Enhancements:
-------------
1. Change: (CQ24690) Allow driver to be compiled for non-running kernels.
Impact: None.
v1.4.41b (May 17, 2006)
=======================
Fixes:
------
1. Problem: Driver writes wrong data to non-buffered flash.
Cause: Bug in driver causing the unchanged portion of the page
to be corrupted.
Change: Fixed bug.
Impact: None.
v1.4.40b (April 17, 2006)
=========================
Enhancements:
-------------
1. Change: Combine 2 small memory allocations into 1.
Impact: None.
2. Change: Separate tx consumer and producer entries into separate
cache lines for better performance.
Impact: None.
3. Change: Compress firmware data to reduce driver size.
Impact: Driver now requires zib_inflate library which should be
available on most vendor kernels.
v1.4.39b (Mar. 10, 2006)
=======================
Fixes:
------
1. Problem: (CQ23181) Driver loses track of link changes in some cases.
Cause: In some cases, the status block gets a link change indication
that contradicts with the MII link status. This is due to
transient link signals during link changes.
Change: Add coalesce_now at the end of link change interrupt to flush
out the transient behavior.
Impact: None.
2. Problem: 5708 only supports 40-bit DMA addresses.
Cause: Limitation of the built-in PCIE-to-PCIX bridge.
Change: Add workaround code to make sure all DMA addresses are
less than 40 bits.
Impact: Some minor impact on performance on some 64-bits systems.
There should be practically no performance impact on i386 and
x86_64 systems.
3. Problem: "Copyright" deprecated in RPM spec file.
Change: Changed to "License".
Impact: Should be none on the distributions that we support.
v1.4.38b (Feb. 10, 2006)
=======================
Fixes:
------
1. Problem: Setting rx ring size to 255 causes memory allocation errors.
Cause: Multiple bugs that do not handle the full ring properly.
Change: Fixed all bugs related to full ring handling and changed
maximum ring size from 4080 to 1020 after discussion with
Dave Miller.
Impact: Maximum rx ring size is now smaller.
2. Problem: Compile warnings and panic on IA64.
Cause: <vmalloc.h> not included.
Change: Added include <vmalloc.h>.
Impact: None.
v1.4.36b (Jan. 19, 2006)
=======================
Version number update.
v1.3.36 (Jan. 17, 2006)
=======================
Fixes:
------
1. Problem: (CQ22827) bnx2 does not compile on 2.6.6 and earlier
kernels.
Cause: Introduced bug while fixing CQ22666.
Change: Fix compatibility code.
Impact: None.
2. Problem: (CQ22823) bnx2 reports extra .5 at the end of firmware
version string.
Change: Skip the last digit in the firmware version string.
Impact: None.
3. Problem: (CQ22585) WoL still does not work on 5708.
Cause: New WoL mechanism introduced in 1.3.34 has a flaw.
Change: Removed the workaround code and disabled WoL support
on 5708. During shutdown and suspend, the driver will
shutdown the device and WoL will be setup by the
bootcode according to the nvram's out-of-box WoL
setting.
Impact: 5708 will not support driver-initiated (ethtool-intiated)
WoL.
v1.3.35 (Jan. 17, 2006)
=======================
Fixes:
------
1. Problem: (CQ22666) bnx2 driver does not compile on RHEL3 U7.
Cause: if_mii() back-ported to RHEL3 U7.
Change: Adjusted the compatibility code.
Impact: None.
2. Problem: (CQ22718) UMP connection is lost after enabling WoL.
Cause: FORCE LINK was mistakenly set during WoL setup.
Change: Do not set FORCE LINK.
Impact: None.
v1.3.34 (Jan. 13, 2006)
=======================
Fixes:
------
1. Problem: (CQ22585) WoL does not work on 5708.
Cause: Internal bridge not in proper PME state.
Change: Added new firmware message to allow bootcode to help set up
WoL.
Impact: None.
Enhancements:
-------------
1. Change: Added compile option to include crc32 function for RH2.4
boot kernels.
Impact: None.
2. Change: Updated TSO firmware to handle ECN.
Impact: None.
v1.3.33 (Dec. 12, 2005)
=======================
Enhancements:
-------------
1. Change: Increased firmware hand-shake timeout from 50 msec to
100 msec. Also changed the delay from busy-wait udelay
to non-busy-wait msleep.
Impact: None.
2. Change: Added code to read nvram size from shared memory if
available. Otherwise, the size will come from the
flash table which only gives the smallest size for
that type of flash.
Impact: None.
3. Change: Added workaround to issue 2 separate IOs for interrupt
acknowledgement. The workaround is only used for INTA
(non-MSI) interrupts.
Impact: Slightly higher overhead for INTA interrupts.
v1.3.32 (Dec. 01, 2005)
=======================
Enhancements:
-------------
1. Change: Added PHY loopback to the loopback selftest.
Impact: None.
2. Change: (CQ21810) Added ethtool -d register dump.
Impact: None.
3. Change: Reduce the number of registers tested in selftest to make
the driver smaller.
Impact: None.
4. Change: Increased maximum rx ring size to 4080.
Impact: None.
5. Change: Changed rx checksum logic for better reliability.
Impact: None.
6. Change: Added 5708 B1 workarounds.
Impact: None.
v1.3.31 (Nov. 18, 2005)
=======================
Fixes:
------
1. Problem: (CQTO2080) Cannot pass traffic during 2nd ifup if IPMI
is enabled.
Cause: A flaw in driver/firmware handshake.
Change: Changed driver/firmware handshake by doing WAIT0 first before
writing the first signature.
Impact: None.
2. Problem: (CQTO2056) VLAN-tagged IPMI traffic fails after driver is
loaded.
Cause: Driver configures the NIC to keep the VLAN tag by default,
causing VLAN-tagged IPMI traffic to fail.
Change: Changed driver to always strip VLAN tags if IPMI is enabled.
Impact: VLAN will always be stripped when IPMI is enabled. This may
affect some applications that rely on raw VLAN packets.
Enhancements:
-------------
1. Change: Sync'ed up with latest upstream bnx2.
v1.3.29 (Oct. 6, 2005)
=======================
Fixes:
------
1. Problem: (CQTO1929) Traffic stops when MTU is greater than 1500
with TSO enabled.
Cause: TSO firmware bug.
Change: Updated to latest firmware.
Impact: None.
v1.3.28 (Sep. 29, 2005)
=======================
Fixes:
------
1. Problem: (CQTO1875) Traffic stops when running Nettack with TSO
turned on.
Cause: TSO firmware bug.
Change: Updated to latest firmware.
Impact: None.
2. Problem: (CQTO1575) ethtool -S shows non-zero rx_error_bytes.
Cause: Hardware errata.
Change: Ignore this counter and always report zero.
Impact: None.
v1.3.27 (Sep. 21, 2005)
=======================
Enhancements:
-------------
1. Change: Enabled ethernet@wirespeed on copper devices.
Impact: None.
2. Change: Enabled customized pre-emphasis and other serdes control
settings on 5708S backplane devices. A special PHY
register will be programmed according to the NVRAM value.
Impact: None.
3. Change: Modified Makefile to check for the source symbolic link
in the kbuild environment.
Impact: None.
4. Change: Improved NAPI poll processing so that all events will be
processed before interrupts are re-enabled. This will
reduce the number of unnecessary interrupts.
Impact: None.
5. Change: Add support for ETHTOOL_GPERMADDR (from John Linville)
Impact: None.
Fixes:
------
1. Problem: Bug in irq handler causing extra register read.
Cause: Bug in bnx2_interrupt() reading BNX2_PCICFG_MISC_STATUS
register when it is not necessary.
Change: Fixed the logic bug and added prefetch of status block in
msi handler.
Impact: None.
v1.3.25 (Aug. 22, 2005)
=======================
Fixes:
------
1. Problem: Ethtool register and memory tests fail on 5708.
Cause: Some code was not merged properly many versions ago.
Change: Merged in properly code.
Impact: None.
Enhancements:
-------------
1. Change: Slow down flash clock speeds
Impact: None.
2. Change: Code re-sync'ed with upstream driver.
Impact: None.
v1.3.24 (Aug. 16, 2005)
=======================
Enhancements:
-------------
1. Change: Changed all spin_lock_irqsave locks to spin_lock_bh for
better overall system performance. All code requiring
spin_lock runs in BH or user context.
Impact: None.
2. Change: Removed atomic operations in the transmit fast path.
Code should run a bit faster as atomic operations can be
quite slow.
Impact: None.
v1.3.23 (Aug. 10, 2005)
=======================
Enhancements:
-------------
1. Change: Added reporting of link speed to firmware.
Impact: None.
2. Change: Added shared memory base look-up.
Impact: None.
3. Change: Possible sparse fixes (from Peter Hagervall)
- use C99 struct initializers
- make a few arrays and structs static
- remove a few uses of literal 0 as NULL pointer
- use convenience function instead of cast+dereference in
bnx2_ioctl()
- remove superfluous casts to u8 * in calls to readl/writel
Impact: None.
4. Change: Updated documentation with the crc32 library requirement and
other minor updates.
Impact: None.
v1.3.22 (July 25, 2005)
=======================
Enhancements:
-------------
1. Change: Added check for default link speed setting in shared memory.
This allows some blade servers that don't support autoneg to
default to forced speed to speed up link-up time.
Impact: None.
2. Change: Changed timer code to speed up the timer after serdes autoneg.
This speeds up the time for parallel detection when the link
partner does not autoneg. After autoneg or parallel detction
completes, timer goes back to normal 1 HZ interval. With the
new scheme, link should be detected up using parallel detection
in less than 0.7 seconds. Autoneg normally completes in 120
msec exchanging base pages and 3 next pages.
Impact: None.
v1.3.21 (July 21, 2005)
=======================
Enhancements:
-------------
1. Change: Updated firmware to properly handle TSO packets with ECN
bits set.
Impact: None.
2. Change: Updated to latest rxp firmware.
Impact: None.
3. Change: Added check for the 2.5G capability in shared memory.
Impact: None.
4. Change: Expanded nvram support for 5708.
Impact: None.
Fixes:
------
1. Problem: (CQTO1511) Downing a team of bnx2 adapters causes hang.
Cause: Deadlock when the second adapter's close routine calls
flush_scheduled_work() because the linkwatch_event
is scheduled on the work queue when the first adapter
is closed. The linkwatch_event will try to get the rtnl_lock
which is already held by the bnx2_close routine.
Change: Fixed by not calling flush_scheduled_work(). Instead,
use a flag to indicate work is pending and wait until
the flag is cleared.
Impact: None.
2. Problem: (CQTO1439) ethtool -S on 5708 causes oops.
Cause: A pointer is not initialized if the device is 5708.
Change: Added proper initialization.
Impact: None.
3. Problem: Some error counters are mis-reporting.
Cause: The workaround for the hw errata is not applied properly
on the chips with the errata.
Change: Added proper checks for the workaround.
Impact: None.
4. Problem: High BER on 5708 SerDes.
Cause: hardware errata.
Change: Added workaround for 5708 A0 and B0.
Impact: None.
v1.3.19 (May 27, 2005)
=======================
Enhancements:
-------------
1. Change: Merged 5708 code with the latest 1.1.19.
Impact: None.
Fixes:
------
1. Problem: (CQTO1260) 5708S does not link at 1000Mbps when forced. It
links at 2500Mbps when connected back-to-back with another
5708S.
Cause: 2.5G bit is still turned on.
Change: Fixed by turning off 2.5G when the speed is forced.
Impact: None.
v1.1.19 (May 26, 2005)
=======================
Enhancements:
-------------
1. Change: Made significant changes to merge into the kernel. Among
them, consolidate all source files into bnx2.[ch] and
bnx2_fw.h, change structure style register definitions
to offset based.
Impact: None.
Fixes:
------
1. Problem: Excessive stack usage.
Cause: Use of local variable array.
Change: Fix excessive stack usage in bnx2_alloc_bad_rbuf() by
replacing local variable array with kmalloc array. Also
changed function to return error code, and changed some
of the callers to check for the return code.
Impact: None.
2. Problem: Bug in receive checksum.
Cause: Software bug.
Change: Fix bug in rx checksum by indicating CHECKSUM_UNNECESSARY
only when the hw calculated checksum is 0xffff.
Impact: None.
3. Problem: Excessive busy loop.
Cause: Software bug.
Change: Replaced one excessive udelay of 15msec with msleep since
the calling context is always process.
Impact: None.
4. Problem: Need to call flush_scheduled_work() and bnx2_netif_stop().
Cause: Bug in bnx2_close().
Change: Fix bug in bnx2_close() by calling flush_scheduled_work()
since we are using a work queue in netdev watchdog. Also
added bnx2_netif_stop() call in bnx2_close().
Impact: None.
5. Problem: Some symbols do not have bnx2 prefix and are not static.
Change: Add bnx2_ prefix to some remaining names and mark some
remaining names static.
Impact: None.
v1.1.17 (Apr. 7, 2005)
=======================
Fixes:
------
1. Problem: Driver does not compile on 2.6.12 kernel.
Cause: pci_dev->slot_name has been deprecated.
Change: replaced with pci_name.
Impact: None. All kernels supported by bnx2 including 2.4.21-*EL have
pci_name defined.
v1.1.16 (Mar. 16, 2005)
=======================
Fixes:
------
1. Problem: (CQTO936 & 1004) Tx carrier and rx_byte_errors reported
during normal operations.
Cause: 5706 hardware errata on these 2 statistics counters.
Change: Modified driver to skip these 2 counters.
Impact: These 2 counters will always report 0 and not the true
statistics.
v1.3.15 (Mar. 11, 2005)
======================
Enhancements:
-------------
1. Change: Added SGMII 10/100/1000 Mbps and fiber mode 1000/2500 Mbps
support.
Impact: None.
v1.1.15 (Mar. 09, 2005)
=======================
Enhancements:
-------------
1. Change: Added code to program proper phy settings for jumbo
frames on copper and serdes devices.
Impact: None.
2. Change: Changed INTx ISR to handle a valid case where INTx
arrives before status block update.
Impact: None.
3. Change: Added a separate ISR for MSI to handle subtle differences
between INTx and MSI.
Impact: None.
v1.1.14 (Mar. 03, 2005)
======================
Fixes:
------
1. Problem: netdump does not work on latest RH3EL errata kernel.
Cause: #define RED_HAT_LINUX_KERNEL removed from kernel
include files, causing netdump poll function to
be compiled wrong for RH kernels.
Change: Changed Makefile to workaround the problem.
Impact: None.
v1.1.12 (Feb. 25, 2005)
======================
Fixes:
------
1. Problem: (CQTO1062) Driver allows ethtool to set illegal speed/duplex
on fiber cards.
Cause: Missing checks for the case where autoneg is off.
Change: Added proper checks.
Impact: No.
v1.1.11 (Feb. 18, 2005)
======================
Enhancements:
-------------
1. Change: (CQTO901) Added bnx2(4) man page.
Impact: None.
v1.1.10 (Feb. 16, 2005)
======================
Fixes:
------
1. Problem: Wrong device ID in pci_dev_id table.
Change: Fixed ID.
Impact: None.
v1.1.9 (Feb. 10, 2005)
======================
Fixes:
------
1. Problem: (CQTO771) Driver fails to compile on RHEL3 update 4.
Cause: The RH kernel has back-ported some netif functions
not found in the same vanilla kernel version. Duplicate
function names are defined.
Change: Added intelligence in Makefile to detect such conditions
and change the CFLAGS accordingly.
Impact: None.
2. Problem: (CQTO1017) Driver allows 1000 half duplex autoneg off.
Cause: Missing validity check.
Change: Added check.
Impact: None.
Enhancements:
-------------
1. Change: The code to handle tx queue full condition was redone
to properly handle all boundary and race conditions.
Impact: Minimum tx ring size is now MAX_SKB_FRAGS+1.
2. Change: Tx timeout code was changed to work queue context.
This allows netif to be shutdown gracefully before
chip reset.
Impact: None.
3. Change: Added memory barriers to ISR and NAPI poll for
correctness.
Impact: None.
v1.1.8 (Feb. 01, 2005)
======================
Fixes:
------
1. Problem: (CQTO969) No interupts on a system that does not
support MSI.
Cause: On this system, the MSI generated in the MSI test
terminates with Master Abort which is a fatal
condition for the chip.
Change: A chip reset is added when MSI test fails to bring
the chip back to normal operations again (in INTx mode).
Impact: None.
Enhancements:
-------------
1. Change: Removed register 0x84 from the ethtool register test.
This is an interrupt control register that should
not be touched to prevent unwanted interrupts.
Impact: None.
v1.1.7 (Jan. 28, 2005)
======================
Enhancements:
-------------
1. Change: Added interrupt test when MSI is enabled. If MSI test
fails, driver will fallback to INTx mode.
Impact: None.
2. Change: Added test for certain chipsets where MSI is known
to fail, and disable MSI unconditionally when
such chipsets are found.
Impact: None.
3. Change: Removed support for 1000 Mbps half duplex.
Impact: 1000 Mbps half duplex will no longer work.
v1.1.6 (Jan. 26, 2005)
======================
Fixes:
------
1. Problem: (CQTO940) MTU size not set properly when device is down.
Cause: bnx2_change_mtu only handled the "up" case.
Change: Simple fix to handle the "down" case as well.
Impact: None
2. Problem: (CQTO926) 5706S does not autoneg properly after the
tx cable is pulled.
Cause: If the link partner is autonegotiating, autoneg will
fail when the tx cable is pulled. The software will
turn off autoneg seeing that the rx cable is still
attached with SIGNAL_DETECT. When the tx cable is
re-attached, autoneg is still off and the link partner
will not establish link.
Change: Added code to poll another PHY register to check if
configs are received when autoneg is disabled.
Impact: None
Enhancements:
-------------
1. Change: Added OEM product name strings.
Impact: None.
v1.1.5 (Jan. 25, 2005)
======================
Fixes:
------
1. Problem: PCI-X bus speed may not be detected correctly by the driver,
causing failure because certain register settings are done
based on bus speed.
Cause: hardware problem.
Change: Use a different register to detect PCI-X speed.
Impact: None.
v1.1.4 (Jan. 17, 2005)
======================
Fixes:
------
1. Problem: 5706S does not reliably detect link up or down.
Cause: hardware problem.
Change: Enabled hardware workaround which is effective in
A2 and newer chips only.
Impact: None.
v1.1.3 (Jan. 13, 2005)
======================
Fixes:
------
1. Problem: netdump does not work.
Cause: poll_controller routine does not work in NAPI mode.
Change: Fixed poll_controller routine for NAPI mode.
Impact: None.
Enhancements:
-------------
1. Change: Added the new mmiowb macro which is used mainly in NUMA
machines to guarantee PCI ordering.
Impact: None.
2. Change: Added OEM product name strings.
Impact: None.
3. Change: Changed ONE_TDMA workaround on systems with P64H bridge to
PING_PONG_DMA on all systems using PCI.
Impact: Better performance and better compatibility on all PCI
systems.
4. Change: Added "disable_msi" parameter to allow disabling MSI.
Impact: None.
5. Change: Reduced default tx coalescing parameters for better
tx only performance such as ttcp.
Impact: None.
6. Change: Changed NIC detection console message to display more
information.
Impact: None.
7. Change: Cleaned up some Linux .h files that are not needed.
Impact: None.
8. Change: Cleaned up the nvram routines.
Impact: None.
v1.1.2 (Nov. 11, 2004)
======================
Fixes:
------
1. Problem: Unable to load the driver on more than 2 or 3 devices.
Cause: Default register space is too big. System fails to map
the register space on the 3rd or 4th device.
Change: Changed driver to map a smaller register space as the higher
registers are not needed for standard operations.
Impact: None.
v1.1.1 (Nov. 9, 2004)
======================
Fixes:
------
1. Problem: (CQTO656) One remaining ethtool parameter can be set out of
range.
Cause: Wrong upper bounds in code.
Change: Fixed upper bound.
Impact: None.
1. Problem: 5706 A1 cannot be run on a PCI bus.
Cause: Hardware errata.
Change: Added workaround to detect 5706 A1 on PCI bus and abort.
Impact: Driver will not load 5706 A1 on PCI bus.
v1.1.0 (Oct. 29, 2004)
======================
Fixes:
------
1. Problem: (CQTO663) No link on fiber NIC set to autoneg when
the link partner is set to forced speed.
Cause: No code to handle this case.
Change: Added code to check SIGNAL DETECT when autoneg fails,
and turn off autoneg when appropriate. Also added code
to force a link down when speed settings are changed.
Impact: None.
2. Problem: (CQTO649) ifconfig up/down can cause system to
hang on 2.6 kernels using mmconfig.
Cause: Dummy read in the kernel's pci_mmcfg_write routine
may cause system to hang during D3hot -> D0
transition. The PLL may lose lock during the internal
D0 transition chip reset and cause the dummy read to
hang.
Change: The PLL problem will be fixed in A2. Meanwhile, the
driver is changed to go into D3hot only if wol is
enabled.
Impact: Minor impact in increased power consumption when
the driver is shutdown with wol disabled.
3. Change: Changed to use pci_get_device as pci_find_device
will be deprecated soon.
Impact: None.
4. Problem: (CQTO656) Some ethtool parameters can be set out of range.
Cause: Wrong upper bounds in code or documentation.
Change: Fixed code and documentation.
Impact: None.
v1.0.15 (Oct. 15, 2004)
======================
Fixes:
------
1. Problem: (CQTO644) Data corruption when sending FTP traffic on
Dell Precision 530MT.
Cause: PCI bridge errata.
Change: Added code to enable ONE_TDMA workaround when P64H
PCI bridge is detected.
Impact: Slower tx performance on systems using P64H bridge.
2. Problem: (CQTO643) Driver allows MTU to be set up to 9004.
Cause: Driver used the wrong upper bound limit.
Change: Fixed the upper bound.
Impact: None.
3. Problem: Driver does not support forced speed on 5706S.
Cause: Missing software logic.
Change: Added code to support forced 1000 Full and Half duplex.
Impact: None.
4. Change: Added workaround to disable PERR generation on
5706 A1 when it is in PCI 64-bit slot.
Impact: None.
v1.0.14 (Oct. 05, 2004)
======================
Fixes:
------
1. Problem: Driver load/unload hangs on some machines.
Cause: Transition delay required during D3hot -> D0 transition.
Change: Added necessary delay.
Impact: None.
v1.0.12 (Oct. 04, 2004)
======================
Fixes:
------
1. Problem: (CQTO609) New flow control parameter does not take
effect until ifdown/ifup or link down/up.
Cause: New flow control settings are only configured during
link up. The driver did not check flow control
advertisement changes and therefore no re-negotiation
and no link down.
Change: Fixed logic so that link will always go down whenever
there is a change a flow control advertisement.
Impact: None.
2. Problem: (CQTO612) VLAN packet reception not working.
Cause: VLAN #define not setup properly.
Change: Fixed #define for VLAN.
Impact: None.
3. Problem: (CQTO628) WoL not functioning correctly.
Cause: Multiple problems in the WoL code.
Change: Fixed by:
1. using sort mode.
2. setting up mac address correctly.
Impact: None.
Enhancements:
-------------
1. Change: Added support for non-dword and non-aligned write access
to eeprom, allowing ethtool -E to work.
Impact: None.
v1.0.11 (Sep. 24, 2004)
======================
Fixes:
------
1. Problem: (CQTO600) Kernel panic when attempting to ftp on
Fedora kernel.
Cause: skbuffs are 4-byte aligned on Fedora, causing
the rx headers to be misaligned. skbuffs are
16-byte aligned on other standard kernels.
Change: Removed any assumptions about skbuff alignment
and added code to align all rx skbuffs to 8-byte
boundaries.
Impact: None.
Enhancements:
-------------
1. Change: Added netif_carrier_off to Driver init code so that
the initial link state is off.
Impact: None.
v1.0.10 (Sep. 23, 2004)
======================
Fixes:
------
1. Problem: (CQTO599) Driver fails to compile on RH 3.0ES.
Cause: Bug in poll_bcm5706 where bp is referenced without
being defined.
Change: Fixed the minor bug.
Impact: None.
v1.0.9 (Sep. 23, 2004)
======================
Fixes:
------
1. Problem: Jumbo frames not working reliably.
Cause: Bug in bcm5706_reuse_rx_skb.
Change: Fixed the bug so that the host address is properly
copied from one BD to the other.
Impact: None.
Enhancements:
-------------
1. Change: Change the locking scheme for more reliable open/close/ioctl
operations where the spinlock is needed.
Impact: None.
2. Change: Added minimum MTU size check for MTU changes.
Impact: None.
v1.0.8 (Sep. 20, 2004)
======================
Fixes:
------
1. Problem: (CQTO561) Kernel panic on RH30EL after repeated
driver load/unload.
Cause: Occasionally, the system is unable to map device
registers, causing subsequent register access to fail.
Change: Added check for the return value from ioremap, and exit
gracefully if it fails.
Impact: None.
2. Problem: (CQTO574) NETDEV WATCHDOG when running 5706 A1 on
PCIX 133MHz slot.
Cause: Some hw register setup required for 133 Mhz.
Change: Added the register setup code.
Impact: None.
3. Problem: (CQTO468) Link does not go down after changing from
10Mbps full (forced) to 10Mbps half (forced) and vice versa
when the link partner is also using forced speed.
Cause: Delay not long enough for the link to go down.
Change: Not practical to increase delay as a very long delay is
needed for the link to go down. Added code to record the
proper link speed and duplex when speed is forced so that
ethtool will return the proper speed without the link going
down. Note that the link will go down if the link partner
has autoneg turned on, ensuring that the link partner will
see the link change.
Impact: None.
Enhancements:
-------------
1. Change: Added power management and WOL during device close. This
will allow WOL to work after Linux shutdown.
Impact: None.
2. Change: Changed driver so that ethtool will report invalid
speed after ifdown.
Impact: None.
3. Change: Updated tpatfw.h
Impact: None.
v1.0.7 (Sep. 14, 2004)
======================
Fixes:
------
1. Problem: (CQTO523) 5706 A1 hangs after a thousand iterations of
load/ifup/ifdown/unload.
Cause: The driver may be servicing an interrupt
within 15 msec of chip reset, causing the chip to hang.
The problem was aggravated by the timer mode
coalescing which created an excessive number of
interrupts (hardware problem).
The Driver may also occasionally see
the wrong firmware signature that will cause it to abort.
Change: Added synchronization to make sure all pending interrupts
are serviced before resetting the chip. Also changed to
collect mode coalescing. The firmware signature problem
will be fixed in boot code.
Impact: The use of collect mode coalescing may affect performance.
2. Problem: (CQTO558) Unable to load driver on some early 2.6 kernels.
Cause: pci_dma_sync_single_for_* routines not defined on early
2.6 kernels.
Change: Added compatibility defines for earlier kernels.
Impact: None.
v1.0.6 (Sep. 08, 2004)
======================
Fixes:
------
1. Problem: (CQTO523) 5706 A1 hangs during repeated driver ifup/down.
Cause: No delay after chip reset for A1.
Change: Added 15 msec delay after chip reset for A1.
Impact: None.
2. Problem: (CQTO468) Link does not go down after changing from
10Mbps full (forced) to 10Mbps half (forced) and vice versa.
Cause: Not enough delay after forcing link down.
Change: Added proper delay for link to go down.
Impact: None.
v1.0.5 (Sep. 02, 2004)
======================
Enhancements:
-------------
1. Change: Added support for ethtool -c, ethtool -C, ethtool -p,
and firmware version for ethtool -i.
Impact: None.
Fixes:
------
1. Problem: 5706C not advertising 1000 half duplex.
Cause: 1000 full duplex overwrites 1000 half duplex.
Change: Fixed the bug so that the 2 bits are or'ed together.
Impact: None.
2. Problem: ethtool -A does not change the flow control settings
in all cases.
Cause: Flow control settings not zeroed out before setting new
values.
Change: Minor bug fix to zero out the value.
Impact: None.
v1.0.4 (Sep. 02, 2004)
======================
Fixes:
------
1. Problem: (CQTO504) Multiple NFS transfers will hang some
connections.
Cause: Driver discards some receive packets when the
error status is non-zero.
Change: Changed the driver to only discard receive packets
when the defined error bits in the error status are
non-zero.
Impact: None.
v1.0.3 (Sep. 01, 2004)
======================
Enhancements:
-------------
1. Problem: Driver does not support ethtool -t self test and
ethtool -S statistics.
Change: Added ethtool self test and statistics.
Impact: None.
Fixes:
------
1. Problem: (CQTO478) Kernel still panics when transmitting certain
files using NFS after many iterations
Cause: Tx DMA stalls on certain UDP packets, causing NFS
client to stall.
Change: More fixes made in firmware.
Impact: None.
v1.0.2 (Aug. 26, 2004)
======================
Enhancements:
-------------
1. Problem: Driver does not work on big endian machines.
Change: Ported and tested on SPARC64 machine.
Impact: None.
Fixes:
------
1. Problem: (CQTO478) Kernel panics when transmitting certain
files using NFS.
Cause: Tx DMA stalls on certain UDP packets, causing NFS
client to stall.
Change: Fixed in firmware.
Impact: None.
2. Problem: (CQTO469) Unable to modify flow control parameters
Cause: Did not call setup_phy after the parameters are changed.
Change: Added call to setup_phy after parameters are changed.
Impact: None.
3. Problem: (CQTO467) 5706 does not autonegotiate properly after
changing settings with ethtool.
Cause: This is an ethtool limitation as the proper advertising
parameters are not passed to the driver properly.
Change: Implemented a new scheme to work around the problem to
allow users to specify full autoneg, single speed autoneg,
and fixed speed.
Impact: None.
4. Problem: ethtool -e does not work.
Cause: Various bugs in the nvram routines.
Change: Fixed and tested nvram routines on little endian and big endian
machines.
Impact: None.
v1.0.1 (Aug. 18, 2004)
======================
Fixes:
------
1. Problem: (CQTO459) 5706 NIC does not get link.
Cause: Boot code timing out in WAIT2 state before driver is ready.
Change: Moved the WAIT2 state ahead in the driver reset sequence
as a temporary workaround until it is fixed in boot code.
Impact: None.
2. Problem: (CQTO463) Kernel panics when loading the driver on
RH30EL (2.4.21-4.EL)
Cause: Older kernel used different API to allocate and register
netdev.
Change: Added older APIs to be used on older kernels.
Impact: None.
v1.0.0 (Aug. 13, 2004)
======================
Initial release