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