| ============================ |
| R E L E A S E N O T E S |
| ============================ |
| |
| Broadcom BCM57710/BCM57711/BCM57711E 10 GigE VBD |
| For Linux |
| |
| Copyright (c) 2007-2009 Broadcom Corporation |
| All rights reserved. |
| |
| Version 1.52.12 (Dec 21, 2009) |
| ============================= |
| Fixes |
| ----- |
| 1. Problem: RX traffic stopped when GRO support enabled on RHEL5.4 |
| |
| Cause: Improper initialization of napi mechanism |
| |
| Fix: Napi usage fixed for RHEL5.4 |
| |
| Impact: Introduced in 1.52.11 |
| |
| 2. Problem: iSCSI: incompatibility with RHEL5.4 |
| |
| Cause: Struct differences |
| |
| Fix: Adaptation for versions below RHEL5.5 |
| |
| Version 1.52.11 (Dec 17, 2009) |
| ============================= |
| Fixes |
| ----- |
| 1. Problem: (CQ44995,CQ44996) Compilation error on RH5.4 |
| |
| Cause: Usage of napi_struct was not supported for older kernels |
| |
| Fix: Additional flag defined to support RH5.4 |
| |
| Version 1.52.10 (Dec 16, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ42400) iSCSI: Firmware continues to sent TCP timestamps |
| options even if option is disabled on the target |
| |
| Cause: Firmware local variable of this feature wasn't saved correctly |
| |
| Fix: Fixed in FW 5.2.13: Save relevant information in the connection |
| context |
| |
| 2. Problem: (CQ44904) On 57710: unable to process incoming packets after |
| running adapter selftest with cnic driver loaded |
| |
| Cause: Selftest caused NIC mac address be overwritten by iSCSI mac |
| address |
| |
| Fix: Using another mac entry in selftest |
| |
| Impact: Introduced in 1.52.6 |
| |
| Enhancements |
| ------------ |
| 1. Request: (CQ39624) Provide detailed statistics with ethtool -S eth<x> |
| |
| Change: As requested |
| |
| 2. Request: Use FW 5.2.13 |
| |
| Change: As requested |
| |
| 3. Request: Add GRO VLAN support |
| |
| Change: As requested |
| |
| 4. Request: Add clarification for int_mode driver parameter |
| |
| Change: Description fixed; Unnecessary define removed |
| |
| 4. Request: Remove GRO dependency on kernel version |
| |
| Change: Replaced with dependency on NETIF_F_GRO flag |
| |
| |
| Version 1.52.9 (Dec 9, 2009) |
| ============================= |
| Fixes |
| ----- |
| 1. Problem: (CQ 44830) iSCSI: Unable to connect to iSCSI targets |
| |
| Cause: iSCSI support was filtered out by wrong parameters combination |
| |
| Fix: Condition to add iSCSI support by driver was fixed |
| |
| Impact: Introduced in 1.52.8 |
| |
| 2. Problem: (CQ 44667) On 32 bit (x86) platform system becomes very |
| unresponsive when a few iSCSI connections open |
| |
| Cause: Default value for number of queues (number of system CPUs) |
| causes large memory consumption by the driver |
| |
| Fix: Set default value for number of queues for 32 bit systems to 1 |
| |
| Version 1.52.8 (Dec 7, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: iSCSI offload: Invalid RX segments within a live connection |
| lead to system halt |
| |
| Cause: SYN segments arrived during connection life, created wrong |
| event for the driver |
| |
| Fix: Fixed in FW 5.2.11: After bad segments are detected and reset |
| is sent, send RESET event to the driver |
| |
| 2. Problem: (CQ44465) Due to memory allocation error, driver met fatal |
| condition and failed to load |
| |
| Cause: In case of initialization failure, acquired lock was not |
| released and prevented following load/unload |
| |
| Fix: Fixed |
| |
| 3. Problem: (CQ44382) iSCSI: IO generation tool reports errors when |
| data digest errors are injected |
| |
| Cause: Hardware bug when detecting data digest error on iSCSI |
| data placement |
| |
| Fix: Fixed in FW 5.2.12: Firmware workaround - Dummy write by |
| iSCSI connections in order to clear erroneous bit when data |
| digest is detected |
| |
| Impact: All previous iSCSI releases, Linux and Windows running on |
| 57710, 57711, 57711E |
| |
| 4. Problem: (CQ37567, CQ40491, CQ44192) In virtualization environment: |
| poor network performance in virtual machine via BCM57711 |
| |
| Cause: Large packets aggregated by HW (TPA) into SG part of the skb, |
| kernel forwarding mechanism doesn't handle this part if target |
| interface doesn't support SG |
| |
| Fix: Disabling hardware packet aggregation (TPA) for virtualization |
| environment |
| |
| 5. Problem: (CQ 44636) iSCSI: Sessions do not recover after running |
| adapter selftest on 5771x |
| |
| Cause: When device is reset during MTU change, ring size change |
| or selftest, status block was not initialized properly |
| |
| Fix: Added status block initialization if cnic is registered |
| |
| Enhancements |
| ------------ |
| 1. Request: Use FW 5.2.11 |
| |
| Change: As requested |
| |
| 2. Request: (CQ43089) Add VPD-R V0 entry to displayed firmware revision in |
| ETHTOOL |
| |
| Change: As requested |
| |
| 3. Request: Use FW 5.2.12 |
| |
| Change: As requested |
| |
| 4. Request: Use more generic log message in case of fan failure |
| |
| Change: As requested |
| |
| 5. Request: Add GRO feature |
| |
| Change: As requested |
| |
| Version 1.52.7 (Nov 19, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: When iptable_nat module is installed on RH4, traffic halts |
| |
| Cause: iptable_nat on RH4 requests for GSO without asking for csum |
| offload |
| |
| Fix: When configuring the HW/FW to GSO, always configure csum |
| offload as well |
| |
| Impact: None |
| |
| 2. Problem: (CQ44436) Compilation error on ia64 with SUSE 11 |
| |
| Cause: Function bnx2x_set_iscsi_eth_mac_addr had "static" identifier |
| in its declaration while exported outside the module |
| |
| Fix: Removed "static" identifier |
| |
| Impact: Regression introduced in 1.52.5 |
| |
| 3. Problem: CQ41232: Management gets incorrect AN and FC bit values. |
| |
| Cause: FC wasn't updated correctly during link up event |
| |
| Fix: Extract all status_link information correctly |
| |
| Impact: None |
| |
| 4. Problem: CQ36401: Excessive link down messages when driver is unloaded |
| |
| Cause: Link event is reported for every link event, even when link |
| is not changed |
| |
| Fix: Do not report link change unless there's actually link link |
| change |
| |
| Impact: None |
| |
| 5. Problem: BCM8481 doesn't negotiate FC capabilities |
| |
| Cause: FC capabilities weren't advertised during phy initialization |
| |
| Fix: Set BCM8481 FC capabilities during init stage |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Allocate available MSI-X vectors in normal mode |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 2. Request: Use multi cpu rx when using msix in kernels without new napi |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 3. Request: Handle both Rx and Tx from NAPI |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 4. Request: Enable defining a minimum byte cost for a packet in |
| Host coalescing |
| |
| Change: (FW 5.2.10) As requested |
| |
| Impact: None |
| |
| 5. Request: Use FW 5.2.10 |
| |
| Change: As requested |
| |
| Impact: None |
| |
| |
| Version 1.52.6 (Nov 5, 2009) |
| ============================ |
| |
| Fixes |
| ----- |
| 1. Problem: Direct boards always show flow-control enabled when after |
| CL73 autoneg |
| |
| Cause: Incorrect register was used to access link-partner |
| advertisement |
| |
| Fix: Use the right register for the link-partner advertisement |
| |
| Impact: None |
| |
| 2. Problem: BCM8726 P14 is unable to link up @ 1G |
| |
| Cause: Incorrect SPIROM load sequence |
| |
| Fix: Set new load sequence according to HW requirement |
| |
| Impact: None |
| |
| 3. Problem: Only Tx queue 0 was used in default configuration on |
| kernel 2.6.30 and above |
| |
| Cause: bnx2x_select_queue() was returning 0 by default |
| |
| Fix: Make bnx2x_select_queue() return stack tx_hash() by default |
| |
| Impact: None |
| |
| 4. Problem: Failed to build bnx2x in chroot build environment |
| |
| Cause: The Makefile attempted to run with -j flag to utilize all CPU |
| in the system and in chroot environment it resulted with "-j 0" |
| |
| Fix: The Makefile should not force the -j option. Removed this |
| feature |
| |
| Impact: Without explicitly providing the -j flag when compiling the |
| driver, the compilation will consume more time |
| |
| 5. Problem: Direct boards pause capabilities are not resolved as expected |
| |
| Cause: Pause capabilities are negotiated over different registers, |
| hence require distinction between CL73 and CL37. |
| |
| Fix: Verify CL73 negotiation was completed as well as that |
| link-partner supports CL73 to conclude CL73 link up |
| |
| Impact: None |
| |
| 6. Problem: (CQ43831) Driver error reports while loading/unloading under |
| DCC traffic |
| |
| Cause: A race condition between disabling the incoming traffic when |
| unloading and DCC enabling the link |
| |
| Fix: Changed DCC enable/disable commands to use a different register |
| setting that will not interfere with normal unload sequence |
| |
| 7. Problem: Driver load under DCC traffic might fail |
| |
| Cause: Lack of lock between driver load command and DCC ack command |
| |
| Fix: Add mutex to protect the FW mailbox |
| |
| Impact: None |
| |
| 8. Problem: FW asserts while unloading/loading under DCC enable/disable |
| commands |
| |
| Cause: DCC disable command changed the driver internal state and might |
| overrun state changes which are initiated by the load/unload |
| sequence. This caused the driver to be out of sync with the FW |
| |
| Fix: DCC disable/enable command uses different flag and not the |
| driver state |
| |
| Impact: None |
| |
| 9. Problem: Error message is printed when failing to obtain MSI-X vectors |
| |
| Cause: When trying to work in multi-mode and not getting enough MSI-X |
| vectors, the driver printed an error message indicating that |
| it will use a single queue |
| |
| Fix: Since this is a valid condition, remove the error print |
| |
| Impact: None |
| |
| 10. Problem: iSCSI offload: Memory sanity of thread check fail during Query |
| ramrod |
| |
| Cause: During Query ramrod, when FW prepared the context for upload |
| on the scratchpad, it exceeds the thread scratchpad boundary |
| |
| Fix: Fixed in FW 5.2.7: Use the scratchpad within the thread |
| boundary only. |
| |
| 11. Problem: iSCSI offload: TCP Close failed |
| |
| Cause: FW bug in byte credit update during termination |
| |
| Fix: Fixed in FW 5.2.7 |
| |
| Enhancements |
| ------------ |
| 1. Request: Enable flow-control capabilities on direct boards when |
| flow-control is set to AUTO, and link is up using |
| parallel-detect |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 2. Request: Support new CNIC format |
| |
| Change: As requested |
| |
| Impact: None |
| |
| |
| Version 1.52.5 (Sep 22, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: In BCM8481, going from 1G to 10M cause GRC timeout |
| |
| Cause: EMAC clock is changed only after setting EMAC registers |
| |
| Fix: Set the EMAC clock according to the new speed before setting |
| EMAC registers |
| |
| Impact: None |
| |
| 2. Problem: Link led is down when link is up in CL73 |
| |
| Cause: HW issue |
| |
| Fix: SW workaround by setting led registers |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Modify BCM8481 link led configuration in 10G |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 2. Request: Add support for new dual-port 10G-baseT phy BCM84823 |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 3. Request: Add function for registering iSCSI MAC |
| |
| Change: Separated code into generic and target specific MAC setting |
| functions. Added an iSCSI related function. For ETH and iSCSI |
| set MAC functions wait for SET_MAC ramrod completion in order |
| to avoid a race on ramrod data |
| |
| Impact: Set MAC functions now wait for ramrod completion |
| |
| Version 1.52.4 (Sep 3, 2009) |
| ============================ |
| |
| Fixes |
| ----- |
| 1. Problem: Direct boards unable to link up @ 1G using auto-negotiation |
| |
| Cause: When negotiating using CL73, 1G-KX speed wasn't advertised |
| |
| Fix: In CL73, when 1G speed capability is enabled, advertise 1G-KX, |
| and disable 10G parallel-detect |
| |
| Impact: None |
| |
| 2. Problem: Flow control doesn't work when auto-negotiation complete with |
| CL73 |
| |
| Cause: Flow-Control wasn't advertised with CL73 |
| |
| Fix: Enable Flow-Control negotiation using CL73 |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Increase DMAE max write size for 57711/57711E to the maximum |
| supported by the chip |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 2. Request: Remove (eth%d) from error prints during bnx2x_init_one() |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.52.3 (Sep 1, 2009) |
| ============================ |
| |
| Fixes |
| ----- |
| 1. Problem: Enabling fairness algorithm in the middle of run causes the |
| function to stop transmitting |
| |
| Cause: The fairness credit is not initialized in this case |
| |
| Fix: Fix in FW 5.2.3: Change the fairness credit init value |
| |
| Impact: None |
| |
| 2. Problem: Good bytes received counter counts also bytes of packets which |
| were dropped later due to lack of host buffers |
| |
| Cause: Lack of specific counters for this matter |
| |
| Fix: Subtract the no-buff bytes from the good bytes counter |
| |
| Impact: None |
| |
| 3. Problem: Driver might read corrupted data from shared memory in case |
| bootcode is missing |
| |
| Cause: Some pieces of code are not protected in case bootcode is |
| missing |
| |
| Fix: Add additional protection in case bootcode is missing |
| |
| Impact: None |
| |
| 4. Problem: In BCM8706 rarely LASI is not cleared after link change |
| |
| Cause: LASI may not behave well when Serdes link is not up yet |
| |
| Fix: Reorder link up order of BCM8706 so that first it initialize |
| the link between the XGXS and only then initialize the BCM8706 |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Not handling statistics in panic condition |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 2. Request: Count driver_xoff in tx fp instance instead of rx fp instance |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 3. Request: bnx2x_get_settings() return -1 for speed and duplex if there |
| is no link |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 4. Request: Prevent possible soft lockups in Tx flow |
| |
| Change: Moved Tx completion handling to low latency tasklet, |
| limit handling time to 1 jiffie |
| |
| Impact: None |
| |
| Version 1.52.2 (Aug 18, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ42998) 57711E PF on OS linked even after unassigning |
| network in VC |
| |
| Cause: ethtool reports the physical link status instead of PF OS |
| link status |
| |
| Fix: bnx2x_get_link() returns no link if driver is not in open |
| state |
| |
| Impact: None |
| |
| 2. Problem: ethtool displays 57711E PF link speed as 0 in certain |
| scenario |
| |
| Cause: VC assigned network and max bandwidth were not refreshed |
| during driver load |
| |
| Fix: Refresh the VC assigned network and max bandwidth during |
| driver load |
| |
| Impact: None |
| |
| 3. Problem: syslog and kernel logs always report 57711E PF speed |
| as 10000 Mbps |
| |
| Cause: bnx2x_link_report() reports the actual physical link speed |
| instead of the max bandwidth assigned to the PF |
| |
| Fix: Report the max bandwidth assigned to the PF |
| |
| Impact: None |
| |
| 4. Problem: In some cases FW does not respond in time to driver requests |
| and thus driver load fails |
| |
| Cause: For certain PHYs, FW might need some more time before |
| responding to driver request |
| |
| Fix: Increase the timeout up to 5 sec |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Set interrupt coalescing granularity to 4us instead of 12us |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 2. Request: Change default interrupt coalescing numbers to supported |
| numbers |
| |
| Change: Since the interrupt coalescing granularity is 4us, a value of |
| 25 is actually configured as 24 to the HW |
| |
| Impact: None |
| |
| 3. Request: Fix bnx2x_fw_dump() to compute trace start address based on |
| shmem offset |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.52.1 (Aug 12, 2009) |
| ============================= |
| -- Upstream Version -- |
| Fixes |
| ----- |
| 1. Problem: Link is down with BCM8481 when connected to 1G device after |
| it was connected to 100M device |
| |
| Cause: When link type changes from SGMII to GMII/XGMII, the SGMII |
| configuration wasn't removed |
| |
| Fix: Remove SGMII configuration in non-SGMII link type |
| |
| Impact: None |
| |
| 2. Problem: BCM8481 link is down after cable plug out/in |
| |
| Cause: New BCM8481 image required new configuration of the LED4 signal |
| which generate the interrupt |
| |
| Fix: Detect link down using the LED4 signal rather than the BCM8481 |
| registers |
| |
| Impact: None |
| |
| |
| 3. Problem: (CQ35477) Incorrect display of External Phy Firmware Version |
| for Everest XFP board. |
| |
| Cause: External Phy Firmware Version for BCM8705 PHY used to display |
| 0000:0000 |
| |
| Fix: Change not to display PHY FW version |
| |
| Impact: None |
| |
| 4. Problem: In BCM8727, spirom was loaded first on slave port, rather than |
| on the master port. This may lead to xaui pll issue |
| |
| Cause: Port-Swap wasn't considered when loading spirom to the BCM8727, |
| hence first the slave port was loaded with the spirom |
| |
| Fix: First load the SPIROM to the master port |
| |
| Impact: None |
| |
| 5. Problem: Possible FW assert in driver unload/load test case |
| |
| Cause: Possible race on statistics state machine state change |
| |
| Fix: Added a write barrier to ensure that the state change is |
| committed |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: In promiscuous mode, pass management traffic to the host |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 2. Request: PCI drivers that implement the struct pci_error_handlers' |
| error_detected callback should return PCI_ERS_RESULT_DISCONNECT |
| if the state passed in is pci_channel_io_perm_failure |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 3. Request: (CQ41112) PHY LED programming for BCM8481 PHY |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 4. Request: (CQ41067) Add support for CL73 on XAUI |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.52.0 (Jul 28, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: Redundant settings of vlan_features at set_tso |
| |
| Cause: There is no need to change vlan_features at set_tso since this |
| field is a capability field and not current settings |
| |
| Fix: Remove redundant code |
| |
| Impact: None |
| |
| 2. Problem: (CQ42550) No host traffic when NCSI is enabled on some systems |
| |
| Cause: The driver did not set the required filtering flags and |
| received only traffic which was not intended for the BMC - on |
| some systems, this is not enough and the driver should enable |
| its own masking |
| |
| Fix: Setup the driver mask to receive traffic even when NCSI is |
| enabled |
| |
| Impact: None |
| |
| Version 1.50.13 (Jul 22, 2009) |
| ============================== |
| |
| Enhancements |
| ------------ |
| 1. Request: Update to FW 5.0.21 |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.50.12 (Jul 16, 2009) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: In some TPA aggregation cases, might go into TCP slow-start |
| instead of fast-retransmit |
| |
| Cause: When TPA is used, pure ACK on open aggregation was aggregated |
| |
| Fix: (FW 5.0.20) Do not aggregate pure ACK packets in TPA |
| |
| Impact: None |
| |
| Version 1.50.11 (Jul 7, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: Setting rx-usecs to the value less than 12 causes the |
| traffic to stop |
| |
| Cause: Did not disable HC coalescing when set the coalescing timeout |
| to zero (coalescing timeouts are multiples of 12us) |
| |
| Fix: Disable HC coalescing, when timeout is set to the zero |
| |
| Impact: None |
| |
| 2. Problem: Packet descriptors in NIG might get out of sync if management |
| egress traffic is pass through during self test |
| |
| Cause: During loppback test management egress traffic might be routed |
| to the host and will not be cleared when exiting the diag mode |
| |
| Fix: Disable management egress traffic when driver is in diag mode |
| |
| Impact: None |
| |
| Version 1.50.10 (Jul 1, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ42298) Management traffic does not resume after self test |
| |
| Cause: Writing to the egress management FIFO during the memory test |
| interpreted as a start of a management packet and cause the |
| FIFO not to be empty |
| |
| Fix: Remove the write to the egress management FIFO from the self |
| test |
| |
| Impact: None |
| |
| 2. Problem: Link up time takes too long with BCM8727 based NICs |
| |
| Cause: EDC mode is not set automatically |
| |
| Fix: Set EDC mode manually according to the SFP+ module type |
| detected (Passive DAC / Active DAC / LC-LRM / LC-SR / LC-LR) |
| |
| Impact: None |
| |
| 3. Problem: (CQ41567) In BCM8727 based NICs, when SFP+ module is not |
| plugged, there is continuous messages of Link Down |
| |
| Cause: The EDC tries to process the Rx data/noise because its OPRXLOS |
| input signal is false (low), indicating an Rx signal is |
| present. |
| |
| Fix: Perform 'Or' of the Active Module Absent Level with the Active |
| Laser Loss of Light Level. This way we tell the EDC not |
| process Rx data/noise when the module is not present. |
| |
| Impact: None |
| |
| Version 1.50.9 (Jun 25, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: Low throughput when using VLAN on kernel 2.6.26 or above |
| |
| Cause: New VLAN_features field in struct net_device was not |
| initialized hence no offload capabilities were available with |
| VLAN |
| |
| Fix: Initialize VLAN_features field in struct net_device |
| |
| Impact: None |
| |
| 2. Problem: No event log in case fan failure occured prior to loading the |
| driver |
| |
| Cause: The event was not detected since it was already set when the |
| driver was loaded |
| |
| Fix: Check for the event on load time |
| |
| Impact: None |
| |
| 3. Problem: Loopback test in self test might fail in case NCSI is enabled |
| |
| Cause: NCSI egress traffic is received instead of the loopback test |
| packets |
| |
| Fix: Disable NCSI egress traffic during loopback test |
| |
| Impact: None |
| |
| 4. Problem: ethtool reports link up when the device is down |
| |
| Cause: Bug in ethtool_op_get_link() |
| |
| Fix: Use bnx2x_get_link() instead |
| |
| Impact: None |
| |
| 5. Problem: 57711E WoL does not work if only one function per port was |
| active prior to shutdown |
| |
| Cause: WoL is configured to work in SF mode |
| |
| Fix: Set the chip back to SF mode (so WoL will work) even if only |
| one function was loaded per port in MF mode |
| |
| Impact: None |
| |
| Version 1.50.8 (Jun 8, 2009) |
| ============================ |
| |
| Fixes |
| ----- |
| 1. Problem: When running many TCP connections (>200) on both ports, some |
| connections hangs |
| |
| Cause: When all TPA aggregations are occupied, FW can override the RX |
| CQE consumer of the other port |
| |
| Fix: Fix in FW 5.0.18: reload the RX CQE consumer from RAM after TPA |
| handler breaks to sleep |
| |
| Impact: None |
| |
| 2. Problem: CL73 enhancement causes link down |
| |
| Cause: Unknown |
| |
| Fix: Revert CL73 enhancement until problem resolved |
| |
| Impact: None |
| |
| Version 1.50.7 (Jun 4, 2009) |
| ============================ |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ41533) Unapproved modules behavior is not enforced according |
| to nvram configuration |
| |
| Cause: In case the module was not approved, the function quit before |
| enabling the Tx laser - so even when set to warning, there was |
| no link. When set to power off the module, there was continues |
| false indication of over current when the module was extracted |
| |
| Fix: When set to warning - enable the module. Validate that the |
| module is present before checking for over current indication |
| |
| Impact: None |
| |
| 2. Problem: The coalescing timeout value displayed by `ethtool' is |
| different for the one used by the FW |
| |
| Cause: The limitation for coalescing timeout values in driver's |
| `ethtool -C' callback was wrong |
| |
| Fix: Fix the limitation for coalescing timeout in `ethtool -C' |
| callback |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Reduce the number of cache misses in a fast path |
| |
| Change: Avoid extra cache miss by updating `trans_start' from inside |
| start_xmit() as long as it's done by the core network layer |
| starting from kernel 2.6.31 |
| |
| Impact: None |
| |
| 2. Request: (CQ41067) Add 5771x CL73 support |
| |
| Change: As requested |
| |
| Impact: Everest is now able to link with devices which operate in CL73 |
| alone / CL37 alone / or both |
| |
| 3. Request: Make 8727 over-current behavior code more efficient |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.50.6 (Jun 1, 2009) |
| ============================ |
| |
| Fixes |
| ----- |
| 1. Problem: In 8727, after power-fault occurred and the driver is |
| unloaded and then reloaded, the interrupt is not cleared |
| |
| Cause: In this scenario, the mod_abs mode remain in "wait for |
| module plugged in", so interrupt was not cleared |
| |
| Fix: Set module_absent to wait for module absent scenario |
| |
| Impact: None |
| |
| 2. Problem: There is no need to read the warning string for un approved |
| modules from the FW/nvram |
| |
| Cause: This is over design that cause unnecessary overhead - a |
| constant string can be used |
| |
| Fix: Use constant warning string instead of receiving it from |
| FW/nvram |
| |
| Impact: Warning message is not to be used in the modules nvram file |
| |
| 3. Problem: High CPU usage in bnx2x_free_tx_pkt() |
| |
| Cause: prefetch(skb_shinfo(skb)) implied immediate cache miss when |
| NET_SKBUFF_DATA_USES_OFFSET is enabled |
| |
| Fix: Replaced prefetch(skb_shinfo(skb)) by prefetch(&skb->end). |
| This would prefetch only the first one from two cache misses |
| needed for reading of skb_shinfo(skb)->nr_frags, which is |
| needed by dev_kfree_skb(skb), but it will do it in a |
| background avoiding an immediate CPU stall |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add support for BCM8727 without over current detection |
| (BCM8727_NOC) |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.50.5 (May 26, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ38975) Failed to setup leading connection after |
| a lot of iterations of "down-up" test. Workaround for CQ37893 |
| (Use INTx mode when MSI-X fails due to memory allocation |
| failure) was broken |
| |
| Cause: bnx2x_set_int_mode() wasn't returning a status, thus there |
| was no way to catch a mentioned above memory allocation |
| failure |
| |
| Fix: Return a status from bnx2x_set_int_mode() |
| |
| Impact: None |
| |
| 2. Problem: (CQ41349) Linux panic when disabling RX chksum and running RX |
| traffic |
| |
| Cause: TPA enabled option was not controlled per function/queue level |
| |
| Fix: FW fix in version 5.0.16: TPA enabled is now controlled per |
| function/queue level |
| |
| Impact: None |
| |
| 3. Problem: (CQ41434) ethtool -S <NIC> was printing junk on kernels with |
| RSS support |
| |
| Cause: There was a bug in function returning number of lines in |
| device statistics bnx2x_get_stats_count - it was returning |
| more than there actually were) |
| |
| Fix: Make bnx2x_get_stats_count return the correct number |
| |
| Impact: None |
| |
| |
| Enhancements |
| ------------ |
| 1. Request: Support approved module list and warn if the module is not on |
| the list |
| |
| Change: This feature requires bootcode 5.0.6 or later and a valid |
| optic modules image on the nvram. The feature is controlled by |
| nvram option 81 |
| |
| Impact: None |
| |
| 2. Request: Allow enabling and disabling the fan failure mechanism for |
| different PHY types |
| |
| Change: Determine if fan failure enforcement is required according to |
| nvram configuration. The configuration can be auto enforcement |
| according to the PHY type, disabled or enabled |
| |
| Impact: None |
| |
| 3. Request: Support firmware flow control when consuming SGEs |
| |
| Change: FW change in FW 5.0.16: Added check for Flow control when |
| consuming SGEs from host |
| |
| Impact: None |
| |
| 4. Request: Advertise driver DCC capabilities |
| |
| Change: As requested |
| |
| Impact: None |
| |
| |
| Version 1.50.4 (May 18, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ40938, CQ40937, CQ40911, CQ40992) |
| LSO test failure |
| |
| Cause: LSO packets with BDs that point to buffers that are less than |
| MSS size caused the firmware to send illegal bytes within the |
| same LSO packet |
| |
| Fix: FW fix in version 5.0.14 |
| |
| Impact: Regression introduced in v1.50.2 |
| |
| 2. Problem: (CQ41198) modprobe generate error on RH4.6 or 4.7 which will |
| cause kernel panic |
| |
| Cause: pci_register_driver() returns count and not errno |
| |
| Fix: Ignore the return code from pci_register_driver() in kernels |
| below 2.6.10 |
| |
| Impact: None |
| |
| 3. Problem: (CQ38975,CQ38925) Failed to setup leading connection after |
| a lot of iterations of "down-up" test |
| |
| Cause: There were a few memory barriers missing |
| |
| Fix: Add missing memory barriers |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Reduce the time spent in skb_release_data() |
| |
| Change: Add prefetch(&skb->end) before calling dev_kfree_skb in order |
| to bring in the cache line that skb_release_data() will |
| eventually need (based on the bnx2 patch proposed by |
| Eric Dumazet) |
| |
| Impact: None |
| |
| 2. Request: (CQ33228) Add required IOCTLs to support PHY FW upgrade |
| |
| Change: Add 3 magic numbers to the ethtool -E (eeprom) command to |
| support PHY FW upgrade init, PHY FW upgrade complete, and PHY |
| re-init after upgrade |
| Add CL45 MDIO IOCTL support |
| |
| Impact: None |
| |
| 3. Request: Add support for BCM8481 SPI-ROM upgrade |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.50.3 (May 14, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ40848,CQ40835) System breaks due to a firmware assert |
| |
| Cause: Firmware asserted when PCI read latency for RX BD ring was |
| longer then 20usec |
| |
| Fix: FW fix in version 5.0.12: Replace the workaround by a flow |
| which polls on the RX BD ring every 4usec |
| |
| Impact: None |
| |
| 2. Problem: (CQ36705) Performance on 57711/57711E is lower when flow |
| control is enabled than when flow control is disabled |
| |
| Cause: L2 firmware flow control was enabled for 57711/57711E and |
| caused performance decrease |
| |
| Fix: Disable L2 firmware flow control by default (add new module |
| parameter to enable it) |
| |
| Impact: None |
| |
| 3. Problem: Workqueue might not be freed if driver fail to register |
| |
| Cause: Workqueue is not freed if driver fail to register |
| |
| Fix: Free workqueue when driver fail to register |
| |
| Impact: None |
| |
| 4. Problem: Negative number of received packages might be returned in |
| STOP_ON_ERROR debug mode |
| |
| Cause: Negative errno is returned in STOP_ON_ERROR debug mode |
| |
| Fix: Do not return negative number of received packages |
| |
| Impact: None |
| |
| 5. Problem: Fan failure on BCM8727 was not supported on port 1 |
| |
| Cause: The fan failure assertion was tied only to port 0 |
| |
| Fix: The fan failure assertion is tied to port 1 also |
| |
| Impact: None |
| |
| 6. Problem: BCM8727 shows link up while RX is disabled |
| |
| Cause: When module-compliance enforcement is enabled, |
| and non-compliant module is detected, then the driver |
| disables the TX-Laser for the phy, yet the link keeps |
| showing link up. |
| |
| Fix: When link is changing, in case the TX-laser is off, |
| indicate that the link is down although the phy detects |
| RX link up. |
| |
| Impact: None |
| |
| 7. Problem: (CQ41000) Could miss link up event in BCM8727 right after |
| optic module insertion |
| |
| Cause: At the time that SFP+ module plugged-in was triggered, |
| driver enabled the module while ignoring link change |
| |
| Fix: Check for link changes during module plugged in/out |
| |
| Impact: None |
| |
| 8. Problem: BCM8727 doesn't link in 10G after changing from 1G |
| |
| Cause: 10G default configuration was overwritten after setting 1G |
| configuration. Since the phy is not reset, the configuration |
| for 10G doesn't go back to default after link speed change |
| |
| Fix: When setting 10G, enforce 10G configuration, and not relay |
| on the default configuration. |
| |
| Impact: None |
| |
| |
| 9. Problem: (CQ40840) BCM57710 didn't receive multicast packets |
| |
| Cause: BCM57710 was unable to receive multicast packets. This BUG |
| was introduced with transition to the new Rx HSI. It's unlikely |
| that this failure is SuSE 11 specific |
| |
| Fix: Fix BCM57710 specific multicast configuration code |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add dropless_fc module parameter to send pause frames in |
| case where one of the host buffers (when in RSS mode) are |
| exhausted |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.50.2 (May 05, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ40300) XFP adapter shows link up in network properties |
| with no cable |
| |
| Cause: Link status register was updated long after interrupt was |
| triggered |
| |
| Fix: Check that RX PMD Loss of Sync bit is cleared and RX PMD Sync |
| Acquired bit is set to detect link |
| |
| Impact: None |
| |
| 2. Problem: When Over-Current state is established, LASI interrupts are |
| not cleared |
| |
| Cause: In this scenario, the module is powered-off so OPTXFLT/OPRXLOS |
| indications are set. This cause a fixed RX_ALARM indication |
| which cannot be turned off |
| |
| Fix: When Over-current condition is detected, set RX_ALARM to |
| detect only module-absent events, so when a new module is |
| plugged in, it will be detected and then RX_ALARM will be set |
| to detect link as well |
| |
| Impact: None |
| |
| |
| |
| Enhancements |
| ------------ |
| 1. Request: Improve Tx packet rate |
| |
| Change: FW 5.0.10 |
| |
| Impact: None |
| |
| 2. Request: Add support for future chip revisions |
| |
| Change: From now on bnx2x_main.c doesn't include huge X_init_values.h |
| files. Instead X_init_values.h were transformed to |
| X_init_values.c, which also include internal pointers |
| initialization function for the appropriate chip revision |
| |
| Impact: None |
| |
| 3. Request: Add additional support for BCM8727 |
| |
| Change: Add support module detection, over-current detection and |
| SFP+ EEPROM access |
| |
| Impact: None |
| |
| 4. Request: Add fan-failure check for BCM8727 |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.50.1 (April 27, 2009) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ39681) Dtape test fails on Dell TL2000 media changer device |
| |
| Cause: Misalignment between driver and firmware |
| |
| Fix: FW fix in version 5.0.8 |
| |
| Impact: None |
| |
| 2. Problem: When several protocols work together, interrupt rate is the |
| sum of all protocol rates, instead of the maximum between them |
| |
| Cause: State machines in host coalescing code were independent |
| and generated interrupts on their will |
| |
| Fix: FW fix in version 5.0.8: Add dependency between the states |
| machine - when an interrupt |
| is generated then all state machines of this status block |
| are handled as expired, resulting with lower interrupt rate |
| |
| Impact: None |
| |
| 3. Problem: Bootcode unable to set phy configuration |
| |
| Cause: When driver is loaded, it sets Serdes to work in CL45 while |
| the bootcode is using CL22 for phy access, so when driver |
| is unloaded, bootcode unable to access the phy. |
| |
| Fix: When driver is loaded set Serdes mode to CL22 only when |
| 1G-switch is set. This shall solve the issue for older |
| bootcodes, and will be fixed in newer bootcodes |
| |
| Impact: None |
| |
| 4. Problem: BCM8481 is not able to link up in legacy speeds |
| |
| Cause: Setting legacy speeds requires additional phy configuration, |
| and speed analysis |
| |
| Fix: Enable legacy speeds for this phy |
| |
| Impact: None |
| |
| 5. Problem: (CQ40392) Build for SLES11 do not autoload on reboot |
| |
| Cause: SLES11 disables modules whose source is not maintained in the |
| kernel.org source tree |
| |
| Fix: Provide "supported: external" modules for SLES11 |
| |
| Impact: None |
| |
| 6. Problem: BCM8481 is not able to link with 10/100 switch |
| |
| Cause: XGXS was initializaed to work in none-SGMII mode |
| |
| Fix: Set XGXS to work in SGMII mode if link speed is slower the 1G |
| |
| Impact: None |
| |
| 7. Problem: Potential error on unload |
| |
| Cause: The ILT could have been freed while a timer scan is in progress |
| |
| Fix: Make sure that the timer scan is done before freeing the ILT |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Improve Tx latency |
| |
| Change: Removed taking tx_lock in Tx interrupt flow. This also |
| voided a need for tx_xon_tasklet - Tx is moved to XON state |
| directly from bnx2x_tx_int |
| |
| Impact: None |
| |
| 2. Request: Add support for new BMAC HW block for new chip types |
| |
| Change: When accessing the new BMAC, use the new registers. |
| No need to initialize the PBF HW block credits since |
| flow-control is always enable in that block. |
| |
| Impact: None |
| |
| 3. Request: Enable support for other chips in more general way. |
| |
| Change: Split init values and FW into 2 different files. Work |
| against pointers in bnx2x struct instead of global arrays. |
| |
| Impact: None |
| |
| 4. Request: Add initial support for BCM8727 |
| |
| Change: Add support for the new dual-port SFP+ phy |
| |
| Impact: None |
| |
| 5. Request: In BigMac2, when PFC enabled, pass pause frames towards the NIG |
| |
| Change: Set the appropriate bit in the bigmac control register |
| |
| Impact: None |
| |
| 6. Request: Improve Rx packet rate |
| |
| Change: FW 5.0.8 |
| |
| Impact: None |
| |
| Version 1.50.0 (April 02, 2009) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: Rx was getting stuck on ia64 platform when system page size |
| was configured to be 64KB on the kernels 2.6.27 and later |
| |
| Cause: The implementation on PAGE_ALIGN macro has been changed, |
| which caused downcast in some places in the code and as a |
| result improper HW configuration |
| |
| Fix: Add a proper casting for the argument of SGE_PAGE_ALIGN macro |
| |
| Impact: None |
| |
| 2. Problem: (CQ39552) Link LED is turned OFF while running external |
| loopback test |
| |
| Cause: When using phy loopback, the link doesn't actually comes up |
| since there's no link partner |
| |
| Fix: Set link led up on loopback test |
| |
| 3. Problem: BCM8481 is not able to link up in 10/100/1000 Mbps |
| |
| Cause: No 10/100/1000 link signal is connected from the BCM8481 to the |
| Everest |
| |
| Fix: BCM8481 will connect LED4 signal to the Everest LASI signal. |
| The Everest will use the NIG latching mechanism which allows to |
| catch a link event even if the link toggles fast |
| |
| 4. Problem: SFP+ (BCM8726) boards do not use flow-control |
| |
| Cause: Flow control wasn't set for BCM8726 |
| |
| Fix: Set flow control according to configuration in BCM8726 |
| |
| Impact: None |
| |
| 5. Problem: Flow-control in MF mode should behave like in SF mode |
| |
| Cause: Old restriction which is not necessary |
| |
| Fix: Remove special flow-control configuration in MF mode |
| |
| Impact: None |
| |
| 6. Problem: CNIC sanity tests fails |
| |
| Cause: When changing to new dynamic HC code, no RAM line was allocated |
| to default SB so there was a memory corruption |
| |
| Fix: FW fix in version 5.0.3: Add RAM line for default SB to dynamic |
| HC array |
| |
| Impact: None |
| |
| 7. Problem: (CQ39503) Transmission stops for 5 second |
| |
| Cause: Confusion in scaling of the receive window of the remote. |
| Sometimes it is taken "as is" as a number of bytes, without |
| scaling |
| |
| Fix: FW fix in version 5.0.3: Scaling added in 3 places in the code |
| |
| Impact: None |
| |
| 8. Problem: Low performance on Tx side in UDP test with small packets |
| |
| Cause: Extra memory barrier in Tx flow |
| |
| Fix: Replace mb() to wmb() |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Improve FW performance |
| |
| Change: HC coalescing has been moved from USTORM to CSTORM. |
| TSTORM performance has been improved. FW 5.0.3 |
| |
| Impact: None |
| |
| 2. Request: Add support for DCC |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 3. Request: Improve performance |
| |
| Change: Connect Tx and Rx to different interrupt vectors |
| |
| Impact: None |
| |
| 4. Request: Add module parameter controlling number of Rx and Tx queues |
| |
| Change: As requested. Number of Tx queues must be not more than |
| number of Rx queues |
| |
| Impact: None |
| |
| 5. Request: Add "per function" statistics support for NCSI management |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.48.106 (Mar 04, 2009) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ38925) Unload/Load with netperf TCP traffic test |
| eventually caused a SETUP ramrod failure |
| |
| Cause: ISR discarded a SP interrupt due to weak synchronization of |
| atomic variable that disables interrupt handling (intr_sem) |
| |
| Fix: Add write memory barriers where intr_sem is updated |
| |
| Impact: None |
| |
| 2. Problem: Possible problem in pram initialization |
| |
| Cause: There was a bug in init code generation script |
| |
| Fix: Fix the pram initialization |
| |
| Impact: None |
| |
| Version 1.48.105 (Mar 02, 2009) |
| =============================== |
| -- Upstream Version -- |
| Fixes |
| ----- |
| 1. Problem: Unload/Load test under traffic caused kernel panic in |
| skb allocation/freeing functions |
| |
| Cause: Previously added patch (enhancement 6 in release 1.48.100) |
| broke proper usage of net_device object |
| |
| Fix: Remove the mentioned patch |
| |
| Impact: None |
| |
| Version 1.48.104 (Mar 01, 2009) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: New phy version (P14) of the BCM8726 unable to link up |
| |
| Cause: The new phy version doesn't behave exactly like its |
| previous version (P13), hence requires some adjustments |
| |
| Fix: 1. Microcode download requires write of another register |
| 2. Read from "Limiting/LRM mode" register before setting |
| Limiting mode |
| |
| Impact: No impact on P13 |
| |
| Enhancements |
| ------------ |
| 1. Request: Add limited (online) GRC dump using ethtool -d command |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.48.103 (Feb 19, 2009) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: "ext_phy_fw version" command for BCM8705 shows invalid number |
| |
| Cause: BCM8705 has no microcode |
| |
| Fix: Set BCM8705 version to 0 |
| |
| Impact: None |
| |
| 2. Problem: Potential problem in BCM8726 bit stretching work-around |
| |
| Cause: When module detection option is disabled, module should be |
| transmitting regardless of invalid read from EEPROM |
| |
| Fix: Ignore error code when setting limiting mode |
| |
| Impact: None |
| |
| 3. Problem: (CQ38925, CQ38975) "Wait Ramrod" error while running |
| load/unload stress w/ traffic |
| |
| Cause: Tx wasn't properly disabled in the 'close' flow |
| |
| Fix: Properly disable Tx during 'close' flow |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Use DMAE to zero the FW internal memory before loading the FW |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 2. Request: Remove "budgeting" in bnx2x_tx_int |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 3. Request: By default, multi_mode is disabled for old NAPI kernels |
| (up to 2.6.24) |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.48.102 (Feb 12, 2009) |
| =============================== |
| -- Upstream Version -- |
| Fixes |
| ----- |
| 1. Problem: FW stats counters might not be updated when running heavy |
| stress test |
| |
| Cause: Sending FW stats ramrod query depends on stats_pending flag. |
| This flag might not be cleared by sp_task() under heavy stress. |
| Thus, next FW stats ramrod query will not be send |
| |
| Fix: Clear stats_pending flag at the end of storm_stats_update() |
| |
| Impact: None |
| |
| Version 1.48.101 (Feb 09, 2009) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: Compilation is broken on kernels >= 2.6.24 |
| |
| Cause: FW constant rename was not updated in latest drop |
| |
| Fix: Fix constant name |
| |
| Impact: None |
| |
| Version 1.48.100 (Feb 09, 2009) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: "ext_phy_fw version" command for BCM8706 sometimes shows |
| invalid version number |
| |
| Cause: The version number is read during init phase. Reading the |
| BCM8706 version during init phase is done premature |
| |
| Fix: During init phase of the BCM8706, wait until the firmware |
| is loaded completely before reading the version number |
| |
| Impact: None |
| |
| 2. Problem: When setting pre-emphasis values for external phys, the |
| XGXS is also set |
| |
| Cause: In external-phy boards, when pre-emphasis values were set in |
| the nvram, both the external phy and the XGXS pre-emphasis |
| values were set, while the values fit the external phy only |
| |
| Fix: Set pre-emphasis values in XGXS only for direct type boards |
| |
| Impact: None |
| |
| 3. Problem: (CQ37809) loopback test failure |
| |
| Cause: The link was initialized for real work mode and then |
| re-init to loopback mode. During that time, incoming packets |
| might be queued in the rx ring in front of the loopback packet |
| |
| Fix: Always initialize the link to loopback mode if load_mode is |
| LOAD_DIAG |
| |
| Impact: None |
| |
| 4. Problem: Possible false error in the idle check section of the |
| self test regarding the CFC_REG_ACTIVITY_COUNTER register |
| |
| Cause: The test was designed to check halted system (after fatal |
| error) and thus assumed that the chip is idle |
| |
| Fix: Change the test to "info" debug print |
| |
| Impact: None |
| |
| 5. Problem: (CQ39439) mf_cfg function disabled error message displayed |
| |
| Cause: Putting the driver into disabled mode was considered an error |
| |
| Fix: Change the printed message from error to a notification |
| |
| Impact: None |
| |
| 6. Problem: (CQ38925, CQ37645) ifconfig ethX down up may cause a wrong |
| MSI configuration, which will prevent MSI interrupts to arrive |
| |
| Cause: Chip reset function cleared "MSI reconfigure enable" bit |
| |
| Fix: Don't clear the "MSI reconfigure enable" bit |
| |
| Impact: None |
| |
| 7. Problem: Uninitialized HW blocks |
| |
| Cause: XCM and BRB1 port init part were missing |
| |
| Fix: Add XCM and BRB1 port init part |
| |
| Impact: None |
| |
| 8. Problem: Constant pause is sent to the network if pause is enabled and |
| TPA is disabled |
| |
| Cause: Wrong thresholds were configured |
| |
| Fix: Set the thresholds to 0 if TPA is disabled |
| |
| Impact: None |
| |
| 9. Problem: Unloading UNDI by the driver in E1HMF mode might disable |
| interrupts of the wrong function |
| |
| Cause: HC regs are splited by 4 |
| |
| Fix: Pritend to write as function 0 when writing to HC regs |
| |
| Impact: None |
| |
| 10. Problem: BCM8726 MDIO access is not locked as it should be |
| |
| Cause: MDC/MDIO access to BCM8726 is done via single EMAC, hence |
| all MDC/MDIO access to this phy needs to be locked, like |
| BCM8072 and BCM8073 |
| |
| Fix: Lock the hardware using MDIO_RESOURCE when accessing the |
| BCM8726 phy via MDIO |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Set default WoL state according to nvram settings |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 2. Request: WRR between different COS queues at TX side |
| |
| Change: Added in driver and in FW 4.8.53 |
| |
| Impact: None |
| |
| 3. Request: Add ability to change BCM8726 TX PreEmphasis using nvram |
| configuration |
| |
| Change: When nvram config "Override pre-emphasis configuration" (75) |
| is set, use Tx pre-emphasis nvram configuration (47), lane0 |
| value to set the Main Tap and lane1 to enable TX-PreEmphasis |
| in BCM8726 |
| |
| Impact: None |
| |
| 4. Request: Add basic support for BCM8481 |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 5. Request: Limit Tx queue number to one for kernels 2.6.24 - 2.6.26 |
| (non-TSS kernels with new NAPI) |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 6. Request: Add RSS support for old NAPI kernels (up to 2.6.24) that |
| support MSI-X |
| |
| Change: As Requested |
| |
| Impact: multi_mode = 1 is now the default for all kernels |
| |
| Version 1.48.51 (Jan 26, 2009) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: Load balancing didn't work |
| |
| Cause: Driver assumed that there was Tx work as long as |
| driver packets producer and consumer were not equal |
| |
| Fix: Changed driver's Tx work amount evaluation logic |
| |
| Impact: None |
| |
| Version 1.48.50 (Jan 22, 2009) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ38862) modprobe fails to load driver on SuSE 11 |
| |
| Cause: SuSE 11 does not allow 3rd party modules to be loaded without |
| toggling a flag in /etc/modprobe.d/unsupported-modules |
| |
| Fix: Toggle the bit during make install |
| |
| Impact: None |
| |
| 2. Problem: Accessing nvram while the driver is down caused PCI error |
| |
| Cause: The driver attempted to access the nvram while the device was |
| in D3 since it was disabled |
| |
| Fix: Prevent nvram access when the device is down |
| |
| Impact: None |
| |
| 3. Problem: FW assert while running multi_mode=2 with tx MULTI_QUEUE |
| enabled |
| |
| Cause: start_xmit() selected different tx queue than the tx_lock was |
| taken |
| |
| Fix: Implement dev->select_queue() callback so start_xmit() selects |
| the correct tx queue |
| |
| Impact: None |
| |
| 4. Problem: Compilation problem with kernel 2.6.29 |
| |
| Cause: netif_rx_schedule and netif_rx_complete do not require the |
| device parameter anymore |
| |
| Fix: Do not pass the device paramter for those functions for kernels |
| above 2.6.29 |
| |
| Impact: None |
| |
| 5. Problem: Invalid presentation of BCM8726 fw version |
| |
| Cause: The register that holds the fw version is used for other |
| functionality as well, and it is run over after firmware is |
| loaded |
| |
| Fix: Save the firmware version of all external phys in shared |
| memory, after firmware is loaded |
| |
| Impact: None |
| |
| 6. Problem: BCM8726 may start tx laser before module detection occurs |
| |
| Cause: Module detection used to be done during link update, which |
| probably would be after tx was enabled |
| |
| Fix: From now on use interrupt driven event using GPIO3, to detect |
| module plugged in/out, and execute module detection then |
| |
| Impact: None |
| |
| 7. Problem: 1G switch configuration (using the 5th lane) doesn't work |
| |
| Cause: Support for Serdes (5th lane) was not maintained since no |
| production design used it and when switching to CL45 it stopped |
| working |
| |
| Fix: In order for control the Serdes over Clause45, (and not |
| Clause22), it requires first one time register setting in |
| Clause22 |
| |
| Impact: None |
| |
| 8. Problem: Softlock during remove_one() |
| |
| Cause: NAPI context was not released before unloading |
| |
| Fix: Release NAPI context before unloading |
| |
| Impact: None |
| |
| 9. Problem: False self-test failures due to MC_ASSERT |
| |
| Cause: iSCSI FW sometimes report run-time warnings which are |
| acceptable and do not cause any harm |
| |
| Fix: Do not check for MC_ASSERT. A real FW error will cause the |
| interrupt test to fail |
| |
| Impact: None |
| |
| 10. Problem: Possible miss of FW response on unload |
| |
| Cause: Missing memory barrier while waiting for FW response |
| |
| Fix: Add read memory barrier |
| |
| Impact: None |
| |
| 11. Problem: (CQ37809) loopback test failure |
| |
| Cause: A link change interrupt might be queued and activated after |
| the loopback was set |
| |
| Fix: Lock all PHY activities while running loopback test |
| |
| Impact: None |
| |
| 12. Problem: (CQ39057) Everest, 57710 Error message: |
| bnx2x_start_xmit: BUG Tx ring full when queue awake |
| |
| Cause: In kernels 2.6.24 - 2.6.26 (non-TSS kernels with new NAPI) |
| there can be a possibility that NAPI instance (fp instance) |
| other than the one moved Tx to XOFF state will wake the Tx |
| So, this is highly possible that start_xmit is called while |
| the ring is still full |
| In any other kernel this state is an obvious bug |
| |
| Fix: Remove an error message in the code for the mentioned |
| kernels |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Use FW 4.8.50 |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 2. Request: BCM8726 should be able to link up at 1G |
| |
| Change: Add support for 1G for BCM8726 |
| |
| Impact: When requested speed is 1G force, it will try to link in 1G |
| force. When the speed requested is autoneg, and the speed mask |
| capabilities contain 1G, it will try to autoneg in 1G as |
| well as in 10G |
| |
| 3. Request: (CQ39048) Add ability to change 8706 XAUI RX Equalizer |
| using nvram configuration |
| |
| Change: When nvram config "Override pre-emphasis configuration" (75) |
| is set, use the 3LSB bits of RX_equalizer nvram configuration |
| (48) to set the BCM8706 XAUI RX Equalizer registers for each |
| lane |
| |
| Impact: None |
| |
| 4. Request: Verify external phy image before ROM upgrade |
| |
| Change: New headers will be added to the images of external phys to |
| be upgraded. Currently this list includes BCM8073, BCM8726 |
| and SFX7101. The headers will be checked against fixed magic |
| number and specific phy type |
| |
| Impact: From now on, external phy images MUST include image header |
| |
| Version 1.48.11 (Jan 13, 2009) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: Possible memory overrun on platforms with page size more |
| than 8K |
| |
| Cause: "linearization" should take into an account system page |
| size and run or not run accordingly |
| |
| Fix: Fixed the compilation condition |
| |
| Impact: None |
| |
| 2. Problem: Compilation problem with kernel 2.6.28 |
| |
| Cause: struct net_device_ops was postponed to next release |
| |
| Fix: Remove struct net_device_ops from compilation |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Limit multi_mode to support only regular mode |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.48.10 (Jan 07, 2009) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ39129) driver assert while logging out during iSCSI |
| max sessions test |
| |
| Cause: QM initialization was wrong |
| |
| Fix: Fix QM initialization |
| |
| Impact: None |
| |
| Version 1.48.9 (Jan 05, 2009) |
| ============================= |
| |
| Fixes |
| ----- |
| |
| 1. Problem: (CQ38909) on IA-64 with TPA enabled, kernel memory was |
| sometimes smeared (depending on the MTU size) |
| |
| Cause: The max TPA fragments assumed 4KB pages and that system had |
| 16KB pages |
| |
| Fix: Fix the SGE (TPA fragment) size to be system page size |
| |
| Impact: Improved performance on systems with page size > 4KB like PPC |
| and IA-64 |
| |
| Version 1.48.8 (Dec 31, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| |
| 1. Problem: (CQ38992) on IA-64 Driver crash when transmitting on all 8 |
| functions in chariot IPv6 with tx checksum disabled scenario |
| |
| Cause: FW read the buffer descriptor (BD) producer and after that the |
| BD itself before the BD content was updated. This is possible |
| on IA-64 due to weak ordered memory module |
| |
| Fix: Add write barrier after updating the BD data and before |
| updating the BD producer |
| |
| Impact: None |
| |
| Version 1.48.7 (Dec 30, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| |
| 1. Problem: (CQ38985) Port swap is not working for BCM8726 |
| |
| Cause: BCM8726 is driven by MDC/MDIO through single EMAC. |
| In case of port swap, the EMAC access was left with EMAC0 |
| |
| Fix: In case port-swap is enabled in the NIG, access MDC/MDIO via |
| EMAC1 |
| |
| Impact: None |
| |
| 2. Problem: BCM8726 was not reset when driver was unloaded |
| |
| Cause: This phy hardware reset affects both ports and thus wasn't |
| used |
| |
| Fix: When link needs to be reset, reboot the micro-controller of the |
| BCM8726 |
| |
| Impact: None |
| |
| 3. Problem: BCM8726 was not reset during init |
| |
| Cause: This phy is connected using static port-swap, hence the reset |
| should have been triggered through the opposite port from the |
| spec |
| |
| Fix: Set gpio1 during common init from port1 instead of port0 |
| |
| Impact: None |
| |
| 4. Problem: (CQ38991) In E1HMF mode some interfaces occasionally |
| misreport link speed |
| |
| Cause: Races between interfaces during init cause an interrupt |
| event to be ignored |
| |
| Fix: Flag the device as "ready for interrupts" prior to enabling |
| the interrupts |
| |
| Impact: None |
| |
| 5. Problem: (CQ39057) Everest, 57710 Error message : |
| bnx2x_start_xmit: BUG Tx ring full when queue awake. |
| |
| Cause: Tx BD producer update may not be "seen" by bnx2x_tx_int |
| function running on different CPU, thereby bnx2x_tx_int |
| may erroneously conclude that it may wake Tx. |
| |
| Fix: Add smp_mb() after update of Tx producer before putting Tx |
| to XOFF state. |
| |
| Impact: None |
| |
| 6. Problem: In E1HMF mode with multi queue, functions 2..7 cannot receive |
| data |
| |
| Cause: Incorrect initialization of indirection table |
| |
| Fix: Initialize correctly the indirection table |
| |
| Impact: None |
| |
| 7. Problem: The driver debug crash dump does not handle cyclic rings |
| correctly |
| |
| Cause: The debug prints were simply from start to end and did not |
| print anything in case start < end (cyclic rings) |
| |
| Fix: Enhance the debug prints with cyclic logic |
| |
| Impact: None |
| |
| 8. Problem: Packets dropped due to lack of host buffers were counted twice |
| - in good and bad statistics |
| |
| Cause: Firmware does not maintain separate counters for |
| unicast/broadcast/multicast drops, therefore driver cannot |
| subtract these values from the good packet/byte counters |
| |
| Fix: Fixed in FW 4.8.9 |
| |
| Impact: None |
| |
| 9. Problem: iSCSI FW: High non-paged host memory consumption |
| |
| Cause: Unnecessary optimization of chipset<->memory bandwidth in |
| expense of memory consumption |
| |
| Fix: Fixed in FW 4.8.9 |
| |
| Impact: None |
| |
| Version 1.48.6 (Dec 18, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: System hangs when running ifconfig on an 8 CPUs system |
| |
| Cause: A loop variable was used again in an inner loop. That caused |
| an endless loop |
| |
| Fix: Use another variable for the inner loop |
| |
| Impact: None |
| |
| 2. Problem: Some stats names are not displayed but their values were |
| displayed in other stats |
| |
| Cause: Incorrect condition caused to skip stats names but not their |
| values |
| |
| Fix: Correct the condition |
| |
| Impact: None |
| |
| 3. Problem: iSCSI FW: During connection establishment on-chip (option2), |
| in case we receive SYN/ACK with incorrect dst_mac the chip |
| gets stuck |
| |
| Cause: This scenario led to accessing invalid PRAM address which |
| made the chip halt |
| |
| Fix: Fixed in FW 4.8.8 |
| |
| Impact: None |
| |
| 4. Problem: NAPI poll mode was stopped (netif_rx_complete called) and HW |
| interrupts reenabled even if the whole device quota had been |
| consumed. |
| |
| Cause: There was a bug in NAPI poll-mode canceling logic. |
| |
| Fix: Fix the logic in NAPI poll method. |
| |
| Impact: None |
| |
| Version 1.48.5 (Dec 11, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: TCP packets with VLAN weren't handled properly, when received |
| in non-accelerated VLAN traffic mode (when VLAN tag is not |
| stripped by the FW) |
| |
| Cause: Driver didn't support receiving VLAN packets in |
| non-accelerated mode. for TPA packets, there was a wrong |
| IP header offset calculation and, as a result, writing IP |
| checksum to the wrong offset. Non-TPA packets weren't handled |
| right as well: driver always used vlan_hwaccel_receive_skb to |
| pass an skb with VLAN to the stack, while it should use |
| netif_receive_skb in non-accelerated case |
| |
| Fix: Fixed IP header offset calculation for TPA packets. Fixed VLAN |
| skb handling |
| logic. |
| |
| Impact: None |
| |
| 2. Problem: (CQ38698, CQ37931) No link when using direct attached copper |
| cable with BRCM8726 PHY |
| |
| Cause: Passive copper cables should always operate in LRM mode rather |
| than in Limiting mode |
| |
| Fix: In case of passive copper cables, link up in LRM mode |
| |
| Impact: None |
| |
| 3. Problem: (CQ38815) iSCSI failure during hotplug |
| |
| Cause: Not everything is setup before calling register_netdev(). |
| pci_set_drvdata() and bnx2x_init_bp() were called after |
| register_netdev(). This potentially can also affect L2 |
| because bnx2x_open() can potentially be called before |
| those 2 calls have successfully completed |
| |
| Fix: Call register_netdev only at the end of successful setup |
| |
| Impact: None |
| |
| 4. Problem: (CQ38862) modprobe fails to load driver on SUSE11 |
| |
| Cause: SuSE does not allow 3rd party modules to be loaded without |
| toggling a flag in /etc/modprobe.d/unsupported-modules |
| |
| Fix: Toggle the bit through the packaging script |
| |
| Impact: None |
| |
| 5. Problem: iSCSI FW: In non-aligned PDUs with data-digest enabled, the |
| data-digest is calculated to a wrong value |
| |
| Cause: The CRC machine was not reset correctly in non-aligned PDUs |
| |
| Fix: Fixed in FW 4.8.6 |
| |
| Impact: None |
| |
| 6. Problem: iSCSI FW: Connection wasn't initialized with the right |
| parameters for the TX in E1HMF mode |
| |
| Cause: Initialization was done using SF mode |
| |
| Fix: Fixed in FW 4.8.6 |
| |
| Impact: None |
| |
| 7. Problem: (CQ38886, CQ38888) iSCSI FW: Double-vlan was not supported |
| for iSCSI. The packet was transmitted with bogus IP length |
| and no inner-vlan |
| |
| Cause: The vlan flag and the header builder command size weren't |
| set correctly |
| |
| Fix: Fixed in FW 4.8.6 |
| |
| Impact: None |
| |
| 8. Problem: Byte counters statistics did not count the 4 FCS bytes |
| |
| Cause: The FCS bytes were not counted |
| |
| Fix: Fixed in FW 4.8.7 |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: SFP+ optical module (MSA) vendor verification should |
| be optional when using BCM8726 PHY |
| |
| Change: Verify the optical module vendor according to nvram |
| configuration option #81: "Optic Module Vendor |
| Enforcement" |
| |
| Impact: The new nvram bit is visible using ediag version 4.8.3 |
| or later |
| |
| 2. Request: In multi queue mode, separate FW stats per queue |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 3. Request: Change some stats names: |
| pause_frames_received is now rx_pause_frames |
| pause_frames_sent is now tx_pause_frames |
| timer_max_events is now rx_constant_pause_events |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 4. Request: Align with RMON MIB (rfc 1757): |
| net_device_stats.rx_bytes is total_bytes_received |
| net_device_stats.multicast is total_multicast_packets_received |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 5. Request: Use static singlethread_workqueue shared for all bnx2x |
| interfaces |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.48.4 (Nov 26, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: CNIC driver is failing on higher functions of 57711E |
| |
| Cause: The status block ID for the CNIC was not assigned correctly |
| for higher functions |
| |
| Fix: Assign the status block ID according to the function ID |
| |
| Impact: None |
| |
| Version 1.48.3 (Nov 20, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: Intermittent MDC/MDIO failures on 8726 PHY |
| |
| Cause: MDIO register access is sometimes broken since PHY is not hard |
| reset |
| |
| Fix: Pull GPIO1 low for 1 ms after power-on. Note that the hard |
| reset is a shared resource on the PHY |
| |
| Impact: None |
| |
| 2. Problem: gso_type indication was not set for TPA packets |
| |
| Cause: gso_type wasn not set |
| |
| Fix: Set gso_type accordingly |
| |
| Impact: None |
| |
| 3. Problem: Possible false parity indication |
| |
| Cause: When using 5 tuple hash (not used today) the searcher might |
| falsely indicate parity error |
| |
| Fix: Mask bit 6 of the searcher parity errors |
| |
| Impact: None |
| |
| 4. Problem: (CQ37809) Intermittent failures in ethtool diagnostic |
| (CQ36771) Calltrace and interface locks up when up/down |
| interface |
| |
| Cause: If sp_task() is queued in the shared work queue after the |
| linkwatch, it will be starved and will not update the link |
| status until ethtool diagnostic ends and frees rtnl that |
| linkwatch is waiting for |
| |
| Fix: Create private workqueue |
| |
| Impact: None |
| |
| 5. Problem: (CQ38139) iSCSI FW: Performance < 40% of Peak Advertised |
| |
| Cause: Inefficient implementation of ring management in firmware |
| |
| Fix: Fixed in FW 4.8.4 |
| |
| Impact: None |
| |
| 6. Problem: (CQ38424) SAFC iperf drop result is 5 times higher than |
| previous build |
| |
| Cause: Mis-configuration of the SAFC timeout |
| |
| Fix: The new SAFC timeout will be 200usec |
| |
| Impact: None |
| |
| Version 1.48.2 (Nov 10, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: SAFC packets were not generated periodically by NIG |
| |
| Cause: A HW architecture bug |
| |
| Fix: Fixed in FW 4.8.3 |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Support iSCSI MAC and VLAN per function in 57711E |
| |
| Change: Added in FW 4.8.3 |
| |
| Impact: None |
| |
| Version 1.48.1 (Nov 06, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: Possible race between init_one() and open() with calling to |
| netif_carrier_off() |
| |
| Cause: After register_netdev(), open() can be called at any time and |
| the interrupt handler can be called after that. If you get a |
| link change interrupt, the netif_carrier_* call from IRQ or |
| NAPI poll can race with netif_carrier_off() call in probe. |
| |
| Fix: Move netif_carrier_off() to open() |
| |
| Impact: None |
| |
| 2. Problem: Possible access to illegal addresses inside the chip during |
| self test |
| |
| Cause: Loop size was given in bytes and not in number of entries |
| |
| Fix: Fix the loop size |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Fewer dropped packets when flow control is enabled on |
| 57711/57711E |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.48.0 (Nov 03, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: Failures on RH5 when using enabling and disabling the |
| functions one by one on 57711E |
| |
| Cause: Unloaded driver tries to access the PHY to get its FW |
| version since RH calls "ethtool -i" periodically |
| |
| Fix: Clear the PMF indication when the driver is unloaded |
| |
| Impact: The PHY FW is inaccessible when the driver is unloaded |
| |
| 2. Problem: Searcher block initialization for 57711E is wrong |
| |
| Cause: The searcher registers are split (same address for all |
| functions) |
| |
| Fix: Use the port offset and not the function offset |
| |
| Impact: None |
| |
| 3. Problem: Kernel panic when failing to load the driver |
| |
| Cause: netif_carrier_off was called before making sure that |
| the driver can be loaded |
| |
| Fix: Call netif_carrier_off as last action in the probe |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add iSCSI for 57711E |
| |
| Change: FW 4.8.2 supports iSCSI for 57711E |
| |
| Impact: None |
| |
| 2. Request: Add transmit multi queue support |
| |
| Change: As requested |
| |
| Impact: This fetaure is available on 2.6.27 kernel when using MSI-X |
| |
| Version 1.46.12 (Oct 29, 2008) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ37832) System crash when running TCP connections on |
| 57711 |
| |
| Cause: Access to unsupported address in FW PRAM due to |
| increased FW size |
| |
| Fix: Fixed in FW 4.6.21: Moved all operational FW code to |
| legal PRAM addresses |
| |
| Impact: None |
| |
| 2. Problem: After some cases of driver failure, driver cannot be |
| re-loaded |
| |
| Cause: The driver took the HW out of reset without making sure |
| that it was indeed in reset state |
| |
| Fix: Reset the HW before taking it out of reset |
| |
| Impact: None |
| |
| 3. Problem: (CQ37893) Driver failure when installed on RHEL4.5 from PXE |
| Server |
| |
| Cause: MSI-X fails due to memory allocation failure and though MSI |
| registration succeeded interrupts are not received in MSI mode |
| |
| Fix: Use INTx mode when MSI-X fails due to memory allocation |
| failure |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add debug module parameter to force MRRS value |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.46.11 (Oct 23, 2008) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ37915) On 57710, if self-test is run on port 1, port 0 stops |
| transmitting/receiving traffic unless in promiscuous mode |
| |
| Cause: Primary MAC address of port 0 is lost after the self-test on |
| port 1 |
| |
| Fix: Changed self-test to fix the problem |
| |
| Impact: None |
| |
| 2. Problem: (CQ37087) iSCSI FW: Data digest error event found in event viewer |
| |
| Cause: Wrong UPB command in non-aligned data that is adjacent to |
| iSCSI header in the TCP segment from the target |
| |
| Fix: Fixed in FW 4.6.17 |
| |
| Impact: None |
| |
| 3. Problem: (CQ38061) iSCSI FW: Invalid iSCSI PDU seen while running |
| OEM diagnostic to Equallogic target |
| |
| Cause: Misinterpretation of the 3720 RFC regarding data-in sequences |
| definition |
| |
| Fix: Fixed in FW 4.6.17 |
| |
| Impact: None |
| |
| 4. Problem: (CQ37861) iSCSI FW: BSOD occurred while running iLab's TOE |
| automated tests and iSCSI traffic |
| |
| Cause: Failed to identify task cleanup during processing of a |
| data-in PDU that belong to the same task |
| |
| Fix: Fixed in FW 4.6.17 |
| |
| Impact: None |
| |
| 5. Problem: (CQ38088) iSCSI FW: FW assert occurred while passing CNIC |
| traffic |
| |
| Cause: Race in iSCSI FW between writing task context entry using |
| the data path and writing R2TQE using the control path |
| |
| Fix: Fixed in FW 4.6.18: Eliminate race, by using R2TQE write |
| through the data path |
| |
| Impact: None |
| |
| 6. Problem: When enabling a lot of debug prints on a system with |
| many (more than 6) interfaces, timeout can occur on |
| driver load |
| |
| Cause: Since printk is busy, it can take longer for operations |
| to complete |
| |
| Fix: Increase the timeout value |
| |
| Impact: None |
| |
| 7. Problem: After load failure, the driver cannot be re-loaded |
| |
| Cause: The FW was not informed that the driver was unloaded |
| |
| Fix: On load failure, send "unload" notification to the FW |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: (CQ38040) Do not use crc32c_le symbol |
| |
| Change: Copied the function into the driver |
| |
| Impact: None |
| |
| Version 1.46.10 (Oct 20, 2008) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: System panic under stress traffic |
| |
| Cause: The alignment to the machine cache size was not calculated |
| correctly for the Rx buffer and so a buffer overrun occurred |
| |
| Fix: Allocate the right amount of memory considering the cache |
| alignment |
| |
| Impact: None |
| |
| Version 1.46.9 (Oct 16, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ37772) iSCSI FW: Bad data digest is transmitted |
| |
| Cause: Missing initialization in FW when going out of slow start |
| |
| Fix: Fixed in FW 4.6.16: Add rxmit parameters init to normal TX |
| flow |
| |
| Impact: None |
| |
| 2. Problem: (CQ37809) Intermittent Failures in Ethtool Diagnostic |
| |
| Cause: When setting PHY loopback, it required some time before |
| configuration is actually take place. |
| |
| Fix: Add 200ms after setting the PHY loopback |
| |
| Impact: None |
| |
| 3. Problem: Unable to receive packets on the iSCSI MAC address |
| |
| Cause: Promiscuous in rx mode was ran over by resetting the |
| rx mode |
| |
| Fix: Reset the rx mode before setting promiscuous mode |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add the licensing structure to the bnx2x_hsi.h |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 2. Request: Set FW to machine cache alignment (up to 256B) for Rx |
| packets L2 data |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.46.8 (Oct 07, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: A potential firmware bug when L2 packet is duplicated to more |
| than one L2 client when TPA is enabled |
| |
| Cause: Buffer could have been released before it was read by all L2 |
| clients |
| |
| Fix: Fixed in FW 4.6.15 |
| |
| Impact: None |
| |
| 2. Problem: (CQ37471) iSCSI FW: (iLab test 5.12) TCP CLOSE timeout issue |
| |
| Cause: Chip halted since handler apparently stuck in the queue |
| |
| Fix: Fixed in FW 4.6.15 |
| |
| Impact: None |
| |
| 3. Problem: (CQ37244) iSCSI FW: (iLab test 5.10) Chip hangs when receiving |
| SYN+RST+ACK after SYN sent |
| |
| Cause: SYN retransmission with invalid sequence number caused by not |
| rewinding the sequence number after retransmission |
| |
| Fix: Fixed in FW 4.6.15 |
| |
| Impact: None |
| |
| 4. Problem: iSCSI FW: Chip halts after few unanswered connections attempts |
| |
| Cause: After retransmits were done, the chip didn't return the |
| credits it should have |
| |
| Fix: Fixed in FW 4.6.15 |
| |
| Impact: None |
| |
| 5. Problem: (CQ37668) iSCSI FW: Chip hangs when trying to connect to |
| iSCSI target with no licenses present |
| |
| Cause: When licensing of new connection fails, there's a credit leak |
| which caused an invalid handler to wake up |
| |
| Fix: Fixed in FW 4.6.15 |
| |
| Impact: None |
| |
| 6. Problem: (CQ37610) A potential problem if call to register_cnic during |
| MTU change |
| |
| Cause: CNIC and the bnx2x drivers can be trying to setup the chip |
| at the same time |
| |
| Fix: Check for intr_sem in register_cnic to prevent this problem |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Allow better response time to SAFC packets |
| |
| Change: Configure max-byte-credit as required for SAFC mode |
| |
| Impact: None |
| |
| 2. Request: Add priority mapping table to map SAFC priority to HW queue |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.46.7 (Sep 28, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ37161) Running ifconfig down up on one interface can cause |
| other interface to fail |
| |
| Cause: Overriding internal memory that belongs to the other interface |
| |
| Fix: Writing only memory of the correct interface |
| |
| Impact: None |
| |
| 2. Problem: (CQ37288) iSCSI FW: iSCSI offload with Everest is extremely |
| slow |
| |
| Cause: PSH flag was not set in last PDU TCP packet |
| |
| Fix: Fixed in FW 4.6.13 |
| |
| Impact: None |
| |
| 3. Problem: Possible overriding the internal memory and possible failure |
| to work with MSI-X when RSS and CNIC enabled |
| |
| Cause: Allocate 16 queues for RSS + 1 queue for CNIC |
| |
| Fix: Allocate only 15 queues for RSS |
| |
| Impact: None |
| |
| 4. Problem: Lower performance on Big-Endian machines |
| |
| Cause: Failure to read correctly the PCI_EXP_DEVCTL on Big-Endian |
| systems. Read PCI_EXP_DEVCTL to u32 variable instaed of u16 |
| variable |
| |
| Fix: Read PCI_EXP_DEVCTL to u16 variable |
| |
| Impact: None |
| |
| Version 1.46.6 (Sep 25, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ37398) Issuing ifdown command on one port causes the |
| other port not to respond either |
| |
| Cause: Clearing all entries in the CAM |
| |
| Fix: Clear only the appropriate entries in the CAM |
| |
| Impact: None |
| |
| 2. Problem: (CQ37407, CQ37508, CQ37509) Compilation fails on |
| RH 4.5, 4.6, 4.7 |
| |
| Cause: A compiler bug |
| |
| Fix: Workaround in the code |
| |
| Impact: None |
| |
| 3. Problem: (CQ36673) iSCSI FW: Hardware attention on MaxLuns |
| |
| Cause: Activity count leak in Ustorm microprocessor |
| |
| Fix: Fixed in FW 4.6.12 |
| |
| Impact: None |
| |
| 4. Problem: (CQ37224) iSCSI FW: (iLab test 5.10) Hardware attention |
| (Microcode assert) |
| |
| Cause: iSCSI FW: SYN+RST drop after SYN sent caused AC leak |
| in TStorm microprocessor in option2 |
| |
| Fix: Fixed in FW 4.6.12 |
| |
| Impact: None |
| |
| 5. Problem: iSCSI FW: (iLab test 6.1) Hardware attention |
| (Microcode assert) |
| |
| Cause: Missing update of R2T buffer offset |
| |
| Fix: Fixed in FW 4.6.12 |
| |
| Impact: None |
| |
| 6. Problem: Possible false warning (not a failure) in the idle |
| check section of the self test regarding the |
| BRB1_PRTY_STS register |
| |
| Cause: The condition was not masked properly |
| |
| Fix: Fixed the condition check for that register |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add support for BCM8726 (Dual port phy SFP+ ) including |
| MSA module recognition and verification |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.46.5 (Sep 17, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ36478) MSI fails on Big-Endian systems |
| |
| Cause: The IGU was configured to swap the data over the PCI |
| |
| Fix: Config IGU not to swap the data and add swap in the driver |
| where it is necessary |
| |
| Impact: None |
| |
| 2. Problem: (CQ37309) Can not compile on some old kernels |
| |
| Cause: Call to pci_disable_msi() was not under appropriate #ifdef |
| |
| Fix: Add the appropriate #ifdef |
| |
| Impact: None |
| |
| 3. Problem: Self test sometimes indicates on a failure |
| |
| Cause: A test result was declared as an error instead of a warning |
| |
| Fix: Declare the test result as a warning |
| |
| Impact: None |
| |
| Version 1.46.4 (Sep 16, 2008) |
| ============================= |
| |
| Enhancements |
| ------------ |
| 1. Request: CNIC enabled in default compilation |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.46.3 (Sep 11, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ34165) High number of pause frames |
| |
| Cause: The thresholds in the receive buffer needed some |
| tuning |
| |
| Fix: Tuned the thresholds in the receive buffer |
| |
| Impact: None |
| |
| 2. Problem: (CQ36559, CQ36989) System crash when working on PPC |
| with 64KB page |
| |
| Cause: The allocated buffer was bigger than the PCI mapped |
| buffer, and in the 64KB configuration the buffer is |
| aligned only to 128 bytes and so the packet can |
| overstep the PCI mapped area and cause a fatal error |
| |
| Fix: Map the same size as the allocated buffer size |
| |
| Impact: None |
| |
| 3. Problem: (CQ36479) EEH recovery causes system crash |
| |
| Cause: When EEH detects an i/o error it resets the device thus |
| it cannot be accessed. In this case the driver needs to |
| unload its interface only with OS, kernel and network |
| stack but not with the device. |
| |
| Fix: Add a special unload function for EEH recovery that |
| does not access the device |
| |
| Impact: None |
| |
| 4. Problem: Option2 RST did not complete |
| |
| Cause: Missing context initialization in FW |
| |
| Fix: Fixed in FW 4.6.10 |
| |
| Impact: None |
| |
| 5. Problem: (CQ37090) Placement of RQ data to wrong address |
| |
| Cause: ASM problem |
| |
| Fix: Fixed in FW 4.6.10 |
| |
| Impact: None |
| |
| 6. Problem: (CQ36912) BSOD when destroying erroneous connections |
| |
| Cause: Activity count leak |
| |
| Fix: Fixed in FW 4.6.10 |
| |
| Impact: None |
| |
| 7. Problem: (CQ 36987) Unable to perform media changer/tape functions |
| |
| Cause: Bad padding calculation in long PDUs |
| |
| Fix: Fixed in FW 4.6.10 |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Incorporate latest firmware 4.6.10 |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 2. Request: Add stats counter for NIG timer max events |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 3. Request: Enable timer scan for CNIC |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 4. Request: Add support for using MSI interrupt mode |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 5. Request: (CQ36758) Firmware now enforces iSCSI licensing and fails |
| the offload if no iSCSI initiator license exists |
| |
| Change: Added in FW 4.6.10 |
| |
| Impact: None |
| |
| Version 1.46.2 (Aug 25, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ36510, CQ36583) Link LED does not turn off when 1G |
| link is lost when external PHY is present |
| |
| Cause: The current code manually turned off the 10G LED but |
| did not handle other speeds which are controlled by HW. |
| Since the HW detect link with the external PHY, the |
| link LED stayed on |
| |
| Fix: Turn off the LED for all speeds manually when link goes |
| down |
| |
| Impact: None |
| |
| 2. Problem: Packets with bad TCP/UDP checksum error are dropped |
| |
| Cause: Actively dropping packets with bad TCP/UDP checksum in |
| the driver |
| |
| Fix: Do not drop packets with bad TCP/UDP checksum - let the |
| stack decide what to do with them |
| |
| Impact: None |
| |
| 3. Problem: Some packets are dropped without showing on any |
| statistics counter |
| |
| Cause: The driver assumed that packets which were identified |
| as bad are counted by the FW, but the FW does not count |
| those when configured to pass them |
| |
| Fix: Add counters in the driver |
| |
| Impact: None |
| |
| 4. Problem: (CQ36153) Flow control doesn't work against non KR switches |
| |
| Cause: Missing support for clause-37 auto negotiation |
| |
| Fix: Add support for clause-37 auto negotiation |
| |
| Impact: 0.5 seconds delay during autoneg |
| |
| 5. Problem: Link dangling during init |
| |
| Cause: no delay after initial link change interrupt |
| |
| Fix: Add 30ms before allowing link update indications |
| |
| Impact: Additional 30ms during init phase |
| |
| 6. Problem: Unable to load driver after iSCSI boot under incoming |
| traffic |
| |
| Causes: The reset function after iSCSI boot did not handle |
| closing incoming traffic |
| |
| Fix: Close the port to prevent Rx traffic and clear all |
| buffers |
| |
| Impact: None |
| |
| 7. Problem: (CQ36408) Failed driver disk installation with SuSE10 |
| and RH4 |
| |
| Cause: The CRC module is not part of the Kernel in those |
| distributions |
| |
| Fix: Special driver disk compilation mode to include the CRC |
| routine in the driver though it is an external module |
| in normal installation with those distributions |
| |
| Impact: The driver in the driver disk is less efficient due to |
| the CRC algorithmic implementation and not static tables |
| as in the CRC module which is used when loading the driver |
| normally under SuSE10 and RH4 |
| |
| 8. Problem: (CQ34921) Possible memory leak |
| |
| Cause: rx_page_ring was not freed |
| |
| Change: free rx_page_ring |
| |
| Impact: None |
| |
| 9. Problem: (CQ36242) brb_truncate statistics increments to very |
| high numbers |
| |
| Cause: brb_truncate_discard is a 4 bytes variable but 8 bytes were |
| copied to ethtool |
| |
| Change: use brb_truncate from NIG and extend it to 8 bytes |
| |
| Impact: None |
| |
| 10. Problem: Tx Pause were not send on 1G link |
| |
| Cause: Missing initialization to the EMAC TX_MODE |
| |
| Change: Set FLOW_EN bit in the TX_MODE in addition to the |
| EXT_PAUSE_EN |
| |
| Impact: None |
| |
| 11. Problem: (CQ36361) Changing speed to 1G on KR switch side |
| results in no link in OS |
| |
| Cause: When Serdes is configured to 1G, it should remove |
| setting MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL bit in |
| MDIO_REG_BANK_SERDES_DIGITAL |
| |
| Change: Unset MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL bit for |
| every link change |
| |
| Impact: None |
| |
| 12. Problem: Possible loss of attentions |
| |
| Cause: Attention mask register was manipulated without a proper lock |
| |
| Change: Protect attention mask register using hw lock, use read |
| modify write on this register |
| |
| Impact: None |
| |
| 13. Problem: HW lock was sometimes not taken |
| |
| Cause: HW lock was not taken per function |
| |
| Change: use lock control per function |
| |
| Impact: None |
| |
| 14. Problem: (CQ36089) RX counter on all functions are incorrect |
| |
| Cause: tstorm_client.statistics_counter_id was 0 for all functions |
| |
| Change: set tstorm_client.statistics_counter_id to the cl_id of the |
| function |
| |
| Impact: None |
| |
| 15. Problem: (CQ36090) down/up of the interface during traffic on |
| the other interface caused traffic to stop |
| |
| Cause: Aggregation context must be initialized only at COMMON init |
| block |
| |
| Change: Change initialization code and init-tool output |
| |
| Impact: None |
| |
| 16. Problem: (CQ35672) Doorbell was arriving after halt and before |
| start ramrod |
| |
| Cause: XON/XOFF flow control should be disabled in NIC close flow |
| |
| Change: Fixed XON/XOFF code |
| |
| Impact: None |
| |
| 17. Problem: (CQ34555) MSI-x PCI spec aberration |
| |
| Cause: PBA table starts from the middle of a page |
| |
| Change: Use GRC access instead of BAR access |
| |
| Impact: None |
| |
| 18. Problem: Lost link indication in BCM8073. |
| |
| Cause: During link establishment LASI latched signal |
| wasn't reset and stopped link change indication |
| |
| Change: Fixed flow to clean latched LASI signal |
| |
| Impact: None |
| |
| 19. Problem: Declaring bootcode timeout too soon |
| |
| Cause: The bootcode can take a while to set a link |
| when a link is needed (for example, WoL is |
| enabled). The driver should allow adaptive |
| scheme to wait for the bootcode |
| |
| Change: Waiting up to 2 seconds in 10ms intervals |
| |
| Impact: In some cases, the driver unload process |
| will take up to 2 seconds |
| |
| 20. Problem: Wrong WoL capability report |
| |
| Cause: The WoL capability was read from the nvram |
| which was not always updated |
| |
| Change: Determine the WoL capability from the PCI |
| configuration space |
| |
| Impact: None |
| |
| 21. Problem: (CQ36644, CQ366697, CQ36928, CQ36983) On some cases |
| with low traffic, the computer was irresponsive up to |
| the point of soft-lockup and even hard lockup. |
| Ping-pong latency tests always hit this problem and so |
| get very low result |
| |
| Cause: If the FW was at the end of the Rx page, the driver |
| will already be at the beginning of the next page. In |
| this case the condition of having the driver and the FW |
| on the same pointer was never true and so the driver |
| kept polling until timeout or another packet came in. |
| On driver unload (including intermediate driver unload |
| like in MTU change or self-test) the lockup was fatal |
| |
| Fix: Change the check for "now work" to handle end of page |
| as well |
| |
| Impact: None |
| |
| 22. Problem: (CQ36697 CQ36771) Interface locks up when up/down interface |
| |
| Cause: In nic_unload(), call to netif_poll_disable() cause to set |
| __LINK_STATE_RX_SCHED flag that is checked in dev_close() in |
| a loop forever. This flag is cleared by netif_rx_complete() |
| called by bnx2x_poll() which is not called if !netif_running() |
| |
| Fix: Reorder nic_unload() - first close interrupts, then only if |
| netif_running() call netif_poll_disable() |
| |
| Impact: None |
| |
| 23. Problem: (CQ36795) driver fails to load after iSCSI boot |
| |
| Cause: Unloading UNDI by the driver is protected by a HW lock. With |
| a KR (8073) interface, unloading the UNDI takes more than |
| 1 sec. Taking the lock by another driver times out after 1 sec |
| then the driver tries also to unload UNDI. |
| |
| Fix: Clear UNDI signature and release the lock. Only the driver |
| who saw UNDI signature will continue to unload UNDI. |
| |
| Impact: None |
| |
| 24. Problem: Allocate skbs for unused aggregation queues in 57710 |
| |
| Cause: Allocate skbs for 64 aggregation queues but 57710 has only 32 |
| |
| Fix: Allocate skbs for max_agg_queues according to chip id |
| |
| Impact: None |
| |
| 25. Problem: Wrong cleanup on exit from nic_load() in case of a failure |
| |
| Cause: Upon some failure nic_load() exits without disabling and |
| freeing the interrupts |
| |
| Fix: Fix to disable and free the interrupts in that case |
| |
| Impact: None |
| |
| 26. Problem: Potential link problem when loading two ports with 8073 |
| PHY |
| |
| Cause: Initializing the 8073 PHY takes more than 1 seconds and |
| the HW lock might expire since it is only trying for 1 |
| second |
| |
| Fix: Increase the HW lock timeout to 5 seconds |
| |
| Impact: None |
| |
| 27. Problem: XAUI link on port0 goes down and then up, when the link |
| on port1 is changed |
| |
| Cause: When master port (port1) is down, it will also cause |
| the blade side down. In turn, PLL will change speed |
| from 10G to 1G. It will cause XAUI clock to both ports |
| down and then up again |
| |
| Fix: Set bit in the BCM8073 that enables the fix |
| |
| Impact: None |
| |
| 28. Problem: (CQ36772) KR with 8073 PHY sometimes does not establish |
| link |
| |
| Cause: A missing delay between initializing the PHY SPI ROM |
| and inserting the PHY back to low power mode |
| |
| Fix: Add 15ms delay after loading the SPI PHY ROM which is |
| before entering low power mode |
| |
| Impact: None |
| |
| 29. Problem: Sometimes when unloading the driver a message will |
| appear: "sp_running (j 1)" |
| |
| Cause: Wrong condition, the message should appear only if the |
| counter (j) is greater than 1000. This is a false alarm |
| |
| Fix: Fix the print condition |
| |
| Impact: None |
| |
| 30. Problem: When upgrading 8073 SPI ROM PHY to version 0103 the |
| link will not come up |
| |
| Cause: Register 0x8370 is no longer required in the new |
| version and writing to it cause the link not to come |
| up |
| |
| Fix: Remove the write to address 0x8370 |
| |
| Impact: None |
| |
| 31. Problem: On some KR boards when loading driver on port0, and |
| port1 is not loaded, sometimes the XAUI link is not |
| coming up |
| |
| Cause: The 8073 PHY has two ports that share a single clock. |
| This clock is routed to a port deemed to be the master |
| (port 1), and then a PLL at the master sets the clock |
| frequency and routes the buffered clock to both the |
| master XAUI interface as well as the slave (port 0) |
| XAUI interface. If port 0 is loaded while the 8073 PHY |
| SPI ROM is not loaded, the PLL for port 0 is not |
| guaranteed to lock |
| |
| Fix: First driver to be loaded reset and download SPI ROM on |
| both ports of the 8073 PHY during one-time |
| initialization |
| |
| Impact: The 8073 PHY is only reset when both ports are brought |
| down |
| |
| 32. Problem: On some KR boards when unloading driver on port1 port 0 |
| might loose link |
| |
| Cause: The 8073 PHY has two ports that share a single clock. |
| This clock is routed to a port deemed to be the master |
| (port 1), and then a PLL at the master sets the clock |
| frequency and routes the buffered clock to both the |
| master XAUI interface as well as the slave (port 0) |
| XAUI interface. If port 1 is unloaded while port 0 |
| is in use, the port 0 PLL might loose lock |
| |
| Fix: Do not reset the PHY if either driver is still up |
| |
| Impact: The 8073 PHY is only reset when both ports are brought |
| down |
| |
| 33. Problem: When loading driver after it was loaded before, packets |
| are getting into the chip before the MAC addresses are |
| configured (but not into the host) |
| |
| Cause: The HW filters are not cleared when the driver is |
| unloaded so previous driver configuration is still |
| present |
| |
| Fix: Clear HW filters so no packet will come in when driver |
| is unloaded |
| |
| Impact: None |
| |
| 34. Problem: Driver does not pass the last version of checkpatch.pl |
| |
| Cause: Some updates to the script found some coding standard |
| violations in the code |
| |
| Fix: Fixed all reported errors and spelling mistakes |
| |
| Impact: None |
| |
| 35. Problem: (CQ36492) rx_csum_offload_errors increments for any |
| none TCP/UDP packet |
| |
| Cause: Parsing CQE flags incorrectly |
| |
| Fix: Parse CQE flags according to CQE status bits |
| |
| Impact: None |
| |
| 36. Problem: Packets with IP checksum error are dropped |
| |
| Cause: Dropping packets with IP checksum error |
| |
| Fix: Pass packets with IP checksum error to the stack. Drop |
| only packets with L2 errors |
| |
| Impact: None |
| |
| 37. Problem: (CQ46480) The nomcp module parameter is causing kernel |
| panic |
| |
| Cause: This debug parameter was not needed and not maintained |
| |
| Fix: Remove this debug parameter. The driver can detect if |
| the FW is missing and act accordingly |
| |
| Impact: None |
| |
| 38. Problem: Per function statistics are not cleared on driver load |
| unload |
| |
| Cause: The FW statistics area was not cleared on driver load |
| |
| Fix: Clear FW statistics area when loading the driver |
| |
| Impact: None |
| |
| 39. Problem: (CQ36204, CQ36423) Self-test memory failures reported |
| intermediately |
| |
| Cause: Did not apply the right mask on the HW report caused |
| some false positives |
| |
| Fix: Use mask to check only the memory errors report |
| |
| Impact: None |
| |
| 40. Problem: (CQ36497) Self-test idle_check part is failing |
| |
| Cause: Did not apply the right mask on the HW report caused |
| some false positives |
| |
| Fix: Use mask to check only the memory errors report |
| |
| Impact: None |
| |
| 41. Problem: (CQ36514) Failed to load the driver after iSCSI boot on |
| SuSE10 SP2 |
| |
| Cause: The built-in driver from the SuSE10 SP2 (1.42.3) was |
| loaded after the iSCSI-boot |
| |
| Fix: Added update.post file to SuSE10 SP2 dd.iso |
| |
| Impact: None |
| |
| 42. Problem: (CQ36382) Low 1G UDP performance with one connection |
| with flow control disabled |
| |
| Cause: The credits in the transmitter HW caused too much gap |
| between UDP packets in case the flow control was |
| disabled |
| |
| Fix: Use the same HW credit as if the flow-control is |
| enabled when the line speed is 2.5G or less |
| |
| Impact: None |
| |
| 43. Problem: (CQ35662) NVRAM pre-emphasis support does not take |
| effect |
| |
| Cause: Current nvm values didn't actually affect the phy |
| |
| Fix: To keep backward compatibility, only in case the |
| "Override pre-emphasis configuration" nvm option is |
| enables, it sets the the tx preemphasis and rx |
| equalizer values for the 4 lanes according to the "XGXS |
| backplane Tx pre-emphasis matrix coef." and "XGXS |
| backplane Rx equalizer matrix coef." respectively |
| |
| Impact: None |
| |
| 44. Problem: Prevent possible glitch due to speed change without |
| link down in the middle |
| |
| Cause: Currently the NIG goes into drain mode only after link |
| down. If the only the speed was changed from 1G to |
| 100Mb, for example, without link-down indication then |
| the FIFO isn't cleaned and glitch due to clk change may |
| occur |
| |
| Fix: On speed change set the NIG into drain mode |
| |
| Impact: Several packets may be dropped, but it's ok, since we |
| assume that anyhow several packets were dropped due to |
| the link down |
| |
| 45. Problem: Fix EMAC initialization setting |
| |
| Fix: Currently it is configured inside the enable emac |
| before configuring the EMAC mode. Changed to be after |
| that and should be disabled (with the drain mode |
| setting) at the entrance of the link_update function. |
| In addition, in link down, after putting the nig into |
| drain mode this register should also be disabled. |
| |
| After configuring the mode and before opening the |
| nig_emac#_en, reset the EMAC_REG_EMAC_RX_MODE and |
| EMAC_REG_EMAC_TX_MODE |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Error messages might be displayed in unload |
| |
| Change: Check work only on the tx fast path and call bnx2x_tx_int() |
| to handle it. Rx work is handled during halt ramrod |
| |
| Impact: None |
| |
| 2. Request: Indicate that there is no WoL support for functions higher |
| than 1 (only 0 and 1 should support WoL) |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 3. Request: Pause in 57711E mode always advertise both Rx and Tx |
| regardless of frame size |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 4. Request: Skb's marked as CHECKSUM_UNNECESSARY (TPA'ed) were |
| passed to the net stack even if user disabled checksum |
| offloading. |
| |
| Change: Disable TPA if Rx checksum offloading is disabled. |
| |
| Impact: There is no way to enabling TPA in kernels older than |
| 2.6.26 except unloading and loading the driver |
| |
| 5. Request: Do not display internal FW version and enhance |
| readability of the bootcode version |
| |
| Change: As requested |
| |
| Impact: None |
| |
| 6. Request: Optimize link setup and support 2.5G |
| |
| Change: Link will be configured on the external PHY before |
| setting up the internal PHY. When needed, only the |
| external PHY will be configured to autoneg. The |
| internal PHY will be set to the obtained speed |
| |
| Impact: None |
| |
| 7. Request: Skb's marked as CHECKSUM_UNNECESSARY (TPA'ed) were |
| passed to the net stack even if user disabled checksum |
| offloading. |
| |
| Change: Disable TPA if Rx checksum offloading is disabled. |
| |
| Impact: None |
| |
| 8. Request: Incorporated latest firmware 4.6.7 - Add support for |
| priority-based ETH TX queues and enable SAFC pausing |
| per queue |
| |
| Change: As requested |
| |
| Impact: None |
| |
| Version 1.46.1 (June 25, 2008) |
| ============================== |
| |
| Enhancements |
| ------------ |
| 1. Request: Use FW version 4.6.2 |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.45.6 (June 23, 2008) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ35672, CQ35818) Changing MTU under traffic causes |
| driver hang |
| |
| Cause: A rare case of LSO packet alignment, relatively to MSS, |
| caused a HW debug checking for end of packet to fail |
| |
| Change: In computing the end of packet flag, the calculation |
| of the total packet length was modified |
| |
| Impact: None |
| |
| 2. Problem: Possible memory corruption on kernels with 64K page size |
| |
| Cause: Inconsistency in using page macros |
| |
| Change: Use only BCM page macros |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add support for TPA (LRO) setting via ethtool |
| |
| Change: As Requested |
| |
| Impact: Kernels after 2.6.26 use this interface to turn off TPA |
| when forwarding enabled due to the limitation of no |
| forwarding (bridging) and TPA together |
| |
| Version 1.45.5 (June 17, 2008) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ35691) Undefined symbol __udivdi3 when compiled on |
| 32-bit platforms. |
| |
| Cause: There was 64-bit division |
| |
| Change: Reordered the arithmetic expression in order to eliminate the |
| 64-bit division |
| |
| Impact: None. |
| |
| 2. Problem: (CQ35644) Tx mulicast counter does not increment |
| |
| Cause: start_xmit sets the unicast flag for all packet types |
| |
| Change: Remove the broadcast and mulicast counters |
| |
| Impact: None |
| |
| 3. Problem: (CQ35836) Ethtool reports wrong speed when set via CLP |
| |
| Cause: get_settings returns always the max BW set via CLP without |
| considering the actual link speed |
| |
| Change: Return the min between the max BW set via CLP and the actual |
| link speed |
| |
| Impact: None |
| |
| 4. Problem: (CQ35859) Ethtool -S reports many jumbo tx packets |
| with MTU set to 1500 |
| |
| Cause: There is a different in tx histogram statistics between |
| EMAC and BigMAC |
| |
| Change: Use NIG stats counters instead |
| |
| Impact: None |
| |
| 5. Problem: (CQ35114) Self test failure on some systems |
| |
| Cause: pcie_rst_b test can be set and should not be categorized as |
| ERROR |
| |
| Change: Change pcie_rst_b test priority from ERROR to WARNING |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Remove non-coherent stats in 57711E |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 2. Request: Remove xSEM_REG_INT_TABLE from memory test |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.45.4 (June 10, 2008) |
| ============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ34905) load/unload causes link detect failure |
| |
| Cause: Handling of link events during load wasn't protected |
| |
| Change: Add synchronization in handling of link events during |
| driver load |
| |
| Impact: None |
| |
| 2. Problem: (CQ35114) ethtool -t displays idle_check errors |
| |
| Cause: Some idle_check tests were not adopted to support |
| 57711 |
| |
| Change: Adopt the idle_check |
| |
| Impact: None |
| |
| 3. Problem: (CQ35188) ethtool -t displays mc_assert |
| |
| Cause: The mc_assert was checked at incorrect address |
| |
| Change: Fix mc_assert to use different offsets per MC |
| processor |
| |
| Impact: None |
| |
| 4. Problem: (CQ35611) CLP min throttling disables throttled |
| functions |
| |
| Cause: Credit delta must be less than two times the |
| threshold |
| |
| Change: credit delta must never be less than two times threshold |
| |
| Impact: None |
| |
| 5. Problem: (CQ35184, CQ35364, CQ35575) Compilation problems on |
| SuSE9/10 |
| |
| Cause: Some changes for the upstream kernel were not |
| backwards compatible |
| |
| Change: Added backwards compatibility code |
| |
| Impact: None |
| |
| 6. Problem: (CQ35571) When running dozens of connections |
| on both ports, receiver freezes |
| |
| Cause: A race between the aggregation timer and the swapping |
| of aggregated connections |
| |
| Change: The timers are saved to RAM at each possible swap of |
| handlers in the FW, to avoid the race |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Activate SNR over 8073A1, version 102 |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 2. Request: Support CLP speed configuration to establish link up to |
| the requested speed (allow 1G when 10G is requested) |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 3. Request: Do not set XAUI low power on 8073A0 |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 4. Request: Set flow-control for 8073 |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.45.2 (May 29, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: Style changes for open source submission |
| |
| Cause: Making sure we pass SPARS and checkpatch.pl |
| |
| Change: Whitespace changes |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add PCI-E EEH handlers |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.45.1 (May 26, 2008) |
| ============================= |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ34964) ethtool -a/A is broken |
| |
| Cause: The autoneg define changed to value of zero and broke |
| the code |
| |
| Change: Use comparison instead of bit-wise logical and |
| |
| Impact: None |
| |
| 2. Problem: (CQ35123) Support for 32bit Kernels is broken |
| |
| Cause: The TPA code had a 64 bit address that broke the |
| 32bits support |
| |
| Change: Fixed the upper 32bits of the address to zero in 32bit |
| Kernel |
| |
| Impact: None |
| |
| 3. Problem: (CQ35123) Support for Big-endian is broken |
| |
| Cause: The TPA and SGE code was not big-endian compliant |
| |
| Change: The necessary le_to_cpu were added |
| |
| Impact: None |
| |
| 4. Problem: Failed to work on emulation with MCP |
| |
| Cause: The time interval between the pulses towards the MCP |
| was the same for ASIC and emulation |
| |
| Change: Increased the time interval between MCP pulses for |
| emulation/FPGA |
| |
| Impact: None |
| |
| 5. Problem: (CQ34313) Compilation error on SuSE |
| |
| Cause: Broken in last drops |
| |
| Change: Fix the errors |
| |
| Impact: None |
| |
| 6. Problem: (CQ35124) Kernel panic when unloading NIC with shared |
| INTA |
| |
| Cause: The interrupts were masked when unloading, but the |
| handler was still present. In case of shared INTA |
| line, the handler was called after freeing the |
| resources due to other device interrupt |
| |
| Change: Free the interrupt handler when masking all |
| interrupts on unload. Clear old interrupt before |
| registering the IRQ on load. |
| |
| Impact: None |
| |
| 7. Problem: Failed to re-load the driver (after unload) on the |
| upstream kernel |
| |
| Cause: The fast path structures which are used by NAPI where |
| released on unload and re-allocated on load |
| |
| Change: Use static allocation for the fast-path structures |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: (CQ34895) Change Linux Driver Disk Images from Floppy |
| to ISO Format |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 2. Request: (CQ34931, CQ34976) Replace RH4.5 binaries with RH4.6 |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 3. Request: Link down indication should be at error level and |
| not information |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 4. Request: BCM57711E Support MIN/MAX bandwidth control |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 5. Request: Support BCM8073A1 external PHY |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 6. Request: Support Transparent Packet Aggregation (TPA) for 57711E |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 7. Request: Support WoL |
| |
| Change: As Requested. This feature requires bootcode 4.4.7 or |
| later |
| |
| Impact: None |
| |
| 8. Request: Not allowing any ethtool link change (speed and flow |
| control) in 57711E |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 9. Request: Reporting the function max speed as the current speed |
| (and not the port speed) for 57711E |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 10. Request: Only the port master driver can run the link test (part |
| of the self-test) |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.46.0 (May 01, 2008) |
| ============================= |
| **** This version should have been named 1.45.0 (and not 1.46.0) **** |
| |
| Fixes |
| ----- |
| 1. Problem: Possible bug on DMAE reads (write from the chip to the |
| host) |
| |
| Cause: HW limitation that was not obeyed |
| |
| Change: DMAE reads (write from the chip to the host) is |
| limited to 128 DWORDS |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Support approximate match for multicast MACs |
| |
| Change: As Requested |
| |
| Impact: New module dependency for bnx2x driver |
| Run 'modprobe crc32c' before 'insmode bnx2x.ko' |
| |
| 2. Request: Support statistics on 57711 |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.44.12 (April 21, 2008) |
| ================================ |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ34845) Autoneg flow-control is broken |
| |
| Cause: Broken in last drops - wrong check of the autoneg |
| result |
| |
| Change: Fixed the autoneg result check |
| |
| Impact: None |
| |
| 2. Problem: (CQ34313) Compilation error on SuSE10 |
| |
| Cause: Broken in last drops |
| |
| Change: Fix the errors |
| |
| Impact: None |
| |
| Version 1.44.11 (April 16, 2008) |
| ================================ |
| |
| Fixes |
| ----- |
| 1. Problem: PHY loopback was not performed as part of the |
| self-test |
| |
| Cause: The PHY loopback did not wait for the link to be |
| established |
| |
| Change: Wait for loopback to establish link before starting |
| the test |
| |
| Impact: None |
| |
| 2. Problem: (CQ34313) Compilation error on SuSE9 SP3 |
| |
| Cause: Broken in last drops |
| |
| Change: Fix the errors |
| |
| Impact: None |
| |
| Version 1.44.10 (April 15, 2008) |
| ================================ |
| |
| Fixes |
| ----- |
| 1. Problem: Occasional failures in the self-test |
| |
| Cause: Few registers should not have been included in the |
| registers test. The PHY loopback test fails on some |
| systems |
| |
| Change: Removed some of the registers that should not have |
| been included in the first place from the |
| registers test. Removed the PHY loopback test - only |
| the MAC loopback test is executed |
| |
| Impact: None |
| |
| Version 1.44.9 (April 14, 2008) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: Kernel panic after stressing bi-directional data over |
| night |
| |
| Cause: A bug in the none-TSO fragmented Tx packets |
| |
| Change: Fix the Aggregation rule of none-TSO packets |
| |
| Impact: None |
| |
| 2. Problem: Possible bug when unloading and reloading the driver: |
| we are not guarantee to allocate all IRQs |
| |
| Cause: The allocation is not guaranteed |
| |
| Change: Force every nic_unload to release the IRQs |
| |
| Impact: None |
| |
| 3. Problem: Possible bug on low memory systems |
| |
| Cause: Number of BDs must be at least equal to number of CQEs |
| |
| Change: Force the rule on init |
| |
| Impact: None |
| |
| 4. Problem: Failures on rmmod |
| |
| Cause: Sleep in timer context |
| |
| Change: No sleep on timer context - simply wait for next tick |
| |
| Impact: None |
| |
| 5. Problem: DMAE timeout problem on 57711 |
| |
| Cause: DMAE needs to be configured differently |
| |
| Change: Reduce the MPS of the DMAE client |
| |
| Impact: None |
| |
| 6. Problem: No link on some functions on 57711 |
| |
| Cause: A link report call was missing after link update |
| |
| Change: Added link report after link update |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Adding internal PHY and MAC loopback tests to |
| ethtool -t (no external PHY and no cable PHY loopback) |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 2. Request: Update idle_check in self test |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.44.8 (April 09, 2008) |
| =============================== |
| **** Starting from this version, there are 2 C files **** |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ34604) Kernel panic after stressing Tx Data over |
| night |
| |
| Cause: The driver did not handle fragmented Tx packets |
| |
| Change: Aggregating packets which are too fragmented for the |
| FW |
| |
| Impact: None |
| |
| 2. Problem: (CQ34586) Warning message after configuring eth port |
| |
| Cause: Did not synchronized the DMAE of the statistics with |
| load/unload operations |
| |
| Change: Changed the statistics mechanism to a state machine |
| which is aware of the device state and DMAE state |
| |
| Impact: None |
| |
| 3. Problem: (CQ34313) Compilation error on SuSE9 SP3 x86-64 |
| |
| Cause: Compatibility issue |
| |
| Change: Fixed |
| |
| Impact: None |
| |
| 4. Problem: (CQ34067) Debug prints are displayed when using the |
| use_multi compilation flag |
| |
| Cause: The debug level of the prints was high |
| |
| Change: Reduced the prints debug level so they will not be |
| displayed by default |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: (CQ33897) Support BCM8073 PHY |
| |
| Change: As Requested |
| |
| Impact: This is still an initial HW revision of the BCM8073 PHY |
| so changes might be needed as the PHY HW or FW evolve |
| |
| 2. Request: (CQ33845) Turn off link LED when link is not active |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 3. Request: Displaying PHY FW (when applicable) at ethtool -i |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 4. Request: Upgrading the SFG10 FW from ethtool -E |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 5. Request: Adding Registers test to ethtool -t |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| 6. Request: Adding Memory test to ethtool -t |
| |
| Change: As Requested |
| |
| Impact: None |
| |
| Version 1.44.7 (March 31, 2008) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ34445) Interface got stuck when stress with UDP |
| and TCP simultaneously |
| |
| Cause: Wrong CQE size initialization |
| |
| Change: Fixed CQE ring initialization |
| |
| Impact: None |
| |
| 2. Problem: No traffic on higher functions on 57711 |
| |
| Cause: Need to send the client ID in messages to FW |
| |
| Change: Add client ID to the required messages |
| |
| Impact: None |
| |
| 3. Problem: Wrong link indication on 57711 |
| |
| Cause: The link was not updated correctly on 57711 |
| |
| Change: Update the link indication mechanism in 57711 |
| |
| Impact: None |
| |
| 4. Problem: Update coalescing is not working |
| |
| Cause: Wrong parameter was used |
| |
| Change: Changed to the required parameter |
| |
| Impact: None |
| |
| Version 1.44.6 (March 26, 2008) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ34445) Interface got stuck when stress with UDP |
| and TCP simultaneously |
| |
| Cause: The BD producer that was passed to the FW was wrapped |
| according to the size of the BD ring and not 16 bits |
| range as expected |
| |
| Change: Wrap the BD producer according to 16 bits range |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: full TPA support |
| |
| Change: TPA is now fully supported with the expected |
| performance |
| |
| Impact: None |
| |
| Version 1.44.5 (March 24, 2008) |
| =============================== |
| |
| Enhancements |
| ------------ |
| 1. Request: Initial support for TPA |
| |
| Change: TPA is now supported, but the throughput is still lower |
| than in the DEMO_TPA version - a new version with |
| enhanced throughput is being constructed |
| |
| Impact: None |
| |
| 2. Request: (CQ34011) Add module parameter to disable TPA |
| |
| Change: As requested. For now, TPA is always disabled on 57711 |
| |
| Impact: None |
| |
| 3. Request: CNIC Support |
| |
| Change: As requested. By default, CNIC support is not part of |
| the bnx2x - BCM_CNIC should be defined to enable it. |
| |
| Impact: None |
| |
| Version 1.44.4 (March 20, 2008) |
| =============================== |
| |
| Fixes |
| ----- |
| 1. Problem: DEMO_TPA was broken on 0.44.3 |
| |
| Cause: Compilation problem due to MACRO rename |
| |
| Change: Rename the MACRO for DEMO_TPA as well |
| |
| Impact: None |
| |
| 2. Problem: (CQ43424) Cannot link SFP module at 1G with Dell |
| PowerConnect 6224 |
| |
| Cause: The Dell switch supports only autoneg and not forced |
| 1G |
| |
| Change: Changed the 1G implementation to autoneg with only 1G |
| advertisement |
| |
| Impact: When choosing 1G speed, the speed is achieved via |
| autoneg and not forced |
| |
| Enhancements |
| ------------ |
| 1. Request: Support Emulation, FPGA and ASIC in a single module |
| file |
| |
| Change: Changed the init values and the init routine to support |
| all the compilation of 57710/57711 ASIC/CHIP/EMUL |
| |
| Impact: The size of the binary and the source code is bigger |
| mainly due to having two ASM images |
| |
| 2. Request: Add link update support for 57711 |
| |
| Change: Added |
| |
| Impact: None |
| |
| 3. Request: Add HW statistics for 57711 |
| |
| Change: Added |
| |
| Impact: Only HW (errors) statistics will be displayed since the |
| feature is not yet supported by FW |
| |
| 4. Request: Add nvram test |
| |
| Change: Added |
| |
| Impact: None |
| |
| 5. Request: Add link test |
| |
| Change: Added |
| |
| Impact: None |
| |
| 6. Request: Add interrupt test |
| |
| Change: Added |
| |
| Impact: None |
| |
| Version 0.44.3 (March 12, 2008) |
| =============================== |
| *** TPA is not functional on this release *** |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ #34103) DKMS driver diskette update.tar.gz do not |
| have smp directory |
| |
| Cause: DKMS driver diskette was created only for the default |
| SuSE kernels |
| |
| Change: Add all supported SUSE kernels into the DKMS driver |
| diskette Note: The size of the DKMS driver diskette |
| for the SUSE distributions is 14400 kb. This size is |
| appropriate for USB or CD devices |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add support for 57711 |
| |
| Change: Added preliminary support |
| |
| Impact: None |
| |
| 2. Request: Remove module param 57711E |
| |
| Change: Move to bp and initialized from analyzing CLP |
| information |
| |
| Impact: None |
| |
| 3. Request: Add fw_dump() to panic_dump() |
| |
| Change: Call fw_dump() before idle_chk() |
| |
| Impact: None |
| |
| 4. Request: Separate bp information to fast-path/common/port/ |
| function |
| |
| Change: Divide bp structure into common/port/function |
| structures Divide get_hwinfo() into common/port/ |
| function. Initialize outer VLAN and MAC from CLP |
| information in 57711E mode Note: CLP FUNC_DISABLED |
| is not handled correctly |
| |
| Impact: None |
| |
| 5. Request: Set link_status according to link_up status |
| |
| Change: link_status was set according to phy_link_up status |
| |
| Impact: None |
| |
| 6. Request: Add is_pmf flag |
| |
| Change: is_pmf flag is initialized from MCP load_code and by |
| general attention from MCP |
| |
| Impact: None |
| |
| 7. Request: Fix attentions in 57711 |
| |
| Change: Init MISC_REG_AEU_MASK_ATTN according to 57711E |
| status Handle attention bits in IGU per function |
| |
| Impact: None |
| |
| 8. Request: Clear HW blocks attentions |
| |
| Change: Clear HW blocks attentions and call panic() |
| |
| Impact: None |
| |
| 9. Request: Call fw_dump() on MCP assert |
| |
| Change: Call fw_dump() instaed of mc_assert() on MCP assert |
| |
| Impact: None |
| |
| 10. Request: Do not send STAT_QUERY ramrod if previous stat ramrod |
| didn't return |
| |
| Change: Do not send STAT_QUERY ramrod if previous stat ramrod |
| didn't return Call panic() if stats didn't updated for |
| 3 times |
| |
| Impact: None |
| |
| 11. Request: Separate init_board() into init_dev() and init_bp() |
| |
| Change: Divide init_board() into init_dev() and init_bp() |
| |
| Impact: None |
| |
| 12. Request: Fix directory name for SuSE |
| |
| Change: Add sles9 and sles10 to the names |
| |
| Impact: None |
| |
| |
| Version 1.42.3 (February 28, 2008) |
| ================================== |
| |
| Fixes |
| ----- |
| 1. Problem: Changing the link speed to "autoneg on" the A1022G will |
| cause driver failure |
| |
| Cause: This board is using TP for the 10G interface, but the command |
| was interpreted as a request to move to the 1G interface which |
| is inactive on this board |
| |
| Change: Do not support switching interfaces since no production board |
| has this feature |
| |
| Impact: A user will not be able to switch between the two valid |
| interfaces of the T1001 test board without changing the nvram |
| configuration |
| |
| |
| Version 1.42.2 (February 20, 2008) |
| ================================== |
| |
| Fixes |
| ----- |
| 1. Problem: TSO is not working against some none Linux clients |
| |
| Cause: TCP flags were not transmitted correctly on TSO packets |
| |
| Change: Corrected bit extraction in tcp_flag_word() |
| |
| Impact: None |
| |
| |
| Version 0.42.1 (February 14, 2008) |
| ================================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ #33344) Remove warnings from ethtool -t |
| |
| Cause: The warnings were just debug prints |
| |
| Change: Print is depended on msglevel. |
| Set msglevel in bnx2x_panic_dump() before calling bnx2x_idle_chk() |
| |
| Impact: None |
| |
| 2. Problem: (CQ #33638) Remove warnings when failing to enable MSI-X |
| |
| Cause: The warnings was just a debug print |
| |
| Change: Print is depended on msglevel. |
| Change the printed message from error/failure to a notification |
| |
| Impact: None |
| |
| 3. Problem: (CQ #33547) Flow control does not work on A1022G board |
| |
| Cause: The flow control was not configured/read at the PHY |
| |
| Change: Implemented the flow control code at the PHY |
| |
| Impact: flow control is now working via autoneg. Please force it if |
| the link partner does not support flow control autoneg |
| |
| Enhancements |
| ------------ |
| 1. Request: (CQ #33425) RPM installation fails on some machines |
| |
| Change: Fix installation - copy bnx2x.ko from extra to kernel/drivers/net |
| |
| Impact: None |
| |
| |
| Version 0.42.0 (February 04, 2008) |
| ================================== |
| *** This version requires bootcode 4.2.0 or later *** |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ #33344) Remove warnings from ethtool -t |
| |
| Cause: The warnings were just debug prints |
| |
| Change: Changed the debug level so by default nothing will be printed |
| |
| Impact: None |
| |
| 2. Problem: (CQ #33638) Remove warnings when failing to enable MSI-X |
| |
| Cause: The warnings was just a debug print |
| |
| Change: Changed the debug level so by default nothing will be printed |
| |
| Impact: None |
| |
| 3. Problem: (CQ #33533) Failed to install A1022G on 32bits machines |
| |
| Cause: The board is requesting 128MB for BAR2 and the memory |
| allocation fails |
| |
| Change: Allocate only the required amount of memory and not the |
| entire BAR |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: (CQ33571) new 'shared memory' layout for T4.0E/T4.2 that will |
| be compatible with T4.4 new features |
| |
| Change: As requested |
| |
| Impact: Requires bootcode 4.2.0 or later |
| |
| 2. Request: (CQ #33214) Add placeholder to be compatible with the BMPI |
| |
| Change: Added placeholders - the full implementation is scheduled |
| for T4.4 |
| |
| Impact: None |
| |
| 3. Request: Update the KR code |
| |
| Change: Added placeholders - the full implementation is scheduled |
| for T4.4 |
| |
| Impact: None |
| |
| |
| Version 0.40.19 (January 14, 2008) |
| ================================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ #31090) Rx pause remains ON after autoneg is retuned |
| back to ON even if MTU > 4500. |
| |
| Cause: Autoneg flow control flag was not considered for |
| advertisement and resolve of the pause mode. |
| |
| Change: Fix the advertisement and the resolve of the pause mode to |
| consider user requests and system constraints. |
| |
| Impact: None |
| |
| 2. Problem: Autoneg flow control is ON for XFP cards. |
| |
| Cause: Autoneg flow control from NVRAM is considered without check |
| if autoneg is supported. |
| |
| Change: Autoneg flow control from NVRAM is considered only if |
| autoneg is supported. |
| |
| Impact: None |
| |
| 3. Problem: ethtool shows 'Port: FIBRE' for the 10GbaseT interface. |
| |
| Cause: Resolve the port type according to XGXS flag. |
| |
| Change: get settings resolves the XGXS port type in use according to |
| external phy config. |
| |
| Impact: None |
| |
| 4. Problem: (CQ #33092, #33215) Unload/load sequence under UDP traffic |
| (receiver) hanged slow path |
| |
| Cause: Wrong flow in resetting HW blocks |
| |
| Change: HW blocks reset flow has been changed |
| |
| Impact: None |
| |
| 5. Problem: (CQ #33305) Changing MTU to 9000 was jamming TCP traffic |
| |
| Cause: LSO wasn't properly enabled on some Kernels |
| |
| Change: Fixed LSO enabling code for all kernels |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Feature: Wait for completion for ramrods sent during nic unload was |
| only by polling and not by an interrupt. |
| |
| Change: stop multi and stop leading are using poll if netif is not |
| running and interrupt otherwise. |
| |
| Impact: None |
| |
| 2. Request: Add workaround for bug in PXP that causes PXP attention on |
| stress scenarios due to under run situation between PXP and |
| USDM |
| |
| Change: The workaround was added |
| |
| Impact: None |
| |
| |
| Version 0.40.18 (January 03, 2008) |
| ================================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ #33148) After "make install" command 'modprobe bnx2x' |
| displays "Module bnx2x not found". |
| |
| Cause: Linux Makefile runs depmod automatically only if System.map |
| exists. |
| |
| Change: Run depmod after modules_install. |
| |
| Impact: None |
| |
| 2. Problem: (CQ #33054) Link is not detected after configuring BCM57710 |
| port with Suse 10Sp1. |
| |
| Cause: HW fails to use INTA after using MSI-X. |
| |
| Change: Set MSI_MSIX_INT_EN bit in HC_CONFIG REG to use INTA after |
| MSI-X. |
| |
| Impact: None |
| |
| 3. Problem: (CQ #33190) ifconfig command showed errors received. But |
| ethtool -S ethx did not show any errors. |
| |
| Cause: Some error counters did not have a bin to be printed by |
| ethtool -S command. |
| |
| Change: Add appropriate bins for the missed counters. |
| |
| Impact: None |
| |
| |
| 4. Problem: BSOD on T1002 boards. |
| |
| Cause: A new code was added that manipulate GPIO 1 for external phy |
| reset. On T1002 board this GPIO control the PERST_L_BYPASS. |
| |
| Change: Do not manipulate GPIO 1 on T1002 boards |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Feature: Add support for IPv6 checksum and IPv6 TSO. |
| |
| Change: The support was added |
| |
| Impact: None |
| |
| 2. Feature: Add fan failure detection and external PHY power down for the |
| A1022G |
| |
| Change: When a fan failure is detected (indicated by SPIO5) on the |
| A1022G, the driver will shutdown the PHY (reset and low power |
| mode, using GPIO1+2) and issue a warning message |
| |
| Impact: When fan failure occurs the link will go down until server |
| reset |
| |
| |
| Version 0.40.17 (December 17, 2007) |
| =================================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ #33023) Pause RX is on when driver is loaded with |
| MTU > 4500. |
| |
| Cause: Pause mode was computed from the requested flow control |
| parameter in NVRAM without considering the MTU size. |
| |
| Change: Resolve the pause mode only before advertising the flow |
| control. |
| |
| Impact: None |
| |
| 2. Problem: Pause autoneg can be set on for XFP cards. |
| |
| Cause: Pause autoneg mode was always accepted from user. |
| |
| Change: Pause autoneg is not supported if speed autoneg is not |
| supported (e.g. XFP cards). |
| |
| Impact: None |
| |
| 3. Problem: (CQ #33044) make install fail. |
| |
| Cause: No make install target in Makefile. |
| |
| Change: Add make install target to Makefile. |
| |
| Impact: None |
| |
| 4. Problem: (CQ #33057) No README.TXT in driver release folder. |
| |
| Cause: No README.TXT in driver project. |
| |
| Change: Add README.TXT in driver release folder. |
| |
| Impact: None |
| |
| 5. Problem: (CQ #32541) No README.TXT in driver tarball. |
| |
| Cause: No README.TXT in driver project. |
| |
| Change: Add README.TXT to driver tarball and change the directory |
| name. |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Add parity and assert regs for idle check. |
| |
| Change: The check was added |
| |
| Impact: None |
| |
| 2. Request: Add workaround for threshold mechanism for usdm-dp |
| |
| Change: The workaround was added |
| |
| Impact: None |
| |
| 3. Request: Add workaround for full Tetris buffer bug. |
| |
| Change: The workaround was added |
| |
| Impact: None |
| |
| 4. Request: Add support for the SFG10 PHY |
| |
| Change: The support was added |
| |
| Impact: None |
| |
| 5. Request: Add support for the BCM8072 PHY |
| |
| Change: The support was added. The code is still not 100% functional |
| |
| Impact: None |
| |
| 6. Request: Change the MDC/MDIO CL45 scheme |
| |
| Change: The functions are more generic: |
| - Supports different MDC/MDIO controller |
| - Reduce the clock to 2.5MHz |
| - Less PIO writes (writing all the required information at |
| one attempt) |
| |
| Impact: All external PHY access are using a slower (standard) |
| MDC/MDIO clock |
| |
| 7. Request: Hard reset external PHYs |
| |
| Change: The external PHYs are now reset via GPIO. Before working with |
| an external PHY, a reset pulse of 1ms is generated, and when |
| the driver is down, the external PHY is kept in reset |
| |
| Impact: Link partner should always see link down when the link is down |
| |
| Version 0.40.16 (November 29, 2007) |
| ================================== |
| |
| Fixes |
| ----- |
| 1. Problem: (CQ #32296) VLAN broken on older Kernels. |
| |
| Cause: vlan_kill_vid() removed in newer versions is needed by older |
| kernels to allow loading. |
| |
| Change: Re added function. |
| |
| Impact: None |
| |
| 2. Problem: (CQ #29543) System panicked if receiving UDP data while load |
| and unload |
| |
| Cause: sp_task work was not synchronized with int_disable_sync() |
| |
| Change: move sp_task to work_queue element |
| |
| Impact: None |
| |
| |
| 3. Problem: (CQ #32430) XFP port showed link lights on and link |
| detected = yes when configured port up with no cable |
| attached |
| |
| Cause: Link_up was declared by local phy (XGXS) link up without |
| the external phy (8705) link status |
| |
| Change: Link up is now the combination of local phy (XGXS) link up |
| and external phy (8705) link up |
| |
| Impact: None |
| |
| Enhancements |
| ------------ |
| 1. Request: Print PCI link properties upon load. |
| |
| Change: The print was added |
| |
| Impact: None |
| |
| Version 0.40.15 (November 15, 2007) |
| ================================== |
| |
| Fixes |
| ----- |
| 1. Problem: On heavy traffic scenarios, the machine halted due to |
| PCI problem |
| |
| Cause: A HW change in A1 boards requires some registers that |
| controls the PCI credit to be changed as well |
| |
| Change: Updating the PXP credit registers |
| |
| Impact: None |
| |
| 2. Problem: (CQ #31120) The traffic LED was not active for lower |
| speeds |
| |
| Cause: A new bootcode is required to set the traffic LED |
| when the speed is less then 10G (using the emac and |
| not the bmac) |
| |
| Change: The set LED routine was updated and bootcode 4.0.10 |
| or above is required to have the LED functional |
| |
| Impact: None |
| |
| 3. Problem: Found a bug when doing ifconfig down/up during |
| traffic. In this case FW can assert |
| |
| Cause: A packet that was received before unloading driver |
| stayed in Pbuff, and was processed after loading the |
| driver again |
| |
| Fix: Added the reordering mechanism to slow path handlers |
| |
| Impact: Implementation of all L2 slow-path commands was modified |
| |
| 4. Problem: (CQ #30160) Removed false positives from the self test |
| (ethtool -t) |
| |
| Cause: Many tests in the self test were designed to check halted |
| system (after fatal error) and the test assumed that the |
| chip is idle |
| |
| Fix: Any test that can happen while the chip is operational was |
| changed to "info" debug print and is not counted as warning |
| or error |
| |
| Impact: The self test is more reliable |
| |
| Enhancements |
| ------------ |
| 1. Request: Forward preparation in the code for 57711 |
| |
| Change: Using only two DMAE clients per port. Using "port" instead of |
| "function". |
| |
| Impact: Not visible to the user |
| |
| 2. Request: Block RX Pause if Auto-pause was selected and the MTU > 4500 |
| to prevent performance retrogression when using PAUSE with big |
| packets |
| |
| Change: The auto-pause resolution will be only TX pause if the MTU |
| is larger than 4500. Force pause mode will be obeyed as |
| requested |
| |
| Impact: Jumbo frames with auto-pause will achieve higher throughput |
| |
| 3. Request: Report HW errors |
| |
| Change: Parity and blocks errors attentions code was added to the |
| driver. Not all indications are enabled. |
| |
| Impact: In case of an assert in the chip, the user will get an |
| error notification |
| |
| 4. Request: Added the ability to support multi interrupt queues from |
| kernel 2.6.24 and above |
| |
| Change: Allow ISR and NAPI (the stack processing) to run on several |
| CPUs. The new feature is disabled by default |
| |
| Impact: Can reduce latency in some cases |
| |
| 5. Request: Move slow-path to work-queue to allow sleeps |
| |
| Change: The slow-path is now implemented as work queue |
| |
| Impact: Better fairness to other host drivers |
| |
| 6. Request: Changes with statistics requirements due to |
| performance enhancement and preparation for next |
| features. |
| |
| Change: a. Removed rcv_error_bytes |
| b. Replaced errors_discard stat by: mac_discard stat, |
| checksum_discard stat and packet_too_big_discard |
| stat |
| c. Removed statistics histogram |
| |
| Impact: The displayed statistics format was changed |
| |
| 7. Request Remove FW interrupts that are not needed |
| |
| Change: FW no longer interrupts the driver for reading a new slow-path |
| element (it updates driver only when completing processing it) |
| |
| Impact: None |
| |
| 8. Request: Support easier SuSE compilation |
| |
| Change: In previous version, a flag in bnx2x.c was required |
| in order to compile under SUSE. In the new implementation |
| the make file can be used in the following way: |
| SLES9 command: make EXTRA_CFLAGS+=-DBNX2X_SLES_9 |
| SLES10 command: make EXTRA_CFLAGS+=-DBNX2X_SLES_10 |
| |
| Impact: SLES compilation procedure is different now |
| |
| Version 0.40.14 (November 06, 2007) |
| ================================== |
| |
| Enhancements |
| ------------ |
| 1. Naming the TCP performance improvement feature TPA (still for demos only) |
| |
| Version 0.40.13 (November 05, 2007) |
| ================================== |
| |
| Enhancements |
| ------------ |
| 1. Added support for L2 Rx TCP performance improvements in a special mode |
| (implementation for demos only). This support is disabled by default and |
| requires a change of compilation flag to enable. |
| 2. Added support for vanilla kernel 2.6.18.5, SLES9, and RHES4 |
| |
| Version 0.40.12 (October 29, 2007) |
| ================================== |
| |
| Fixes |
| ----- |
| 1. Problem: A fragmented Tcp/Udp packet might have been wrongly dropped |
| |
| Cause: parser doesn't checks tcp/udp checksum for fragmented |
| packets |
| |
| Fix: FW will report to driver the tcp/udp checksum wasn't |
| Validated if the packet was fragmented |
| |
| 2. Problem: ethtool -S|r|t eth[x] on un-configured port causes |
| errors/panic |
| |
| Cause: When port is un-configured memory is not allocated and |
| blocks in chip can be in reset |
| |
| Fix: Check driver state in nway_reset() and self_test() and |
| check memory pointer in get_ethtool_stats() |
| |
| Enhancements |
| ------------ |
| 1. Supporting the upstream Kernel including new NAPI approach |
| 2. Open source coding standard modifications throughout the code, |
| including new init code, new HSI header files, new registers |
| definitions, SPARSE fixes and checkpatch.pl fixes |
| 3. Replaced patches mechanism with #ifdefs |
| 4. Supporting big-endian machines |
| 5. Supporting nVidia chipsets with MCP55 |
| 6. Support checksum offload for A1 boards (modification with some flag in |
| PBF command) |
| |
| Version 0.40.10 (August 27, 2007) |
| ================================= |
| |
| Bug fix version, no new features |
| |
| |
| |
| Version 4.0.9 (August 10, 2007) |
| =============================== |
| |
| New features: |
| ------------- |
| |
| 1. Updated to firmware version 4.0.7. |
| |
| 2. Added support for ethtool EEPROM options. |
| |
| |
| |
| |
| Version 4.0.7 (July 23, 2007) |
| ============================= |
| |
| |
| New features: |
| ------------- |
| |
| 1. Added support for flow control. |
| |
| 2. Added patch for Kernel 2.6.22.x. |
| |
| |
| |
| |
| Version 4.0.6 (July 11, 2007) |
| ============================= |
| |
| |
| New features: |
| ------------- |
| |
| 1. Added support for new bootcode 4.0.2. |
| |
| |
| |
| Version 4.0.5 (June 29, 2007) |
| ============================= |
| |
| |
| Fixes: |
| ------ |
| |
| 1. Problem: |
| Linux stack rechecked the RX checksum. |
| |
| Cause: |
| In most cases, the indication of RX checksum was wrong |
| causing the Linux stack to recheck. |
| |
| Fix: |
| Indication mistake was fixed. |
| |
| 2. Problem: |
| NFS UDP test failed writing to server. |
| |
| Cause: |
| Incorrect HW init values. |
| |
| Fix: |
| HW init values were corrected in the driver. |
| |
| 3. Problem: |
| MTU change cause system to assert. |
| |
| Cause: |
| Memory leak in the ifconfig up/down sequence. |
| |
| Fix: |
| Memory leak fixed in driver. |
| |
| |
| |
| Version 4.0.1 (June 15, 2007) |
| ============================= |
| |
| New features: |
| ------------- |
| |
| 1. Added Power management is support. |
| |
| 2. Added WoL is support. |
| |
| 3. Auto-negotiation and speed & duplex is supported. |
| |
| 4. Updated firmware version to v4.0.2. |
| |
| 5. Support for Ethtool. |
| |
| 6. Changing MTU can be done when link is up. |
| |
| |
| |
| Version 0.30.1 (June 4, 2007) |
| ============================ |
| |
| New features: |
| ------------- |
| |
| 1. Updated firmware version to v0.30.0. |
| |
| |
| Version 0.29.1 (May 21, 2007) |
| ============================ |
| |
| New features: |
| ------------- |
| |
| 1. Updated firmware version to v0.29.0. |
| |
| |
| |
| Version 0.27.5 (May 7, 2007) |
| ============================ |
| |
| New features: |
| ------------- |
| |
| 1. Interrupt coalescing values have been optimized. |
| |
| 2. Updated to Linux Kernel 2.6.20.7. |
| |
| |
| Fixes: |
| ------ |
| |
| 1. Problem: |
| High performance scenarios involving many threads could have |
| caused tx ring overrun. |
| |
| Cause: |
| SNP concurrency driver bug. |
| |
| Fix: |
| Driver related code was fixed. |
| |
| |
| |
| |
| Version 0.27.1 (Apr 23, 2007) |
| ============================ |
| |
| New features: |
| ------------- |
| |
| 1. Added speed and activity support for LEDs. |
| |
| |
| |
| Fixes: |
| ------ |
| |
| 1. Problem: |
| Low performance when running Netperf TCP_RR. |
| |
| Cause: |
| Driver bug caused a the driver to enter a busy loop in |
| certain cases when there was no RX processing queued. |
| |
| Fix: |
| The logic used to decide if there is pending RX work was |
| corrected. |
| |
| |
| 2. Problem: |
| XFP link detection problem - intermittent issue. |
| |
| Cause: |
| Driver would not get link change interrupt. |
| |
| Fix: |
| Corrected the setting of the link change interrupt. |