blob: 59f6200aa17bba4dc80fb3d535bdb8306d342613 [file] [log] [blame]
============================
R E L E A S E N O T E S
============================
Broadcom BCM57710/BCM57711/BCM57711E/BCM57712
10 GigE bnx2x driver For Linux
Broadcom BCM57800/BCM57810/BCM57840
10/20 GigE bnx2x driver For Linux
Copyright (c) 2007-2011 Broadcom Corporation
All rights reserved.
Version 1.70.36 (Dec 01, 2011)
==============================
Internal FW 7.0.29
Fixes:
------
1. Problem: CQ59651 - GRC-timeout messages run in syslog.
Change: Fix race between two statistic-related flows by using local
state in bnx2x_stats_handle().
Introduced: Day one.
Relevance: All.
2. Problem: CQ59765 - Link loss on 10G port after running ethtool test
on 1G port, since the MAC loopback test was done on XMAC
causing the 10G port to lose link.
Change: On 1G port, run UMAC loopback.
Introduced: 1.70.32
Relevance: 57800 only (2x10G + 2x1G)
3. Problem: CQ59904 - Unable to create VLAN interface on RHEL6.2.
Change: Adopt VLAN scheme to RHEL6.2 kernel.
Introduced: Day one.
Relevance: RHEL6.2.
Enhancements:
-------------
1. Request: CQ60019 - Support DCBNL CEE calls on RHEL6.2.
Version 1.70.35 (Nov 08, 2011)
==============================
Internal FW 7.0.29
Fixes:
------
1. Problem: CQ59626 - set skb_record_rx_queue for FCoE ring out of range.
Change: Introduce fp->rx_queue and use it instead of fp->index.
Introduced: 1.70.32.
Relevance: FCoE + kernel with skb_record_rx_queue support.
Version 1.70.34 (Nov 01, 2011)
==============================
Internal FW 7.0.29
Fixes:
------
1. Problem: CQ59454 - Port identify test fails on 54616 PHY.
Change: Updated driver to driver LEDs through MDIO for 54616
Introduced: 1.70.00
Relevance: 54616 PHY based boards.
2. Problem: CQ58580 - System becomes unresponsive or unstable after running
self test. This was due to kernel stack overflow by the self
test during load/unload.
Change: Located stack-hungry code in the nic load flow and modified it
to consume reasonable amount of stack.
Introduced: Day one
Relevance: All Chips. This issue only occurs in low stack kernels -
specifically kernels using 4kb stack depth such as 32bit PAE
kernel.
3. Problem: CQ59471 - DCBx does not work with NPAR on kernels with multi-CoS
support.
Change: The DCBx negotiation result was not propagated to all functions.
Introduced: Day one.
Relevance: DCBx and kernels with multi-CoS (2.6.39 and above).
4. Problem: Compilation failed on SLES11SP2 beta7 kernel.
Change: Fix compat.h.
Introduced: Day one.
Relevance: SLES11SP2 beta7 kernel.
Version 1.70.33 (Oct 24, 2011)
==============================
Internal FW 7.0.29
Fixes:
------
1. Problem: CQ58884, CQ59376 - possible HW fatal attention issues after
unload/load with 1G link.
Change: Close RX NIG in delay time after resetting the MAC.
Introduced: 1.70.00.
Relevance: 578xx.
2. Problem: CQ58990 - KR link occasionally comes up at 1G when 10G is
expected. This is exposed only when a previous software
entity (e.g. MFW, prior to OS driver loading up) that owns
the KR PHY left it at 1G.
Change: Keep auto-neg disabled while configuring the capability
advertisement. Re-enable it after configuration is done.
Introduced: Day One
Relevance: 578xx blade designs.
3. Problem: skb truesize is under estimated.
Change: bnx2x allocates a full page per fragment. It should account in
skb->truesize, the size of the fragment, not the used part of
it.
Introduced: Day One
Relevance: All.
Version 1.70.32 (Oct 16, 2011)
==============================
Internal FW 7.0.29
Fixes:
------
1. Problem: CQ58887 - System with low memory PSOD when running mtu change.
Change: Switch between FP indices in order to avoid mapping of
FP with napi to the one napi-less, during memory allocation.
Introduced: Version 1.60.27.
Relevance: ESX-5.0.
2. Problem: CQ58996 - After 20 iterations of reboot test, adapter does not
dcbx-sync with switch.
Change: Perform hard reset to the XMAC during link establishment to
clear possible left-overs.
Introduced: Version 1.70.00.
Relevance: 57810/57800.
3. Problem: CQ58912: Port identification not working on 54618SE PHY when
link is not present.
Change: Add ON functionality to the 54618SE PHY link LED.
Introduced: T7.0
Relevance: 54618SE PHY based boards.
Version 1.70.31 (Oct 10, 2011)
==============================
Internal FW 7.0.29
Fixes:
------
1. Problem: Unable to change the speed with ethtool while using DAC (direct
attached cable).
Change: The port was matched against fiber only without considering DAC.
Introduced: Version 1.60.28.
Relevance: Optic ports with DAC.
2. Problem: On 1G copper ports, the RX UMAC is not close to prevent arrival
of partial segments during link reset process.
Change: Close the UMAC and the NIG RX during link reset process.
Introduced: Version 1.70.00.
Relevance: 578xx.
3. Problem: Traffic blink rate LED is too fast.
Change: Adjust the blink rate to 578xx clock.
Introduced: Version 1.70.00.
Relevance: 578xx.
4. Problem: Arrival of FCoE packets beyond task IO size can lead to crash.
Change: (FCoE FW) Fix firmware data-in flow.
Relevance: FCoE.
Version 1.70.30 (Oct 03, 2011)
==============================
Internal FW 7.0.28
Fixes:
------
1. Problem: Lack of handling some HW failure indications.
Change: Fix improper initialization of mask register.
Introduced: 1.60.00.
Relevance: 57712/578xx only.
2. Problem: CQ57952 - Chip consumes too much power in case of fan failure.
Change: unload driver and power down chip.
Relevance: 57810.
3. Problem: bnx2x_dcbnl_get_cap returns error for DCB_CAP_ATTR_DCBX.
Change: Add missing brake statement.
Relevance: DCB capable devices.
6. Problem: CQ57274 - Zero queues are used when num_queues was set to -1.
change: Make sure num_queue is treated as unsigned number.
Relevance: All.
7. Problem: CQ57927 - Chip hangs when in case of retransmission not aligned
to 4-bytes from the beginning of iSCSI PDU.
Change: (iSCSI FW) Firmware implementation fixed to support arbitrary
aligned retransmissions.
Introduced: Version 1.70.09 (FW 7.0.16).
Relevance: All
Enhancements:
-------------
1. Request: Changed 'pri_map' module parameter to control mapping from
priority to traffic class instead of deprecated role in SAFC
configuration.
2. Request: Allow DCBNL functionality for RHEL6.1 and RHEL6.2.
Version 1.70.29 (Sep 19, 2011)
==============================
Internal FW 7.0.27
Fixes:
------
1. Problem: CQ58418 - WoL does not work after driver unload.
Change: The PME was not enabled in the configuration space.
Introduced: Day one.
2. Problem: CQ58516 - DCBX ioctls return without error on
non-DCB capable devices.
Change: Check DCB state in IOCTLs code.
Introduced: 1.64.00.
Relevance: Non-DCB capable devices.
3. Problem: Compilation failed on RHEL6.2 kernel.
Change: Fix in compat.h.
Relevance: RHEL6.2 - alpha.
Version 1.70.28 (Sep 13, 2011)
==============================
Internal FW 7.0.27
Fixes:
------
1. Problem: Compilation failed when FCOE selected but FCOELIB is not in
kernel config.
Change: Fix #if condition.
Introduced: 1.70.00.
Relevance: Specific kernel configuration.
2. Problem: CQ57274 - kernel panic when trying to load bnx2x with negative
amount of receive queues.
Change: Changed all module parameter's from integer to unsigned integer.
Introduced: Day 1.
3. Problem: Overflow occurs during init, when generating statistics ramrod
towards the FW (writing to index outside of array bounds).
Change: Increase number of elements in the array inside struct
bnx2x_fw_stats_req.
Introduced: Day 1.
4. Problem: CQ58271 - Improper array initialization in call to
get_dcbx_params_ioctl.
Change: Take array size into account when data is copied.
Introduced: 1.64.00.
Relevance: 57712/578xx.
5. Problem: Ethtool Advertised pause frame use don't show the pause
capability when flow-control not set to autoneg.
Change: Display the advertised pause frame use even if flow-control is
not set to autoneg.
Introduced: 1.70.27.
6. Problem: CQ55140 - Arrival of target-initiated NOP-IN during intense
iSCSI traffic might lead to driver crash.
Change: (iSCSI FW) Fix in relevant flow.
Introduced: 1.60.00.
Version 1.70.27 (Sep 01, 2011)
==============================
Internal FW 7.0.26
Fixes:
------
1. Problem: Compilation failed when FCOE selected but FCOELIB is not in
kernel config.
Change: Fix #if condition.
Introduced: 1.70.00.
Relevance: Specific kernel configuration.
2. Problem: CQ55751 - Setting advertise speed in ethtool is not working, and
displaying "Advertised pause frame use" was incorrect.
Change: Fix ethtool functionality.
Introduced: Day one.
Relevance: All.
3. Problem: FCoE feature is not recognized by device.
Change: Initialize FCoE license info at driver init.
Introduced: 1.70.26.
Version 1.70.26 (Aug 29, 2011)
==============================
Internal FW 7.0.26
Fixes:
------
1. Problem: Compilation failed on kernel-3.0.x.
Change: Fix compat.h.
Introduced: Day one.
2. Problem: Improper RX ring configuration showed in some case via
ethtool -g.
Change: Allow configuration to be read if device is down.
Introduced: 1.64.14.
3. Problem: CQ58086 - on 578xx B0 ETS BW 0% is not allowed by driver.
Change: Provide alternative HW configuration for this case.
Introduced: 1.70.00.
Relevance: 578xx with DCB support.
4. Problem: Driver allowed DCBX queries on non-pmf interfaces.
Change: Disable the queries on non-pmf interfaces.
Introduced: 1.70.00.
Relevance: MF devices with DCB support.
5. Problem: Degradation in latency benchmarks noted (multiple TCP_RR). This
was because driver configured FW to use the same state machine
for rx and tx indices in status block.
Change: Use.seperate state machines for tx and rx.
Introduced: 1.60.00.
6. Problem: Driver may get out of sync with FW when UNDI is present.
Change: Init fw_seq after undi_unload is done.
Introduced: Day one.
Relevance: All.
7. Problem: GRC-timeout messages may appear in syslog during driver load.
Change: 1. Remove access to removed registers in 57712/578xx.
2. Do not allow device reset while reading IGU HW block info.
Introduced: 1.64.00.
Relevance: 57712/578xx.
8. Problem: MC assert while initializing iSCSI on some boards.
Change: Move cnic_info initialization to bnx2x_open.
Introduced: 1.64.00.
Relevance: 57711E.
Enhancements:
-------------
1. Request: Enable FEC (Forward Error Correction) on 57810-KR.
Version 1.70.25 (Aug 22, 2011)
==============================
Internal FW 7.0.26
Fixes:
------
1. Problem: CQ56409, CQ57534 - Initiator periodically sends out Discovery
Solicitation after login is established. This was caused by a
missing VLAN filtering on the bnx2fc side. To enable such a
filtering on the ESX bnx2fc needs to be aware of the currently
configured VLANs on the CNA device.
Change: Expose the CNA VLANs configuration to the CNIC.
Relevance: FCoE on the ESX only.
Introduced: Day one.
2. Problem: Theoretical problem that FW will drop incoming packet due to
incorrect RX ring size when dropless_fc=1.
Change: Increase ring size according to FW implementation.
Relevance: Driver loaded with dropless_fc=1.
Introduced: Day one.
3. Problem: CQ57841 - NIG timer error and connection loss after driver is
loaded.
Change: Apply NIG drain when remote fault is detected.
Introduced: In 1.70.00.
Relevance: Fiber ports.
4. Problem: CQ57738, CQ57719, CQ55158 - Remote fault detection occasionally
causes link issues, and traffic problems.
Change: Remove remote-fault detection for T7.0.
Introduced: In 1.70.00.
Relevance: Fiber ports.
5. Problem: CQ57987 - Compilation error on RHEL6.2 kernels.
Change: Fix compat.h.
Introduced: In 1.70.00.
Version 1.70.24 (Aug 18, 2011)
==============================
Internal FW 7.0.26
Fixes:
------
1. Problem: FCoE traffic causes null pointer deref on kernels below 2.6.38.
Change: Path correct parameter to netdev_alloc_ms()
Introduced: In 1.70.15
2. Problem: CQ57250 - The LED Link light does not turn on at 1Gb/s speed
Change: Adjust elink_set_led to allow for correct LED behavior.
Introduced: Day one.
Relevance: 578xx with direct connection.
3. Problem: CQ56820 - XMAC loopback (within "ethtool -t" test) may fail due
to timing issue related to the CORE loopback type used.
Change: Change XMAC loopback to local line loopback.
Introduced: In 1.70.00.
Relevance: 578xx.
4. Problem: CQ57842 - Message "Illegal configuration detected for Max BW"
appears in syslog when link toggles.
Change: Adjust number of VNICs for 4-port devices.
Introduced: In 1.70.00.
Relevance: 578xx 4-port.
5. Problem: Message "Illegal configuration detected for Max BW"
appears in syslog when link toggles.
Change: Reduce msglvl for the message to debug only.
Introduced: In 1.70.00.
Relevance: MF devices.
6. Problem: CQ56894 - packet drops during UDP stress test on 578xx.
Change: Recalculate thresholds configuration according to 578xx HW.
Introduced: In 1.70.00.
Relevance: 578xx.
Version 1.70.23 (Aug 08, 2011)
==============================
Internal FW 7.0.26
Fixes:
------
1. Problem: CQ57469, CQ57377, CQ56861, CQ57296 - CFC HW attention,
XSTORM assert or kernel panic when changing the MTU under the
TCP traffic (on the Tx side). Tx queues were stopped before
bp->state was changed to a value different from
BNX2X_STATE_OPEN, which allowed the bnx2x_tx_int() called from
the NAPI context to re-enable it. This then allowed the
netdev->ndo_start_xmit() to be called in the middle of the
function reset and rings freeing, which caused the above
failures.
Change: Change bp->state to a value different from BNX2X_STATE_OPEN
BEFORE disabling the Tx queues in order to restore the
protection against the above race in the bnx2x_tx_int().
Introduced: In 1.70.16 in the fix for CQ56438.
2. Problem: CQ56991, CQ57007 - PFC pauses non pausible traffic. This was
because FW was configured to work in STATIC_COS on 57712 and
578xx regardless of kernel version. In kernels where multiple
traffic classes are not supported this essentially blocked
network traffic from being assigned any tc other than 0. If
pausible traffic was assigned tc 0 the network traffic would
necessarily collide with it.
Change: Configure FW to work in STATIC_COS only in kernels which support
multiple traffic classes.
Introduced: 1.70.15.
Relevance: 57712 and 578xx on kernels before 2.6.39.
3. Problem: CQ57566 - During link down event "stats updated but no MAC
active" messages appear in system log.
Change: Lowered the debug level of the message.
Introduced: Day one.
Relevance: All.
4. Problem: PMF migration during remote fault result in invalid link state.
Change: Sync link attributes during remote fault periodic check.
Introduced: 1.70.09.
Relevance: Fiber ports.
Version 1.70.22 (Jul 31, 2011)
==============================
Internal FW 7.0.26
Fixes:
------
1. Problem: Error messages "FATAL HW block attention set2 0x20" in the
kernel log on specific systems.
Change: Recoverable LCRC errors due to not masking CPL_OF caused the
print while it should be ignored.
Introduced: Day one.
Relevance: 57710 and 57711.
2. Problem: The GPHY ports are not completely powered down on
driver unload if the GPHYs have no external pins to
bring them to reset state. As a result, their link
partner may still see link.
Change: Put the GPHY in low power mode.
Introduced: 1.70.00.
Relevance: T0000G boards.
3. Problem: Driver compilation failed on 2.6.38.x kernels.
Change: Fix compat for these kernels.
Introduced: 1.70.21.
4. Problem: PCI scan could lead to GRC read.
Change: Second function indirect windows were not cleared by the driver
since the driver used the port index before it was initialized
and therefore cleared only function 0. Since the driver is not
using these indirect windows, it will clear them all.
Introduced: Day one.
5. Problem: CQ57061 - GRC timeout messages appear on some systems during
driver load.
Change: Take HW LOCK before resetting the HW, which prevents from
undi_unload read registers while block is in reset state.
Introduced: Day one.
6. Problem: Compilation failed on SLES11 SP1 update 1.
Change: Fix conflict on backported feature in bnx2x_compat.h.
Introduced: 1.70.20.
Relevance: SLES11 SP1 update 1 only.
7. Problem: IP and TCP ECN related TPA aggregation rules do not comply with
LRO requirements. Firmware followed requirements for RSC which
are incompatible with LRO requirements:
1. Allow TPA aggregation even if TCP ECE and CWR flags are set.
2. Allow TPA aggregation only if IP ECN CE and ECT bits are
either 00 or 11.
Change: (FW ETH) Firmware now allow TPA aggregation only if:
1. TCP ECE and CWR are both 0's.
2. IP ECN CE and ECT bits are other than 11.
Introduced: 1.64.00 (FW 6.4.0.).
Relevance: All.
8. Problem: CQ56960 - Arrival of un-solicited ASYNC message causes firmware
to abort the connection with RST.
Change: (FW iSCSI) Firmware fix to relevant flow.
Introduced: 1.64.00 (FW 6.4.0.).
Relevance: All.
9. Problem: There is a probability that truncated FCoE packet on RX path
won't get detected which might lead to crash.
Change: (FW FCoE) Verify the length of the FCOE packet.
Introduced: 1.64.00 (FW 6.4.0.).
Relevance: FCoE only.
Enhancements:
-------------
1. Request: Add remote fault link detection for 578xx based on LSS errors
in the MAC layer.
Relevance: 578xx.
2. Request: Added 54616 PHY support.
Relevance: 54616 PHY.
Version 1.70.21 (Jul 25, 2011)
==============================
Internal FW 7.0.23
Fixes:
------
1. Problem: Warning about the pending bit coming from the VLAN_MAC object
if parity error happens under the rtnl_lock().
Change: Clear the internal VLAN_MAC object pending bit if
bnx2x_config_vlan_mac() is called with RAMROD_DRV_ONLY flag.
Introduced: Day one.
2. Problem: bp->sp_state bits stayed set forever set if there was a parity
error under rtnl_lock()
Change: Clear bp->sp_state after interrupts are disabled.
Introduced: Day one.
3. Problem: No flow-control on 578xx when link is up at 1G and below.
Change: Add pause functionality to UMAC
Introduced: 7.0.0.
Relevance: 578xx
4. Problem: CQ56991, CQ57007 - Networking traffic priority was mapped to the
COS configured at startup which was 0 by default. If FCOE or
ISCSI were configured by DCBX negotiation result to COS 0 the
network traffic would cause drops on a dropless traffic class
and could foul up ETS or PFC.
Change: When DCBX negotiation result occurs configure all priorities
other than FCOE and ISCSI to the Networking COS.
Introduced: 1.70.15
Relevance: 57712/578xx with DCB support.
5. Problem: CQ57063 - tx checksum offload feature would not turn off when
'ethtool -K eth<xxx> tx off' was used.
Change: Since at startup bnx2x declares support for ipv4 and ipv6
checksum offload, connect the ethtool ipv6 set checksum premade
op to the set_tx_csum op which affects both ipv4 and ipv6
instead of the ipv4 op which affects only ipv4.
Introduced: 7.0.0.
6. Problem: CQ56294 - Incorrect Remote fault detection may lead to link
down on 5771x fiber devices.
Change: Fix LSS fault mechanism to detect remote fault and transmit
local fault through the BMAC. This change requires leaving the
BMAC out of reset in case link of 10G goes down
Introduced: 7.0.0.
Relevance: 5771x-fiber devices (8706/8726/8727), 10G only.
Version 1.70.20 (Jul 19, 2011)
==============================
Internal FW 7.0.23
Fixes:
------
1. Problem: CQ56950 - When speed is set to 1G on SFP+ device, link may
fail to come up and system may hang due to incorrect
initialization of the XGXS mode in the NIG.
Change: Fix typo.
Introduced: 1.70.13.
Relevance: 57712+8727 and 57711+87x6.
2. Problem: Possible race between Queues UPDATE from the NIV_FUNCTION_UPDATE
and from VLAN HW stripping configuration.
Change: Move Queues UPDATE in NIV_FUNCTION_UPDATE flow to be executed
from inside bnx2x_sp_rtnl_task (under rtnl_lock()).
Introduced: 1.70.14.
Relevance: NIV only.
3. Problem: Link down when running iSCSI reboot test.
Change: Ensure that PHY_TX_ERROR_CHECK_FLAG is asserted before error
checking.
Introduced: 7.0.8.
Relevance: 57712 with non-optic phys.
4. Problem: CQ57055 - ESX doesn't support LRO on top of IPv6.
Change: Separate TPA queue configuration: introduce
BNX2X_Q_FLG_TPA_IPV6.
Introduced: Day one.
Relevance: ESX only.
5. Problem: CQ57125 - Missing configuration for the FIP MAC in single
function mode and for WWN in multi function mode.
Change: Add the missing configuration.
Introduced: Day one.
Relevance: FCoE only.
6. Problem: CQ56784 - LED doesn't flash during LED test.
Change: Add the missing configuration.
Introduced: Day one.
Relevance: 578xx.
7. Problem: During error handling "FW failed to respond" message appears.
Change: Add missing command from driver to FW.
Introduced: 1.70.08.
8. Problem: CQ56687 - Traffic LED do not blink under multiple OSes and dim.
Change: Enable LED blink and set rate.
Introduced: 7.0.0.
Relevance: 57712 + 8727.
9. Problem: Parity attentions clearing code didn't cover ATC and PGLUE_B
blocks for 57712.
Change: Add the ATC and PGLUE_B blocks to the parity mask registers data
base.
Introduced: Day one.
Relevance: 57712 only.
10. Problem: Parity errors recovery flow for 578xx was broken.
Change: Fix the above flow:
- Add a separate column for the 578xx in the parity mask
registers DB.
- Fix the bnx2x_process_kill_chip_reset() to handle the blocks
newly introduced in the 578xx.
Introduced: Day one.
Relevance: 578xx only.
11. Problem CQ56870 - ethtool -d (register dump) causes bnx2x panic on E3
boards.
Change Add support for E3 A0 and E3 B0 in register dump.
Introduced: Day one.
Relevance 578xx only.
Enhancements
------------
1. Request: Fix the direction of the dma_sync() to synchronize towards CPU
as it's supposed to be.
2. Request: CQ56857 - Add support for AutoGrEEEn using nvram configuration
as default with module parameter to force it to on or off.
3. Request: CQ56737 - Disable TX_DIS Signal when SFP+ module is plugged out
to prevent current leakage.
Relevance: 578xx.
Version 1.70.19 (Jul 13, 2011)
==============================
Internal FW 7.0.23
Fixes:
------
1. Problem: 578xx B0 - HW attention during traffic.
Change: properly configure 578xx B0 mode.
Introduced: 1.70.00.
Relevance: 578xx B0.
2. Problem: Possible no link when DAC is connected to 578xx device
Change: Restart WC microcode after module is plugged in and detected.
Introduced: Day one.
Relevance: 578x0 only.
Version 1.70.18 (Jul 12, 2011)
==============================
Fixes:
------
1. Problem: CQ56434 - System crash after running IO and pulling cable.
Occurs since TX pipe is stalled due to missed XON indication
(from MAC did to NIG).
Change: Force XON on NIG on link down/up.
Introduced: T7.0.
2. Problem: 84833 PHY link does not come up. The extra PHY write to
the auto-neg register is bringing the PHY to auto-neg
failure, resulting in constant retry.
Change: Remove the extra write to this register when auto-neg is
enabled.
Introduced: Day one.
Relevance: 84833 PHY only.
3. Problem: CQ56462 - Unable to get link on both ports on several systems.
Change: Initialize warpcore twice in succession.
Introduced: 1.70.03
Relevance: 578xx.
4. Problem: 84833 link still comes up at 10G even when configured to
be forced 100.
Change: Disable 10G advertisement.
Introduced: Day one.
Relevance: 84833 PHY only, may affect 84823.
5. Problem: CQ56785 - Soft lockup/NULL pointer dereference while running
FCoE traffic.
Change: Properly calculate TX queue for FCoE L2 traffic.
Introduced: 1.70.15.
Relevance: 57712/578xx with FCoE.
6. Problem: Kernel warning messages regarding the attempt to access the Tx
queue with index more or equal to netdev->real_num_tx_queues.
Change: Align the initialization of the netdev with the Tx multi-CoS
logic.
Introduced: 1.70.15.
7. Problem: CQ56790 - During the loading of the bnx2x module there is an
error indicating that the symbol bnx2x_dbg_buf could not be
found.
Change: Declare bnx2x_dbg_buf as a non-static variable.
Relevance: ESX only.
8. Problem: Setting Warpcore registers may be ignored due to missing cycle
in MDC/MDIO.
Change: On 578xx-B0, set free running counter on EMAC before each cl45
access, and clear it at the end. This is not done globally,
to prevent clock collisions between the four MDIO masters
(One per EMAC).
Introduced: Not applicable.
Relevance: 578xx-B0.
Enhancements
------------
1. Request: Use vmalloc for a zlib inflate buffer.
2. Request: Remove unnecessary read of PCI_CAP_ID_EXP
The PCIE capability offset is saved during PCI bus walking.
It will remove an unnecessary search in the PCI configuration
space if this value is referenced instead of reacquiring it.
Also, pci_is_pcie is a better way of determining if the device
is PCIE or not (as it uses the same saved PCIE capability
offset).
3. Request: CQ56790 - Pass the mf_mode to the CNIC so that CNIC can
determine if it needs to call the
DRV_CTL_START_NPAR_CMD/DRV_CTL_STOP_NPAR_CMD to setup the NIG
when in NPAR mode.
Relevance: ESX only.
Version 1.70.17 (Jul 05, 2011)
==============================
Internal FW: 7.0.23
Fixes:
------
1. Problem: PFC is not configured for ports 1,3 on 4-port devices.
Change: Enable the configuration for every port.
Relevance: DCBX, 578xx 4-port devices.
2. Problem: Warning message: "MDC/MDIO access timeout" on the first driver
load. This warning appears during the link reset sequence, but
it has no significant meaning, since it occur prior to the
first phy initialization command.
Change: Adjust AER and CL45 clock during link reset sequence.
Introduced: Day one.
Relevance: 57712+8727.
3. Problem: "Soft lockup" errors. Caused by race between bnx2x_sp_task() and
local IRQ both calling for napi_schedule(), which adds elements
to a local NAPI list.
Change: Disable local IRQs when calling for napi_schedule() from
bnx2x_sp_task().
Introduced: 1.60.17.
Relevance: FCoE only.
4. Problem: (CQ56741, CQ56744, CQ56697, CQ56590) "Soft lockup". Caused by
race between dcb negotiation update flow and nic unload flow.
The dcb update flow, which is an element in the sp work queue
waits for rtnl lock in order to call bnx2x_setup_tc while nic
unload flow which takes the rtnl lock waits for the sp work
queue to be flushed.
Change: The dcb negotiation update flow now schedules the call to the
bnx2x_setup_tc on the rtnl_sp task.
5. Problem: Possible problems in using fcoe and iscsi concurrently. The same
cid was assigned to both.
Change: Allocate each its own cid.
Introduced: 1.70.15.
6. Problem: Compilation failed on vanilla kernels below 2.6.33 when FCOE
module is selected.
Change: Add appropriate #ifdef structure.
Introduced: 1.70.15.
Enhancements
------------
1. Request: CQ56174 - Add AutogrEEEn support to 54618SE PHY.
Relevance: 578xx.
2. Request: Support sharing of PFC configuration between functions
on the same port.
Relevance: MF devices with DCB support.
3. Request: CQ54245 - Add Operational DCB state to GET_DCBX_PARAMS
structure.
Relevance: 57712/578xx with DCB support.
4. Request: Add ability to Enable/Disable DCB according to remote
configuration/absence.
Relevance: 57712/578xx with DCB support.
5. Request: Add statistics ramrods to EQ resources accounting.
Version 1.70.16 (Jun 29, 2011)
==============================
Internal FW: 7.0.23
Fixes:
------
1. Problem: CQ56500 - ESX driver didn't compile.
Change: Change the ESX grcDump function to use the standard functions
for disabling/clearing/enabling parity attentions.
Introduced: 1.70.15.
Relevance: ESX only.
2. Problem: CQ56438 - Tx timeout was hit when there was a parity error
and offloaded drivers (bnx2i/bnx2fc) loaded. It takes too long
for the offloaded drivers to close (CNIC_STOP)
bnx2x disabled a carrier after the CNIC_STOP completed.
Change: Moved the bnx2x_tx_disable() call to be before the CNIC_STOP
call.
Introduced: Day one.
3. Problem: When DAC (Direct Attached Cable) is used, there's not actual
link down event on the far side since transmitter output is not
disabled.
Change: Disable transmitter output when link is disabled. The same
change in MFW (since v7.0.20) will cause link to stay down
using earlier version of this software (CQ56652). This version
and after fixes it.
Introduced: Day one.
Relevance: 57712+8727.
4. Problem: CQ53144 - Repeating "NOHZ: local_softirq_pending 08" messages in
the syslog: NAPI softirq was scheduled on a local CPU but
ksoftirqd wasn't invoked. This was caused by calling the
napi_schedule() for the FCoE L2 ring from a workqueue and not
from the ISR as it is supposed to, which caused the above
phenomenon.
Change: Disable local softirqs before napi_schedule() call
(local_bh_disable()) and then re-enable them
(local_bh_enable()). This will invoke the ksoftirqd if needed.
Introduced: 1.60.17.
Relevance: FCoE only.
5. Problem: In MF mode, when DCBX enabled, ifconfig down of PMF function
may cause stop traffic on other function.
Change: Use generic scheme when configuring HW and FW for DCBX;
Protect function from going down during inappropriate state.
Relevance: MF, DCBX only.
6. Problem: CQ56292 - bnx2x assert dump when setting MTU to 9000. This was
caused by an improper initialization of the fp->rx_buf_size for
none-FCoE rings which led to improper initialization of BD
buffer sizes for those rings.
Change: Fix the code that initializes the fp->rx_buf_size value.
Introduced: 1.70.08.
Relevance: FCoE on ESX only (CNA).
7. Problem: CQ56531 - Kernel crash due to page fault. Num of queues supplied
to kernel erroneously included the iscsi queues which resulted
with kernel choosing a transmission queue index beyond the
boundary of the bxn2x's tx queues array.
Change: Supply the kernel with correct number of tx queues.
Introduced: 1.70.15.
Relevance: iSCSI OOO (since kernels 2.6.34 or Red Hat 6.0).
8. Problem: CQ56582 - BCM57810 may exhibit link down when connected to KR
switch.
Change: Don't overwrite the value for other reg.
Introduced: 1.70.15.
Relevance: 578xx KR.
9. Problem: CQ56538 - DCBX: The PFC pause frames being sent have source MAC
address of 00:00:00:00:00:00.
Change: Initialize source MAC address in the MAC
Introduced: Day one.
Relevance: 578xx.
10. Problem: CQ56507 - Panic Dump after DCBX negotiation completed.
Change: (FW) Fix TX queue allocation scheme and DCB related firmware
flows.
Introduced: 1.70.15 (FW 7.0.19).
Relevance: 57712/57810A0/57840A0, when multiple-priorities is activated
together with DCB.
11. Problem: CQ54938 - Driver asserts on CFC delete command, when running
stress test against an Equalogic target, while issuing RESET_LUN
commands.
Change: (FW iSCSI) Decrease activity counter in the cleanup flow, to
compensate for later activity counter increase.
Introduced: 1.70.01 (FW 7.0.0).
Relevance: iSCSI.
12. Problem: Basic FCoE over NIV is not working when there is inner vlan on
packet.
Change: (FW ETH) Fixed the flow in NIV mode to change a zero inner vlan
vid to the NIV default vlan.
Introduced: 1.70.15 (FW 7.0.21).
Relevance: BCM57712/BCM578xx, only with NIV on packets with inner vlan.
13. Problem: CQ55328 - FCoE discovery does not work with ESX CNA device.
The ESX stack would complain about the number of filters for the
CNA NetQueue.
Change: Call netif_set_poll_cna() after the FCoE NAPI structure has been
initialized.
Introduced: 1.70.08.
Relevance: ESX CNA only.
Enhancements
------------
1. Request: Optimized the memory barriers usage in the slow path.
2. Request: Add AutogrEEEn support to 84833 PHY.
3. Request: Implement the netdev->ndo_fcoe_get_wwn().
Version 1.70.15 (Jun 22, 2011)
==============================
Internal FW: 7.0.21
Fixes:
------
1. Problem: Need to update references from 54616 PHY to 54618SE.
Change: Updated references from 54616 PHY to 54618SE.
Introduced: Day one
Relevance: No functional impact.
2. Problem: Need to update T0000G to enable AutogrEEEn by default.
Change: Updated T0000G to enable AutogrEEEn by default.
Introduced: Day one.
Relevance: T0000G boards.
3. Problem: Driver loading problems on 4 port device with active MF mode.
Problem occurs due to wrong calculation of mailbox function.
Change: In 4 port mode, change calculation of BP_FW_MB_IDX to be:
port_id + vnic_id*2.
Introduced: Day one.
Relevance: 4 port device (578xx) with active MF mode.
4. Problem: Wrong calculation of the available slow path elements. As a
result possible false "ring is full" messages and failures of
slow path commands.
Change: Fixed the above calculations.
Introduced: 1.70.12.
5. Problem: CQ56287 - STOP_ON_ERROR compilation was broken.
Change: Make the bnx2x_int_disable() function public.
Introduced: 1.70.13.
6. Problem: Compilation failed on 2.6.39 kernels.
Change: Fix compat for the kernels.
Introduced: 1.70.13.
7. Problem: CQ56325 - 57800 does not send LLDP frames.
Change: Enable DCBX for 4-port devices.
Introduced: 1.70.01.
Relevance: 578xx 4 port devices.
8. Problem: Storm clocks were not initialized properly in E3.
Change: (FW) Remove wrong clock initialization from init tool
and move it to MCP.
Introduced: Version 1.70.13 (FW 7.0.20).
Relevance: BCM57800.
Power-cycle of the device is needed in order to fix the
Storm frequency, a regular driver update is not enough.
9. Problem: Possible race between writing event-ring element and
updating the host-coalescing index.
Change: (FW) Fix the flow by sending host-coalescing index update
only after the completion of the event-ring writing.
Introduced: Version 1.70.01 (FW 7.0.0).
10. Problem: Basic FCoE on NPAR-SD was not working.
Change: (FW-FCoE) Fixed the flow in NPAR-SD mode to add default vlan
also when there is vlan with vid=0 on packet.
Relevance: BCM57712 and BCM578xx, only NPAR-SD mode.
Enhancements
------------
1. Request: Propagate WWN info up to bnx2fc driver.
Relevance: FCoE only.
2. Request: CQ56040 - Enable DCBX on ESX5.0 and newer.
Relevance: ESX with DCB only.
3. Request: Honor BAM on KR NVRAM config for 578xx.
Relevance: 578xx KR only.
4. Request: CQ56086 - Integrate VMware ESX grcDump gdb patch.
Relevance: ESX only.
5. Request: Add fan failure detection for 578xx-SFI
Relevance: 578xx with fan mounted.
6. Request: Support multiple concurrent classes of service for network
traffic. Support mapping of skb priority to traffic class and
traffic class to transmission queue in kernel. Update said
mapping according to multi class queue discipline and DCBX
negotiaton.
Relevance: Kernel 2.6.39 or Red Hat 6.1.
Version 1.70.14 (Jun 14, 2011)
==============================
Internal FW: 7.0.20
Fixes:
------
1. Problem: Possible spurious cnic interrupt.
Change: Properly disable cnic sb.
Introduced: 1.60.00.
Relevance: (Theoretical) when CNIC is supported.
2. Problem: In NPAR-SD mode, VIF SET request for FCoE function takes more
than 40 seconds to be completed and ACKed back to the MCP.
Change: Queue update ramrod sent to FCoE ring couldn't wait for
completion in the same context. Therefore, don't wait for
completion for this ramrod on FCoE ring.
Introduced: 1.70.00.
Relevance: FCoE in NPAR-SD mode.
3. Problem: In NPAR-SD mode, theoretically traffic can be dropped due to
early VIF SET ACK sent back to the switch.
Change: Send VIF SET ACK from driver to MCP only after function update
ramrod is completed + all queue updates ramrods are completed.
Introduced: 1.70.10 (when silent vlan removal was added).
Relevance: NPAR-SD mode.
Enhancements
------------
1. Request: CQ53961 - Remove 10Mbps from 84833 PHY. Honor PHY speed
attributes for 10/100. If the driver is set up to advertise
only 10M, no speed capability will be advertised. And
no link will be established.
Relevance: 84833 PHY based boards.
2. Request: Add definition for autogreen in eLink.
Relevance: 84833 PHY and 54618SE PHY based boards.
Version 1.70.13 (Jun 12, 2011)
==============================
Internal FW: 7.0.20
Fixes:
------
1. Problem: Driver might set NPAR-SD mf_mode even if that mode can't be
set. Driver sets NPAR-SD according to value written to NVRAM,
without considering error cases such as missing NVRAM images
etc.
Change: Set mf_mode to NPAR-SD only if mac address in shmem is valid.
If address in shmem is valid, then MFW performed all checks
and found that mode as valid.
Introduced: Day one.
Relevance: NPAR-SD mode only.
2. Problem: Memory leak in during selftest. Driver mapped skb twice.
Change: Do it once.
Introduced: 1.70.09.
3. Problem: CQ55933 - ESX CNA enabled driver tries to configure Rx mode
for an FCoE ETH queue for NICs that do not support an FCoE.
Change: Configure Rx mode for an FCoE ETH queue only for the NICs
that support FCoE (57712 and newer).
Introduced: 1.70.08.
Relevance: ESX CNA only.
4. Problem: CQ55928 - Tx traffic stop in DCB update flow.
Change: (FW) Fix wrong address calculation in DCB update ramrod.
Introduced: Version 1.70.09 (FW 7.0.16).
Relevance: BCM57712 and BCM578xx, only when DCB is enabled and FCOE is
running.
5. Problem: No TX in Firmware WRR mode.
Change: (FW ETH) Fix CoS mapping to VOQs.
Introduced: Version 1.64.00 (FW 6.4.0).
6. Problem: CQ55598 - During fast retransmit, the TCP sequence is advanced
by the size of the TCP data retransmitted.
Change: (FW iSCSI) Fix firmware to avoid update of in-order TCP
sequence.
Introduced: Version 1.70.09 (FW 7.0.16).
Relevance: iSCSI.
7. Problem: Chip may stop transmission after DCB update in NPAR-SD mode.
Change: (FW FCoE) Fix firmware calculation of transmission credit.
Introduced: Version 1.70.00 (FW 7.0.0).
Relevance: FCoE, NPAR-SD mode.
8. Problem: VLAN packets are not received on kernels above 2.6.37.
Change: Improper FW configuration.
Introduced: Version 1.70.10.
Relevance: When DCB enabled in NVRAM.
9. Problem: CQ56073 - PFC feature is not functional.
Change: Fix handling of DCB negotiation.
Introduced: Version 1.70.02.
Relevance: 57712 only.
10. Problem: CQ56019 - Compilation fails on RHEL 6.1.
Change: Fix bnx2x_compat.h.
Introduced: Version 1.70.11.
Enhancements:
-------------
1. Request: Update PMD settings for 578xx SFI/XFI/DXGXS according to the
new recommended values.
2. Request: Add support for 3 COSes for 578xx (B0) devices.
3. Request: Add elink_84833_hw_reset_phy function.
Relevance: 84833 PHY based boards.
4. Request: Added support for 2 queues on different CoSes in 57712 and
578xx A0.
5. Request: Performance improvements in order to resolve PCI bottleneck on
short packet PPS test on multiple connections.
Version 1.70.12 (May 24, 2011)
==============================
Fixes
-----
1. Problem: (CQ55655) WOL is not functional on functions 2-7.
Cause: Incorrect register configuration.
Change: Allow WOL via HW registers.
Impact: Introduced in 1.64.01.
2. Problem: Undefined device behaviour when bringing up more
than 16 eth queues with CNIC enabled.
Cause: Resource management mechanism does not allow more than 16
queues without actual limiting the number.
Change: Limit number of eth queues to 16.
Impact: 57712 only.
3. Problem: Possible no link on 578xx SFP+.
Cause: Failed reading from SFP+ module EEPROM due to I2C register not
returning acknowledge over successful operation.
Change: Add work-around of up to 3 retries in case of I2C failure.
Impact: 578xx SFI.
4. Problem: (CQ55748) Link loss during up/down test.
Cause: Race in driver code causes it to get out of sync.
Change: Fix assignment with the lock.
5. Problem: In NPAR-SD mode, iSCSI and FCoE MAC addresses for relevant
functions are zero.
Cause: In NPAR-SD mode, iSCSI and FCoE MAC addresses were not taken
from shmem for functions in which these protocols are enabled.
Change: If NPAR-SD mode is used and the function is iSCSI/FCoE enabled,
read suitable MAC addresses from shmem.
6. Problem: In NPAR-SD mode, default vlan tag might not be silently removed
by the FW.
Cause: default vlan value and mask sent to FW in function update
ramrod (for NPAR-SD mode) includes 3 bits of priority.
Change: default vlan value and mask in function update ramrod will
include only 12 bits of vlan id.
7. Problem: Parity recovery was broken.
Cause: Improper handling of starting and termination of the
'periodic_task'.
Change: Ensure that only a PMF is running a periodic task. Stop a
periodic task when a function is shut down.
Impact: Introduced in 1.70.09.
8. Problem: Chip may crush under PF FLR.
Cause: Driver could get interrupt on a disabled function.
Change: (In FW 7.0.18) Fixed relevant firmware flow.
Impact: Introduced in 1.70.00 (FW 7.0.0)
9. Problem: Improper device behaviour on BE platform.
Cause: Use improper calculation for FW offsets.
Change: Use FW offsets instead.
Impact: Introduced in 1.64.01
Enhancements
------------
1. Request: Add the ability to switch settings from one speed to
another in the Warpcore without having to unload the
driver.
Change: Add a routine to restore the Warpcore register settings
back to default. The routine is called before configuring
the Warpcore to the desired speed settings.
Impact: 578xx only.
2. Request: Separate the accounting of the context-less SP commands and
those that complete on the FP Rx ring.
Change: As requested.
3. Request: Reduce loading time when not in hotplug flow.
Change: As requested.
4. Request: Updates the bnx2x_set_features() to handle loopback mode.
Change: When enabled, it sets internal-MAC loopback.
Impact: Backport from upstream.
5. Request: Add 20G supported display for ethtool.
Change: As requested.
6. Request: (CQ55781) Allow GDB script to poke at the hardware registers.
Change: As requested.
Impact: ESX only.
7. Request: Reduce number of pcie transactions in high PPS rate scenarios.
Change: (In FW 7.0.18) Changing Status block DMA to host to be read
from RAM instead of 3 IMM DMA's. This reduces the number of
transactions on PCI and resolves with faster replenishment of
PCI credits, since we reduced the number of read modify write
transaction on host cash lines.
8. Request: Use FW 7.0.18.
Change: As requested.
Version 1.70.11 (May 18, 2011)
==============================
Fixes
-----
1. Problem: (CQ55251) "BAD MCP validity signature" shown when device
hot-plugged.
Cause: Race between FW initialization and driver load.
Change: Let FW to complete initialization by adding msleep in driver.
2. Problem: TPA is not functional on platforms where
CONFIG_NEED_DMA_MAP_STATE is not defined.
Cause: We used dma_unmap_addr_set() and dma_unmap_addr() macros for
internal storing and for further retrieving of the DMA mappings
which were then used for BDs configuration in the TPA Rx flow
while dma_unmap_addr() will always return zero on the mentioned
above platforms.
Change: Don't use the mentioned above macros in flows others than
"map->unmap".
Impact: TPA only. Introduced in 1.70.09.
3. Problem: Compilation failed on SLES11 SP1 update 1.
Cause: Conflict on backported feature.
Change: Fix bnx2x_compat.h.
Impact: SLES11 SP1 update 1 only.
4. Problem: Wrong link LED when speed lower than 10G on 578xx devices.
Cause: Incorrect LED mode setting.
Change: Set correct LED mode setting.
Impact: 578xx devices only.
5. Problem: One queue is not selected for transmission in kernels
below 2.6.38.
Cause: Incorrect mapping function.
Change: Fix compat to implement mapping similar to 2.6.38.
Impact: Kernels below 2.6.38 with multi queue support.
6. Problem: TCM, DMAE, PBF, TIMERS, XCM, DMAE parity errors were ignored,
while still asserting the "close the gates" bit.
Cause: The appropriate bits were not checked when checking for parity
errors.
Change: Added the missing bits handling to the parity recovery code.
7. Problem: Compilation failed on RHEL 5.7.
Cause: Conflict on backported feature.
Change: Fix in bnx2x_compat.h.
8. Problem: (CQ55312) DMAE timeout message shown in the syslog when loading
the first function on the port.
Cause: BMAC was reset after the NIG-to-BRB channel was open and before
the FW was initialized. This caused the parity error in TCM.
Change: Reset BMAC before opening NIG-to-BRB channel.
Impact: Introduced in 1.70.04.
Enhancements
------------
1. Request: Optimize buffer mapping manipulations in the TPA flow.
Change: As requested.
2. Request: Don't use atomic bit operations unless needed.
Change: As requested.
3. Request: Propagate the CFC_DEL ramrod error code up to CNIC.
Change: As requested.
Version 1.70.10 (May 5, 2011)
==============================
Fixes
-----
1. Problem: LRO failure in IPv6 case.
Cause: Erroneous calculation of lro_mss size for IPv6 case.
Change: Fix LRO MSS calculation in IPv6 case.
Impact: 57712 and newer IPv6 LRO only.
2. Request: Potential link issue.
Cause: Incorrect code alignment led to bad PHY struct initialization.
Change: Fix PHY struct initialization.
Impact: Introduced on 1.70.09.
3. Request: Potential inconsistent link state report towards OS.
Cause: Possible race between netdev->open() and link attention
handling flows both reporting link state towards OS.
Change: Protect the link reporting code with the same locking scheme
as used for the link state handling protection.
Enhancements
------------
1. Request: Use FW 7.0.17.
Change: As requested.
2. Request: Employ silent vlan removal feature.
Change: Silent vlan removal use:
1. In NPAR-SD mode silently remove the default vlan.
2. In ESX Network Plug-in Architecture silently remove the NPA
default vlan.
3. When DCB is enabled in kernels which don't treat vlan-0 as
non-vlan use silent vlan removal to:
a. Remove vlan 0 with priority 0 if non fcoe queue.
b. Remove vlan 0 with any priority if fcoe queue.
3. Request: Do not add VLAN tag or modify the priority of an explicit vlan
tag of packets with TC_PRIO_CONTROL value in the skb priority.
Change: As requested.
Version 1.70.09 (May 3, 2011)
==============================
Fixes
-----
1. Problem: (CQ53629) System spontaneously reboots.
Cause: PCI/DMA address mapping error not properly handled by driver,
which may cause chip to access improper addresses in host
memory.
Change: Add proper handling for mapping errors.
2. Request: (CQ49132) Link seen as up when cable(mostly fiber) is not fully
connected.
Cause : In this scenario, the physical link is up, while error are
detected on the MAC layer.
Change: Add periodic check for LSS errors on the MAC layer, since
they don't provide indication by interrupt.
Impact: Currently only 57712.
Note that this fix will not discover a case where one of two
wires of fiber cable is plugged out.
3. Problem: Storms get stuck shortly after a single-engine recovery.
Cause: Functions were not unloading against MCP in case of parity
error thus later LOAD request was always returning a FUNCTION
load code. This lead to improper HW/FW initialization.
Change: Added unloading against the MCP in case of parity error.
Impact: 57712 and newer only. Introduced in 1.70.06.
4. Problem: Kernel panic when handling egress UDP packet for which checksum
offload has been requested.
Cause: The above case hasn't been properly handled in the code.
Change: Add a proper handling for the above case.
5. Problem: In case of VLAN removal of a first small packet in TPA
aggregation, driver may access uninitialized address.
Cause: Firmware places a corrupted RX completion element in this case.
Change: (in FW 7.0.16) Fixed relevant firmware flow.
Impact: Introduced in 1.64.02 (FW 6.4.0).
6. Problem: (FCoE)(CQ54302) Unexpected FW behavior causes driver assert.
Cause: Task SP-RAM address is not updated and the thread uses wrong
SP-RAM address.
Change: (in FW 7.0.16) Fixed relevant firmware flow.
Impact: Introduced in 1.64.02 (FW 6.4.0).
7. Problem: (FCoE)(CQ53330) on 578XX 4-port mode FW causes driver assert.
Cause: The firmware KCQEs on wrong EQ.
Change: (in FW 7.0.16) Fixed relevant firmware flow.
Impact: Introduced in 1.70.01 (FW 6.4.0). 578XX 4-port only.
8. Problem: (CQ53924) Ethtool Self Test fails loopback test.
Cause: Unmapping of dma memory was not performed before accessing it.
Change: Added unmap of the relevant memory.
9. Problem: MDC/MDIO access to Warpcore registers may fail with low
probability.
Cause: Warpcore PCB controller may get stuck without having MDC free
running in the system.
Change: Add work-around for 578xx-A0 by adding another write to the
MDIO bus after each MDC access to the Warpcore. This will be
fixed in HW for 578xx-B0.
Impact: 578xx.
10. Problem: (DCB)(CQ54899) PMF migration may cause DCB get out-of-sync.
Cause: Driver did not update port structure correctly.
Change: Fixed DCB update code.
Impact: Introduced in 1.70.06.
11. Problem: The following error is logged as soon as bnx2fcd service is
started: "kernel: 8021q: device eth# has buggy VLAN hw accel".
Cause: Under Red Hat 6.1 the bnx2x was compiled assuming the netdev
centralized handling of hardware acceleration exists in kernel.
Change: Changed the bnx2x to compile using the old scheme of handling
of hardware acceleration in RH6.1.
Impact: RH6.1
12. Problem: (CQ53276) 578xx ethtool display and settings are not done per
board type.
Cause: Missing distinctions between various Warpcore interfaces.
Change: Check Warpcore network interface during init stage, and update
the supported network attributes accordingly.
Impact: 578xx
13. Problem: (CQ54552) System breaks once link is up after PMF migration
when speed is 1G.
Cause: Missing synchronization flag between PMF and non-PMF which
indicate the XGXS type, led to incorrect initialization once
link is up after PMF migration.
Change: Initialize this flag during synchronization
14. Problem: ethtool will not show the correct media type after
PMF migration and changing the SFP+ module type
Cause: Media type was not synchronized after it is changed
Change: Synchronize media type between PMF and non-PMF
Impact: SFP+ based boards.
Introduce on 1.64.19
15. Problem: Over-current message displays with port0 instead of port1 on
57712 SFP+ devices.
Cause: 57712 port enumeration is per path.
Change: Set the correct port number of the over-current display message
according to the device type.
Impact: 57712 with SFP+ boards.
16. Problem: Possible dead locks in slow path flows involving interface
toggling.
Cause: vlan_mac object was using spin_lock() semantics instead of
spin_lock_bh() semantics while it may be called under a spin
lock with BHs disabled in the ndo_set_rx_mode() flow.
Change: Fixed the mentioned above code.
Impact: Introduced in 1.70.06.
17. Problem: A possible deadlock in flows involving the DMAE operations.
Cause: We protected the DMAE engine with mutex (suspends a task when
lock can't be taken) in the bnx2x_issue_dmae_with_comp()
function while it is also called under a spinlock in the
ndo_set_rx_mode() flow.
Change: Protect the above DMAE engine with a spinlock instead of a
mutex.
Impact: Introduced in 1.70.06. 57712 and newer in the NPAR mode only.
Enhancements
------------
1. Request: Add preliminary support for E3+84833 to pass extlb_test. Caveat
that both drivers must be loaded at this time to function
correctly.
Change: As requested.
2. Request: Disable FCoE and DCB on unsupported platforms.
Change: Determine allowed platforms by kernel version.
Impact: FCoE/DCB.
3. Request: Add over-current check for 578xx
Change: As requested
Impact: 578xx
4. Request: Add default TX PMD settings (de-emphasis) for 578xx.
Change: Set the TX settings per PMD type (SFI/XFI/DXGXS/KR) according
to DVT measurements to achieve optimal link.
Impact: 578xx.
5. Request: Use FW 7.0.16.
Change: As requested.
6. Request: Write driver version string to specified offset in scratchpad
for NC-SI OEM commands.
Change: Read scratchpad offset from ncsi_oem_data_addr field of shmem2.
Then, write driver version to appropriate offset.
7. Request: Remove zeroing of Ram0 from driver as it is performed by init
tool.
Change: Removed relevant code and the defines.
Version 1.70.08 (Apr 11, 2011)
==============================
Fixes
-----
1. Problem: Possible chip hang in case of parity error in QM.
Cause: QM was reset before PXP causing 'close the gates' to be
de-activated shortly before resetting PXP, PSWRQ sends a write
request to PGLUE, PXP is reset, PGLUE tries to read the payload
data from PSWWR, but PSWWR does not respond. The write queue in
PGLUE will be stuck, DMAE commands will not return.
Change: Change reset order of PXP and QM blocks so that PXP is reset
before QM.
Impact: During error recovery flow of QM parity attention only.
Introduced in 1.53.1.
2. Problem: Tx of a CNA netdev wasn't properly disabled.
Cause: Typo in a bnx2x_tx_disable().
Change: Fix the above typo.
Impact: ESX CNA only. Introduced in 1.64.13.
3. Problem: Fairness issue between functions 0, 1 and functions 2,3 on
57840 4x10G.
Cause: BRB threshold registers weren't initialized properly.
Change: Use reset values of BRB threshold registers.
Impact: 57840 4-Port only.
4. Problem: CNIC module would try to load iSCSI and/or FCoE despite invalid
MF/MAC configuration of the appropriate.
Cause: bnx2x_register_cnic() overwrites cnic_eth_dev->drv_state.
Change: Do not overwrites cnic_eth_dev->drv_state in
bnx2x_register_cnic().
Impact: iSCSI and FCoE only.
5. Problem: Possible inconsistent rx_mode state for iSCSI L2 queue.
Cause: Both BNX2X_FILTER_ISCSI_ETH_START_SCHED and
BNX2X_FILTER_ISCSI_ETH_STOP_SCHED bits might be set, which in
line might cause the situation when the rx_mode that is finally
configured is not the one that has been requested the last.
Change: Clear the already pending state when configuring the new one.
Impact: iSCSI L2 only.
6. Problem: (CQ51066) Link status in port mailbox indicates AUTONEG is
disabled and no Serdes.
Cause: Link status was zeroed during link down state.
Change: Set AUTONEG and SERDES indications when needed.
7. Problem: Possible pending SP ramrod completion after FUNC_STOP ramrod is
sent.
Cause: Missing protection when checking bits in bnx2x_wait_sp_comp().
Change: Added the protection with netif_addr_lock for the mentioned
check.
Impact: Introduced in 1.64.00.
8. Problem: (CQ54422) Compilation Failed on RHEL 6.1.
Cause: Backported features complict.
Change: Adopt features in compat.
9. Problem: Potentioal race in NPAR-SD mode might cause sending of function
update ramrod before function start ramrod is completed.
Cause: LOAD_DONE message to MCP is sent before function start ramrod.
LOAD_DONE request starts VIF initialization process that
ends with VIF_SET request from the switch that triggers
function update ramrod.
Change: Perform function start ramrod before sending LOAD_DONE message
to MCP.
Enhancements
------------
1. Request: Add CNA dummy device.
Change: As requested. ESX 5.x only.
2. Request: Integrate the upstream "Support for managing RX indirection
table" patch by Tom Herbert implementing the support for
ethtool -X/-x options.
Change: Integrated the mentioned patch taking into the account all
remarks of the netdev people about this patch.
3. Request: Add 1G support for XFI serdes network interface type of
Warpcore
Change: As requested
Impact: 578xx - XFI
Version 1.70.07 (Apr 04, 2011)
==============================
Fixes
-----
1. Problem: TX fault LED doesn't work upon module validation.
Cause: Incorrect GPIO assignment.
Change: Fix GPIO setting that controls the TX fault LED.
Impact: 578xx - SFP+.
2. Problem: DAC may not link up.
Cause: Register read was missing after setting EDC mode.
Change: Read EDC register after setting it.
Impact: 578xx - DAC.
3. Problem: Parity errors prevent device from load on
emulation environment.
Cause: Emulation environment limitation.
Change: Disable parity on emulation environment.
Impact: Emulation environment only.
4. Problem: Incorrect SFP+ module power setting.
Cause: Value was swapped.
Change: Reverse value to fit board scheme.
Impact: 578xx SFP+ when nvm cfg #160 is set.
5. Problem: When accept all TX packets is enabled (all TX packets are
duplicated to both the physical and loopback ports), LSO
traffic throughput is less than expected.
Cause: Firmware accounted duplicated LSO (and also some non-LSO)
packets twice in the rate shaping algorithm, instead of only
once.
Change: (In FW 7.0.15) Fixed relevant firmware rate shaping bytes
calculation for duplicated TX packets.
Impact: Introduced in 1.64.01 (FW 6.4.0).
6. Problem: PF FLR while VFs are running may cause system to get stuck.
Cause: If VF FLR happens after PF is down, the VF may try to send an
event message to the PF by mistake.
Change: (In FW 7.0.15) Fixed relevant firmware flow.
Impact: Introduced in 1.70.00 (FW 7.0.0).
7. Problem: When TPA is enable, tcp packets with erroneous length might
add wrong bytes to packet.
Cause: Firmware didn't verify the packet length is equal Ethernet
header + IP total length.
Change: (In FW 7.0.15) Added the required verification.
Impact: Introduced in 1.64.01 (FW 6.4.0).
8. Problem: (FCoE) FCoE on physical port 1 can't be enabled.
Cause: Wrong cos allocation.
Change: (In FW 7.0.15) Fixed relevant firmware flow.
Impact: 57810/57840 only. Introduced in 1.70.00 (FW 7.0.0).
9. Problem: (iSCSI) Chip hangs upon arrival of iSCSI packet with split
digest.
Cause: Firmware sends erroneous hardware read command.
Change: (In FW 7.0.15) Fixed relevant firmware flow.
Impact: Introduced in 1.70.00 (FW 7.0.0).
Enhancements
------------
1. Request: Add an ability for a separate configuration of internal (Tx)
switching filtering options.
Change: As requested.
Impact: SRIOV and virtualization only.
Version 1.70.06 (Mar 29, 2011)
==============================
1. Problem: (CQ53274) Pci names are incorrect/inaccurate.
Cause: Pci names are not updated.
Change: Removed 57713 et al. Added 578xx family with MF and VF flavors.
2. Problem: (DCB MF) PMF migration caused to lose DCBX results.
Cause: DCBX results is hidden from other PFs.
Change: Add DCBX notification mechanism during PMF migration.
3. Problem: (DCB) Static configuration is not properly handled.
Cause: Static configuration flow does not handle HW interrupt, because
of state where DCBX initialization performed.
Change: Move DCBX initialization to the end of nic_load.
Impact: DCBX involved flows.
4. Problem: (CQ53768) Kernel panic at bnx2x_cnic_reuse_ooo_pkt.
Cause: Wrong arithmetics on Tx HW consumer for a Forwarding ring.
Change: Fixed the above arithmetics.
Impact: iSCSI OOO only. Introduced in 1.64.00.
5. Problem: (CQ53347) Data does not validate reported while running Chariot
for RH6.0 x64.
Cause: In case of VLAN removal of a first packet in TPA aggregation,
firmware may add padding bytes in the middle of the packet.
Change: (in FW 7.0.14) Fixed relevant firmware flow.
Impact: Introduced in 1.70.00.
6. Problem: (CQ53523) System stuck during load/unload under traffic.
Cause: RX processor can get stuck in infinite loop when a set mac
configuration is done during traffic.
Change: (in FW 7.0.14) Fixed relevant firmware flow.
Impact: Introduced in 1.70.00.
7. Problem: Link may not come up after SFP+ module plug in on BCM8726
based boards
Cause: Module detection was not triggered by module insertion, which
may lead to incorrect setting of EDC mode
Change: Initialize AEU before collecting the group of signals in
charge for generating interrupts
Impact: BCM8726 based boards
Introduced in 1.52.50
8. Problem: (CQ54040) Unable to perform iSCSI login.
Cause: Missing iSCSI L2 and Netq MAC ramrods completion handling.
Change: Added a missing code.
Impact: iSCSI and ESX only.
9. Problem: bnx2x_func_state_change() and bnx2x_queue_state_change return a
negative value while PENDING (1) value should be returned.
Cause: test_bit(nr, vec) returns all-F's if nr is a variable and the
requested bit is set.
Change: Chaged test_bit(nr, vec) to !!test_bit(nr, vec) when nr is a
variable.
Impact: Introduced in 1.64.08.
10. Problem: If MCP sends to driver second NPAR-SD event before first one
handling is done, no NPAR-SD events will be handled since now
on.
Note that second event from MCP while first one is not done
yet should not happen due to "one pending" mode, but it is good
practice to handle both messages if such a scenario occures
in some way.
Cause: drv_status field was checked to match exact value instead
of bit masking the value to match various events.
Change: Check drv_status bits to know which NPAR-SD events should be
handled.
Impact: NPAR-SD mode only.
11. Problem: (CQ52000 & CQ51697 Cont.) XAUI short detection mechanism only
applies to 10G.
Change: Remove 1G XAUI short detection.
Impact: 8727 and 8706 PHYs.
Enhancements
------------
1. Request: Enable CL37 1G parallel detect
Change: As requested.
Impact: 578xx KR.
2. Request: (CQ53138) Disable fairness algorithm, when ETS is enabled.
Change: As requested.
3. Request: Use FW 7.0.14.
Change: As requested.
4. Request: Configure netdev unicast addresses list.
Change: As requested.
5. Request: Add a support for a parity errors recovery for 57712 and newer.
Change: As requested.
6. Request: Add MOD_ABS support for 578xx SFP+ modules
Change: As requested.
7. Request: Invert OPTRXLOS signal on SFP/XFP interface for 578xx
Change: As requested.
Version 1.70.05 (Mar 17, 2011)
==============================
***** This version does not support CNIC *****
1. Problem: (CQ53457) in MF mode actual TX max bandwidth differs from
configured for the device.
Cause: non-pmf function has overwritten configuration according to
10G link speed in UP flow.
Change: Fix device load flow for non-pmf functions.
Impact: MF mode with link speed other than 10G.
2. Problem: (CQ5772) (NPAR) Some configuration of Bandwidth Weight and
Maximum Bandwidth is not functional.
Cause: MAX algorithm timer was set to smaller value then MIN
algorithm. In some cases this may cause under-run on the line.
Change: Increase MAX algorithm timeout from 100usec to 400usec.
Impact: Introduced in 1.64.09.
3. Problem: (CQ52834) (iSCSI) connection/login issues in DCBX environment.
Cause: Erroneous context override by firmware.
Change: (in FW 7.0.12) Fixed relevant firmware flow.
Impact: DCBX environment only.
4. Problem: (CQ53526) (NPAR) Driver asserts while running iSCSI/L2 traffic.
Cause: Forward channel configured for TX switching.
Change: Disable TX switching for FWD channel.
Impact: NPAR mode.
5. Problem: (CQ53414) bnx2x reports link down when loaded.
Cause: The code was set to report the link state on load time.
Change: Assume the link is down when loading and only report link up
after loading.
6. Problem: (CQ53427) ethtool reports incorrect info for 10GE Passive
Copper Cable connections
Cause: Cable type was not taken into consideration
Change: Determine port type using cable type information acquired from
external SFP+ module if exists
Impact: SFP+ type
7. Problem: No fan failure notification when the fan failed and nvram
option 83 is set to enabled.
Cause: The fan failure worked only for specific external PHYs and not
according to option 83.
Change: Enable fan failure regardless of the PHY type if option 83 is
set to enable.
Impact: No fan failure notification unless the PHY is SFX7101, BCM8073,
BCM8481, BCM84823 or BCM84833 - other PHYs or designs without
external PHY will not report fan failures (but the FW will stop
the PHY).
8. Problem: Ethtool self test idle check tests erroneously for active
connections.
Cause: 1. Input registers were confused.
2. Connection type bit offset has changed since 57712.
Change: Converted self test idle check to work with static record array
Corrected register confusion and location of connection type.
Impact: Saved 18% off linux driver compilation time.
9. Problem: Rx and Tx coalescing timeout parameters are reversed.
Cause: Parameters passed erroneously between functions.
Change: Swapped parameters in function call.
Impact: Bug exists in all bnx2x versions supporting interrupt
coalescing.
10. Problem: (CQ52887) Interrupt test using ethtool's self test fails.
Cause: The ramrod, RAMROD_CMD_ID_ETH_EMPTY, is used for both the
interrupt test and NetQueue commands. When self test is
ran, the NetQueue would always intercept this ramrod but
not complete the command.
Change: Do not explicitly intercept the EMPTY ramrod in the netq code.
Instead use the appropriate SP queue object to send the EMPTY
ramrod.
Impact: ESX only.
11. Problem: ethtool shows the wrong port connected.
Cause: Dual media port presentation was swapped.
Change: Show the active port.
Impact: Dual media board.
12. Problem: (CQ53303, CQ52600) Firmware doesn't support FLR on both ports
on the same path simultaneously on 578xx.
Cause: The Flr flow hold some variables only for the last port
treated.
Change: (in FW 7.0.13) Added an array to hold separate variables
for each port.
Impact: Only 578xx.
13. Problem: FCoE doesn't identify function in NPAR-SD mode.
Cause: FW use MAC classification.
Change: (in FW 7.0.13) Classify function according to ID.
Impact: Introduced in 1.70.01.
14. Problem: (iSCSI) Chip hangs upon arrival of iSCSI packet with
FIN flag set.
Cause: Tstorm signals Ustorm to release same BRB block twice.
Change: (in FW 7.0.13) Fixed relevant firmware flow.
Impact: Introduced in 1.64.01.
Enhancements
------------
1. Request: Add initial support for 1G over fiber.
Change: As requested.
Impact: 578xx fiber.
2. Request: (CQ50798) Add support for BCM8722.
Change: As requested.
3. Request: Allow set speed in NPAR mode when device still closed.
Change: As requested.
4. Request: Use FW 7.0.13.
Change: As requested.
5. Request: Use DCBNL app-list to store negotiated app tlvs.
Change: As requested.
6. Request: Add support for DCBNL peer information.
Change: As requested.
7. Request: Honor GPIO configuration values on Tx laser control,
on top of existing EPIOs.
Change: As requested.
Impact: 578x0 SFP+ designs.
8. Request: Link support for Everest 57810 + 84833B0PHY.
Change: As requested.
Impact: Everest 57810 + 84833B0PHY combination can pass traffic for
testing.
9. Request: Add SGMII support for a specific OEM design.
Change: Clear signal detect and configure internal PHY before
BCM54618SE establishes link.
Impact: SGMII ports of 57800 only.
10. Request: (CQ52000 & CQ51697) Short on XAUI lanes on the MAC side of 8727
and 8706 PHYs needs to generate link down event.
Change: Tx fault detection has been added. In addition link
qualification includes checking for Tx fault. The fault
detection bit is read twice to clear any stale value.
Impact: 8727 and 8706 PHYs.
11. Request: Support added for E3 + 84833B0 PHY firmware upgrade.
Change: As requested.
Impact: E3 + 84833B0 PHY combinations.
12. Request: Disable Tx switching for 57712/578xx.
Change: As requested.
Impact: 57712/578xx in NPAR mode, ESX.
Version 1.70.04 (Mar 01, 2011)
==============================
***** This version does not support CNIC *****
Fixes
-----
1. Problem: (CQ53258) Ethtool self test fails loopback_test (offline)
when run on the copper ports
Cause: Test was done over 10G rather than 1G, and test did not wait
long enough for the link to come up
Change: When speed capability doesn't include 10G, then perform the
self test using 1G. In addition, for PHY loopback test, wait
for the link to come and not assuming it is already up.
Impact: 57800 copper ports
2. Problem: (CQ51134) NC-SI functionality dependant on Port initialization
Sequence
Cause: During common init, the driver resets both BMACs such that if
NCSI was enabled on the other port, it will stop working
Change: BMAC will be reset during port initialization only
Impact: 5771x with NCSI enabled
Version 1.70.03 (Feb 24, 2011)
==============================
Fixes
-----
1. Problem: ethtool -t under heavy traffic may show idle_check error.
Cause: idle_check mistakenly reported error.
Change: Fix idle_check routine.
2. Problem: (CQ53143) Configuring a primary ETH MAC with ifconfig tool
didn't clear the old MAC configuration.
Cause: Missing code that clears the old MAC configuration.
Change: Added a missing code.
Impact: Introduced in 1.64.00.
3. Problem: (CQ51593) Statistics are inaccurate on 578xx devices.
Cause: Improper handling data from MSTAT HW block.
Change: Fix data handling.
Impact: 578xx only.
4. Problem: "DMAE timeout" appears in syslog and chip halts.
Cause: Improper HW initialization sequence.
Change: (v2) Fixed relevant init sequence.
Impact: Introduced in 1.70.00.
Enhancements
------------
1. Request: Translate 10G-Force KR and 1G-Force KR to autoneg with
advertisement of 10G and 1G in accordance.
Change: As requested.
Impact: 578xx KR interface.
2. Request: Support NVRAM configuration of EPIO assignment on Tx
laser control.
Change: As requested.
Impact: 578xx SFP+ interface, existing boards with this parameter
unconfigured should still work using hardcoded default EPIO.
Version 1.70.02 (Feb 21, 2011)
==============================
Fixes
-----
1. Problem: (CQ52452, CQ50960) VLAN stripping is not enabled for higher
functions when function 0 is not up.
Cause: Function ID field was always set to zero in UPDATE ramrod data.
Change: Properly configure the above field in the ramrod data.
Impact: Multi-function only. Introduced in 1.64.00.
2. Problem: NULL pointer dereference in a flow of closing iSCSI L2 queue.
Cause: SW bug that caused cnic handler routine not to be called for
CFC_DEL ramrod completion of iSCSI L2 queue.
Change: Fix the above SW bug.
Impact: iSCSI only. Introduced in 1.70.01.
3. Problem: (CQ52417), (CQ52845) Flow control doesn't work for 20G.
Cause: Flow control wasn't enabled for 20G.
Change: Set flow control on 20G according to settings.
Impact: 57840 20G.
4. Problem: (CQ52023) Driver asserts with HW attention.
Cause: Traffic type to priority/COS table was reset after link down
by driver causing transmission on the wrong COS.
Change: (In FW 7.0.10) Removing the table in RAM from HSI section.
Impact: Introduced in 1.64.00 (FW 6.4.0).
5. Problem: System may crash when configuring some RX rings with TPA
enabled and some with TPA disabled.
Cause: Firmware tries to do TPA also for the non-TPA clients.
Change: (In FW 7.0.10) Fixed relevant firmware flow.
Impact: Introduced in 1.64.9 (FW 6.4.15).
BCM57710/57711/57711E only.
6. Problem: System crash under TCP traffic when driver is toggling TPA.
Cause: Firmware bug.
Change: (In FW 7.0.10) Fixed relevant firmware flow.
Impact: Introduced in 1.64.03 (FW 6.4.7).
7. Problem: Firmware aggregated packets with wrong checksum.
Cause: Firmware didn't check checksum as a requirement
for aggregation.
Change: (In FW 7.0.10) Fixed relevant firmware flow.
Impact: Introduced in 1.64.0 (FW 6.4.0).
8. Problem: 10G-KR doesn't link up on an OEM design.
Cause: CL72 should not be disabled in KR environment.
Change: Removed codes that disables CL72.
Impact: 578xx 10G-KR.
9. Problem: Possible packet corruption when resetting the primary interface
when there are VLAN interfaces configured for this interface.
Cause: VLAN HW acceleration (stripping) is configured after Rx packets
are allowed at the end of netdev->open().
Change: Configure VLAN stripping in Client SETUP if there are VLAN
interface already configured for this interface.
Impact: Kernels below 2.6.37. Introduced in 1.62.01.
10. Problem: System locks up after loading driver on 1Gb copper ports.
Cause: Incorrect interrupt acknowledge when link change occurs lead to
interrupt storm.
Change: Acknowledge the interrupt correctly on 1G ports.
Impact: 578xx with 2x1G and 2x10 port.
Introduced in 1.70.01.
11. Problem: When resetting/disabling link in 578xx boards output for
TX PAUSE signal to the MAC is not disabled
Cause: Relevant register in the NIG is not cleared when link is
disabled.
Change: Set value to 0 in that register if link is disabled.
Impact: 578xx.
12. Problem: BCM578xx may misconfigure the link on some OEM designs.
Cause: ELink determines 4-port mode strictly from the input pin,
not from override register that MFW always configures.
Change: Changed to determine the 4-port mode by reading the
override register.
Impact: 578xx.
13. Problem: Driver unload may halt under traffic fails.
Cause: Incorrect order of disabling XMAC.
Change: Close the XMAC RX path before issuing XMAC soft reset.
Impact: 578xx.
14. Problem: (CQ51417) ethtool -t may cause device to hang.
Cause: Race in interrupt handling during self test.
Change: Wait for SP completions in load flow to avoid the race.
Impact: Introduced in 1.64.01.
15. Problem: Drivers assert while transmitting packets.
Cause: Firmware lose packets synchronization during transmission
(Xstorm Assert).
Change: (In FW 7.0.11) Fixed relevant firmware flow.
Impact: Introduced in 1.64.10. (FW 6.4.15). 57712/578xx only.
16. Problem: (CQ52536) Extra bytes might be added in the middle of the
payload when a packet with padding after the TCP payload is
received, while TPA is enabled.
Cause: Firmware wrongly places padding bytes on RX SGEs.
Change: (In FW 7.0.11) Fixed relevant firmware flow.
Impact: Exists in all previous versions. The problem will be exposed
only in very rare case in which a device on the network pads
the Ethernet packet to longer than 72 bytes.
17. Problem: "DMAE timeout" appears in syslog and chip halts.
Cause: Improper HW initialization sequence.
Change: Fixed relevant init sequence.
Impact: Introduced in 1.70.00.
18. Problem: ethtool -t fails on 578xx B0.
Cause: test accessed unexistent registers.
Change: remove improper access.
Impact: 578xx only.
Enhancements
------------
1. Request: Remove support for 57710 emulation and FPGA.
Change: As requested.
2. Request: Add performance improvements to Ethernet TX flows in BCM57711.
Change: (In FW 7.0.10) Added optimizations in TX flow.
3. Request: Use FW 7.0.11.
Change: As requested.
4. Request: CQ52000 Short on XAUI lines between Everest 2 and 8727 PHY
needs to generate link down event.
Change: Tx fault detection has been added. In addition link
qualification includes checking for Tx fault.
5. Request: Collect FW TPA statistics: aggregations, bytes in
aggregations and a number of aggregated network frames.
Change: As requested.
Version 1.70.01 (Feb 07, 2011)
==============================
Fixes
-----
1. Problem: Potential wrong PHY initialization when loading the first
function on a port, after another function from this port was
unloaded.
Cause: In this case, the driver won't lock PHY access, which may cause
MDC/MDIO collision.
Change: Initialize the lock flag on the probe stage, instead of the
common and port init stage.
Impact: Multi-function mode.
2. Problem: CQ52212 8073PHY intermittently exhibits signs of disconnected
devices upon loading/unloading.
Cause: Microcontroller and Driver both controlling Xaui Low Power
Mode.
Change: Remove Driver control of Xaui Low Power Mode.
Impact: 8073PHY based boards.
3. Problem: CQ51624 PHY TXONOFF_PWRDN_DIS bit set to "1" instead of default
0 to prevent reset & power down of PHY.
Cause: When GPIO controls TX Laser on 8727 and 8706, turning off laser
will put PHY in low power mode.
Change: Set TXONOFF_PWRDN_DIS accordingly.
Impact: 8727PHY and 8706PHY based boards with TX laser controlled by
GPIO_0.
4. Problem: L2 TX LSO Packets with LLC-SNAP header and in-band VLAN header
are corrupted (BCM57710/BCM57711/BCM57711E).
Cause: Firmware sends an illegal command, resulting with a corrupted
header in such cases.
Change: (in FW 7.0.9) Fixed relevant firmware flow.
Impact: BCM57710, BCM57711 and BCM57711E only.
5. Problem: (iSCSI) Chip hangs when running iSCSI IOs bigger than 32KBs.
Cause: Firmware bug.
Change: (in FW 7.0.9) Fixed relevant firmware flow.
Impact: Introduced in 1.64.01 (FW 6.4.0).
6. Problem: 57710 constantly get a parity errors in PBF and TM blocks
during TCP/UDP traffic.
Cause: False parity errors in the above blocks. PBF and TM blocks
parity error attentions are not implemented in 57710.
Change: Don't enable parity attentions in the PBF and TM blocks on
57710.
Impact: 57710 only. Introduced in 1.70.00.04.
7. Problem: The atempt to configure iSCSI MAC address would cause a "NULL
pointer dereference" error when CNIC module was loaded before
L2 interface is opened.
Cause: iSCSI L2 MAC object was initialized before bp->slowpath memory
was allocated (bp->slowpath was NULL at that stage). So, as
long as the object used references to bp->slowpath memory, it
caused the above error, when we tried to utilize it.
Change: Move iSCSI L2 MAC object initialization from bnx2x_cnic_probe()
to the DRV_CTL_START_L2_CMD callback.
Impact: iSCSI L2 only. Introduced in 1.64.00.
8. Problem: iSCSI L2 queue wasn't receiving any packet.
Cause: Rx mode of this queue didn't have ACCEPT_ANY_VLAN option.
Therefore FW filtered every packet by VLAN (assuming untagged
frames having VLAN_ID 0) and as long as there were no HW VLAN
acceleration configured, no frames were delivered to iSCSI L2
queue.
Change: Added ACCEPT_ANY_VLAN option to iSCSI L2 queue rx mode.
Impact: iSCSI UIO only. Introduced in firmware version 1.64.00.
9. Problem: (CQ52656) In NPAR mode "ethtool -t ethX" does not report error
on some partitions while no link.
Cause: Link is not tested for non PMF partitions.
Change: Allow link testing for non PMF partitions.
Impact: NPAR mode only.
10. Problem: (CQ52402) In NPAR mode setting some speed via ethtool -s causes
device to hang.
Cause: FW configured with illegal configuration.
Change: Limit allowed speed to range from 1%-100% of actual line speed.
Impact: NPAR mode only.
11. Problem: (CQ51417) Running ethtool -t causes the interface to hang.
Cause: Link test was checked according to 57711/2 scheme rather than
578xx.
Change: Test link according to the chip type.
Impact: BCM578xx.
12. Problem: Possible problems with buffers mapping in iSCSI OOO flow on
kernels 2.6.34 and newer.
Cause: Improper mapping functions used (pci_xxx instead of dma_xxx).
Change: Use the proper mapping functions in the above flow.
Impact: iSCSI OOO only. Kernels 2.6.34 and newer.
Introduced in 1.60.15.
Enhancements
------------
1. Request: Add autoneg parallel detect and pause support for 578xx KR.
Change: As requested.
Impact: 578xx-KR.
2. Request: Use FW 7.0.9.
Change: As requested.
3. Request: Set default number of rx buffers to be divided equally
between rx queues to decrease amount of pre-allocated buffers
on systems with multiple CPUs.
Change: As requested.
4. Request: Configure a mini-jumbo (2500) MTU for FCoE L2 ring. Don't
change it when NIC's MTU changes.
Change: As requested.
5. Request: Call for a cnic handler routine for CFC_DEL ramrod completion
of iSCSI L2 queue.
Change: As requested.
Version 1.70.00.4 (Jan 19, 2011)
==============================
Fixes
-----
1. Problem: VIF_LIST_GET request in NPAR-SD mode responded always with zero
value.
Cause: drv mailbox param value was cleared after valid value was
written, and therefore zero was read by the MCP and sent
to the switch.
Change: Fix the logic.
Impact: NPAR-SD mode only.
2. Problem: Warpcore microcode wasn't loaded as image from nvram.
Cause: Non-clear loading sequence from the nvram forced loading
microcode statically as temporary work-around.
Change: Warpcore microcode will be loaded solely from the nvram by
the bootcode.
Impact: 578xx only; Requires bootcode 7.0.0.0/6.4.3 and above.
3. Problem: Statistics is not displayed correctly on 578xx.
Cause: Improper initialization.
Change: Fix initialization flow.
Impact: 578xx only.
4. Problem: NPAR-SD packets did not reach MCP after driver is loaded.
Cause: NIG registers initialization by the driver did not mark that
NPAR-SD tag header can be included in rx packets, and overwrote
value inserted by the MCP.
Change: Write correct value to that register in NPAR-SD mode.
Impact: NPAR-SD mode only.
5. Request: BCM8727 Link LED not functioning properly during BACS LED test.
Change: Not blinking correct link light.
Impact: BCM57712 + BCM8727 based boards.
6. Problem: (CQ51134) NC-SI functionality dependant on Port initialization
Sequence.
Cause: When the driver loads the first port, some PHYs require reset
and loading their microcode on both ports. In case NCSI was
enabled on the other port, the traffic was stopped since PHY
was reset.
Change: Load PHY microcode during common init, only if the PHY
microcode wasn't loaded.
Impact: Requires bootcode 6.2.9 to resolve this problem
PHY firmware upgrade will require reboot from now on.
7. Problem: (CQ51367) - BCM84823/84833 activity LED blinks at lower rate on
10G link.
Cause: The activity LED control registers are not configured right.
Change: Enabled activity LED stretch_en bit. Made activity LED blink on
source.
Impact: BCM57712 + BCM84823/84833 based boards.
8. Problem: ESX - CNIC 'change MTU' would fail or result in a PSOD.
Cause: Mismatched module IDs for request/free IRQ.
Change: Masquerade as CNIC when cnic ops are called form bnx2x.
Impact: ESX only.
9. Problem: (NPAR, FCoE) FCoE MAC wasn't read in NPAR mode.
Cause: Missing code.
Change: Add the missing code.
Impact: FCoE in NPAR mode only.
10. Problem: (iSCSI) If iSCSI offload is requested in switch dependent MF
mode zero MAC would be configured for iSCSI L2 queue.
Cause: Bug in a driver.
Change: Prevent the configuration of an illegal MAC.
Impact: iSCSI in switch dependent mode only.
11. Problem: (CQ51413) Driver crashed, when number of queues was set to a
value smaller than a default one due to SAFC configuration.
Cause: Broken connection between an SAFC initialization and a memory
allocation code.
Change: Fixed the above flaw.
Impact: SAFC only. Introduced in 1.62.06.
12. Problem: "Statistics sequence counter out of order" storm assert.
Cause: Race between the LINK_UP event handler and the timer which both
are calling the bnx2x_storm_stats_post() thus sending
consequent statistics ramrods without waiting for a
completion of the first. Therefore FW will read the ramrod data
of the second ramrod while handling the first one, which will
cause the above assert.
Change: Prevent the above race.
13. Problem: Possible sending of a spurious MSI-X message after MSI-X is
disabled.
Cause: MSI-X configuration wasn't properly cleared when MSI-X was
disabled.
Change: Properly clear MSI-X configuration.
Impact: Introduced in 1.60.28.
14. Problem: Kernel panic when loading bnx2x with int_mode=1 and
disable_iscsi_ooo=1.
Cause: INT#x ISR was scheduling iSCSI OOO ring's NAPI regardless
NO_ISCSI_OOO flag.
Change: Consider NO_ISCSI_OOO flag before scheduling iSCSI OOO ring's
NAPI.
Impact: Introduced in 1.64.07.
15. Problem: XSTORM assert due to wrong values in XSTORM RAM, occurring
after turning up first interface on the other path
(specifically traffic_type_to_priority_cos table was cleared
in XSTORM RAM).
Cause: driver used to reset LCPLL in bnx2x_init_hw_common process,
which is performed per each path. That configuration is
not needed as it is done by the MCP, and is wrong because
LCPLL is common and not per path.
Change: Remove that configuration from driver (it is done by MCP).
16. Problem: In NPAR-SD mode - DCBX configuration was not updated in FW.
Cause: Relevant implementation was removed as a workaround because
of the side effects it caused. Those side effects were caused
by two bugs resolved in this version (problem #12 and problem
#15 above).
Change: Re-enable DCBX configuration implementation in NPAR-SD mode
(remove workaround that prevented it).
Impact: NPAR-SD mode only.
17. Problem: 578xx B0 can't receive traffic in SD mode.
Cause: Inverted port configuration.
Change: Fix port configuration.
Impact: 578xx B0 only.
18. Problem: (FCoE) There was no licensing for FCoE.
Cause: Missing FCoE licensing handling code.
Change: Added the missing code.
Impact: FCoE only.
19. Problem: (NIV) VIF_SET ack was sent twice from driver to MCP and
causing logic errors.
Cause: Wrong implementation that if bnx2x_func_state_change returns
non zero value it is an error, while in fact only negative
value is error.
Change: Assume error only if bnx2x_func_state_change returns negative
value.
Impact: NPAR-SD only.
20. Problem: 57840: 4 port mode is not functional.
Cause: Incorrect initialization for this mode.
Change: Fix driver and FW (7.0.7) initialization.
Impact: 57840 only.
21. Problem: 57840: 4 port mode - Grc-timeout appears in syslog.
Cause: Statistics HW is not properly initialized.
Change: Init MSTAT1 correctly.
Impact: 57840 4 port mode only.
22. Problem: DMAE timeout after a few modprobe->ifup->rmmod iterations.
Cause: PGLUE_B was disabled before BMAC reset is completed.
Change: Fixed the relevant driver flow.
Impact: Introduced in 1.64.08.
23. Problem: a. rx error packets detailed in ethtool were increasing all
the time while NPAR-SD session is up.
b. rx error packets detailed in NPAR-SD protocol
STATS_ARRAY_GET request were increasing all the time while
NPAR-SD session is up (in UIF type request only).
Cause: all NPAR-SD messages reached host, but are destinated to vif_id
of the MCP which is unknown to FW. Therefore, FW marks these
packets as per port mf_tag_discard packets.
Yet, these per port statistics were also counted in PMF's
per func statistics as rx error packets, and were also
sent as rx error bytes in per port stats request of NPAR-SD
protocol.
Change: a. Don't count per port mf_tag_discard/outer_vlan_discard
packets as per func rx error packets of the PMF.
b. Don't count per port mf_tag_discard/outer_vlan_discard
packets as per port rx error packets sent in stats
request of NPAR-SD protocol.
24. Problem: The module date was not updated since 2010/08/01.
Cause: The date was moved to another source file which did not updated
it automatically on submission to the version control system.
Change: Update the file properties so the version control system will
update the date automatically.
Impact: Introduced in 1.60.32.
25. Problem: 578xx unable to link after unload-load sequence.
Cause: Incomplete reset sequence.
Change: Fix reset sequence.
Impact: 578xx.
26. Problem: 578xx 4-port: load/unload test fails when compiled with CNIC.
Cause: Inappropriate client_id configuration for non eth clients.
Change: Fix initialization for 4-port mode.
Impact: 578xx 4port.
27. Problem: 57800 GPHY port (SGMII) LEDs don't work.
Cause: The LED setting routine is called only on 10G link.
Change: Call the LED setting routine even for non-10G link.
Impact: 578xx.
28. Problem: Unable to receive multicast frames on high functions in a
multi-function mode.
Cause: approx_mcast_engine_id was not properly initialized in setup
ramrod data.
Change: Fixed the relevant driver code.
Impact: Mutli-function mode only.
29. Problem: 578xx 4-port: load/unload test fails when compiled with CNIC.
Cause: Inappropriate client_id configuration for non eth clients.
Change: Fix initialization for 4-port mode.
Impact: 578xx 4port.
30. Problem: ifup returned error when device has illegal iSCSI mac.
Cause: FCoE/iSCSI features were enabled even with illegal mac.
Change: Disable the features if mac is illegal.
Impact: 57712 SF mode.
Enhancements
------------
1. Request: CQ51710 - Disable CMS (common mode sense) feature in 84823
PHY, as this reduces power consumption and allows a better
10G link stability.
Change: Clear the CMS bit in PHY register in PHY configuration routine.
Impact: BCM84823B based boards.
2. Request: (CQ51889) Add Common Mode Sense (CMS) enable/disable functionality.
Change: Adding field 156 to nvm cfg, as well as support in eLink.
Impact: NVM config and Common Mode Sense capable PHYs.
3. Request: Increase RX ring size to 512 when using Jumbo Frames.
Change: As requested.
Impact: ESX only.
4. Request: Enable OOO by default and have the OOO ring match
in size with a RX ring.
Change: As requested.
Impact: ESX only.
5. Request: Add statistics collection for NPAR-SD, and copy results to
expected location in scratchpad if requested by the MCP
due to request from the switch.
Change: Added NPAR-SD fields to qstats strcuture and
collecting info for these fields each time stats are
collected. When requested by the switch, writing relevant
fields to exact location in scratchpad according to NPAR-SD
protocol.
Impact: NPAR-SD enabled boards only.
6. Request: Support for 578XX B0.
Change: As requested.
7. Request: Use FW 7.0.8.
Change: As requested.
8. Request: Add dcbnl implementation supporting the FW DCBX engine.
Change: As requested.
Impact: 57712 only.
9. Request: Support SGMII with 54618SE GPHY for 57800.
Change: As requested.
Impact: Devices 3 and 4 of 57800 and small Warpcore changes only.
10. Request: Get all CNIC related info from shmem in the bnx2x.
Change: As requested.
Impact: iSCSI and FCoE only.
11. Request: Replace ethtool stats counter "rx_outer_vlan_discard" name
with "rx_mf_tag_discard".
Change: As requested.
12. Request: Preserve temperature input setting for PCIE and Warpcore
Serdes equalization logic.
Change: As requested, Warpcore initialization is now preserving
that register value (no longer blindly overwrite it).
Impact: 578xx
13. Request: Support multi-function and DCBX in 4 ports mode (BCM578xx).
Change: (In FW 7.0.8) As requested.
Version 1.64.10 (Dec 7, 2010)
==============================
Fixes
-----
1. Problem: (CQ50681) Device hangs on up/down test when PFC is enabled
Cause: If the device is going down while in PFC Xoff it will not set
it to Xon and therefore, on the next load it will remain in
constant Xoff
Change: Force PFC Xon when enabling the device
Impact: 57712 and 578xx
2. Problem: Tx packets are sent with wrong TCP checksum in case of
TCP bi-directional scenarios
Cause: Firmware didn't update the L4/L3 checksum correctly in mixed
traffic of packets with/without checksum offload
Change: Fixed the relevant firmware flow
Impact: Introduced in 1.64.08
3. Problem: A possible dead-lock situation between sch_direct_xmit() and
bnx2x_run_loopback() (calling bnx2x_tx_int()) on
netif_tx_lock()
Cause: Both functions above take a netif_tx_lock() but
bnx2x_run_loopback() is called in a syscall context and takes a
lock without disabling BHes on a local CPU, which may cause a
dead lock as long as sch_direct_xmit() is called in a
soft_irq() context
Change: Explicitly disable local BHes in bnx2x_run_loopback() to
prevent a mentioned above dead-lock situation
Impact: Introduced in 1.60.25
4. Problem: (MF) ethtool -s speed has no effect in multi-function mode
Cause: Address calcutated using func_id instead of vn_id
Change: Fix address calculation
Impact: Introduced in 1.64.09, MF only
5. Problem: ethtool -t failed on sigle port boards and 57712 (nvram test)
Cause: Erroneous access to unexistent port info
Change: remove the access
6. Problem: All ingress packets were dropped by 57712 on Big Endian
machines
Cause: Rx mode wasn't properly configured for 57712 on Big Endian
machines
Change: Fix Rx mode configuration code for 57712
Impact: Introduced in 1.64.00, 57712 only
7. Problem: PCI bus error when trying to transmit LSO packets from 57712 on
Big Endian machines
Cause: Parsing BD parsing_data field was malformed when running
57712 on Big Endian machines
Change: Fix the code handling the parsing_data field of a parsing BD
for 57712
Impact: Introduced in 1.53.0a, 57712 only
8. Problem: Kernel panic when receiving in none-MSI-X interrupt mode
Cause: Indirection table was configured with none-existing queues when
MSI-X was not attainable and RSS queues set was cut to a single
queue. The reason for the above was an improper location of
SAFC initialization code and usage of the SAFC parameters for
the indirection table configuration despite the fact that an
SAFC MF mode was not requested/not available
Change: Don't use SAFC parameters unless SAFC MF mode is requested
Impact: Introduced in 1.64.00
9. Problem: Single connection performance is much lower than expected in
57712
Cause: The firmware uses a malfunctioning bit in the HW for single
connection optimization
Change: The firmware uses a different bit with similar functionality
Impact: Introduced in 1.64.00 when the optimization was
implemented. Doesn't cause any penalty compare to older
versions
10. Problem: (FCoE) An FCP_CONF frame was not transmitted when required
Cause: A confirmation indication was not handle properly if
the task was from middle path type
Change: Fixed relevant firmware flow
Impact: FCoE only. Exist in all previous FCoE releases
11. Problem: CQ48350, CQ49176, CQ50911 and CQ51200. BCM57712 not linking up
after wake on S4 and S5.
Cause: PHY firmware does not have enough time to download in 8073 and
8727 common init.
Change: Poll until firmware is downloaded, and then timeout at 300ms.
Impact: 8727 and 8073 PHY
12. Problem: Statistics were updated in wrong counters
Cause: The per-queue statistic address was miscalculated
Change: Fixed address calculation
Impact: Introduced in 1.64.00
13. Problem: Firmware assert will occur when LSO packets is duplicated
in case Tx-switching is enabled and packet is sent without VLAN
Cause: Firmware looses synchronization with packet index which is
enforced by firmware for debugging purposes
Change: Fixed relevant firmware flow
Impact: Introduced in 1.64.00
14. Problem: L2 packets which are duplicated in case Tx-switching is enabled
may be counted twice in the Tx statistics
Cause: Firmware counts statistics each time a transmission command is
sent to hardware, even if the duplicated packet was already
sent
Change: Fixed relevant firmware flow
Impact: Introduced in 1.64.00
Enhancements
------------
1. Request: Use FW 6.4.16
Change: As requested
2. Request: Integrate VLAN enhancements from the net-next
Change: As requested
3. Request: Use slow path function object mechanism to synchronize
between function stop ramrod to NPAR-SD ramrods, instead of
sleep work around in NPAR-SD mode used today
Change: As requested. Logic was added to function object
4. Request: Remove unrequired clearance of specific VIF from NIV VIF lists
if that function is unloaded from host side (as anyway
VIF_LIST_SET commands will be sent from switch).
Change: Don't call FW NIV_VIF_LISTS ramrod for the sub command of
VIF_LIST_RULE_CLEAR_FUNC from the driver unload flow
5. Request: Use NIV_VIF_LISTS hsi new echo field to distinguish in ramrod
completion flow for which sub command the respones is relevant,
instead of using a bp dedicated field for that
Change: As requested (instead of using last_viflist_req_to_fw field).
6. Request: treat NPAR-SD driver_niv_support as a global shmem2 field, and
write its value only in LOAD_COMMON flows
Change: As requested
7. Request: Add a support for TPA over IPv6 for 57712 and above
Change: As requested
Impact: Introduced in 1.64.10. 57712 and above only
8. Request: Support for forward connection traffic in NPAR-SD mode
Change: TX packets are sent with destination field, on NPAR-SD tag
header, which is equal to the source VIF value
Impact: NPAR-SD mode is supported in BCM57712 only
9. Request: Enable Tx switching for 57712
Change: As requested
Impact: 57712 in NPAR mode only
Version 1.64.09 (Nov 18, 2010)
==============================
Fixes
-----
1. Problem: CRC errors are seen with line-rate traffic on BCM578xx
Cause: Warpcore microcode was not loaded, and its clock wasn't
synchronized well
Change: Load Warpcore microcode and apply clock compensation
This change is a temporary work-around which will be embedded
in the bootcode later on
Impact: 578xx Only
2. Problem: (CQ50748) MinBW not functioning as expected in certain
NPAR configuration
Cause: MinBW algorithm coefficients were not calculated properly and
cause the algorithm to not function well in extreme cases
Change: Re-calculate the algorithm coefficients to allow
granularity of 1:100
Impact: Affects NPAR mode in which MAX bandwidth can be configured
to over-subscription
3. Problem: Single Tx L2 connection enhancement feature is broken when FLR
is sent on function which is under traffic
Cause: Tx firmware didn't release internal resources, which may be
taken by connections that belong to FLRed functions
Change: (in FW 6.4.13) Fixed relevant firmware flow
Impact: Introduced in 1.64.01 (in FW 6.4.0)
4. Problem: Broadcast packets are received on a client which isn't
configured to receive them
Cause: The firmware always passed broadcast packets to the leading
client even when it wasn't configured to received them
Change: (in FW 6.4.13) Fixed relevant firmware flow
Impact: BCM57711 only, introduced in 1.64.05 (in FW 6.4.7)
5. Problem: TPA does not aggregate packet when RSS disable
Cause: Wrong initialization by firmware
Change: (in FW 6.4.13) Fixed firmware initialization
Impact: Introduced in 1.64.06 (in FW 6.4.9)
6. Problem: (iSCSI, CQ50672) Chip hangs when running iSCSI traffic on one
function and toggling load/unload on the other function
Cause: Firmware initialized the CAM incorrectly, causing iSCSI out of
order client to receive an unexpected packet
Change: (in FW 6.4.13) Fixed relevant firmware flow
Impact: BCM57710 only, introduced in 1.64.01 (in FW 6.0.0)
7. Problem: Compilation failed on RH5.6
Cause: Redefinition of backported function
Change: Remove the definition from bnx2x code for RH5.6
Enhancements
------------
1. Request: Add NPAR-SD support
Change: As requested
2. Request: (CQ49959) Request to log event log in case the PHY does
not come out of reset, and MDC/MDIO timeout
Change: As requested
3. Request: (CQ51065) NPAR mode: change Max BW from units of "intervals of
[100Mbps]" to units of "% of physical link speed"
Change: As requested
Impact: NPAR mode only
4. Request: (FCoE) Synchronize all storms with ABTS operation before the
transmission of ABTS packet, in order to avoid potential races
Change: As requested
Version 1.64.08 (Nov 08, 2010)
==============================
Fixes
-----
1. Problem: 4-port MF/SF combined mode on 578xx is not functional
Cause: Improper HW initialization
Change: Common for both ports HW properly configured
Impact: 578xx only
2. Problem: Compilation failed on 2.6.36 kernels
Cause: Improper conditions in bnx2x_compat.h layer
Change: Fix condition for functions' definitions
3. Problem: (CQ50903) Driver prints some debug info when dcbx enabled
Cause: Debug info printed with error dbg level
Change: Remove the prints
4. Problem: Weighted fair queuing congestion management doesn't work on
BCM57712
Cause: Firmware might send packet to wrong port in case weighted fair
queuing is enabled
Change: (in FW 6.4.10) Fixed firmware flow
Impact: Introduced in 1.64.00
5. Problem: Firmware doesn't work correctly for 2 TCP connections with the
same toeplitz hash result, when TPA is enabled
Cause: The firmware wrongly invalidated the aggregation for the first
connection, when a packet from the second connection arrived
Change: (in FW 6.4.10) Fixed firmware flow
Impact: Introduced in 1.64.03
6. Problem: (CQ50722) When more than 16 TPA aggregations are open,
aggregations might not close properly
Cause: The firmware miscalculated the TPA timer address
Change: (in FW 6.4.10) Fixed firmware flow
Impact: Introduced in 1.64.03
7. Problem: (iSCSI, CQ50380) Event viewer shows NOP events
Cause: TCP window is closed and initiator cannot properly process
incoming in-order packets
Change: (in FW 6.4.10) Fixed firmware flow
Impact: Introduced in 1.64.00
8. Problem: False bug-check when trying to set speed in NPAR mode when link
is down
Cause: The FW should be configured only after the physical link is up
Change: Do not configure the FW while link is down with the new speed
settings
Impact: 57712 NPAR mode only
9. Problem: (iSCSI) in NPAR mode devices have incorrect iSCSI mac address
Cause: Mac address is taken from port configuration
Change: Take the addreses from NPAR configuration
Impact: 57712 NPAR mode only
Enhancements
------------
1. Request: Use FW 6.4.11.1
Change: As requested
Version 1.64.07 (Nov 03, 2010)
==============================
Fixes
-----
1. Problem: No RSS in a multi-function mode
Cause: RSS engine ID was not initialized in Client SETUP ramrod data
Change: Set RSS engine ID in the SETUP ramrod data
Impact: Introduced in 1.64.00. 57711 and 57712 only
2. Problem: (CQ50624) Race between the netdev->open() and the last part of
pci_dev->probe() that configures the interrupt mode and adds
NAPIs causes kernel panic
Cause: Improper operations order: netdev_register() should be called
after driver is completely configured
Change: Move all driver initializations before the netdev_register()
call
Impact: Introduced in 1.60.28
Enhancements
------------
1. Request: Unify the slow path flows for all types Client
Change: Handle iSCSI OOO slow path in a NAPI (interrupt driven instead
of polling as it used to)
2. Request: Add support for 57800 HW
Change: As requested
3. Request: Add hw statistics support for 578xx
Change: As requested
4. Request: (CQ50053) Add "Dual Media Support" section to README/Man pages
Change: As requested
Version 1.64.06 (Oct 27, 2010)
==============================
Fixes
-----
1. Problem: (CQ49515, CQ50024) Occasionally losing link on force 10/100
connections on BCM84823 based boads
Cause: Not waiting for GPHY to complete reset
Change: Add 50ms delay after 84823 PHY comes out of reset
Impact: BCM84823 based boards
2. Problem: (CQ50559) Build fails with RHEL6 kernel
Cause: Redefinition of backported function
Change: Remove the definition for RH kernels
Impact: Introduced in 1.64.05
3. Problem: (iSCSI OOO) When in MF mode, Hardware may get PCI error in case
of iSCSI out-of-order flow
Cause: Firmware set the wrong PCI function ID
Change: Fixed firmware flow in FW 6.4.9
Impact: Introduced in 1.64.03, 57712 iSCSI OOO only
4. Problem: (CQ50483) Chip got stuck during stress test
Cause: Context was not initialized correctly by the Firmware
Change: Fix the initialization in FW 6.4.9
Impact: Introduced in 1.64.03, BCM57710/11/11E only
5. Problem: (FCoE) Trying to transmit from invalid host memory address
Cause: Receiving incorrect FCP_XFR_RDY second packet
Change: Rejecting the second FCP_XFR_RDY packet for the specific task
Impact: Introduced in 1.64.00. FCoE only
6. Problem: (FCoE) False timer REC_TOV expiration
Cause: Inappropriate advance of timer counter
Change: Fixed firmware flow in FW 6.4.9
Impact: Exists in all previous FCoE releases
7. Problem: (FCoE) Transmitting FCP_DATA frames with wrong OX_ID
Cause: Changing OX_ID once REC_TOV expiration is detected
Change: Fixed firmware flow in FW 6.4.9
Impact: Exists in all previous FCoE releases
Enhancements
------------
1. Request: Use FW 6.4.9
Change: As requested
Version 1.64.05 (Oct 20, 2010)
==============================
Fixes
-----
1. Problem: ESX Non LRO net-queues were still aggregating incoming TCP
frames
Cause: net-queues not reserved for LRO were not internally marked
as such (tpa not disabled)
Change: correctly disable tpa for such queues
Impact: ESX only
2. Problem: RX broken in MF SD mode
Cause: Improper hw configuration
Change: Write correct values to HW registers
Impact: Intoduced in 1.64.04
3. Problem: Link up event is not reported to the OS
Cause: Inconsistent link report state handling
Change: Change the link report state handling
4. Problem: (ESX, PR379952/PR405074) FW asserts on invalid value in a VLAN
field in the start BD (xmit flow)
Cause: The first sg element might not contain all the headers
Change: Do a simple check and if this holds pull tail on the skb
Impact: ESX only. This may happen only when the VMs are using 3.0.x
tools
5. Problem: Broadcast packets can be received on the wrong L2 client
Cause: Classification flow was using "unmatched unicast" flag also
for broadcast packets
Change: Fixed firmware flow
Impact: 57710 only. Introduced in 1.64.03
6. Problem: When more than 16 TPA aggregations are open, aggregations are
not closed properly
Cause: Firmware miscalculated the address for the TPA timers
Change: Fixed firmware flow
Impact: Introduced in 1.64.03
7. Problem: (FCoE) RRQ frame was not sent after abort operation
Cause: Corrupted ABTS ACC frame reported to the driver
Change: Firmware updates the correct R_CTL field in task context
Impact: Introduced in 1.64.00
8. Problem: (CQ49968) DMAE timeout on specific system during init
Cause: The DMAE can take up to 200ms to complete on some systems
Change: Update the DMAE timeout from 2ms to 200ms
9. Problem: Incorrect HW statistic on 578xx
Cause: Read stats from inexistent address
Change: Adopt statistics collection to avoid reading from the address
Impact: 578xx only
Enhancements
------------
1. Request: (CQ49997) Implement Bandwidth allocation for Nic partitioning
mode
Change: As requested
Impact: 57712 only
2. Request: Use FW 6.4.8
Change: As requested
3. Request: Properly calculate the LRO MSS value (needed for TCP delayed
ACK handling)
Change: As requested
4. Request: Add support for BCM57810/57840 adapters
Change: As requested
Version 1.64.04 (Oct 14, 2010)
==============================
Fixes
-----
1. Problem: (CQ49886) MC Assert on 57710 with more than 4 queues
Cause: ESX does not align physical memory to requested size. Thus ILT
pages do not adhere to 57710 alignment requirements
Change: Allocate extra memory and manually align CDU ILT pages. Define
ILT pages for all other clients to be 4K
Impact: ESX only
2. Problem: (CQ49827, CQ49844) pNic Link/Unlink test fails when the pNic
eventually fails to load
Cause: During load skb allocation for L2 queues is stopped on the
first failure. If this happens on the default queue before a
minimal number of skbs were successfully allocated nic load
fails
Change: Do not break upon first skb allocation failure. Fail only if
after queues size allocation attempts not enough skbs were
successfully allocated
Impact: ESX only
3. Problem: (CQ50208) ESX4.0/4.1 pNic statstics are not updated
Cause: Using a local statistics structure for ESX instead of the
net_device statistics structure
Change: Use the correct statistics structure for ESX
Impact: ESX only
4. Problem: (CQ49826) Wrong skb queue mapping passed to hard_xmit
Cause: FCoE L2 queue is not disabled and is used by the stack
Change: Disable FCoE L2 queue for E1x in general and all devices in
ESX
Impact: ESX only
5. Problem: ethtool -S shows all possible queues including disabled queues
such as FCoE or queues with no stats such as iSCSI OOO queues
Cause: ethtool statistics call-backs iterate over all queues.
Change: Iterate only over L2 queues and FCoE queue if not disabled.
6. Problem: (ESX) packets received on a net queue may arrive after its
filters are removed
Cause: filter removal completion is not syncronized with the
net-queue fast-path completions
Change: Send a flush command for the net-queue after deleting the
filter and before returning from the filter removal call-back
Impact: ESX only
7. Problem: (CQ50308) Compilation failure on RHEL6RC1
Cause: Definition of list_rotate_left in bnx2x_compat.h for all
kernels from 2.6.34
Change: Remove the definitions for non IOV kernels
Version 1.64.03 (Oct 11, 2010)
==============================
Fixes
-----
1. Problem: (ESX) MSI-X was disabled forever after NIC down/up sequence
Cause: MSI-X was explicitly disabled in the bnx2x_close() in ESX
driver
Change: Cancel the explicit MSI-X disabling
Impact: ESX only
2. Problem: (CQ50033) Link remains down on the PMF despite the DCC
"link up" indication
Cause: DCC event handler wasn't handling the event for the PMF
Change: Fix the DCC event handler code
Impact: 57711 and 57712 only
3. Problem: (iSCSI) Occasional HW attentions in iSCSI OOO offload/upload
scenarios
Cause: When multiple consecutive packets are sent on L2 forward
connection, firmware might incorrectly manage internal
transmission credit
Change: Fixed in FW 6.4.6
Impact: Introduced in 1.64.00 (FW 6.2.0)
4. Problem: LSO packets with large contiguous buffers may not be properly
sent to the network
Cause: Firmware didn't calculate the number of segments to be sent to
the network for LSO packet with large contiguous buffers
correctly
Change: Fixed in FW 6.4.6
Impact: Introduced in 1.64.02 (FW 6.4.5)
5. Problem: (FCoE) FCP_XFR_RDY verification failure leads to the task abort
Cause: Error in a verification procedure in the second FCP_XFR_RDY
packet on a single task
Change: Fixed in FW 6.4.6
Impact: Introduced in 1.64.00 (FW 6.4.0)
6. Problem: Malicious VF detection flow may cause memory corruption on
TX processor
Cause: Bug in relevant firmware flow
Change: (Fixed in FW 6.4.7) Fixed firmware flow
Impact: Introduced in 1.64.00 (FW 6.4.0)
7. Problem: (FCoE)(CQ50211) InvalidCrcCount value after collecting
statistics
Cause: Wrong statistics collection in firmware
Change: (Fixed in FW 6.4.7) Fixed firmware flow
Impact: Introduced in 1.64.00 (FW 6.4.0)
8. Problem: (FCoE)(CQ50267) ABTS sent with incorrect RX_ID value
Cause: Firmware reported incorrect task information when detecting
the error
Change: (Fixed in FW 6.4.7) Fixed firmware flow
Impact: Introduced in 1.64.00 (FW 6.4.0)
Enhancements
------------
1. Request: Use FW 6.4.7
Change: As requested
Version 1.64.02 (Sep 27, 2010)
==============================
Fixes
-----
1. Problem: (FCoE) panic dump while opening FCoE connection
Cause: FCoE ramrods were counted on incorrect SPE pool
Change: Use L5 pool
Impact: Introduced in 1.64.00
2. Problem: Wrong statistic counter might be updated
Cause: (Fixed in FW 6.4.5) In client init the queue statistic address
might be calculated wrongly
Change: Fixed the calculation in client init
Impact: Introduced in 1.64.00 (FW 6.2.1)
3. Problem: Congestion management doesn't work properly in case of a single
L2 connection scenario on 57712
Cause: In case of a single connection L2 firmware didn't allow pausing
transmission which is needed for the congestion management
functionality
Change: (Fixed in FW 6.4.5) Firmware now considers congestion
management decision to pause transmission
Impact: Introduced in 1.64.00 (FW 6.2.1)
4. Problem: The firmware returned the wrong error state for Ethernet
ramrods
Cause: The code in Xstorm didn't save error state correctly
Change: (Fixed in FW 6.4.5) Fixed the relevant flow
Impact: Introduced in 1.64.00 (FW 6.2.0)
5. Problem: PF FLR could hang the chip
Cause: The firmware didn't return activity counter to CFC correctly
Change: (Fixed in FW 6.4.5) Fixed the relevant flow
Impact: Introduced in 1.64.00 (FW 6.2.0)
6. Problem: (CQ49299, PR57004) HW stuck after 8 hours of heavy LSO traffic
Cause: When driver send an LSO packet with total length longer than
64K, the firmware calculate the total SGL length in a uint16
variable
which overlaps and causing an erroneous PBF command
Change: (Fixed in FW 6.4.5) Change the counter to be uint32
7. Problem: L2 traffic might be stopped in case of dcb updates COS value
for some traffic types
Cause: The firmware didn't return activity counter to CFC correctly
Change: (Fixed in FW 6.4.5) Fixed the relevant flow
Impact: Exists in all previous releases that support dcb updates
Enhancements
------------
1. Request: Port a new way L2 FW handles FCoE and FIP packets
Change: Starting from FW 6.4.4 L2 FW forwards FCoE and FIP frames to
FCoE L2 client unconditionally. This means that there is no
need to configure any MAC for an FCoE L2 client any more. So,
all such code has been swept out
Impact: Introduced in 1.64.00 (FW 6.4.4)
2. Request: Use FW 6.4.5
Change: As requested
Version 1.64.01 (Sep 20, 2010)
==============================
Fixes
-----
1. Problem: BMAC relays control packet to host and BRB is filled with
unnecessary packets
Cause: BMAC is configured to relay control packets to host
Change: Configure BMAC not to relay control packets to host
2. Problem: Failed to load high functions in MF mode
Cause: bnx2x was trying to configure the HC for the default SB, which
doesn't have it (during FCoE ETH ring configuration)
Change: Exclude HC configuration from FCoE ETH ring initialization
3. Problem: After "Fix 2" packets were silently dropped on the receive side
in a SD MF mode
Cause: Tx OUTER VLAN was not properly configured
Change: Properly configure Tx OUTER VLAN in the function start ramrod
4. Problem: (CQ49795) Link loss on port after multiple iterations of
load-unload
Cause: When link change occur, and at the same time the driver is
unloaded, the NIG attention is left latched since it is used to
be cleared only during link change event. This leads that
following link change events are actually masked.
Change: Clear NIG latched attention during driver unload
Impact: BCM84823 based boards
5. Problem: False link up indication on boards with BCM84823 PHYs
Cause: Not waiting until PHY has come out of reset
Change: Poll on reset bit. Timeout after 1 second
Impact: BCM84823 based boards
6. Problem: iSCSI OOO didn't work over VLAN
Cause: Inconsistent Client configuration and fast path functions
implementation for OOO Client in regard to HW VLAN
acceleration
Change: Don't assume HW VLAN acceleration in fast path iSCSI OOO
functions
Impact: iSCSI OOO only
Enhancements
------------
1. Request: Add capability to build against SuSE source RPMs
Change: As requested
2. Request: Set drop threshold for receiver lossy COS to 90,
when PFC is enabled
Change: As requested
Version 1.64.00 (Aug 31, 2010)
==============================
Fixes
-----
1. Problem: (CQ47855) Link test fails under Linux using ethtool
Cause: In case a MAC test followed by link test, the NIG attention
might be cleared while ISR was already triggered due to NIG
attention. This led to declaring the MAC test as failed since
there's actually no link in this case.
Change: In case NIG interrupt mask is cleared during interrupt
handling, do not execute link status update routine.
2. Problem: (CQ48747) Dual media: fiber port does not link at 1gig speed
Cause: The link speed in the pass-through phy (84823) was set to 10G
Change: Set the pass-through speed to 1G as well when fiber is set to
1G
3. Problem: (CQ49143) Dual Media: First attempt to change from default TP
to FIBRE using ethtool does not work.
Cause: When changing port type from TP to FIBRE the command failed
since FIBRE doesn't support autoneg, yet the port type was
changed.
Change: When ethtool command fail, do not change port type.
Impact: Dual-Media boards
4. Problem: Compilation error on kernels 2.6.34 and later
Cause: netdev_name() defined by both kernel and driver
Change: Fix compat.h for these kernels
5. Problem: 84823 PHY not showing correct Link LED's.
Cause: Incorrectly setting LED Masks
Change: Eliminated offending branch in code
Impact: Introduced in 1.60.24
6. Problem: (CQ49137) ethtool -t test fails in dual-media boards
Cause: Link wasn't tested correctly depending on the media
configuration
Change: Test link according to media configuration
Impact: Dual-Media boards
7. Problem: (CQ49004) Dual Media: Switch show link on both media
simultaneously.
Cause: Not disabling TX on non-active port.
Change: In case link is up in non SFP+, disable the SFP+ TX laser.
Impact: Dual-Media boards
8. Problem: On BCM8727 based boards, when link speed is changed from 1G
to 10G, PCS may be halted
Cause: Restoring 10G link setting was done according to old PHY
microcode
Change: Restore default 10G link setting according to new microcode
Impact: BCM8727 based boards
9. Problem: (ESX) Performance regression found by VmWare
Cause: Tx ring was configured to have a smaller length than it was in
IOVP driver
Change: Configure Tx ring to have the same length as in IOVP driver
Impact: ESX only
10. Problem: (CQ48584) Intermitted link issue and unexpected behavior using
boards with external PHYs
Cause: PHY lock indication was missing on second port, so there was no
locking between the ports. When two ports tried to read/write
from the PHY, they the instruction may collide.
Change: Set PHY lock indication of both ports
Impact: 57710/57711 on boards with external PHY.
Introduced: T5.0
11. Problem: (CQ49219) Dual media: Copper link does not come up once
10gbaseT priority is set in driver property
Cause: Link indication from both Copper and Fiber
Change: Ignore link indication from Fiber in case Copper is selected
Impact: Dual-media boards
Introduced: 1.60.32
12. Problem: (CQ49296) - Dual media: Copper link would not come up upon
removal of fiber media when serdes priority and 1GB full is set
Cause: When Fiber link is set to 1G, its XAUI will not automaticity
power down like it does in 10G. This cause the BCM84823 to
detect false link from the BCM8727 even if Fiber is not
connected. This ends up in not linking the copper side.
Change: When link is configured to 1G, power down the BCM8727 XAUI side,
and when link comes up, power it up.
Impact: Dual Media boards.
13. Problem: (CQ49137) -Dual Media: Ethtool fail - Link_test (online) on TP
every few iterations.
Cause: Link detection may take very long in case of copper, while the
wait up time was limit to 10sec only.
Change: Increase link wait up time in link test to 14sec
Impact: Dual Media boards.
14. Problem: Dual Media PHY 84823 activity and front panel LED's not
functioning correctly. Also Diagnostic Mode LED's not firing
correctly
Cause: LED masks not set correctly
Change: Changed LED masks, and added LED mode for Diagnostics
Impact: Dual Media boards
15. Problem: CQ49197 - No link at 1Gb/2.5Gb on BCM8073 based boards
Cause: CL37 BAM was enabled on all boards while it should be configurable.
Change: Disable CL37 BAM by default.
Impact: BCM8073 based boards
Introduced in 1.60.21
16. Problem: HW Statistics collection through the DMAE broken on 57712
Cause: For 57712 the DMAE command needs to include the destination
function.
Change: Adjust the DMAE command to work on 57712
Impact: Introduced in 1.60.01
17. Problem: Possible inconsistency in parity recovery flow in case of bogus
usage of bnx2x_trylock_hw_lock() function
Cause: Inconsistent error core returned (-EINVAL while function
returns `bool')
Change: Return `false' in case of an error
Impact: 1.60.01
18. Problem: The firmware sends an assert when starting the first vf in a
passthru mode
Cause: The firmware trys to send an event to the pf, but since the vf
was never initialized, the firmware couldn't find which pf to
use
Change: The firmware will only send an event in case the function was
initialized before. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.1.1. ESX NPA only
19. Problem: (CQ48770) When working with rate-limiting in 57711/2 with jumbo
frames, the rate is half of what configured
Cause: Firmware miscalculated the amount of bytes transmitted
Change: Fixed the calculation. Fixed in FW 6.4.4
Impact: Introduced in firmware version 6.0.20
20. Problem: PCI entity wasn't calculated before write event ring element in
the initial cleanup and MaliciousVf handlers
Cause: Used wrong PCI entity in the handlers
Change: Calculate the PCI entity before using it. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0
21. Problem: In FLR final cleanup flow - in some cases the IGU cleanup
command was wrong
Cause: Used wrong parameters for calculation of the function id from
Pf or Vf.
Change: Fixed the calculation. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0
22. Problem: (ESX PR582737): TX switching along with LSO packet results with
HW attention
Cause: LSO packet might be sent on a port which doesn't have
sufficient QM credits
Change: LSO packets are sent only if credits were charged for the
chosen port (physical vs. loopback). Fixed in FW 6.4.4
Impact: Introduced in first tx switching version 6.1.4
23. Problem: Possible race between dcb update and ethernet tx single
connection optimizations
Cause: When Single Eth connection is present it may not allow updating
the association of tx queues to COSes
Change: L2 firmware now considers DCB updates and may stop a single
connection run to allow DCB configuration update
Fixed in FW 6.4.4
Impact: Introduced in version 6.0.15
24. Problem: The firmware didn't support TX switching for MAC-VLAN-PAIR
Cause: The firmware didn't initialize the VFC correctly
Change: Fixed the VFC initialization. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0
25. Problem: The error field in ramrod CQE was always sent as 0
Cause: Wrong initialization of the CQE
Change: Sending the right value. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0.
26. Problem: The code entered the infinite loop in the Cstorm Common VfZone
handler
Cause: Wrong calculation of a VF ID
Change: Fixed the VF ID calculation. Fixed in FW 6.4.4
Impact: Introduced in FW 6.2.0.
27. Problem: (CQ49649) Dual Media: No 1Gb fiber link after changing driver
speed property, when cable is connected.
Cause: Link interrupt is generated from NIG attention common for both
phys on dual media board. The NIG status was set for
both PHYs while it should have been done for the copper
attention only.
Change: Set NIG attention according to the active PHY
Impact: Dual media boards
Enhancements
------------
1. Request: Use FW 6.2.1.1
Change: As requested
2. Request: Integrate T6.1 changes
Change: As requested
3. Request: Support HW Rx hash generation for a single queue configuration
Change: As requested
4. Request: Provide a way to know if there are pending ramrods' completions
in multicast and rx_mode configuration flows
Change: Return a positive value from bnx2x_config_rx_mode() and
bnx2x_config_mcast() if there are pending ramrods' completion
5. Request: Add "delete all" and "reconfigure" verbs to the VLAN_MAC object
Change: As requested
6. Request: Add "reconfigure" verb to the MCAST object
Change: As requested
Version 1.60.29 (Jul 21, 2010)
==============================
Fixes
-----
1. Problem: (CQ48770) When working with rate-limiting in 57711/2 with jumbo
frames, the rate is half of what configured
Cause: Firmware miscalculated the amount of bytes transmitted
Change: (In FW 6.0.30) Fixed the calculation
Impact: Introduced in 1.60.16 (FW 6.0.20)
2. Problem: FW XSTORM assert during server reboot test
Cause: There were two statistics ramrods sent with the same statistics
counter. There was a race condition in the bnx2x driver that
allowed this situation
Change: Protect statistics ramrod sending code and statistics counter
update with the spin lock
Enhancements
------------
1. Request: Use FW 6.0.30
Change: As requested
2. Request: Rearrange LLH memory organization
Change: Allow 16 MACs in the memory; do not set FCoE MACs in LLH
Impact: Switch-Independent mode only
Version 1.60.28 (Jul 14, 2010)
==============================
Fixes
-----
1. Problem: Possible crash during load/unload of one function, if more
functions are loaded.
Cause: Statistics ramrod of one function might override data of other
functions
Change: (In FW 6.0.29) Fixed statistics ramrod
Impact: Introduced in 1.60.07 (FW 6.0.5)
2. Problem: Port detection feature(ethtool -p) for dual-media is not
working
Cause: BCM8727 LED needs to be set via the PHY, and not the MAC
Change: Set BCM8727 LED via PHY
Impact: Dual-Media boards
3. Problem: ethtool -s ethX speed YYY does not work properly
Cause: Forcing port configuration every call to ethtool -s
Change: Do not change port configuration if not requested
Impact: Introduced in 1.60.27
4. Problem: Divide by 0 in driver code, after disabling coalescing via
ethtool
Cause: Conversion from usec to interrupt per sec done without check
for zero
Change: Check for zero in conversion
Impact: Introduced in 1.60.26
5. Problem: (CQ48787) ethtool -t fails in Switch-Independent mode after
bringing up higher functions (4,5,6,7)
Cause: Improper mac placement in NIG block
Change: Fixed address calculation
Impact: Switch-Independent mode only
Enhancements
------------
1. Request: Modify Dual-media look & feel such that ethtool gets and sets
the configuration of the active PHY only. Active PHY is the
PHY which linked up, or in case of link down, according to the
port selection
Change: As requested
2. Request: Use FW 6.0.29
Change: As requested
3. Request: Don't call for pci_disable_msix() every time bnx2x_nic_unload()
is called
Change: Move pci_enable_msi/msix() to pcidev->probe() callback
4. Request: (ESX) Call for netif_napi_add() before netdev->open()
Change: As requested. This change is relevant for all platforms
5. Request: Support for ethtool_cmd.speed_hi field
Change: As requested
Version 1.60.27 (Jul 07, 2010)
==============================
Fixes
-----
1. Problem: (CQ48202) Under low memory condition, rx stop functioning
during load/unload test
Cause: Some queue may be not fully populated, under low memory
condition, which may cause FW to drop packets for this queue
Change: Change memory allocation scheme in order to avoid this
situation
2. Problem: Link lost every other time when driver is brought up.
Cause: When the PHY swap parameter ('nvm cfg' option 124) is set, the
PHY's swap everytime the link is brought up.
Change: Instead of storing the PHY order, we calculate it fresh
everytime.
Impact: Dual-media boards.
Enhancements
------------
1. Request: Return an error if bnx2x_set_flags() is called for unsupported
flags
Change: As requested
2. Request: Don't collect statistics if requested so according to
edebug-driver interface (edebug_driver_if field in shmem2
region)
Change: As requested
3. Request: Add support to bnx2x to extract Toeplitz hash out of the
receive descriptor for use in skb->rxhash
Change: As requested
Impact: Kernel 2.6.35 and newer
4. Request: Add ethtool port selection for dual media
Change: As requested
Impact: Dual media boards
Version 1.60.26 (Jun 30, 2010)
==============================
Fixes
-----
1. Problem: Incorrect LED behavior on dual-media platform
Cause: The LED settings are used to control GPIO in favor of
over-current detection
Change: On NOC (No-OverCurrent) flavor, configure the GPIOs to reflect
LED behavior rather than unnecessary over-current indication
Impact: BCM8727 based boards
2. Problem: Possible deadlock on bp->stat_sm_lock spinlock
Cause: Inappropriate locking function was used for protecting a
resource accessed by workqueue and timer:
used spin_lock()/spin_unlock() while should be
spin_lock_bh()/spi_unlock_bh()
Change: Use an appropriate locking API: spin_lock_bh()/spin_unlokc_bh()
Impact: Introduced in 1.60.22
3. Problem: Possible crash loading cnic if iSCSI OOO has been disabled
in a bnx2x
Cause: cnic was unaware of the fact that iSCSI OOO may be disabled in
the bnx2x
Change: Add an appropriate bit in a cnic_eth_dev->drv_state and set
it if iSCSI OOO is disabled in the bnx2x. This is done in a
bnx2x_cnic_probe2()
Impact: CNIC only
4. Problem: Interrupt coalescing was disabled in the chip
Cause: Coalescing was erroneously disabled by bnx2x by default
Change: Properly configure coalescing
Impact: Introduced in 1.60.11
Enhancements
------------
1. Request: Fit Dual media selection to the new scheme
Change: As requested
2. Request: Enable to set the GPIO which controls the external PHY reset
(through nvm cfg 129)
Change: As requested
Impact: BCM8727 based boards
Version 1.60.25 (Jun 23, 2010)
==============================
Fixes
-----
1. Problem: Link down when using specific DACs (Direct Attached Cables)
Cause: Some DAC's EEPROM do not respond at 400Khz speed
Change: Set 2-wire transfer rate of SFP+ module EEPROM to 100Khz
Impact: BCM8727 based boards
2. Problem: (FCoE) (CQ48021) RESET_LUN operation failed due to
error detection
Cause: Detecting a protocol violation in response frame from
target (target protocol violation)
Change: (In FW 6.0.28) Mask the error reporting
Impact: FCoE only
3. Problem: (FCoE) 10% performance degradation
Cause: Read queue used by firmware did not have enough credits
Change: (In FW 6.0.28) Change the read queue used by firmware
Impact: Introduced in 1.60.24 (FW 6.0.27)
4. Problem: (FCoE) (CQ48403) Target does not handle incoming FCP_DATA
Cause: Increasing SEQ_CNT is not supported by target
Change: (In FW 6.0.28) Reset the SEQ_CNT back to zero when transmitting
new FCP_DATA frame
Impact: FCoE only
5. Problem: There was a "timeout waiting for queue[0]" message in a syslog
when running self-test (ethtool -t ethX) on 57712
Cause: Unlike HC IGU won't generate an interrupt for status block
updates that have been performed while interrupts disabled thus
Tx work generated by loopback test will never be handled
Change: Call for bnx2x_tx_int() from inside the loopback test for chips
with IGU (57712 and newer)
Impact: 57712 only
6. Problem: (CQ48284) up-down test on port 1 causes traffic to stop on
port 0
Cause: Improper cleanup of HC and IGU blocks during function init
Change: Fix HC block cleanup, remove unnecessary IGU clean-up
Impact: Introduced in 1.60.15
Enhancements
------------
1. Request: (CQ48374) Add a module parameter to disable iSCSI OOO
Change: As requested: added a disable_iscsi_ooo module parameter, which
is present if BCM_CNIC is defined, otherwise iSCSI OOO is not
enabled anyway
2. Request: (iSCSI) Add counters for iSCSI out-of-order events
Change: As requested (counters can be read from RAM through GRC)
(In FW 6.0.28)
3. Request: Use FW 6.0.28
Change: As requested
Version 1.60.24 (Jun 16, 2010)
==============================
Fixes
-----
1. Problem: (iSCSI) (CQ42399) Unable to run I/Os greater than 1500 bytes
with initiator MTU set to 9000 and target MTU set to 1500
Cause: Timestamp option was not considered in MSS calculation
Change: (in FW 6.0.27) Fix mss calculation when timestamp option
is present
Impact: iSCSI only
2. Problem: (iSCSI) (CQ46648) Connection closure tests fail
Cause: Incorrect FIN max retransmit count
Change: (in FW 6.0.27) Fix FIN max retransmit count
Impact: iSCSI only
3. Problem: (FCoE) Address calculation of task-context in Ustorm
could be wrong
Cause: Address calculation considered an argument twice
Change: (in FW 6.0.27) Fix calculation
4. Problem: (FCoE) Ustorm RAM read/update could be wrong during
event generation
Cause: Confusion between addresses while accessing RAM databases
Change: (in FW 6.0.27) Use appropriate address for each specific
database
5. Problem: (FCoE) ABTS local-completion mechanism did not handled error if
error was detected on ABTS BA_ACC
Cause: Not handling error caused an assert
Change: (in FW 6.0.27) Handle error by overwriting RX state.
Cleanup shall follow to clean the task
6. Problem: (FCoE) Writing to host memory from Tstorm could be corrupted
Cause: Using the same write VQ for Tstorm and Cstorm
Change: (in FW 6.0.27) Using the write VQ belongs to Tstorm only
7. Problem: bnx2x wouldn't properly function with 2.6.29 kernel
Cause: bnx2x used new netdev->netdev_ops interface starting from
2.6.30 and not from 2.6.29 kernel as should be
Change: Use new netdev_ops interface starting from 2.6.29 kernel
Impact: 2.6.29 kernel only
Enhancements
------------
1. Request: Align TCP advertised window in iSCSI (4b alignment)
Change: As requested in FW 6.0.26
2. Request: Mask protocol violations error detected by chip on HP targets
Change: Masking the specific checks (in FW 6.0.26)
3. Request: Dropping invalid packets which are received during the
abort procedure
Change: As requested (in FW 6.0.27)
4. Request: Use FW 6.0.27
Change: As requested
Version 1.60.23 (Jun 10, 2010)
==============================
Fixes
-----
1. Problem: Avahi daemon crashed after loading bnx2x.ko on kernels newer
than 2.6.30
Cause: SAN MAC was added (dev_addr_add()) before netdev_register()
call and call_netdevice_notifiers(NETDEV_CHANGEADDR, dev) has
been called for a unregistered device
Change: Call dev_addr_add() after netdev_register()
Impact: Introduced in 1.60.21
2. Problem: Link status notification appeared each time when DCBX
negotiation received
Cause: DCBX update handled as link update and notification printed
Change: Remove link notification from this flow
Impact: DCBX only
3. Problem: (CQ47700) Can't get Link when forcing speed on 10/100M
Cause: When link is not set to autoneg, MDIX wasn't enabled so link
couldn't be established on direct cables
Change: Enable MDIX when autoneg is disabled
Impact: BCM84823 based board
4. Problem: (CQ47671) "ethtool -p ethx" has no effect on the port's LED
Cause: Specific PHY requires specific phy settings
Change: In case of copper phys, set LED registers directly in the PHY,
rather than the NIG
Impact: Copper boards
5. Problem: (iSCSI OOO) Producer of OOO Rx CQ ring was updated twice than
was expected
Cause: The mentioned producer was updated both in the
bnx2x_cnic_get_ooo_cqe() and in the bnx2x_cnic_reuse_ooo_pkt()
while is meant to be updated only in the
bnx2x_cnic_reuse_ooo_pkt()
Change: Don't advance CQ ring producer in the bnx2x_cnic_get_ooo_cqe()
Impact: iSCSI OOO only
6. Problem: (iSCSI) UIO Client wasn't able to handle IPv6 traffic
Cause: UIO Client was not receiving multicast traffic because in
non-promiscuous mode only one Client per function will receive
multicast packets (leading RSS Client)
Change: Configure UIO Client's to accept all multicast packets
Impact: iSCSI only
7. Problem: bnx2x would not compile on kernel 2.6.34
Cause: Improper dependency in bnx2x_compat.h
Change: Switch on netdev_hw_addr_list_for_each during bnx2x_mc_addr()
definition
8. Problem: (CQ47854) Driver crash during FCoE test
Cause: HW assert causes driver to halt
Change: Notify user with appropriate message without causing panic
9. Problem: Unable to bring up function 2-7 if MBA didn't configure MACs
Cause: Check for MAC for both multi-function modes
Change: Check for OV tag in Switch-Dependent mode
Impact: Introduced in 1.60.10
Enhancements
------------
1. Request: Change PXP Write block initialization values in 57712 to help
reduce latency
Change: As requested
Impact: 57712 only
Version 1.60.22 (Jun 02, 2010)
==============================
Fixes
-----
1. Problem: (CQ47662) "stats updated by DMAE but no MAC active" message
while up/down test
Cause: Race on update of statistics' state machine
Change: Use spinlock to protect the state machine
2. Problem: (CQ46918) Network bursts are larger than the configured
connection on FLEX 10
Cause: Inaccurate bytes calculation at rate shaping mechanism
Change: Calculation was fixed in FW 6.0.25
3. Problem: (CQ47623,CQ46388,CQ47225,CQ47833) System hangs during
iSCSI stress traffic
Cause: Incorrect packet trimming lead to HW internal error
Change: Fixed packet trimming on LB port in FW 6.0.25
Impact: Introduced in 1.60.10 (FW 6.0.11)
4. Problem: All BRB interrupts are masked
Cause: BRB interrupt mask is not initialized so reset value is used
Change: Initialize interrupt mask so only parser read length errors
are masked
Impact: In scenarios where BRB interrupts occur, indicate appropriate
error information
5. Problem: (CQ47834, CQ47795, CQ47980) On low memory condition, driver
caused kernel panic in bnx2x_ilt_mem_op()
Cause: Unallocated memory access
Change: Validate non NULL pointers before access
6. Problem: (FCoE) FCoE traffic experiences a lot of drops
Cause: Improper PFC configuration - mixed RX/TX COSes
Change: Fixed configuration
Impact: Introduced in 1.60.21
Enhancements
------------
1. Request: Don't limit the pause advertisement for large MTU
Change: As requested
Impact: 57712 and above
2. Request: Forward setup ramrod should complete on event ring and not
as a tx_bd_cons increment
Change: (in FW 6.0.25) as requested
3. Request: Use FW 6.0.25
Change: As requested
4. Request: Use terminate ramrod for non forwarding clients
Change: As requested
Version 1.60.21 (May 26, 2010)
==============================
Fixes
-----
1. Problem: (iSCSI OOO) Kernel panicked in the skb_put() when called from
bnx2x_cnic_reuse_ooo_pkt()
Cause: Wrong skb function has been used for resetting the data length
in the skb: skb_put(skb, -skb_headlen(skb))
Change: Use the proper function: skb_trim(skb, 0)
Impact: iSCSI OOO only
2. Problem: 57710 - Load/unload stress test caused chip to hang
Cause: Disable of device in the middle of MSIX message caused deadlock
in HC block
Change: Use PCI configuration space to avoid the deadlock
Impact: 57710 only
3. Problem: iSCSI is not functional in switch independent mode
Cause: iSCSI mac was not written into NIG memory
Change: Fix handling of MAC addreses in switch independent mode
Impact: switch independent mode only
4. Problem: Changing MTU when CNIC is loaded was causing CFC error
Cause: Setting CDU validation value for iSCSI L2 Client was done from
bnx2x_register_cnic(), which is not called in change MTU flow
Change: Move setting of iSCSI L2 Client CDU validation value to
bnx2x_cnic_sp_post() right before it sends iSCSI L2 Client
SETUP ramrod
Impact: iSCSI only
5. Problem: 57710/57711/57711E: unable to load device on machine with 16
(and more) CPUs
Cause: Improper HC SB calculation
Change: Exclude none l2 contexts from HC SB calculation
Impact: 57710/57711/57711E only; introduced on 1.60.13
Enhancements
------------
1. Request: (FCoE) Set SAN MAC before ifup event in order to allow the
bnx2fc properly configure WWN
Change: Move the dev_addr_add() for a SAN MAC to pci_dev->probe() flow
(bnx2x_init_one()) making it similar to networking MAC address
configuration (it is configured in netdev at this stage as
well). dev_addr_del() for a SAN MAC has been moved to
bnx2x_remove_one() correspondingly
Impact: FCoE only
2. Request: Lower the bnx2x skb memory footprint on ESX
Change: Limit the OOO Rx ring to 40 BDs
Impact: ESX only
Version 1.60.20 (May 18, 2010)
==============================
Fixes
-----
1. Problem: (iSCSI OOO) Call for bnx2x_cnic_reuse_ooo_pkt() was causing a
kernel panic
Cause: There was a wrong fp picked in bnx2x_cnic_reuse_ooo_pkt() (fwd
instead of ooo)
Change: Pick the right fp
Impact: iSCSI OOO only
2. Problem: (FCoE)(CQ47674) Chip hangs during destroy FCoE connection flow
Cause: FCoE reordering mechanism was corrupted during disable
connection flow
Change: (Fixed in FW 6.0.24) Assure not to overrun relevant context
for reordering operation
Impact: FCoE only
3. Problem: (FCoE)(CQ47644) Chip reporting an error instead of dropping
the packet
Cause: Some errors were detected before verifying FCoE delimiters
Change: (Fixed in FW 6.0.24) Once an error detected, verify first the
FCoE delimiters before reporting an error
Impact: FCoE only
4. Problem: (iSCSI OOO) Chip hangs during out-of-order traffic
Cause: Firmware internal synchronization issue between iSCSI
and L2 flows
Change: (Fixed in FW 6.0.24) Firmware fix
Impact: Introduced in 1.60.10 (FW 6.0.11)
Enhancements
------------
1. Request: Add BNX2X_MSG_CNIC debug level
Change: As requested
2. Request: Allow the RX rings to be initialize with a lower number of
entries (at the source code level)
Change: As requested
3. Request: Use FW 6.0.24
Change: As requested
4. Request: Enable PFC statistics in MAC
Change: As requested
Version 1.60.19 (May 12, 2010)
==============================
Fixes
-----
1. Problem: (iSCSI OOO): OOO packets were not indicated on the OOO Rx ring
Cause: There were missing OOO ring's CID and Client ID configuration
in a TSTORM
Change: Properly configure OOO ring's CID and Client ID in the TSTORM
memory
Impact: iSCSI OOO only
2. Problem: (iSCSI OOO): CNIC SB context in internal memory was zeroed
after OOO and FWD rings' ramrods were completed
Cause: There was a call for bnx2x_init_sb() for CNIC SB in
bnx2x_register_cnic()
Change: Remove the bnx2x_init_sb() call from bnx2x_register_cnic()
Impact: iSCSI OOO only
3. Problem: (CQ46146) "ethtool -t" fails when the speed is forced on cx4
NICs to 100/10Mb
Cause: Internal loopback test needs to conducted when speed is set
to 10G force
Change: Set speed to 10G force during loopback test, and restore link
speed afterwards.
Impact: ethtool -t test
4. Problem: Spelling error in module parameter
Cause: "Then" used instead of "Than"
Change: Fixed to "than"
5. Problem: (CQ47609) Link Level Pause causes link to pause after PFC
has been negotiated
Cause: Wrong MAC registers configuration
Change: Fix configuration
Impact: 57712 only
6. Problem: Link change after PMF migration may halt the system
Cause: PHY attributes are provided to the initial PMF only
Change: Load PHY attributes for every new function regardless of
being PMF or not.
Impact: Multi-function mode
7. Problem: (iSCSI OOO) OOO FW was not processing the incoming OOO packets
Cause: TSTORM internal RAM was not properly initialized
Change: Properly initialize OOO producer, CID and Client ID of OOO ring
in a TSTORM internal memory
Impact: iSCSI OOO only
8. Problem: (iSCSI OOO) L2 FW was generating XSTORM
x_eth_vlan_special_check assert when trying to post packets on
a FWD ring
Cause: The running index that was posted on a VLAN field of the start
BD was starting from 1, while FW was expecting it to start from
0
Change: Keep driver's packet producer and consumer running from 0 and
decrement a FW packet consumer during completions handling
instead
Impact: iSCSI OOO only
9. Problem: (CQ47445) The duplex mismatch does not work as expected
Cause: Duplex was set correctly in the phy, but wasn't passed to the
driver. In addition, when setting 10/100 force speed, it
actually advertised 10/100 with autoneg.
Change: Return the correct duplex result, and when speed is set to 10/
100, set the speed actually for force 10/100
Impact: BCM84823 based boards
10. Problem: (CQ47383) It takes long time to re-establish link in when
working against some switches in force 1G mode
Cause: PHY is unable to establish good link in this mode
Change: Enable CL37 BCM autoneg instead of working in force 1G
Impact: BCM8073 based boards
11. Problem: (CQ47436) FC setting not consistant
Cause: "ethtool -a" show flow-control autonegotiation as off when
speed is not set to autonegotiate.
Change: Show the actual flow-control settings on "ethtool -a", but
in case the speed setting is actually force speed, this setting
will have no affect like with the BCM8727
Impact: ethtool -a
12. Problem: (CQ45632) NETDEV Watchdog message appeared and system hung
Cause: driver disables tx while carrier still on
Change: call to netif_carrier_off() after netif_tx_disable()
Enhancements
------------
1. Request: Remove redundant LCPLL setting which is done already in the
bootcode
Change: As requested
2. Request: (DCBX) Changing PFC RX configuration: In RX COS0 will always
be configured to lossy and COS1 to lossless
Change: As requested
3. Request: Remove Outer Vlan configuration for Mac partitioning mode
Change: As requested
4. Request: Use FW 6.0.23
Change: As requested
5. Request: Allow driver compilation with different kernel location
Change: As requested
Version 1.60.18 (May 03, 2010)
==============================
Fixes
-----
1. Problem: (CQ47451) iSCSI and FCoE broken and causes kernel panic
Cause: Wrong FW offsets used
Change: fix FW offsets defines
Impact: Introduced in 1.60.17
2. Problem: Loading driver on one port may cause link toggling on the
other port
Cause: PLL was initialized for both ports instead of per chip
Change: Initialize PLL once during common init
Impact: 57712 only
3. Problem: Possible race between firmware threads when loading context
to chip
Cause: Common firmware handler which loads context for slow path
handler may override other handlers context load responses
Change: The common handler considers it's thread
Id when waiting for the context load response
4. Problem: Loading driver on one port may cause link toggling on the
other port
Cause: Firmware generates false data digest error on incoming PDU
Change: (Fixed in FW 6.0.22) Firmware fix
Impact: Introduced in 1.60.10 (FW 6.0.11)
5. Problem: (iSCSI) (CQ46388,CQ46608,CQ46638) Chip hangs when running
stress iSCSI traffic
Cause: Firmware caused connection activity-counter to drop to
a negative value
Change: (Fixed in FW 6.0.22) Firmware fix
Impact: Introduced in 1.60.10 (FW 6.0.11)
Enhancements
------------
1. Request: Remove the extra prefetch instructions from bnx2x_rx_int()
Change: As requested
2. Request: (DCBX) add ETS support
Change: As requested
3. Request: (DCBX) add DCB statistics information; add support for 4-bytes
long remote chassis id
Change: As requested
4. Request: Set NIC_MODE when cnic driver does not exist in the system
Change: As requested
Impact: Revert of change introduced in 1.60.11
5. Request: Remove Modules.supported file
Change: As requested
6. Request: Use FW 6.0.22
Change: As requested
Version 1.60.17 (Apr 27, 2010)
==============================
Fixes
-----
1. Problem: Kernel warning message from pci_enable_msix() in case of
parity error
Cause: Improper handling of MSI-X enable/disable flow in parity error
case
Change: Disable interrupts, disconnect from IRQs and disable MSI-X in
OS level in bnx2x_nic_unload() both in parity error case
2. Problem: FIP packets won't arrive to the FCoE L2 ring
Cause: Current FW still doesn't support the FIP packets filtering
according to the ETH type
Change: Revert the previous enhancement that removed setting the "FIP
MAC" to the FCoE L2 Client
Impact: Introduced in 1.60.16
3. Problem: PCI speed is always reported as 5G (Gen2) on 57712
Cause: Wrong decoding of the PCI speed
Change: Fixed the speed decoding
Impact: Only 57712
4. Problem: There was a possibility that packets might be transmitted on
the queue of the FCoE L2 Client before its SETUP ramrod is
completed
Cause: bp->state was set to OPEN after FUNCTION_START ramrod
(before SETUP ramrod(s) are sent)
Change: Set bp->state=OPEN only after all Clients' SETUP ramrods complete
Impact: FCoE only, introduced in 1.60.10
5. Problem: (FCoE) Chip transmitting unwanted FCP_CONF frames
Cause: Incorrect update of the CONFQ TX producer
Change: (Fixed in FW 6.0.21) Reset the CONFQ TX producer at the
beginning of transmission flow
Impact: FCoE only
Enhancements
------------
1. Request: Add TCM storm context registers to the register dump
Change: As requested
Impact: 57712 only
2. Request: Add path info to the registers dump header
Change: As requested
Impact: 57712 only
3. Request: Modify LED configuration of the BCM84823 to fit the new
phy firmware (2.25 and up)
Change: As requested
Impact: BCM84823 based boards only.
4. Request: Set packets producer for OOO Rx ring in TSTORM
Change: As requested
Impact: iSCSI only
5. Request: Limit number of BDs in OOO Rx ring to the number of CQEs minus
maximum number of outstanding ramrods.
Change: As requested
Impact: iSCSI only
6. Request: Move handling of the FCoE L2 ring to NAPI
Change: As requested
Impact: FCoE only
7. Request: Remove support for FCoE L2 rings on 57711
Change: As requested
Impact: FCoE only
8. Request: Use FW 6.0.21
Change: As requested
Version 1.60.16 (Apr 22, 2010)
==============================
Fixes
-----
1. Problem: MIN/MAX feature is not functional
Cause: Miscalculation FW offsets in driver code
Change: Offset calculation fixed
Impact: Introduced in 1.60.01
2. Problem: (CQ47092) DCBX: Chassis ID Lower and Upper are switched
Cause: bnx2x copied upper to lower and lower to upper
Change: Assignment fixed
Impact: Introduced in 1.60.01
3. Problem: iSCSI L2 ring Rx side wasn't functional
Cause: iSCSI L2 Client Rx filtering configuration wasn't properly set
Change: Properly set iSCSI L2 Client Rx filtering configuration
4. Problem: CQ047058: Link occasionally doesn't come up with 8073 based
boards
Cause: Insufficient delay during phy firmware load sequence
Change: Increase delay during phy firmware load sequence to 120ms
Impact: BCM8073/BCM8727
5. Problem: Function unload could bypass statistic ramrod (Theoretical bug)
Cause: There was no reordering mechanism in the relevant firmware
flows
Change: (Fixed in FW 6.0.20) Adding reordering
Impact: Introduced in 1.60.10 (FW 6.0.12)
6. Problem: (FCoE) (CQ47126, CQ47129) Miss detection of fc-crc error
Cause: Firmware bug
Change: (Fixed in FW 6.0.20) Firmware fix
Impact: Introduced in 1.60.07 (FW 6.0.6)
7. Problem: (iSCSI) Firmware generate false data digest on incoming PDU
Cause: First 4 data bytes arrived splitted into 3 packets
Change: (Fixed in FW 6.0.20) Firmware fix
Impact: Introduced in 1.60.10 (FW 6.0.11)
8. Problem: There were sporadic "timeout waiting for state X" messages in
the dmesg when loading/unloading the driver
Cause: There was a race on bp->set_mac_pending variable during
increment/decrement
Change: Replace increment/decrement of bp->set_mac_pending to
set 1/set 0 to avoid the race
9. Problem: TSO packet was not identified is ESX environment
(as a result there were CSUM errors on wire)
Cause: Wrong condition is checked for identification of TSO packet
Change: Fix the TSO identification condition (only check
skb_shinfo(skb)->gso_size for being not zero)
Impact: ESX and old kernels only (below 2.6.18)
10. Problem: Possible sporadic memory garbadging
Cause: Waiting for CFC_DEL ramrod completion for OOO Client was
done in polling mode while default SB interrupt was still
enabled
Change: Always wait for CFC_DEL ramrod completion in interrupt driven
mode for all clients
Impact: Introduced in 1.60.15
Enhancements
------------
1. Request: Reuse completed Tx buffers in Rx ring from Tx DPC
Change: As requested
Impact: iSCSI OOO only
2. Request: Remove 57711-only FCoE L2 MAC manipulations
Change: As requested
Impact: FCoE only
3. Request: Simplify the iSCSI L2 Client MAC configuration code
Change: Set/Clear iSCSI L2 MAC in bnx2x_drv_ctl() on START_L2/STOP_L2
commands
Impact: iSCSI only
4. Request: Use FW 6.0.20
Change: As requested
5. Request: Use kmalloc() instead of vmalloc() for dynamic allocation of
none-DMAable buffers
Change: As requested
6. Request: Add an way for CNIC to return an L2 SPQ credit
Change: Added DRV_CTL_RET_SPQ_CREDIT command option to bnx2x_drv_ctl()
Impact: iSCSI only
7. Request: (DCBX) support transaction between different pause modes
Change: Added support
Impact: 57712 only
Version 1.60.15 (Apr 15, 2010)
==============================
Fixes
-----
1. Problem: FCoE INIT ramrod timeout
Cause: HW wasn't producing interrupt on CNIC SB
Change: bnx2x didn't send an ACK to IGU after establishing
OOO and FWD clients
Impact: CNIC only
2. Problem: (CQ47020) Kernel panic during cnic load
Cause: Initializing of iSCSI L2 context validation values was done
from bnx2x_cnic_probe() function, which is called both for
devices that are down and their memories are still not
allocated (including contexts)
Change: Initialize iSCSI L2 context from bnx2x_register_cnic() which
may be called only for interfaces that are up
Impact: CNIC only
3. Problem: CFC error when FCoE INIT ramrod is sent
Cause: FCoE Init CID was not initialized
Change: Initialize fcoe_init_cid to the correct value in
bnx2x_cnic_probe()
Impact: FCoE only
4. Problem: (CQ47100) When the force KR enabler is set correctly, traffic
does not work on 8073 based boards
Cause: Polarity swap was not set correctly in case link is set to 1G
Change: Initialize polarity swap correctly when enabled.
Impact: BCM8073 based boards only
5. Problem: DCB change during FLR might cause chip hang
Cause: Firmware skipped DCB update when encountered a PCI error
Change: (Fixed in FW 6.0.19) Firmware flow changed to first update
DCB version and only then to proceed to handle PCI error
Impact: Introduced in 1.60.11 (FW 6.0.15)
6. Problem: (FCoE) Chip hangs after trying to access inappropriate host
memory address
Cause: Firmware instructed corrupted SGEs in PBF command due to
corrupted Xstorm context
Change: (Fixed in FW 6.0.19) Save entire Xstorm context during disable
connection procedure
Impact: Exists in all previous FCoE releases
7. Problem: (FCoE) (CQ47022) Disabling/Enabling the adapter from Host side
without IO, causes device manager to hang
Cause: Firmware did not update task properly in host memory after
detecting illegal CONF request
Change: (Fixed in FW 6.0.19) Save task context only after all
verification has been completed
Impact: Introduced in 1.60.01
8. Problem: (iSCSI) Connection close does not complete
Cause: Final ACK from target is discarded by firmware
Change: (Fixed in FW 6.0.19) Firmware fix
Impact: Introduced in 1.60.10 (FW 6.0.11)
9. Problem: (CQ47034) MIN/MAX is not accurate for small packets
Cause: The firmware didn't count inter-packet gap and preamble in
bandwidth allocation.
Change: (Fixed in FW 6.0.19) Fixed L2 calculation
Impact: Introduced in 1.45.xx. Doesn't include fix for iSCSI and FCoE
10. Problem: (CQ46501) DCBX IOTCL config_dcbx_params.admin_dcbx_version
shows incorrect value
Cause: Variable initialized to incorrect value of 2
Change: Fixed to appropriate 0 (CEE)
11. Problem: Link down when upgrading BCM84823 phy firmware to 2.24/2.25
Cause: Changes in the firmware initialization required setting
different values
Change: Set the require phy register to achieve link and led in all
speeds
Impact: BCM84823 based boards
Enhancements
------------
1. Request: Add support for iSCSI OOO flow in L2 driver
Change: As requested
Impact: iSCSI only
2. Request: Don't call for NAPI related functions from non-NAPI context
Change: Handle cleanup ramrods in an interrupt driven mode and not
in a polling mode as it was
3. Request: (FCoE) Reset the entire KCQE before start initializing it
Change: As requested
4. Request: (FCoE) Change firmware assert to error notification to driver
when receiving MP frame with unknown R_CTL.function mode
Change: As requested
5. Request: Use FW 6.0.19
Change: As requested
6. Request: Don't disable TPA on XEN enabled kernels
Change: As requested
Version 1.60.14 (Apr 08, 2010)
==============================
Fixes
-----
1. Problem: Driver failed to pass TCP traffic in non-TPA mode on 57712
Cause: SGE buffer size was not configured to zero in non-TPA mode
Change: Properly set TPA-related section in Client Init ramrod data
Impact: 57712 only
2. Problem: Link LED for 10M/100M/1000M is not functional on BCM84823 based
boards
Cause: LED functionality was controlled by 10G core all the time
Change: When link speed is up in 10M/100M/1000M, set led control to
1G core.
Impact: BCM84823/BCM8481 based boards
3. Problem: Link doesn't come up when changed from 1G to 10G with BCM84823
based boards.
Cause: Phy wasn't initialized in this case so some parameters were not
cleared
Change: Reset phy when any parameter is changed
Impact: Seen on BCM84823 based board, but may relate to others
4. Problem: (CQ46902) Unable to load driver on some systems
Cause: Old BIOS behaviour is not compliant with newest PCIE spec
according to number of tags supported by the system
Change: Driver validates the capability
Impact: 57712 only
Version 1.60.13 (Apr 4, 2010)
==============================
**** This release doesn't support non-TPA mode on 57712 devices ****
Fixes
-----
1. Problem: (CQ46501) DCBX IOTCL config_dcbx_params.admin_dcbx_version
shows incorrect value
Cause: Variable initialized to incorrect value of 2
Change: Fixed to appropriate 0 (CEE)
2. Problem: FC behavior is changed so that setting FC to auto when speed
is force has no influence of to flow-control
Cause: Although this configuration is not so logic, many boards have
their configuration build this way so need to restore this
behavior
Change: Change back to old behavior
Impact: Optic devices. Introduced in 1.60.11
3. Problem: When RX-polarity swap is set, traffic in 1G link doesn't pass.
Cause: RX-polarity was set on the PMA/PMD side instead of the XGXS
side
Change: Set RX polarity on the XGXS side of the 8073
Impact: KR (BCM8073)
4. Problem: Autoneg flow-control is not seen using "ethtool -a"
Cause: Duplicating the link parameters configuration for dual-media
platform
Change: Return the correct FC status
Impact: Introduced in 1.60.11
5. Problem: Self-test was reporting errors in an IGU block when driver was
configured to use INT#x
Cause: Driver was reading interrupt status register when IGU was
still disabled for the current PF
Change: Connect to IRQs after HW initializing
6. Problem: Self-test was reporting errors in an IGU block when driver was
configured to use INT#x
Cause: Driver was reading interrupt status register when IGU was still
not configured to Single ISR mode
Change: Set IGU_PF_CONF_SINGLE_ISR_EN bit together with
IGU_PF_CONF_FUNC_EN when driver is configured to Single ISR
mode (MSI or INT#x) and do not turn it off unless the driver is
configured to use MSI-X interrupt mode
Impact: 57712 only
7. Problem: When link speed is set to 1G, link comes up in 10G when
connected to device which advertise 10G.
Cause: BCM84823 always advertises 10G speed.
Change: When speed capability doesn't include 10G, or force speed is
not set to 10G, disable 10G advertisement
Impact: BCM84823, BCM8481
8. Problem: (CQ46844, CQ46842) Driver did not work properly on machines
with large number of CPUs.
Cause: Driver was managing more resources then available in FW
Change: Taking into account max available L2 contexts
Impact: 57712 only
8. Problem: Potential link issue with force 1G on 8073
Cause: Setting one of the registers in the force 1G sequence
incorrectly
Change: Fix 1G force sequence
Impact: 57712 + KR only
9. Problem: Terminate ramrod called host coalescing on Tx segment
Cause: Wrong logic while sending host coalescing on Tx
Change: (Fixed in FW 6.0.17) The ramrod no longer send host coalescing
Impact: Introduced in 1.60.6 (FW 6.0.3)
10. Problem: Firmware asserted when TPA is disable
Cause: Wrong logic in the assert Conditions
Change: (Fixed in FW 6.0.17) The assert may occur only when TPA is
enabled
Impact: Introduced in 1.60.12 (FW 6.0.15)
11. Problem: VF: system crashed when VF reads client init data
Cause: Reading client init from VF memory and not from PF memory
Change: (Fixed in FW 6.0.17) VF read the client init from PF memory
Impact: Introduced in 1.60.12 (FW 6.0.15)
12. Problem: Pause on exhausted ring broken
Cause: Internal pause data structure was initialized improperly
Change: (Fixed in FW 6.0.17) Fix internal ram offset calculation
Impact: Introduced in 1.60.12 (FW 6.0.15)
13. Problem: (FCoE) Timer expiration doesn't read DCB info
Cause: DCB update is done only for transmission flows
Change: (Fixed in FW 6.0.17) Read DCB info for timer expiration
Impact: Introduced in 1.60.12 (FW 6.0.15)
14. Problem: Return credit in termination handler without executing DCB
update
Cause: Firmware bug
Change: (Fixed in FW 6.0.18) Update DCB in the beginning of the
terminate handler
Impact: Introduced in 1.60.10 (FW 6.0.11)
Enhancements
------------
1. Request: When link speed is set to force on copper devices, set link to
autoneg with specific link speed advertisement since force speed
is not copper compliant
Change: As requested
Impact: BCM84823/BCM8481 based devices
2. Request: Add PFC/DCBX support for E2
Change: As requested
3. Request: Make driver to be compiled, by default, with FCoE support
Change: As requested. FCoE support comes by default with CNIC support
4. Request: Don't allocate SGEs when TPA is not enabled for a specific
ring
Change: As requested
5. Request: Use FW 6.0.18
Change: As requested
Version 1.60.12 (Mar 23, 2010)
==============================
1. Problem: Flow control is not set on optic devices
Cause: When flow-control was set to force on optic devices,
configuration was not permeate to the MACs
Change: Set the FC configuration on optic devices according to user
settings
Impact: Optic devices
Version 1.60.11 (Mar 22, 2010)
==============================
Fixes
-----
1. Problem: Driver didn't work on big endian setups
Cause: There were endianness bugs both in HSI and in driver
Change: Properly handle endianness in EQ related code
Impact: Introduced in 1.60.10
2. Problem: Potential link issue with BCM8727
Cause: In BCM8727, the firmware in second port must be loaded before
the first port.
Change: Download the second port to 8727 first during initialization
Impact: 57712 only and SFP+ only
3. Problem: Driver didn't work with KVM SR-IOV
Cause: Final client delete (CFCdelete ) was not communicated
to the SR-IOV management code.
Change: Passing the delete completion notifications to the SR-IOV
management.
Impact: Introduced in 1.60.10
4. Problem: (CQ46455) Load-unload test failed in Multi-Function mode
Cause: Improper initialization and cleanup of IGU block
Change: Fixed
Impact: Introduced in 1.60.01
5. Problem: (FCoE) FCoE L2 client was receiving erroneous SETUP client
ramrod completions
Cause: FCoE L2 Tx SB index was configured to the same value as Rx
index. As a result FW was overwriting the Rx SB index with
a Tx index value
Change: Fixed Tx index configuration
Impact: Introduced in 1.60.10
6. Problem: BCM8073 isn't able to link up on specific board
Cause: The default state of the GPIO1 is high and the PHY might not be
in the good reset state after a POR
Change: Toggle GPIO1 from LOW to HIGH during common init
Impact: 57112 + 8073
7. Problem: (CQ46476) Unable to load driver on RH48/RH47 32bit
Cause: Undefined symbols "____log2_NaN" used in kernel
Change: Define the symbol if not defined
8. Problem: Binary data printed during fw_dump()
Cause: Address of dump miscalculated for 57712
Change: Fix address calculation
Impact: Only 57712
9. Problem: (CQ45724) in MF configuration, after bringing the interface
down, ethtool does not reflect link status correctly
Cause: Missing check for device status
Change: Add check for device status
10. Problem: (CQ 46240) Unexpected completion is received during forward
connection establishment
Cause: Problematic initialization sequence of status blocks
Change: (Fixed in FW 6.0.13) Firmware now checks for function enable
before updating the status block
Impact: Introduced in 1.60.01 (FW 5.3.19), relevant to 57710/11 only
11. Problem: (FCOE) Detect an error on FCP_RSP with confirmation request
Cause: Firmware did not verify confirmation request indication
when checked last sequence indication in FC header
Change: (Fixed in FW 6.0.13) Fixed confirmation request verification
Impact: Problem exists in all previous FCoE versions
12. Problem: (CQ46005) Maximum bandwidth allocation feature not working
as expected
Cause: Storm clock frequency was 500MHz instead of 550MHz - this
affects the RT clocks configuration which had a 10% deviation
Change: (Fixed in FW 6.0.14) Firmware now use correct clock frequency
for RT configuration
Impact: Relevant only to BCM57712
13. Problem: "Pause on exhausted rings" functionality broken
Cause: Internal firmware variable was not set properly in RAM
Change: (Fixed in FW 6.0.14) Firmware now sets the missing internal
variable at L2 client init phase
Impact: Introduced in 1.60.06 (FW 6.0.2)
14. Problem: (FCoE)(CQ46506) firmware hanged (all threads in Ustorm sleep)
Cause: Error handling was not processed correctly
Change: (Fixed in FW 6.0.14) Firmware fix
Impact: Introduced in 1.60.10 (FW 6.0.11)
15. Problem: (FCoE)(CQ46342) RX_ID not populated inside REC_ELS packet
Cause: Driver did not receive RX_ID during timer's error reporting
Change: (Fixed in FW 6.0.14) Firmware fix
Impact: Problem exist in al previous firmware releases
16. Problem: (iSCSI)Data placement of non-aligned small size data (<4 bytes)
caused false data-digest error
Cause: Internal firmware error
Change: (Fixed in FW 6.0.14) Firmware fix
Impact: Introduced in 1.60.10 (FW 6.0.11)
17. Problem: The firmware supported only unicast addresses that were
recognized by the LLH (limit to 16 MACs) in
switch independent mode
Cause: The search in the CAM used the function id from the LLH
Change: (Fixed in FW 6.0.15) Unmasked the function id in searches
in the cam in switch independent mode
Impact: Introduced in 1.60.10 (FW 6.0.10)
18. Problem: (iSCSI) Firmware might spin into infinite-loop when RQ is full
Cause: Priority of Sleep when fetching new RQ producer is too high
Change: (Fixed in FW 6.0.15) Reduce sleep priority
Impact: Introduced in 1.60.10 (FW 6.0.11)
19. Problem: (iSCSI) Saturated window was not supported in option2
TCP connect
Cause: Feature not supported
Change: (Fixed in FW 6.0.15) Add support in firmware
20. Problem: (FCoE) (CQ46072) IO errors when running heavy traffic write
operations
Cause: Inappropriate line credit calculation in transmission path
Change: (Fixed in FW 6.0.15) Firmware fix in line credit calculation
Impact: Introduced in 1.60.10 (FW 6.0.10)
21. Problem: in 4-port mode - using port 2 and 3 caused errors followed by
fw dump
Cause: Inappropriate FW SB allocation, improper FW mailbox calculation
Change: Add port id to the calculations
Impact: 57712 4-port only
Enhancements
------------
1. Request: (CQ45126) Change NIC_MODE to impove latency if no offloaded
connection is present
Change: As requested
2. Request: Support dual-media configuration with swapped phy configuration
Change: As requested.
Impact: Dual media board
3. Request: Split speed and duplex parameters into two media
Change: As requested
4. Request: Support powering down the BCM84823 copper core when phy
configuration is set to second_port
Change: As requested
Impact: BCM84823 dual-media
5. Request: Add support for 4-port mode device
Change: As requested
Impact: 57712
6. Request: Add support for force 1G for KR triggered by new nvm cfg
option 127: "Force KR enabler"
Change: As requested
Impact: KR(BCM8073)
7. Request: Add support for Client Setup ramrod
Change: Use FW 6.0.15
8. Request: Cleanup VLAN related code
Change: As requested
9. Request: Add TCP Out-Of-Order support in iSCSI Firmware
Change: As requested (in FW 6.0.14)
10.Request: Increase L2 clients from 26 clients to 28 in order to support
iSCSI Out of Order in multi function mode
Change: As requested (in FW 6.0.15)
11.Request: Added client_init_ramrod_data struct, in order to decouple
between driver and firmware client-related structures
Change: As requested (in FW 6.0.15)
12.Request: Support changing COS and vlan priority updates according
to DCB in L2 TX firmware
Change: As requested (in FW 6.0.15)
13.Request: (FCoE) Support stop traffic\start traffic flow control ramrods
Change: As requested (in FW 6.0.15)
Version 1.60.10 (Mar 8, 2010)
==============================
**** This release doesn't support big-endian architecture ****
Fixes
-----
1. Problem: CFC HW attention was popping up on 57710 and 57711
when interface was closed
Cause: bnx2x_pf_disable() was called for all types of chips
Change: Call bnx2x_pf_disable() for 57712 only
Impact: Introduced in 1.60.08; applies for 57711 and 57710 only
2. Problem: (FCoE) PFC didn't function properly
Cause: Bad values of LLFC watermarks
Change: Set LLFC watermarks to proper values
Impact: 57712 PFC only
3. Problem: Limiting the number of queues with the num_queues module
parameter to a number smaller then the number of CPUs renders
the driver inoperable.
Cause: The RX RSS indirection table is initialized with bad values.
Change: Fixed the indirection table initialization
Impact: Introduced in 1.60.01
4. Problem: VF load for VFs with id greater then 3 crashes the host driver.
Cause: The host driver failed to allocate the HW-context for such VFs.
Change: Fixed the host driver VF HW-context allocation for VFs.
Impact: 57712 IOV only
5. Problem: (CQ45880, CQ46008) On 57712 incorrect statistic information
is displayed for ethtool/ifconfig
Cause: Reading the information from incorrect memory region
Change: Fixed region and registers addresses
Impact: 57712 only
6. Problem: (CQ46197) Compilation error on system with undefined value of
CONFIG_PCI_MSI
Cause: Code was not compiled due to undefined value
Change: Removed dependency on this value
Impact: Introduced in 1.60.06
7. Problem: BCM84823 Copper link doesn't come up
Cause: Starting from firmware 2.20, BCM84823 enforces the XGXS to
link first with the BCM84823 before it triggers LASI.
Change: Set the appropriate flag for the 84823 which enforce XGXS
initialization before external link is up
Impact: BCM84823(copper)
8. Problem: CQ45718: Driver crash after driver load
Cause: Driver was sending a relatively new command to a bootcode which
doesn't support it. This command in unfamiliar with this
bootcode, and should only be sent to bootcode which support it.
Change: Send this command only to bootcode which support it.
Impact: SFP+ only
9. Problem: Some error statistics weren't counted correctly
Cause: The statistics address was miscalculated
Change: Fixed address calculation (in FW 6.0.11)
Impact: Introduced in 1.60.06 (FW 6.0.3)
10. Problem: iSCSI firmware broken
Cause: TCP layer interface was changed
Change: Applied new TCP interface to iSCSI firmware (in FW 6.0.11)
Impact: Introduced in 1.60.07 (FW 6.0.4)
11. Problem: Possible permanent locking of Tx queue
Cause: There was a memory barrier missing after tx_cons update
Change: Added a missing barrier
12. Problem: Possible "queue is alive while ring is full" situation
Cause: bnx2x_start_xmit() may have run and locked the queue while
bnx2x_tx_int() has decided that it may unlock it
Change: Take tx_lock while deciding to unlock the queue
Enhancements
------------
1. Request: Add clarification for int_mode driver parameter
Change: Description fixed; Unnecessary define removed
2. Request: Support MAC partitioning mode (Multi function based on
MAC classification)
Change: As requested
Impact: 57712 only (when set to MAC partitioning mode)
3. Request: Use FW 6.0.12
Change: As requested
4. Request: Use the upstream printouts and mcast iterators semantics
Change: As requested
Version 1.60.09 (Feb 22, 2010)
==============================
Fixes
-----
1. Problem: (CQ46006) NIG test A36 failed if the driver was loaded before
Cause: Configuration of PGLUE_B register with wrong value, while reset
value is good
Change: Remove erroneous configuration
Impact: 57712 only
2. Problem: (CQ45648) driver asserts while trying to unload/load iSCSI/FCoE
Cause: internal firmware resources were not cleaned properly by driver
upon unload
Change: (Fixed in FW 6.0.8) offset was generated for slow path sync
line index
Impact: 57712 only
3. Problem: (FCoE) Terminate handler will not complete
Cause: Race between timer expiration and terminate handler invocation
Change: (Fixed in FW 6.0.8)
Impact: 57712 only
4. Problem: (CQ46052) Compilation warning on older kernels ("warning:
assignment discards qualifiers from pointer target type")
Cause: The compilation condition regarding the kernel version was
mistakenly changed
Change: Change the kernel version condition
Impact: Introduced in 1.60.08
5. Problem: (FCoE) (CQ45915): Second CNIC interrupt was never arriving
when working with port 1
Cause: Wrong SB ID was used in CNIC functions sending ACK to IGU
Change: Added IGU_SB_ID to CNIC interface, fixed CNIC functions
sending ACK to IGU to use the new index
Impact: Has been introduced in T6.0
Enhancements
------------
1. Request: For 57712 add support for switch-independent mode
Change: As requested
2. Request: Add per-path licensing support
Change: (In FW 6.0.9) Support BCM57712 address scheme
Impact: 57712 only
3. Request: Minimize DMA transaction to improve PCIE latency
Change: (In FW 6.0.9) Packet placement is done in single DMA command
instead of two
4. Request: Constant pause avoidance
Change: (In FW 6.0.9) Timeout for pause sending was added. Un-pause
message will be sent upon timeout expiration. (Timeout default
is 1 minute, can be set up to 5 minutes by the driver)
Impact: 57711/57711E/57712 only
5. Request: Use FW 6.0.9
Change: As requested
Impact: iSCSI is not functional in this version
Version 1.60.08 (Feb 18, 2010)
==============================
**** iSCSI is not functional in this version ****
Fixes
-----
1. Problem: (CQ45963,CQ45962) DCBX IOCTL shows unusual values for
admin_configuration_ets_pg, admin_pfc_bitmap
Cause: Admin section was initialized with incorrect values
Change: Choose correct init values
2. Problem: (CQ45961,CQ45960) DCBX IOCTL shows incorrect values for
admin_dcbx_enable, dcb_enable
Cause: The parameters were ignored by driver
Change: Add handling for the parameters
3. Problem: (CQ45763, CQ45799) On 57712 a request can be sent on a disabled
function
Cause: Request sent from timers block that scans function 6/7 when
function 2/3 scan off is set
Change: Workaround in the driver that assures that if the timers starts
scanning for function 6/7 nothing fatal will occur
Impact: 57712 only
4. Problem: (CQ45973) On 57712 bringing up interface caused DMAE timeout
Cause: Initialization of function not performed properly
Change: Enable function in PGLUE_B module before accessing DMAE
Impact: 57712 only
5. Problem: In KR board type, when loading the first port first, it causes
the other port's link not to come up.
Cause: BCM8073 requires that the second port's firmware will be loaded
first.
Change: Always load the first phy port's firmware
Impact: 57712 only and KR only
Enhancements
------------
1. Request: Replace references to cnic_drv.h with cnic_if.h
Change: As requested
2. Request: Add DRV_CTL_{START,STOP}_L2_CMD capabilities to drv_ctl()
Change: As requested
3. Request: Update cnic driver with SP_SB information
Change: As requested
4. Request: Add handling for iscsi mac addresses during registrer_cnic()
unregister_cnic() and chip_cleanup()
Change: As requested
Version 1.60.07 (Feb 11, 2010)
==============================
**** iSCSI is not functional in this version ****
Fixes
-----
1. Problem: (CQ45674) Warning message was displayed when modprobe bnx2x
"bnx2x_get_hwinfo ..."
Cause: Inappropriate printing level for the message used
Change: Set correct level
2. Problem: BCM8073 wasn't initialized during common init
Cause: In 57712, the second port is actually port0 of the second path,
and it wasn't treated like that.
Change: Initialize port0 of both paths of BCM8073 during common init
Impact: 57712 only and KR only
3. Problem: PCIE-X link speed is not displayed correctly for 57712
Cause: Misinterpretation of link speed encoded value
Change: Fixed for 57712
Impact: 57712 only
4. Problem: Performance drop on high-PPS scenarios with new HC code
Cause: New HC flow was overloading a HW buffer and caused back
pressure on on-chip processors
Change: (In FW 6.0.6) Remove some of the HW buffer uses
Impact: introduced in 1.60.01 (FW 5.3.19)
5. Problem: (CQ45499) HW attention at BCM57710 stress test
Cause: New HC flow could cause HW bug by using illegal timers command
Change: (In FW 6.0.6) Remove the use of timers command, instead use
aggregated interrupts
Impact: introduced in 1.60.01 (FW 5.3.19) BCM57710/BCM57711 only
6. Problem: Change MTU causes L4 traffic to stop
Cause: Status Block of cnic driver was not updated during nic_load
Change: Add cnic SB update
Impact: Introduced in 1.60.01
Enhancements
------------
1. Request: Use FW 6.0.7
Change: As requested
Impact: iSCSI is not functional in this version
Version 1.60.06 (Feb 4, 2010)
==============================
**** This version requires bootcode 6.0.6 or above for BCM57712 ****
Fixes
-----
1. Problem: FCoE wasn't receiving mcast packets, including FIP packets
sent to ALL_ENODE_MACS address
Cause: There was DROP_ALL_MCAST flag set to FCoE L2 client
Change: Set ACCEPT_MCAST flag to FCoE L2 client that will make it
receive only matched mcast packets
2. Problem: Path1 shared memory data run over Path0 configuration
Cause: The register that marks the beginning of the shared memory is
global rather than split per path
Change: Use different registers to mark the beginning of the shared
memory per path.
Impact: 57712 only
3. Problem: bnx2x stopped receiving on the VLAN after MTU change
Cause: VLAN removal flag was not configured after reloading FW
during change MTU flow
Change: Configure VLAN removal flag if needed after MTU change
4. Problem: drivers enter infinite loop during crash dump
Cause: lack of parentheses in loop expression
Change: add parentheses
5. Problem: (iSCSI)(CQ45150) OIS Assert occurred after attempting to
login to iSCSI target
Cause: Firmware bug
Change: Fixed in FW 6.0.2
6. Problem: (FCoE)(CQ44937) Data corruption after forcing FC-CRC error
Cause: Hardware bug when detecting CRC error on FCoE data placement
Change: (Fixed in FW 6.0.3) Firmware workaround - Send 64 DMA dummy
write commands in order to prevent the false error from
appearing
7. Problem: 57712 4-port mode doesn't link up
Cause: XGXS wasn't actually configured in this mode since the
current MD_DEVAD used didn't work.
Change: Use different MD_DEVAD when working with the E2 XGXS
Impact: 57712 only
8. Problem: 57712 4-port D2 nic test(internal loopback test) fail
Cause: Loopback was set as 10G instead of 1G loopback
Change: When speed selection is 1G, set 1G loopback, otherwise
set 10G loopback.
Impact: 57712 only
Enhancements
-----------
1. Request: Add support for KVM SR-IOV (BCM57712 and onwards)
Change: As requested
2. Request: Add support for VF devices
Change: As requested
3. Request: Update README.TXT and manpages with GRO dependency on 8021q
module
Change: As requested
4. Request: Use FW 6.0.3
Change: As requested
Version 1.60.04 (Jan 26, 2010)
==============================
Fixes
-----
1. 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
Change: Changed DCC enable/disable commands to use a different register
setting that will not interfere with normal unload sequence
2. Problem: Driver load under DCC traffic might fail
Cause: Lack of lock between driver load command and DCC ack command
Change: Add mutex to protect the FW mailbox
3. Problem: ifconfig up reported error while using bootcode 6.0.1
Cause: Lack of lock between DCBX init command and response handling
Change: Add mutex to protect the FW mailbox
4. 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
Change: DCC disable/enable command uses different flag and not the
driver state
5. 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
Change: Since this is a valid condition, the print is allowed under
specific messages level only
6. Problem: port 1 of 57712 can't initialize correctly
Cause: driver accessed incorrect shmem addresses
Change: fixed
Impact: 57712/57712E only
7. Problem: 57712 link is not up
Cause: There's difference in AER strapping between 57711 and 57712
Change: Set the XGXS AER to the appropriate value according to the
new XGXS model
Impact: 57712 only
Version 1.60.03 (Jan 20, 2010)
==============================
Fixes
-----
1. Problem: Unresolved symbols during compilation on 32bit platforms
Cause: Improper initialization of variable with FP symbol
Change: Using integer constant instead
Impact: Introduced in 1.60.01
2. Problem: MF dead in the water for 57711
Cause: Improper initialization of the FW caused it to hang
Change: Fixed initialization
Impact: Introduced in 1.60.01
3. Problem: HC not enabled for port 1
Cause: Improper initialization the HC in the FW
Change: Fixed initialization
Impact: Introduced in 1.60.01
4. Problem: (iSCSI) Unexpected chip behavior when padding is splitted
into 2 or 3 parts
Cause: Firmware bug when aligning split padding
Change: Firmware was fixed
Impact: Problem exists in all previous releases
5. Problem: (iSCSI) False data digest error when data digest is splitted
into 3 parts
Cause: Firmware bug when aligning split padding
Change: Fixed in FW 6.0.1
Impact: Problem exists in all previous releases
6. Problem: (FCoE) (CQ45025) False REC_TOV timer expiration
Cause: Timer was not reset when a task that supports REC_TOV was
replaced by task that didn't
Change: (Fixed in FW 6.0.1) When new task begin, we set the timer if
it supports REC_TOV and reset timer if he doesn't
Impact: Problem exists in all previous releases
7. Problem: (FCoE) Connection cache was not initialized properly and
REC_TOV\E_D_TOV timers weren't disable after all functions
destroyed
Cause: Wrong calculation of number of active functions
Change: (Fixed in FW 6.0.1) Add designated counter for number of
active functions
Impact: Problem in BCM57712 only
8. Problem: MSI-X vectors request in repeating ifup/ifdown test case
fail due to not sufficient amount of resources
Cause: MSI-X/MSI were not disabled if ifup failed due to lack of memory
Change: Properly release allocated MSI-X/MSI vectors if ifup failed
due to lack of memory
Enhancements
-----------
1. Request: Remove GRO dependency on kernel version
Change: Replaced with dependency on NETIF_F_GRO flag
2. Request: Integrate with bootcode 6.0.0 and above for proper handling
of phy initialization in 57712 2-PORT-MODE
Change: As requested
3. Request: (CQ39624) Provide detailed statistics with ethtool -S eth<x>
Change: As requested
4. Request: Add compatability of GRO feature with RH5.4 systems
Change: As requested
5. Request: Improve performance of new HC code (submitted in firmware
5.3.19). Cut the storm utilization by 50%
Change: As requested (in FW 6.0.1)
6. Request: Add ability to control BCM8073 PN polarity swap through nvm
configuration
Change: As requested.
7. Request: Use GPIO3 to take BCM84823 phy out of reset
Change: As requested.
8. Request: Use FW 6.0.1
Change: As requested.
9. Request: Add support for FCoE to older kernels
(e.g. RH5.4 in-the-box kernel)
Change: As requested.
Version 1.60.02 (Jan 12, 2010)
==============================
Fixes
-----
1. Problem: Self-test didn't work on kernels newer than 2.6.25
Cause: There was missing a new way to report the number of tests
Change: Added a support for a new way to report a number of tests
when compiled against new kernels
2. Problem: (iSCSI)(CQ45150) OIS assert @
[bxois!HandleConnectionCqeWorkitem+429] when trying to logon
to iscsi target
Cause: Firmware bug
Change: Fixed in FW 5.3.20.1
Impact: Problem exists only in release T6.0
Enhancements
-----------
1. Request: Add VLAN GRO support
Change: As requested
2. Request: Use FW 5.3.20.1
Change: As requested
Version 1.60.01 (Jan 12, 2010)
==============================
Fixes
-----
1. Problem: 57712 emulation failed to run in 4 domains 10G mode
(debug only)
Cause: Driver accidently accessed non-existing EMAC
Change: Remove access to EMAC register in case of emulation
2. Problem: In dual-media, only the SFP+ module on the first phy is checked
Cause: Insufficient support in SFP+ module checking
Change: Modify SFP+ module API verification to include parameter
indicating the exact phy.
Impact: Whenever driver send command to the bootcode, it will now also
send parameter. Bootcode will treat this parameter only when it
is relevant
3. Problem: (FCoE) Chip hangs while running normal rd/wr operations
Cause: RX Doorbell was not handled properly
Change: (Fixed in FW 5.3.18) Handling the case where receiving false
RX doorbell
4. Problem: (FCoE) (CQ44936, CQ44937) Data corruption during
read/write/compare test
Cause: Error was not detected by FW since it was short FCP_RSP packets
Change: (Fixed in FW 5.3.20) Checking if received the amount of data
when receiving this format of FCP_RSP
5. Problem: (FCoE) (CQ44936, CQ44937) Data corruption during
read/write/compare test
Cause: When packet with invalid CRC detected, task context isn't
reverted to previous valid state
Change: (Fixed in FW 5.3.20) on detection of packet with invalid CRC,
task cached context isn't write back to memory
6. Problem: (iSCSI) Chip hangs when running iSCSI read traffic
Cause: Miscalculation of HW commands when SGEs are not 64-bytes
aligned
Change: (Fixed in FW 5.3.20) Fixing FW calculation of SGE alignment
and fields in HW command
7. Problem: (FCoE) Upper layer didn't know which MAC to use during
DCBX negotiation.
Cause: Proper MAC (SAN) was not set in the netdev.
Change: Call dev_addr_add() with the proper MAC and SAN type.
8. Problem: (FCoE) FIP packets were not ruled by the PFC FC.
Cause: FIP packets were arriving on a regular L2 client.
Change: Set a different MAC to the FCoE L2 client.
Enhancement
-----------
1. Request: Changed the doorbell size (the stride between consecutive
doorbells' addresses) from 4K to 128
Change: As requested
2. Request: Add support for dual-media board type
Change: Redesign the CLC to be able to handle multi-phy boards.
Rename clc/CLC to elink/ELINK.
Driver is required to probe the phys on board before
initializing the link.
Specific phy access will be done using "phy" structure.
Common access will go over all phys on board and execute the
command on them.
Impact: From now on, high level driver will not be familiar with the
phys on-board. For every phy access, it is required to use the
elink API, or add new one.
3. Request: Having the ability to pass data from the Tstorm to the driver
over the SGL in fast_path_cqe (required for iSCSI Out-Of-Order)
Change: As requested (in FW 5.3.20)
4. Request: Use FW 5.3.20
Change: As requested
5. Request: Add DCBX support for 57711
Change: As requested
6. Request: Remove #ifdef CONFIG_PCI_MSI sections from code
Change: Removed #ifdef CONFIG_PCI_MSI sections. Left the code that was
compiled when this (CONFIG_PCI_MSI) macro has been defined.
Version 1.53.14 (Dec 7, 2009)
==============================
Enhancement
-----------
1. Request: (CQ41760) Use more generic log message in case of fan failure
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.3.17
Change: As requested
4. Request: Enable parity errors recognition and recovery.
Change: First implementation of parity error recovery flow. Currently
only "process kill" is supported. Parity errors are currently
disabled for E1 until the proper changes are done to init
tool.
Version 1.53.13 (Nov 17, 2009)
==============================
Fixes
-----
1. Problem: Improper initialization of MF/SF causes driver to stall
Cause: Using uninitialized values of fpid
Change: Using fpid moved to later stages after its initialization
Impact: None
Version 1.53.12 (Nov 16, 2009)
==============================
Fixes
-----
1. Problem: CQ41232: Management gets incorrect AN and FC bit values.
Cause: FC wasn't updated correctly during link up event
Change: Extract all status_link information correctly
Impact: None
2. 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
Change: Do not report link change unless there's actually link link
change
Impact: None
3. Problem: BCM8481 doesn't negotiate FC capabilities
Cause: FC capabilities weren't advertised during phy initialization
Change: Set BCM8481 FC capabilities during init stage
Impact: None
4. Problem: (FCoE) Completions are not arrived on open tasks
Cause: Connection does not register to QM since SQ producer/consumer
Change: Fixed in FW 5.3.14: Set BCM8481 FC capabilities during
init stage
Impact: None
Enhancement
-----------
1. Request: Support bootcode on 57712
Change: As requested
Impact: 577712 Only
2. Request: Allocate available MSI-X vectors in normal mode
Change: As requested
Impact: None
3. Request: Use multi cpu rx when using msix in kernels without new napi
Change: As requested
Impact: None
4. Request: support correct number of iSCSI and FCoE sessions in the HW
initializations
Change: As requested
Impact: None
5. Request: support any number of L2 queues in the HW
initializations
Change: As requested
Impact: None
6. Request: Hanlde both Tx and Rx in NAPI
Change: As requested
Impact: None
7. Request: Support 4-port mode for 57712
Change: As requested
Impact: None
8. Request: Use FW 5.3.14
Change: As requested
Impact: None
Version 1.53.11 (Nov 11, 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
Change: When configuring the HW/FW to GSO, always configure csum
offload as well
2. Problem: (FCoE) Chip hanged during data placement
Cause: Thread started placing data before verifying the task type
Change: Fixed in FW 5.3.13: verify task type is match to read in
FCP_DATA before placement
Impact: None
3. Problem: (CQ44328) (FCoE) Chip hanged after error was detected
Cause: Thread was waiting for CRC result instead
of releasing the packet
Change: Fixed in FW 5.3.13: Release the packet if an error occurred
during data placement
Impact: None
Enhancement
-----------
1. Request: Use FW 5.3.13
Change: As requested
Impact: None
Version 1.53.10 (Nov 08, 2009)
==============================
Enhancement
-----------
1. Request: Use FW 5.3.12
Change: As requested
Impact: None
Version 1.53.9 (Oct 27, 2009)
==============================
Fixes
-----
1. Problem: ethtool -t ethX FAILED
Cause: test_registers() accessed registers without mask
Change: Added mask for write access
Impact: None
Version 1.53.8 (Oct 26, 2009)
==============================
Enhancement
-----------
1. Request: Use FW 5.3.10
Change: As requested
Impact: None
Version 1.53.xx (Oct xx, 2009)
==============================
Enhancement
-----------
1. Request: Improve times for ifconfig up/down (slow 57712 chip revision)
Change: As requested
Impact: None
Version 1.53.xx (Oct xx, 2009)
==============================
Enhancement
-----------
1. Request: Add support for EMAC loopback for FPGA
Change: As requested
Impact: None
Version 1.53.7 (Oct 22, 2009)
==============================
Enhancement
-----------
1. Request: Use FW 5.3.9
Change: As requested
Impact: None
2. Request: Remove compilation flag for
BCM57712/BCM57712E/BCM57713/BCM57713E
Change: As requested
Impact: None
Version 1.53.6 (Oct 21, 2009)
==============================
Enhancement
-----------
1. Request: 57712 multifunction support
Change: As requested
Impact: None
Version 1.53.5 (Oct XX, 2009)
==============================
Fixes
-----
1. 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"
Change: 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
Version 1.53.4 (Oct 11, 2009)
==============================
Fixes
-----
1. Problem: Priority Flow Control on BCM57711 showed low performance
Cause: Transmitted Xon PFC packet was malformed. PriorityEnableVector
field in PFC packet was set to zero instead of the relevant
priorities. This caused to remote peer to wait longer until
timers expired to Xon again
Change: Fixed in FW 5.3.8: set properly PriorityEnableVector in Xon
PFC packet
Impact: None
2. Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected FIN packet
was received under traffic
Cause: FW erroneously increased activity counter
Change: Fixed in FW 5.3.8: condition for activity counter increment
fixed
Impact: None
3. Problem: (CQ43517) SLES11u0 iSCSI: SUT hangs when unexpected SYN packet
was received under traffic
Cause: TCP reset initiated by FW caused endless wake ups for FW
Change: Fixed in FW 5.3.8: changed setting of FW internal flags
Impact: None
4. 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
Change: Fixed in FW 5.3.8: use the scratchpad within the thread
boundary only
Impact: None
5. Problem: iSCSI offload: TCP Close failed
Cause: Bug in byte credit update during termination
Change: Fixed in FW 5.3.8
Impact: None
6. Problem: FCoE INIT ramrod was never completed
Cause: Reading from inappropriate VQ in Tstorm
Change: Fixed in FW 5.3.8: reading from to the correct VQ
Impact: None
Enhancement
-----------
1. Request: BCM577xx support for FW 5.3.8
Change: As requested
Impact: None
2. Request: Adding support broadcast and multicast received packets in
L2 switch independant mode
Change: In FW 5.3.8 as requested
Impact: None
Version 1.53.3 (Oct xx, 2009)
==============================
Fixes
-----
1. 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
Change: Make bnx2x_select_queue() return stack tx_hash() by default
Impact: None
Enhancement
-----------
1. Request: Add a separate L2 ring for FCoE L2 traffic
Change: As requested
Impact: None
Version 1.53.2 (Oct 8, 2009)
==============================
Fixes
-----
1. Problem: 57712 failed to receive data from network
Cause: Incorrect MAC type selected during initialization
Change: MAC initializaton fixed
Impact: None
2. Problem: 57712 failed to bring up interface
Cause: Unhandled attention interrupt caused processor to stall
Change: Added handling for new attentions
Impact: None
Version 1.53.1 (Oct 5, 2009)
==============================
Enhancement
-----------
1. Request: 57712 support for FW 5.3.7
Change: As requested
Impact: None
Version 1.53.xx (Sep xx, 2009)
==============================
Enhancement
-----------
1. Request: When PFC is enabled, set BigMAC to relay control packets to the
system as well, and enable BigMAC to react on received Pause
packets
Change: As requested
Impact: None
Version 1.53.0a (Oct 1, 2009)
==============================
Enhancements
------------
1. Request: Use FW 5.3.7
Change: As requested
Impact: None
2. Request: Add support for BCM57712 (by compilation flag)
Change: As requested
Impact: None
Version 1.51.0a (Sep 14, 2009)
==============================
Fixes
-----
1. Problem: Enabling fairness algorithm in the middle of the run causes
the function to stop transmitting.
Cause: The fairness credit is not initialized in this case.
Change: Change the fairness credit init value.
Impact: None.
2. Problem: (CQ42873) No traffic when number of receive buffers is configured
to 50 (the minimum) in the advanced properties page.
Cause: Firmware is always saving a CQE for each TPA aggregation.
So in case less then 75 CQEs are on the ring, the firmware
starts dropping packets.
Change: Check if TPA is enabled before deciding if to drop packet.
If TPA is disabled save only 11 CQEs instead of 75.
Impact: None.
Enhancements
------------
1. Request: Use FW 5.3.4
Change: As requested
Impact: None
Version 1.51.x (Aug xx, 2009)
=============================
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
Change: Remove SGMII configuration in non-SGMII link type
Impact: None
2. Problem: BCM8481 link is not able to link up after cable plug out/in
Cause: New BCM8481 image required new configurtion of the LED4 signal
which generate the interrupt
Change: Detect link down using the LED4 signal rathen than the BCM8481
registers
Impact: None
3. 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
Change: Remove SGMII configuration in non-SGMII link type
Impact: None
4. Problem: BCM8481 link is not able to link up after cable plug out/in
Cause: New BCM8481 image required new configuration of the LED4 signal
which generate the interrupt
Change: Detect link down using the LED4 signal rather than the BCM8481
registers
Impact: None
5. 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
Change: Add additional protection in case bootcode is missing
Impact: None
Enhancements
------------
1. Request: When PFC enabled, pass pause frames towards the NIG
Change: As requested
Impact: None
2. Request: Improve FP performance
Change: Remove writing ACK to USTORM from Tx flow and to CSTORM from
Rx
Impact: None
3. Request: Handle fan failure for BCM8481 PHY
Change: As requested
Impact: None
4. Request: Once PFC is selected along with emac, it is required to set
BIT 3, KEEP_MAC_CONTROL, at emac register rx_mode.
Setting this bit causes MAC control frames (except for pause
frames) to be passed on for processing. This setting has no
affect on the operation of the pause frames.
This bit affects all packets regardless of RX Parser packet
sorting logic.
Change: As requested
Impact: None
5. Request: Use FW 5.1.23.1
Change: As requested
Impact: None
6. Request: Support kernel 2.6.31 (RC2)
Change: Use DMA_MAP macros and .ndo_select_queue
Impact: None
7. Request: (CQ41112) - PHY LED Programming for BCM8481 on BlackBird
(BCM957711A1100G) Production Board
Change: As requested
Impact: None
8. Request: Increase DMAE max write size for 57711/57711E
Change: As requested
Impact: None
9. Request: Not handling statistics in panic condition
Change: As requested
Impact: None
10. Request: Enhance bnx2x_panic_dump() - print SB data
Change: As requested
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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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.
Change: 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
Change: 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
Change: 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
Change: 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
Change: (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)
Change: 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 loopback test management egress traffic might be routed
to the host and will not be cleared when exiting the diag mode
Change: 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
Change: 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
Change: 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.
Change: 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
Change: 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
Change: 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
Change: 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()
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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)
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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.
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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.
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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)
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: Don't clear the "MSI reconfigure enable" bit
Impact: None
7. Problem: Uninitialized HW blocks
Cause: XCM and BRB1 port init part were missing
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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.
Change: 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
Change: 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)
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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.
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: Create private workqueue
Impact: None
5. Problem: (CQ38139) iSCSI FW: Performance < 40% of Peak Advertised
Cause: Inefficient implementation of ring management in firmware
Change: 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
Change: 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
Change: 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.
Change: 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
Change: 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
Change: 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)
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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.
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: Workaround in the code
Impact: None
3. Problem: (CQ36673) iSCSI FW: Hardware attention on MaxLuns
Cause: Activity count leak in Ustorm microprocessor
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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.
Change: 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
Change: Fixed in FW 4.6.10
Impact: None
5. Problem: (CQ37090) Placement of RQ data to wrong address
Cause: ASM problem
Change: Fixed in FW 4.6.10
Impact: None
6. Problem: (CQ36912) BSOD when destroying erroneous connections
Cause: Activity count leak
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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()
Change: 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.
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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
Change: 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.