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